document.observe("dom:loaded",function(){$$(".handle").each(function(a){new HeaderMenu(a,a.id)});$$("#title .iconlink, #content .iconlink").each(function(a){if(a.parentNode.href){new IconMenu(a,a.parentNode.href+"/iconmenu")}});$$(".friend_list").each(function(a){a.select("a").each(function(b){$(b).observe("click",function(e){var d=b;var c=d.classNames().toArray().join(".");if(c){var f=(d.innerHTML=="Overview")?"&hellip;pick a service<b></b>":d.innerHTML+"<b></b>";$("service_selector").update(f);$$(".find_users div").invoke("setStyle",{height:0,overflow:"hidden"});$$("div."+c).invoke("setStyle",{height:"auto",display:"block"});inviteDropdown.close()}Event.stop(e)})})});$$(".add_friend a").each(function(a){$(a).observe("click",function(c){var b='<li><label for="invite_name">Name: <input type="text" name="invite[][name]" /></label><label for="invite_email"> E-mail: <input type="text" name="invite[][email]" /></label></li>';$$(".invite_person").first().insert({bottom:b});Event.stop(c)})});inviteDropdown=new inviteDropdown();if($("invite_email")){inviteMail=new inviteMail()}logoFaceBox=new LogoFaceBox();largeDescription=new LargeDescription("description_span",400);yourTags=new softwareButtonToggle("tags_button","user_tags");favoriteSoftware=new softwareButtonToggle("favs_button","user_favs");privacySettings=new softwareButtonToggle("privacy_button","user_privacy");if($("recentlyticker")){new RecentlyTicker("recentlyticker")}});function trackAjaxPageView(a){if(typeof(_gaq)!=="undefined"){_gaq.push(["_trackPageview",a])}}function clearInput(b,a){if(!a){a="666666"}if(b.className!="focussed"){b.style.color="#"+a;b.value="";b.className+="focussed"}}var Button=Class.create({initialize:function(a){this.btn=$(a);this.btn.caption=this.btn.innerHTML;this.btn.addClassName("loading");this.btn.update("<span>Loading</span>");this.btn.disabled="disabled";if(this.btn.type=="submit"&&this.btn.form.onSubmit==""){this.btn.form.submit()}if(this.btn.onclick){this.btn.form.submit()}},reset:function(){this.btn.removeClassName("loading");this.btn.update(this.btn.caption);this.btn.disabled=""},loading:function(){this.initialize(this.btn)}});var LogoFaceBox=Class.create({initialize:function(){this.logoWasClosed=false;if($("logo")){$("logo").oncontextmenu=this.showLogoBox.bindAsEventListener(this);$("facebox_close").onclick=this.closeLogoBox.bindAsEventListener(this)}},showLogoBox:function(){if(!this.logoWasClosed){$("facebox_logo").show();return false}},closeLogoBox:function(){$("facebox_logo").hide();this.logoWasClosed=true;return false}});var inviteDropdown=Class.create({initialize:function(){this.shown=false;$$(".find_users div").invoke("setStyle",{height:0,overflow:"hidden"});var b=["windowslive","yahoo","gmail_api","twitter","facebook","flickr"];var c=window.location.href.split("#")[1];if(b.include(c)){$$("div."+c+"-s").invoke("setStyle",{height:"auto"});var a=($$("a."+c+"-s").first().innerHTML=="Overview")?"&hellip;pick a service<b></b>":$$("a."+c+"-s").first().innerHTML+"<b></b>";$("service_selector").update(a)}else{$$(".find_users div:first-child").invoke("setStyle",{height:"auto"})}if($("service_selector")){$("service_selector").observe("click",this.toggle.bindAsEventListener(this))}},toggle:function(a){if(this.shown){this.close()}else{this.open()}Event.stop(a)},open:function(){$("service_selector").addClassName("opened");new Effect.Morph("friend_list",{style:"height:168px",duration:0.4});this.shown=true},close:function(){this.shown=false;new Effect.Morph("friend_list",{style:"height:0px",duration:0.4});$("service_selector").removeClassName("opened")}});var inviteMail=Class.create({initialize:function(){this.shown=false;$("invite_email").setStyle({height:0,overflow:"hidden"});if($("open_invitemail")){$("open_invitemail").observe("click",this.toggle.bindAsEventListener(this))}},toggle:function(a){if(this.shown){this.close()}else{this.open()}Event.stop(a)},open:function(){new Effect.Morph("invite_email",{style:"height:240px",duration:0.4});$("open_invitemail").update("hide example");this.shown=true},close:function(){this.shown=false;new Effect.Morph("invite_email",{style:"height:0px",duration:0.4});$("open_invitemail").update("example")}});var softwareButtonToggle=Class.create({initialize:function(a,b){this.shown=false;this.buttonid=a;this.divid=b;if($(this.buttonid)){$(this.buttonid).observe("click",this.toggle.bindAsEventListener(this))}},toggle:function(a){if(this.shown){this.close()}else{this.open()}Event.stop(a)},open:function(){trackAjaxPageView("/javascript/software/open-box-"+this.buttonid);new Effect.BlindDown(this.divid,{duration:0.4});this.shown=true},close:function(){this.shown=false;new Effect.BlindUp(this.divid,{duration:0.4})}});function showSubmit(a){if(a){a.addClassName("submitted_button")}}function activateSubmit(a){if(a){a.disabled=false;a.removeClassName("submitted_button")}}var LargeDescription=Class.create({initialize:function(b,a){this.elm=$(b);if(!this.elm){return}if(this.elm.innerHTML.length<a){this.elm.innerHTML=this.elm.innerHTML.stripTags();return}this.large_text=this.elm.innerHTML;this.small_text=this.large_text.substring(0,a);this.small_text=this.small_text.substring(0,this.small_text.lastIndexOf(" "))+" &hellip;";this.small_text=this.small_text.stripTags();this.elm.innerHTML='<span id="'+b+'_span"></span> <a id="'+b+'_link" href="#more">More</a>';this.span=$(b+"_span");this.link=$(b+"_link");this.span.innerHTML=this.small_text;this.link.onclick=this.toggle.bindAsEventListener(this);this.isFull=false},toggle:function(){this.span.innerHTML=(this.isFull)?this.small_text:this.large_text;this.link.innerHTML=(this.isFull)?"More":"Less";this.isFull=!this.isFull;return false}});function toggleDescr(){if($("descr").hasClassName("descr_closed")){$("more_link").innerHTML="Less";$("descr").removeClassName("descr_closed");$("descr").addClassName("descr_open")}else{$("descr").removeClassName("descr_open");$("descr").addClassName("descr_closed");$("more_link").innerHTML="&hellip; More"}}var search_running=false;function searchSoftware(b){var a=$F("search_query");if(!search_running&&a.length>=3){new Ajax.Request(b,{method:"post",postBody:"query="+escape(a),onLoading:function(){$("spinner").show();search_running=true},onComplete:function(){search_running=false;$("spinner").hide()},onSuccess:function(c){$("search_hits").innerHTML=c.responseText||"Nothing found :(";trackAjaxPageView("/javascript/ajax-search-box")}})}else{$("search_hits").innerHTML=""}}function observePicker(d,c){var b=$F(c+"_input");var a=$(c+"_hits");var e=$(c+"_spinner");if(!search_running&&b.length>=3){new Ajax.Request(d,{method:"post",postBody:"query="+escape(b),onLoading:function(){e.show();search_running=true},onComplete:function(){search_running=false;e.hide();a.show()},onSuccess:function(f){a.innerHTML=f.responseText||"Nothing found :(";trackAjaxPageView("/javascript/ajax-search-box")}})}else{a.hide();a.innerHTML=""}}function setApp(c,a,b,d){if(field=$(b)){$(b+"_hits").innerHTML=field.innerHTML;field.innerHTML="<span>"+c.innerHTML+'<input type="hidden" name="split[similar_software_id]" value="'+a+'" /></span>';field.innerHTML+=' - <a href="#developers" onclick="setPicker(\''+b+"')\">change</a>"}$(b+"_hits").hide();if($("devbadge_code")){setDevWidget(d)}}function setPicker(a){if(field=$(a)){field.innerHTML=$(a+"_hits").innerHTML;$(a+"_input").className="greyed";$(a+"_hits").innerHTML="";new Form.Element.Observer(a+"_input",1,function(b,c){observePicker("/search/autocomplete?field_id="+a,a)})}}function setBlockStatus(h,d,b){var a="usage_spinner_"+h;var c="usage_software_"+h;var f="block_"+h;var e="unblock_"+h;var g="flag_description_"+h;new Ajax.Request("/account/display_settings",{method:"post",postBody:"id="+escape(h)+"&display_flag="+escape(d),onLoading:function(){$(a).show()},onSuccess:function(i){$(a).hide();if(b){if(d==-1){$(f).show();$(e).hide()}else{$(f).hide();$(e).show();$(g).innerHTML=i.responseText}}else{if(d==-1){$(c).remove();if($("currently_blocked").childNodes.length<=1){$("none_blocked").show()}}else{$("none_blocked").hide();$(f).hide();$(g).innerHTML=i.responseText;$(e).show();$("currently_blocked").appendChild($(c))}}},on403:function(){$(a).hide()}})}function osChecker(){var b=null;if(navigator.appVersion.indexOf("Win")!=-1){b="win"}if(navigator.appVersion.indexOf("Mac")!=-1){b="mac"}if(navigator.appVersion.indexOf("Linux")!=-1||navigator.appVersion.indexOf("X11")!=-1){b="linux"}var a=["win","mac","linux"];if(b){$(a).each(Element.hide);var c=window.location.href.split("#")[1];if(a.include(c)){$$("div#"+c+"").invoke("show")}else{$(b).show()}}$$(".view_all_os").each(function(d){$(d).observe("click",function(e){$("win","mac","linux").invoke("show");$$(".view_all_os").invoke("hide")})})}var WakoopaConnectButton={toggle:function(c,e,g){var b=g.keepAround||false;var a=c.href;var d=c.href.match(/(?:\/)(connect|unconnect)(?:\?quick=)/)[1];var f=c.select("img").first();new Ajax.Request(a,{onLoading:function(){f.src="/images/indicator.gif"},onSuccess:function(){if(d=="connect"){f.src="/images/icon_mincontact.gif";c.title="Remove as contact";c.href=c.href.gsub(/\/connect\?quick/,"/unconnect?quick");trackAjaxPageView("/javascript/profile/add-as-contact")}else{if(d=="unconnect"){f.src="/images/icon_pluscontact.gif";c.title="Add as contact";c.href=c.href.gsub(/\/unconnect\?quick/,"/connect?quick");trackAjaxPageView("/javascript/profile/remove-as-contact")}}if($(e)&&!b){$(e).fade()}}})}};function inviteFormSubmit(form){var results_container=$("invitevia_result");var header_type=$$(".box_title h2, .box_title h3").first().tagName;var service=$(form).select('input[name="invite_via[via]"]').first().value.capitalize();new Ajax.Request("/account/invite/find_users",{asynchronous:true,evalScripts:true,onLoading:function(request){if($("found_users")){$("found_users").hide()}results_container.update("loading");results_container.addClassName("loading")},onComplete:function(request){eval(request.responseText);results_container.insert({top:"<"+header_type+">Found "+service+" contacts on Wakoopa</"+header_type+">"});results_container.removeClassName("loading")},onFailure:function(request){results_container.update('<p class="empty">Oops something went wrong, maybe the username you entered does not exist or '+service+" is down :(</p>");results_container.removeClassName("loading")},parameters:Form.serialize(form)});return false}var num=0;function userCarousel(b){var c=$("mostactive"),a=$$("#mostactive li").size()*60,d=num;if(b.id=="uprev"){num=num+420}else{num=num-420}if(num<=0){if(num>-a){new Effect.Morph(c,{style:"margin-left:"+num+"px",duration:0.3});if(num-420<=-a){$("inext").addClassName("faded")}else{$("inext").removeClassName("faded")}}else{num=d;$("inext").addClassName("faded")}if(num==0){$("iprev").addClassName("faded");$("inext").removeClassName("faded")}else{$("iprev").removeClassName("faded")}}else{num=0}trackAjaxPageView("/javascript/software/user-carousel");return false}var screenshotnum=0;function screenshotCarousel(b){var c=$("screenshot_scroller"),a=$$("#screenshot_scroller li").size()*99+15,d=screenshotnum;if(b.id=="suprev"){screenshotnum=screenshotnum+297}else{screenshotnum=screenshotnum-297}if(screenshotnum<=0){if(screenshotnum>-a){new Effect.Morph(c,{style:"margin-left:"+screenshotnum+"px",duration:0.3});if(screenshotnum-297<=-a){$("sinext").addClassName("faded")}else{$("sinext").removeClassName("faded")}}else{screenshotnum=d;$("inext").addClassName("faded")}if(screenshotnum==0){$("siprev").addClassName("faded");$("sinext").removeClassName("faded")}else{$("siprev").removeClassName("faded")}}else{screenshotnum=0}trackAjaxPageView("/javascript/software/screenshot-carousel");return false}var iphoneLatestAppsCarousel=Class.create({initialize:function(){$$("ul.latest_iphone_avatars li a").each(function(d){d.observe("click",function(f,e){window.iphoneCarousel=false;this.changeItem(e);Event.stop(f);return false}.bindAsEventListener(this,d))}.bind(this));var a=$$("ul.latest_iphone_avatars li a")[0];if(a){var c='<a class="url" href=""></a>: <em></em>';var b=new Element("div",{id:"iphone_tagline"}).update(c);$("latest_iphone_apps").insert({bottom:b});this.changeItem(a);window.iphoneCarousel=true;setTimeout(this.binderFunction.bind(this,1),4000)}},favCycle:function(a){var c=a,b=$$("ul.latest_iphone_avatars li a");this.changeItem(b[a]);c=(c<b.length-1)?c+1:0;setTimeout(this.binderFunction.bind(this,c),4000)},binderFunction:function(a){var b=$$("ul.latest_iphone_avatars li a");if(window.iphoneCarousel&&b.length>1){this.favCycle(a)}},changeItem:function(d){$$("ul.latest_iphone_avatars li a").each(function(f){$(f).removeClassName("active")});d.addClassName("active");var b=d.immediateDescendants(),a=d.readAttribute("href"),c=b[1].innerHTML,e=b[0].readAttribute("alt");tagline=$("iphone_tagline").immediateDescendants();tagline[0].innerHTML=e;tagline[0].writeAttribute("href",a);tagline[1].innerHTML=c}});var HeaderMenuOpen=null;var HeaderMenu=Class.create({initialize:function(a,b){this.node=$(a);this.menu=$(b=="os_link"?"os_menu":b+"menu");this.link=(b=="os_link"?$(b):$(b+"link"));this.os_select_form=$("os_select_form");this.search_input=$("search_input");this.escEvent=this.escape.bindAsEventListener(this);this.outEvent=this.outside.bindAsEventListener(this);this.menuOpened=false;this.effect=false;this.node.observe("click",this.toggle.bindAsEventListener(this));this.os_select_form.onsubmit=this.filterPlatforms.bindAsEventListener(this);if(this.search_input){this.search_input.onfocus=this.clearInput.bindAsEventListener(this);this.search_input.onblur=this.setInput.bindAsEventListener(this)}if(!window.HMZI){window.HMZI=2}},toggle:function(a){this.menu.style.zIndex=HMZI++;if(this.menuOpened){this.close(a)}else{this.open(a)}},open:function(a){if(HeaderMenuOpen!=null&&HeaderMenuOpen!=this){HeaderMenuOpen.close(a)}HeaderMenuOpen=this;new Effect.BlindDown(this.menu,{duration:0.2});this.link.addClassName("opened");document.observe("click",this.outEvent);document.observe("keydown",this.escEvent);this.menuOpened=true;Event.stop(a);if($("leaderboard")){$("leaderboard").hide()}},close:function(b){this.effect=new Effect.BlindUp(this.menu,{duration:0.2,afterFinish:(function(c){this.link.removeClassName("opened")}).bindAsEventListener(this)});document.stopObserving("click",this.outEvent);document.stopObserving("keydown",this.escEvent);this.menuOpened=false;var a=Event.element(b);if(a.hasClassName("handle")||a.hasClassName("innerhandle")){Event.stop(b)}if($("leaderboard")){$("leaderboard").show()}},escape:function(a){if(a.keyCode==27){this.close(a)}},outside:function(a){element=Event.element(a);if(!element.descendantOf("header")){this.close(a)}},filterPlatforms:function(){var a="";$$(".os_select").each(function(b){if(b.checked){a+=b.value+","}});document.location.href="/platforms?os="+a.slice(0,-1);return false},clearInput:function(){if(!this.default_search_text){this.default_search_text=this.search_input.value}if(this.default_search_text==this.search_input.value){this.search_input.value=""}this.search_input.addClassName("focussed")},setInput:function(){if(this.search_input.value.length==0&&this.default_search_text){this.search_input.value=this.default_search_text}this.search_input.removeClassName("focussed")}});var iconMenuIndex=1;var iconMenuContents=[];var IconMenu=Class.create({initialize:function(a,b){this.node=a;this.ajaxURL=b||"iconmenu.html";this.image=this.node.longDesc;this.closeEvent=this.close.bindAsEventListener(this);this.outEvent=this.outside.bindAsEventListener(this);this.escEvent=this.escape.bindAsEventListener(this);this.menuLink=false;this.menuOpener=false;this.menu=false;this.wrapper=false;this.linkShown=false;this.menuOpened=false;this.active=false;this.timeout=null;this.node.observe("mouseover",this.toggle.bindAsEventListener(this));this.node.observe("mouseout",this.toggle.bindAsEventListener(this))},toggle:function(b){var a=new Image();a.src=this.image;if(this.timeout){this.timeout=clearTimeout(this.timeout)}else{this.timeout=setTimeout(this.show.bindAsEventListener(this),300)}},show:function(c){clearTimeout(this.timeout);if(!this.linkShown){if(!this.menuLink){this.menuLink=new Element("div",{"class":"iconmenu_link"});this.menuOpener=new Element("a",{"class":"iconmenu_opener",href:this.node.parentNode.href});this.menuLink.appendChild(this.menuOpener);cloneIt(this.menuLink,this.node,{setWidth:false,setHeight:false});var a=new Element("img",{src:this.image});var b=new Element("a",{"class":"iconmenu_img",href:this.node.parentNode.href});b.appendChild(a);b.wrap(this.menuLink);this.menuLink.hide();document.body.appendChild(this.menuLink);this.menuLink.observe("mouseout",this.hide.bindAsEventListener(this));this.menuOpener.observe("click",this.toggleMenu.bindAsEventListener(this))}document.observe("click",this.outEvent);document.observe("keydown",this.escEvent);this.menuLink.show();this.linkShown=true}},hide:function(b){if(this.linkShown){var a=b.relatedTarget||b.toElement;if(a&&a.className!="iconmenu_link"&&a.className!="iconmenu_opener"&&!this.menuOpened){this.menuLink.hide();this.linkShown=false;document.stopObserving("click",this.outEvent);document.stopObserving("keydown",this.escEvent)}}},toggleMenu:function(c){if(this.menuOpened){this.menu.style.display="none";this.menuLink.removeClassName("opened");this.menuOpened=false}else{if(!this.menu){this.menu=new Element("div",{"class":"iconmenu"});var a=new Element("img",{src:"/images/indicator_big.gif",id:"indicator"});this.menu.appendChild(a);cloneIt(this.menu,this.node,{setWidth:false,setHeight:false});if(iconMenuContents[this.ajaxURL]){this.menu.update(iconMenuContents[this.ajaxURL])}else{var d=this.menu;var b=this.ajaxURL;new Ajax.Request(b,{method:"get",evalScripts:true,onSuccess:function(e){d.update(e.responseText);iconMenuContents[b]=d.innerHTML}})}}this.menu.style.display="";this.menuLink.insert({after:this.menu});this.menuLink.addClassName("opened");this.menuOpened=true;iconMenuIndex=iconMenuIndex+2;this.menuLink.style.zIndex=iconMenuIndex;this.menu.style.zIndex=iconMenuIndex-1}Event.stop(c)},close:function(a){if(this.menu){this.menuLink.hide();this.linkShown=false;this.menu.style.display="none";this.menuLink.removeClassName("opened");this.menuOpened=false;document.stopObserving("click",this.outEvent);document.stopObserving("keydown",this.escEvent)}},outside:function(a){element=Event.element(a);if(!element.descendantOf(this.menu)){this.close(a)}},escape:function(a){if(a.keyCode==27){this.close(a)}}});function cloneIt(b,c){var a=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});c=$(c);var d=c.cumulativeOffset();b=$(b);if(a.setLeft){b.style.left=(d[0]+a.offsetLeft)+"px"}if(a.setTop){b.style.top=(d[1]+a.offsetTop)+"px"}if(a.setWidth){b.style.width=c.offsetWidth+"px"}if(a.setHeight){b.style.height=c.offsetHeight+"px"}return b}var AlertReply={trigger:function(f,b,h){var d=f.up();var c=d.select("form").first();if(!c){c=new Element("form",{"class":"reply_form",action:b,method:"post"}).update("Leave a comment: ");c.observe("submit",function(j){AlertReply.submitForm(c);Event.stop(j)},true);var i=new Element("input",{type:"text",name:"comment[text]","class":"comment_text"});if(h){var a=new Element("input",{type:"hidden",name:"comment[alert_id]",value:h});c.appendChild(a)}c.appendChild(i);var g=new Element("input",{type:"submit",value:"Reply",onclick:"showSubmit(this)"});c.appendChild(g);var e=new Element("div",{id:"alertreply_"+h,"class":"alertreply_box",style:"display:none"});e.appendChild(c);f.insert({after:e});i.focus()}else{e=$("alertreply_"+h)}new Effect.toggle(e,"blind",{duration:0.3})},submitForm:function(a){trackAjaxPageView("/javascript/dashboard/alert-reply-sent");var b=a.select("input[type=text]").first();if(b.value==""){b.style.border="1px solid red";activateSubmit(a.select("input[type=submit]").first())}else{new Ajax.Request(a.action,{asynchronous:true,evalScripts:true,onComplete:function(c){var d=a.action.gsub("/comments/write","");a.update('<p>Thanks! Your comment was posted on <a href="'+d+'#comments">this page</a>.</p>')},parameters:Form.serialize(a)})}return false}};var Dismissal=Class.create({url:"/dismiss",initialize:function(b,a){if($(b)){new Effect.BlindUp($(b),{duration:0.2})}trackAjaxPageView("/javascript/dismiss-"+a);this.sendXHR(a);return false},sendXHR:function(a){new Ajax.Request(this.url,{parameters:{type:a},method:"post"})}});var WakoopaRecommendation={showReasons:function(a){$("reasons_"+a).toggle();trackAjaxPageView("/javascript/recommendations/show-reason");return false},showExplanation:function(d,c,a){var b="explanation_"+d;if($(b).innerHTML.strip().blank()){new Ajax.Request("/recommendations/explanation",{method:"post",asynchronous:true,evalScripts:true,parameters:{id:d,recommendation_os:c,authenticity_token:a}})}else{$(b).toggle()}trackAjaxPageView("/javascript/recommendations/show-explanation");return false},showContacts:function(d,c,a){var b="contacts_"+d;if($(b).innerHTML.strip().blank()){new Ajax.Request("/recommendations/contacts",{method:"post",asynchronous:true,evalScripts:true,parameters:{id:d,recommendation_os:c,authenticity_token:a}})}else{$(b).toggle()}trackAjaxPageView("/javascript/recommendations/show-contacts");return false},showReleasenotes:function(a){$("releasenotes_"+a).toggle();trackAjaxPageView("/javascript/recommendations/show-releasenotes");return false},showMore:function(b){var a=$(b).ancestors()[1];if($(a).hasClassName("reasons_open")){$(a).removeClassName("reasons_open");$(b).update("Show more")}else{$(a).addClassName("reasons_open");$(b).update("Show less")}return false},removeListing:function(b,g,e,f,d,a,c){$(b).ancestors()[5].setStyle({opacity:"0.4"});$(b).ancestors()[3].hide();$("remove_loader_"+g).show();trackAjaxPageView("/javascript/recommendations/remove-listing");new Ajax.Request("/recommendations/hide_recommendation",{method:"post",asynchronous:true,evalScripts:true,parameters:{id:g,reason:f,dashboard:a,recommendation_os:e,return_type:d,authenticity_token:c}});return true},removeUpdateListing:function(a,d,c,b){$(a).ancestors()[5].setStyle({opacity:"0.4"});$(a).ancestors()[3].hide();$("remove_loader_"+d).show();trackAjaxPageView("/javascript/updates/remove-listing");new Ajax.Request("/updates/feedback",{method:"post",asynchronous:true,evalScripts:true,parameters:{id:d,reason:c,authenticity_token:b}});return true}};window.Raphael=(function(){var a4=/[, ]+/,bt=document,bH=window,aW={was:"Raphael" in bH,is:bH.Raphael},bL=function(){if(bL.is(arguments[0],"array")){var g=arguments[0],f=aO[bU](bL,g.splice(0,3+bL.is(g[0],bN))),d=f.set();for(var a=0,c=g[aV];a<c;a++){var b=g[a]||{};({circle:1,rect:1,path:1,ellipse:1,text:1,image:1})[bj](b.type)&&d[a1](f[b.type]().attr(b))}return d}return aO[bU](bL,arguments)},bl="appendChild",bU="apply",bX="concat",bI="",i=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup"],bj="hasOwnProperty",bP=/^\[object\s+|\]$/gi,bD="join",aV="length",bS="prototype",bR=String[bS].toLowerCase,a0=Math.max,br=Math.min,bN="number",bC="toString",bF=Object[bS][bC],bZ={},b2=Math.pow,a1="push",bW=/^(?=[\da-f]$)/,a2=/^url\(['"]?([^\)]+)['"]?\)$/i,bm=Math.round,bM=" ",aP="setAttribute",aM="split",bf=parseFloat,e=parseInt,b1=String[bS].toUpperCase,aY={"clip-rect":"0 0 10e9 10e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/",opacity:1,path:"M0,0",r:0,rotation:0,rx:0,ry:0,scale:"1 1",src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",translation:"0 0",width:0,x:0,y:0},bc={"clip-rect":"csv",cx:bN,cy:bN,fill:"colour","fill-opacity":bN,"font-size":bN,height:bN,opacity:bN,path:"path",r:bN,rotation:"csv",rx:bN,ry:bN,scale:"csv",stroke:"colour","stroke-opacity":bN,"stroke-width":bN,translation:"csv",width:bN,x:bN,y:bN},b0="replace";bL.version="1.2.3";bL.type=(bH.SVGAngle||bt.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML");bL.svg=!(bL.vml=bL.type=="VML");bL._id=0;bL._oid=0;bL.fn={};bL.is=function(a,b){b=bR.call(b);return((b=="object"||b=="undefined")&&typeof a==b)||(a==null&&b=="null")||bR.call(bF.call(a)[b0](bP,bI))==b};bL.setWindow=function(a){bH=a;bt=bH.document};var bA=function(b){if(bL.vml){var c=/^\s+|\s+$/g;bA=bQ(function(k){var j;k=(k+bI).replace(c,bI);try{var h=new ActiveXObject("htmlfile");h.write("<body>");h.close();j=h.body}catch(d){j=createPopup().document.body}var g=j.createTextRange();try{j.style.color=k;var f=g.queryCommandValue("ForeColor");f=((f&255)<<16)|(f&65280)|((f&16711680)>>>16);return"#"+("000000"+f[bC](16)).slice(-6)}catch(d){return"none"}})}else{var a=bt.createElement("i");a.className="Rapha\xebl Colour Picker";a.style.cssText="display:none";bt.body[bl](a);bA=bQ(function(d){a.style.color=d;return bt.defaultView.getComputedStyle(a,bI).getPropertyValue("color")})}return bA(b)};bL.hsb2rgb=bQ(function(l,n,f){if(bL.is(l,"object")&&"h" in l&&"s" in l&&"b" in l){f=l.b;n=l.s;l=l.h}var a,p,d;if(f==0){return{r:0,g:0,b:0,hex:"#000"}}if(l>1||n>1||f>1){l/=255;n/=255;f/=255}var o=~~(l*6),k=(l*6)-o,b=f*(1-n),q=f*(1-(n*k)),c=f*(1-(n*(1-k)));a=[f,q,b,b,c,f,f][o];p=[c,f,f,q,b,b,c][o];d=[b,b,c,f,f,q,b][o];a*=255;p*=255;d*=255;var j={r:a,g:p,b:d},h=(~~a)[bC](16),m=(~~p)[bC](16),g=(~~d)[bC](16);h=h[b0](bW,"0");m=m[b0](bW,"0");g=g[b0](bW,"0");j.hex="#"+h+m+g;return j},bL);bL.rgb2hsb=bQ(function(d,c,h){if(bL.is(d,"object")&&"r" in d&&"g" in d&&"b" in d){h=d.b;c=d.g;d=d.r}if(bL.is(d,"string")){var f=bL.getRGB(d);d=f.r;c=f.g;h=f.b}if(d>1||c>1||h>1){d/=255;c/=255;h/=255}var j=a0(d,c,h),l=br(d,c,h),a,b,k=j;if(l==j){return{h:0,s:0,b:j}}else{var g=(j-l);b=g/j;if(d==j){a=(c-h)/g}else{if(c==j){a=2+((h-d)/g)}else{a=4+((d-c)/g)}}a/=6;a<0&&a++;a>1&&a--}return{h:a,s:b,b:k}},bL);var bz=/,?([achlmqrstvxz]),?/gi;bL._path2string=function(){return this.join(",")[b0](bz,"$1")};function bQ(b,a,d){function c(){var g=Array[bS].slice.call(arguments,0),h=g[bD]("\u25ba"),j=c.cache=c.cache||{},f=c.count=c.count||[];if(j[bj](h)){return d?d(j[h]):j[h]}f[aV]>=1000&&delete j[f.shift()];f[a1](h);j[h]=b[bU](a,g);return d?d(j[h]):j[h]}return c}bL.getRGB=bQ(function(d){if(!d||!!((d+bI).indexOf("-")+1)){return{r:-1,g:-1,b:-1,hex:"none",error:1}}d=d+bI;if(d=="none"){return{r:-1,g:-1,b:-1,hex:"none"}}!({hs:1,rg:1})[bj](d.substring(0,2))&&(d=bA(d));var j,k,b,f,h=d.match(/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgb\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|rgb\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\)|hs[bl]\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|hs[bl]\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\))\s*$/i);if(h){if(h[2]){f=e(h[2].substring(5),16);b=e(h[2].substring(3,5),16);k=e(h[2].substring(1,3),16)}if(h[3]){f=e(h[3].substring(3)+h[3].substring(3),16);b=e(h[3].substring(2,3)+h[3].substring(2,3),16);k=e(h[3].substring(1,2)+h[3].substring(1,2),16)}if(h[4]){h=h[4][aM](/\s*,\s*/);k=bf(h[0]);b=bf(h[1]);f=bf(h[2])}if(h[5]){h=h[5][aM](/\s*,\s*/);k=bf(h[0])*2.55;b=bf(h[1])*2.55;f=bf(h[2])*2.55}if(h[6]){h=h[6][aM](/\s*,\s*/);k=bf(h[0]);b=bf(h[1]);f=bf(h[2]);return bL.hsb2rgb(k,b,f)}if(h[7]){h=h[7][aM](/\s*,\s*/);k=bf(h[0])*2.55;b=bf(h[1])*2.55;f=bf(h[2])*2.55;return bL.hsb2rgb(k,b,f)}h={r:k,g:b,b:f};var c=(~~k)[bC](16),a=(~~b)[bC](16),g=(~~f)[bC](16);c=c[b0](bW,"0");a=a[b0](bW,"0");g=g[b0](bW,"0");h.hex="#"+c+a+g;return h}return{r:-1,g:-1,b:-1,hex:"none",error:1}},bL);bL.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||0.75},c=this.hsb2rgb(b.h,b.s,b.b);b.h+=0.075;if(b.h>1){b.h=0;b.s-=0.2;b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b})}return c.hex};bL.getColor.reset=function(){delete this.start};bL.parsePathString=bQ(function(c){if(!c){return null}var b={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},a=[];if(bL.is(c,"array")&&bL.is(c[0],"array")){a=bG(c)}if(!a[aV]){(c+bI)[b0](/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,function(f,h,d){var g=[],j=bR.call(h);d[b0](/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,function(k,l){l&&g[a1](+l)});while(g[aV]>=b[j]){a[a1]([h][bX](g.splice(0,b[j])));if(!b[j]){break}}})}a[bC]=bL._path2string;return a});var bh=bQ(function(d){if(!d){return{x:0,y:0,width:0,height:0}}d=by(d);var h=0,j=0,b=[],l=[];for(var a=0,f=d[aV];a<f;a++){if(d[a][0]=="M"){h=d[a][1];j=d[a][2];b[a1](h);l[a1](j)}else{var k=bB(h,j,d[a][1],d[a][2],d[a][3],d[a][4],d[a][5],d[a][6]);b=b[bX](k.min.x,k.max.x);l=l[bX](k.min.y,k.max.y)}}var c=br[bU](0,b),g=br[bU](0,l);return{x:c,y:g,width:a0[bU](0,b)-c,height:a0[bU](0,l)-g}}),bG=function(c){var b=[];if(!bL.is(c,"array")||!bL.is(c&&c[0],"array")){c=bL.parsePathString(c)}for(var f=0,a=c[aV];f<a;f++){b[f]=[];for(var g=0,d=c[f][aV];g<d;g++){b[f][g]=c[f][g]}}b[bC]=bL._path2string;return b},a9=bQ(function(a){if(!bL.is(a,"array")||!bL.is(a&&a[0],"array")){a=bL.parsePathString(a)}var l=[],j=0,k=0,d=0,f=0,c=0;if(a[0][0]=="M"){j=a[0][1];k=a[0][2];d=j;f=k;c++;l[a1](["M",j,k])}for(var o=c,b=a[aV];o<b;o++){var h=l[o]=[],g=a[o];if(g[0]!=bR.call(g[0])){h[0]=bR.call(g[0]);switch(h[0]){case"a":h[1]=g[1];h[2]=g[2];h[3]=g[3];h[4]=g[4];h[5]=g[5];h[6]=+(g[6]-j).toFixed(3);h[7]=+(g[7]-k).toFixed(3);break;case"v":h[1]=+(g[1]-k).toFixed(3);break;case"m":d=g[1];f=g[2];default:for(var p=1,n=g[aV];p<n;p++){h[p]=+(g[p]-((p%2)?j:k)).toFixed(3)}}}else{h=l[o]=[];if(g[0]=="m"){d=g[1]+j;f=g[2]+k}for(var q=0,r=g[aV];q<r;q++){l[o][q]=g[q]}}var m=l[o][aV];switch(l[o][0]){case"z":j=d;k=f;break;case"h":j+=+l[o][m-1];break;case"v":k+=+l[o][m-1];break;default:j+=+l[o][m-2];k+=+l[o][m-1]}}l[bC]=bL._path2string;return l},0,bG),aR=bQ(function(a){if(!bL.is(a,"array")||!bL.is(a&&a[0],"array")){a=bL.parsePathString(a)}var l=[],j=0,k=0,d=0,f=0,b=0;if(a[0][0]=="M"){j=+a[0][1];k=+a[0][2];d=j;f=k;b++;l[0]=["M",j,k]}for(var n=b,c=a[aV];n<c;n++){var h=l[n]=[],g=a[n];if(g[0]!=b1.call(g[0])){h[0]=b1.call(g[0]);switch(h[0]){case"A":h[1]=g[1];h[2]=g[2];h[3]=g[3];h[4]=g[4];h[5]=g[5];h[6]=+(g[6]+j);h[7]=+(g[7]+k);break;case"V":h[1]=+g[1]+k;break;case"H":h[1]=+g[1]+j;break;case"M":d=+g[1]+j;f=+g[2]+k;default:for(var o=1,m=g[aV];o<m;o++){h[o]=+g[o]+((o%2)?j:k)}}}else{for(var p=0,q=g[aV];p<q;p++){l[n][p]=g[p]}}switch(h[0]){case"Z":j=d;k=f;break;case"H":j=h[1];break;case"V":k=h[1];break;default:j=l[n][l[n][aV]-2];k=l[n][l[n][aV]-1]}}l[bC]=bL._path2string;return l},null,bG),bT=function(a,b,d,c){return[a,b,d,c,d,c]},bn=function(c,f,d,b,j,h){var g=1/3,a=2/3;return[g*c+a*d,g*f+a*b,g*j+a*d,g*h+a*b,j,h]},bv=function(h,C,x,z,g,n,s,j,F,f){var a=Math.PI,A=a*120/180,O=a/180*(+g||0),t=[],w,I=bQ(function(ac,Y,ab){var Z=ac*Math.cos(ab)-Y*Math.sin(ab),aa=ac*Math.sin(ab)+Y*Math.cos(ab);return{x:Z,y:aa}});if(!f){w=I(h,C,-O);h=w.x;C=w.y;w=I(j,F,-O);j=w.x;F=w.y;var c=Math.cos(a/180*g),l=Math.sin(a/180*g),W=(h-j)/2,X=(C-F)/2;x=a0(x,Math.abs(W));z=a0(z,Math.abs(X));var b=x*x,T=z*z,P=(n==s?-1:1)*Math.sqrt(Math.abs((b*T-b*X*X-T*W*W)/(b*X*X+T*W*W))),D=P*x*X/z+(h+j)/2,d=P*-z*W/x+(C+F)/2,o=Math.asin((C-d)/z),p=Math.asin((F-d)/z);o=h<D?a-o:o;p=j<D?a-p:p;o<0&&(o=a*2+o);p<0&&(p=a*2+p);if(s&&o>p){o=o-a*2}if(!s&&p>o){p=p-a*2}}else{o=f[0];p=f[1];D=f[2];d=f[3]}var k=p-o;if(Math.abs(k)>A){var B=p,y=j,m=F;p=o+A*(s&&p>o?1:-1);j=D+x*Math.cos(p);F=d+z*Math.sin(p);t=bv(j,F,x,z,g,0,s,y,m,[p,B,D,d])}k=p-o;var q=Math.cos(o),G=Math.sin(o),r=Math.cos(p),H=Math.sin(p),V=Math.tan(k/4),Q=4/3*x*V,U=4/3*z*V,J=[h,C],K=[h+Q*G,C-U*q],L=[j+Q*H,F-U*r],N=[j,F];K[0]=2*J[0]-K[0];K[1]=2*J[1]-K[1];if(f){return[K,L,N][bX](t)}else{t=[K,L,N][bX](t)[bD](",")[aM](",");var v=[];for(var M=0,u=t[aV];M<u;M++){v[M]=M%2?I(t[M-1],t[M],O).y:I(t[M],t[M+1],O).x}return v}},bq=bQ(function(t,u,a,c,r,j,p,q,h){var m=b2(1-h,3)*t+b2(1-h,2)*3*h*a+(1-h)*3*h*h*r+b2(h,3)*p,o=b2(1-h,3)*u+b2(1-h,2)*3*h*c+(1-h)*3*h*h*j+b2(h,3)*q,f=t+2*h*(a-t)+h*h*(r-2*a+t),g=u+2*h*(c-u)+h*h*(j-2*c+u),b=a+2*h*(r-a)+h*h*(p-2*r+a),d=c+2*h*(j-c)+h*h*(q-2*j+c),l=(1-h)*t+h*a,n=(1-h)*u+h*c,k=(1-h)*r+h*p,s=(1-h)*j+h*q;return{x:m,y:o,m:{x:f,y:g},n:{x:b,y:d},start:{x:l,y:n},end:{x:k,y:s}}}),bB=bQ(function(d,k,c,s,b,f,j,n){var g=(b-2*c+d)-(j-2*b+c),l=2*(c-d)-2*(b-c),o=d-c,q=(-l+Math.sqrt(l*l-4*g*o))/2/g,a=(-l-Math.sqrt(l*l-4*g*o))/2/g,m=[k,n],h=[d,j],p=bq(d,k,c,s,b,f,j,n,q>0&&q<1?q:0),r=bq(d,k,c,s,b,f,j,n,a>0&&a<1?a:0);h=h[bX](p.x,r.x);m=m[bX](p.y,r.y);g=(f-2*s+k)-(n-2*f+s);l=2*(s-k)-2*(f-s);o=k-s;q=(-l+Math.sqrt(l*l-4*g*o))/2/g;a=(-l-Math.sqrt(l*l-4*g*o))/2/g;p=bq(d,k,c,s,b,f,j,n,q>0&&q<1?q:0);r=bq(d,k,c,s,b,f,j,n,a>0&&a<1?a:0);h=h[bX](p.x,r.x);m=m[bX](p.y,r.y);return{min:{x:br[bU](0,h),y:br[bU](0,m)},max:{x:a0[bU](0,h),y:a0[bU](0,m)}}}),by=bQ(function(c,k){var a=aR(c),j=k&&aR(k),g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},o=function(u,t){var s,r;if(!u){return["C",t.x,t.y,t.x,t.y,t.x,t.y]}!(u[0] in {T:1,Q:1})&&(t.qx=t.qy=null);switch(u[0]){case"M":t.X=u[1];t.Y=u[2];break;case"A":u=["C"][bX](bv[bU](0,[t.x,t.y][bX](u.slice(1))));break;case"S":s=t.x+(t.x-(t.bx||t.x));r=t.y+(t.y-(t.by||t.y));u=["C",s,r][bX](u.slice(1));break;case"T":t.qx=t.x+(t.x-(t.qx||t.x));t.qy=t.y+(t.y-(t.qy||t.y));u=["C"][bX](bn(t.x,t.y,t.qx,t.qy,u[1],u[2]));break;case"Q":t.qx=u[1];t.qy=u[2];u=["C"][bX](bn(t.x,t.y,u[1],u[2],u[3],u[4]));break;case"L":u=["C"][bX](bT(t.x,t.y,u[1],u[2]));break;case"H":u=["C"][bX](bT(t.x,t.y,u[1],t.y));break;case"V":u=["C"][bX](bT(t.x,t.y,t.x,u[1]));break;case"Z":u=["C"][bX](bT(t.x,t.y,t.X,t.Y));break}return u},q=function(t,s){if(t[s][aV]>7){t[s].shift();var r=t[s];while(r[aV]){t.splice(s++,0,["C"][bX](r.splice(0,6)))}t.splice(s,1);f=a0(a[aV],j&&j[aV]||0)}},b=function(v,r,t,u,s){if(v&&r&&v[s][0]=="M"&&r[s][0]!="M"){r.splice(s,0,["M",u.x,u.y]);t.bx=0;t.by=0;t.x=v[s][1];t.y=v[s][2];f=a0(a[aV],j&&j[aV]||0)}};for(var m=0,f=a0(a[aV],j&&j[aV]||0);m<f;m++){a[m]=o(a[m],g);q(a,m);j&&(j[m]=o(j[m],h));j&&q(j,m);b(a,j,g,h,m);b(j,a,h,g,m);var n=a[m],d=j&&j[m],p=n[aV],l=j&&d[aV];g.x=n[p-2];g.y=n[p-1];g.bx=bf(n[p-4])||g.x;g.by=bf(n[p-3])||g.y;h.bx=j&&(bf(d[l-4])||h.x);h.by=j&&(bf(d[l-3])||h.y);h.x=j&&d[l-2];h.y=j&&d[l-1]}return j?[a,j]:a},null,bG),aT=bQ(function(f){var g=[];for(var k=0,d=f[aV];k<d;k++){var c={},h=f[k].match(/^([^:]*):?([\d\.]*)/);c.color=bL.getRGB(h[1]);if(c.color.error){return null}c.color=c.color.hex;h[2]&&(c.offset=h[2]+"%");g[a1](c)}for(var k=1,d=g[aV]-1;k<d;k++){if(!g[k].offset){var l=bf(g[k-1].offset||0),b=0;for(var a=k+1;a<d;a++){if(g[a].offset){b=g[a].offset;break}}if(!b){b=100;a=d}b=bf(b);var j=(b-l)/(a-k+1);for(;k<a;k++){l+=j;g[k].offset=l+"%"}}}return g}),bK=function(){var d,b,a,c,f;if(bL.is(arguments[0],"string")||bL.is(arguments[0],"object")){if(bL.is(arguments[0],"string")){d=bt.getElementById(arguments[0])}else{d=arguments[0]}if(d.tagName){if(arguments[1]==null){return{container:d,width:d.style.pixelWidth||d.offsetWidth,height:d.style.pixelHeight||d.offsetHeight}}else{return{container:d,width:arguments[1],height:arguments[2]}}}}else{if(bL.is(arguments[0],bN)&&arguments[aV]>3){return{container:1,x:arguments[0],y:arguments[1],width:arguments[2],height:arguments[3]}}}},bu=function(d,c){var a=this;for(var b in c){if(c[bj](b)&&!(b in d)){switch(typeof c[b]){case"function":(function(f){d[b]=d===a?f:function(){return f[bU](a,arguments)}})(c[b]);break;case"object":d[b]=d[b]||{};bu.call(this,d[b],c[b]);break;default:d[b]=c[b];break}}}},bO=function(b,a){b==a.top&&(a.top=b.prev);b==a.bottom&&(a.bottom=b.next);b.next&&(b.next.prev=b.prev);b.prev&&(b.prev.next=b.next)},bd=function(b,a){if(a.top===b){return}bO(b,a);b.next=null;b.prev=a.top;a.top.next=b;a.top=b},aX=function(b,a){if(a.bottom===b){return}bO(b,a);b.next=a.bottom;b.prev=null;a.bottom.prev=b;a.bottom=b},S=function(a,c,b){bO(a,b);c==b.top&&(b.top=a);c.next&&(c.next.prev=a);a.next=c.next;a.prev=c;c.next=a},bJ=function(a,c,b){bO(a,b);c==b.bottom&&(b.bottom=a);c.prev&&(c.prev.next=a);a.prev=c.prev;c.prev=a;a.next=c};if(bL.svg){bZ.svgns="http://www.w3.org/2000/svg";bZ.xlink="http://www.w3.org/1999/xlink";var bm=function(a){return +a+(~~a===a)*0.5},bg=function(c){for(var d=0,b=c[aV];d<b;d++){if(bR.call(c[d][0])!="a"){for(var f=1,a=c[d][aV];f<a;f++){c[d][f]=bm(c[d][f])}}else{c[d][6]=bm(c[d][6]);c[d][7]=bm(c[d][7])}}return c},bp=function(b,c){if(c){for(var a in c){if(c[bj](a)){b[aP](a,c[a])}}}else{return bt.createElementNS(bZ.svgns,b)}};bL[bC]=function(){return"Your browser supports SVG.\nYou are running Rapha\xebl "+this.version};var aS=function(d,b){var a=bp("path");b.canvas&&b.canvas[bl](a);var c=new bE(a,b);c.type="path";bb(c,{fill:"none",stroke:"#000",path:d});return c};var a3=function(b,f,h){var k="linear",n=0.5,p=0.5,c=b.style;f=(f+bI)[b0](/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,function(t,r,s){k="radial";if(r&&s){n=bf(r);p=bf(s);if(b2(n-0.5,2)+b2(p-0.5,2)>0.25){p=Math.sqrt(0.25-b2(n-0.5,2))+0.5}}return bI});f=f[aM](/\s*\-\s*/);if(k=="linear"){var o=f.shift();o=-bf(o);if(isNaN(o)){return null}var a=[0,0,Math.cos(o*Math.PI/180),Math.sin(o*Math.PI/180)],g=1/(a0(Math.abs(a[2]),Math.abs(a[3]))||1);a[2]*=g;a[3]*=g;if(a[2]<0){a[0]=-a[2];a[2]=0}if(a[3]<0){a[1]=-a[3];a[3]=0}}var l=aT(f);if(!l){return null}var q=bp(k+"Gradient");q.id="r"+(bL._id++)[bC](36);k=="radial"?bp(q,{fx:n,fy:p}):bp(q,{x1:a[0],y1:a[1],x2:a[2],y2:a[3]});h.defs[bl](q);for(var m=0,d=l[aV];m<d;m++){var j=bp("stop");bp(j,{offset:l[m].offset?l[m].offset:!m?"0%":"100%","stop-color":l[m].color||"#fff"});q[bl](j)}bp(b,{fill:"url(#"+q.id+")",opacity:1,"fill-opacity":1});c.fill=bI;c.opacity=1;c.fillOpacity=1;return 1};var bo=function(a){var b=a.getBBox();bp(a.pattern,{patternTransform:bL.format("translate({0},{1})",b.x,b.y)})};var bb=function(j,w){var d={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},b=j.node,g=j.attrs,n=j.rotate(),r=function(z,A){A=d[bR.call(A)];if(A){var C=z.attrs["stroke-width"]||"1",F={round:C,square:C,butt:0}[z.attrs["stroke-linecap"]||w["stroke-linecap"]]||0,B=[];var D=A[aV];while(D--){B[D]=A[D]*C+((D%2)?1:-1)*F}bp(b,{"stroke-dasharray":B[bD](",")})}};w[bj]("rotation")&&(n=w.rotation);var o=(n+bI)[aM](a4);if(!(o.length-1)){o=null}else{o[1]=+o[1];o[2]=+o[2]}bf(n)&&j.rotate(0,true);for(var c in w){if(w[bj](c)){if(!aY[bj](c)){continue}var f=w[c];g[c]=f;switch(c){case"rotation":j.rotate(f,true);break;case"href":case"title":case"target":var y=b.parentNode;if(bR.call(y.tagName)!="a"){var l=bp("a");y.insertBefore(l,b);l[bl](b);y=l}y.setAttributeNS(j.paper.xlink,c,f);break;case"cursor":b.style.cursor=f;break;case"clip-rect":var t=(f+bI)[aM](a4);if(t[aV]==4){j.clip&&j.clip.parentNode.parentNode.removeChild(j.clip.parentNode);var s=bp("clipPath"),a=bp("rect");s.id="r"+(bL._id++)[bC](36);bp(a,{x:t[0],y:t[1],width:t[2],height:t[3]});s[bl](a);j.paper.defs[bl](s);bp(b,{"clip-path":"url(#"+s.id+")"});j.clip=a}if(!f){var x=bt.getElementById(b.getAttribute("clip-path")[b0](/(^url\(#|\)$)/g,bI));x&&x.parentNode.removeChild(x);bp(b,{"clip-path":bI});delete j.clip}break;case"path":if(f&&j.type=="path"){g.path=bg(aR(f));bp(b,{d:g.path})}break;case"width":b[aP](c,f);if(g.fx){c="x";f=g.x}else{break}case"x":if(g.fx){f=-g.x-(g.width||0)}case"rx":if(c=="rx"&&j.type=="rect"){break}case"cx":o&&(c=="x"||c=="cx")&&(o[1]+=f-g[c]);b[aP](c,bm(f));j.pattern&&bo(j);break;case"height":b[aP](c,f);if(g.fy){c="y";f=g.y}else{break}case"y":if(g.fy){f=-g.y-(g.height||0)}case"ry":if(c=="ry"&&j.type=="rect"){break}case"cy":o&&(c=="y"||c=="cy")&&(o[2]+=f-g[c]);b[aP](c,bm(f));j.pattern&&bo(j);break;case"r":if(j.type=="rect"){bp(b,{rx:f,ry:f})}else{b[aP](c,f)}break;case"src":if(j.type=="image"){b.setAttributeNS(j.paper.xlink,"href",f)}break;case"stroke-width":b.style.strokeWidth=f;b[aP](c,f);if(g["stroke-dasharray"]){r(j,g["stroke-dasharray"])}break;case"stroke-dasharray":r(j,f);break;case"translation":var q=(f+bI)[aM](a4);if(o){o[1]+=+q[0];o[2]+=+q[1]}aQ.call(j,(+q[0]+1||2)-1,(+q[1]+1||2)-1);break;case"scale":var q=(f+bI)[aM](a4);j.scale(+q[0]||1,+q[1]||+q[0]||1,+q[2]||null,+q[3]||null);break;case"fill":var h=(f+bI).match(a2);if(h){var s=bp("pattern"),k=bp("image");s.id="r"+(bL._id++)[bC](36);bp(s,{x:0,y:0,patternUnits:"userSpaceOnUse"});bp(k,{x:0,y:0});k.setAttributeNS(j.paper.xlink,"href",h[1]);s[bl](k);var v=bt.createElement("img");v.style.cssText="position:absolute;left:-9999em;top-9999em";v.onload=function(){bp(s,{width:this.offsetWidth,height:this.offsetHeight});bp(k,{width:this.offsetWidth,height:this.offsetHeight});bt.body.removeChild(this);bZ.safari()};bt.body[bl](v);v.src=h[1];j.paper.defs[bl](s);b.style.fill="url(#"+s.id+")";bp(b,{fill:"url(#"+s.id+")"});j.pattern=s;j.pattern&&bo(j);break}if(!bL.getRGB(f).error){delete w.gradient;delete g.gradient;!bL.is(g.opacity,"undefined")&&bL.is(w.opacity,"undefined")&&bp(b,{opacity:g.opacity});!bL.is(g["fill-opacity"],"undefined")&&bL.is(w["fill-opacity"],"undefined")&&bp(b,{"fill-opacity":g["fill-opacity"]})}else{if((({circle:1,ellipse:1})[bj](j.type)||(f+bI).charAt()!="r")&&a3(b,f,j.paper)){g.gradient=f;g.fill="none";break}}case"stroke":b[aP](c,bL.getRGB(f).hex);break;case"gradient":(({circle:1,ellipse:1})[bj](j.type)||(f+bI).charAt()!="r")&&a3(b,f,j.paper);break;case"opacity":case"fill-opacity":if(g.gradient){var u=bt.getElementById(b.getAttribute("fill")[b0](/^url\(#|\)$/g,bI));if(u){var p=u.getElementsByTagName("stop");p[p[aV]-1][aP]("stop-opacity",f)}break}default:c=="font-size"&&(f=e(f,10)+"px");var m=c[b0](/(\-.)/g,function(z){return b1.call(z.substring(1))});b.style[m]=f;b[aP](c,f);break}}}E(j,w);if(o){j.rotate(o.join(bM))}else{bf(n)&&j.rotate(n,true)}};var aZ=1.2;var E=function(c,a){if(c.type!="text"||!(a[bj]("text")||a[bj]("font")||a[bj]("font-size")||a[bj]("x")||a[bj]("y"))){return}var g=c.attrs,m=c.node,d=m.firstChild?e(bt.defaultView.getComputedStyle(m.firstChild,bI).getPropertyValue("font-size"),10):10;if(a[bj]("text")){g.text=a.text;while(m.firstChild){m.removeChild(m.firstChild)}var b=(a.text+bI)[aM]("\n");for(var l=0,f=b[aV];l<f;l++){if(b[l]){var j=bp("tspan");l&&bp(j,{dy:d*aZ,x:g.x});j[bl](bt.createTextNode(b[l]));m[bl](j)}}}else{var b=m.getElementsByTagName("tspan");for(var l=0,f=b[aV];l<f;l++){l&&bp(b[l],{dy:d*aZ,x:g.x})}}bp(m,{y:g.y});var k=c.getBBox(),h=g.y-(k.y+k.height/2);h&&isFinite(h)&&bp(m,{y:g.y+h})};var bE=function(a,d){var b=0,c=0;this[0]=a;this.id=bL._oid++;this.node=a;a.raphael=this;this.paper=d;this.attrs=this.attrs||{};this.transformations=[];this._={tx:0,ty:0,rt:{deg:0,cx:0,cy:0},sx:1,sy:1};!d.bottom&&(d.bottom=this);this.prev=d.top;d.top&&(d.top.next=this);d.top=this;this.next=null};bE[bS].rotate=function(a,d,b){if(this.removed){return this}if(a==null){if(this._.rt.cx){return[this._.rt.deg,this._.rt.cx,this._.rt.cy][bD](bM)}return this._.rt.deg}var c=this.getBBox();a=(a+bI)[aM](a4);if(a[aV]-1){d=bf(a[1]);b=bf(a[2])}a=bf(a[0]);if(d!=null){this._.rt.deg=a}else{this._.rt.deg+=a}(b==null)&&(d=null);this._.rt.cx=d;this._.rt.cy=b;d=d==null?c.x+c.width/2:d;b=b==null?c.y+c.height/2:b;if(this._.rt.deg){this.transformations[0]=bL.format("rotate({0} {1} {2})",this._.rt.deg,d,b);this.clip&&bp(this.clip,{transform:bL.format("rotate({0} {1} {2})",-this._.rt.deg,d,b)})}else{this.transformations[0]=bI;this.clip&&bp(this.clip,{transform:bI})}bp(this.node,{transform:this.transformations[bD](bM)});return this};bE[bS].hide=function(){!this.removed&&(this.node.style.display="none");return this};bE[bS].show=function(){!this.removed&&(this.node.style.display="");return this};bE[bS].remove=function(){if(this.removed){return}bO(this,this.paper);this.node.parentNode.removeChild(this.node);for(var a in this){delete this[a]}this.removed=true};bE[bS].getBBox=function(){if(this.removed){return this}if(this.type=="path"){return bh(this.attrs.path)}if(this.node.style.display=="none"){this.show();var d=true}var b={};try{b=this.node.getBBox()}catch(f){}finally{b=b||{}}if(this.type=="text"){b={x:b.x,y:Infinity,width:0,height:0};for(var g=0,a=this.node.getNumberOfChars();g<a;g++){var c=this.node.getExtentOfChar(g);(c.y<b.y)&&(b.y=c.y);(c.y+c.height-b.y>b.height)&&(b.height=c.y+c.height-b.y);(c.x+c.width-b.x>b.width)&&(b.width=c.x+c.width-b.x)}}d&&this.hide();return b};bE[bS].attr=function(){if(this.removed){return this}if(arguments[aV]==0){var a={};for(var b in this.attrs){if(this.attrs[bj](b)){a[b]=this.attrs[b]}}return a}if(arguments[aV]==1&&bL.is(arguments[0],"string")){if(arguments[0]=="translation"){return aQ.call(this)}if(arguments[0]=="rotation"){return this.rotate()}if(arguments[0]=="scale"){return this.scale()}return this.attrs[arguments[0]]}if(arguments[aV]==1&&bL.is(arguments[0],"array")){var f={};for(var d in arguments[0]){if(arguments[0][bj](d)){f[arguments[0][d]]=this.attrs[arguments[0][d]]}}return f}if(arguments[aV]==2){var c={};c[arguments[0]]=arguments[1];bb(this,c)}else{if(arguments[aV]==1&&bL.is(arguments[0],"object")){bb(this,arguments[0])}}return this};bE[bS].toFront=function(){if(this.removed){return this}this.node.parentNode[bl](this.node);var a=this.paper;a.top!=this&&bd(this,a);return this};bE[bS].toBack=function(){if(this.removed){return this}if(this.node.parentNode.firstChild!=this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);aX(this,this.paper);var a=this.paper}return this};bE[bS].insertAfter=function(a){if(this.removed){return this}var c=this.paper,b=a.node;if(b.nextSibling){b.parentNode.insertBefore(this.node,b.nextSibling)}else{b.parentNode[bl](this.node)}S(this,a,this.paper);return this};bE[bS].insertBefore=function(b){if(this.removed){return this}var a=b.node;a.parentNode.insertBefore(this.node,a);bJ(this,b,this.paper);return this};var bk=function(b,g,d,a){g=bm(g);d=bm(d);var c=bp("circle");b.canvas&&b.canvas[bl](c);var f=new bE(c,b);f.attrs={cx:g,cy:d,r:a,fill:"none",stroke:"#000"};f.type="circle";bp(c,f.attrs);return f};var bw=function(h,j,c,b,g,f){j=bm(j);c=bm(c);var a=bp("rect");h.canvas&&h.canvas[bl](a);var d=new bE(a,h);d.attrs={x:j,y:c,width:b,height:g,r:f||0,rx:f||0,ry:f||0,fill:"none",stroke:"#000"};d.type="rect";bp(a,d.attrs);return d};var a5=function(b,h,d,f,a){h=bm(h);d=bm(d);var c=bp("ellipse");b.canvas&&b.canvas[bl](c);var g=new bE(c,b);g.attrs={cx:h,cy:d,rx:f,ry:a,fill:"none",stroke:"#000"};g.type="ellipse";bp(c,g.attrs);return g};var aU=function(h,f,j,c,b,g){var a=bp("image");bp(a,{x:j,y:c,width:b,height:g,preserveAspectRatio:"none"});a.setAttributeNS(h.xlink,"href",f);h.canvas&&h.canvas[bl](a);var d=new bE(a,h);d.attrs={x:j,y:c,width:b,height:g,src:f};d.type="image";return d};var be=function(b,g,d,a){var c=bp("text");bp(c,{x:g,y:d,"text-anchor":"middle"});b.canvas&&b.canvas[bl](c);var f=new bE(c,b);f.attrs={x:g,y:d,"text-anchor":"middle",text:a,font:aY.font,stroke:"none",fill:"#000"};f.type="text";bb(f,f.attrs);return f};var bV=function(a,b){this.width=a||this.width;this.height=b||this.height;this.canvas[aP]("width",this.width);this.canvas[aP]("height",this.height);return this};var aO=function(){var f=bK[bU](null,arguments),h=f&&f.container,c=f.x,b=f.y,a=f.width,j=f.height;if(!h){throw new Error("SVG container not found.")}bZ.canvas=bp("svg");var d=bZ.canvas;bZ.width=a||512;bZ.height=j||342;d[aP]("width",bZ.width);d[aP]("height",bZ.height);if(h==1){d.style.cssText="position:absolute;left:"+c+"px;top:"+b+"px";bt.body[bl](d)}else{if(h.firstChild){h.insertBefore(d,h.firstChild)}else{h[bl](d)}}h={canvas:d};for(var g in bZ){if(bZ[bj](g)){h[g]=bZ[g]}}h.bottom=h.top=null;bu.call(h,h,bL.fn);h.clear();h.raphael=bL;return h};bZ.clear=function(){var a=this.canvas;while(a.firstChild){a.removeChild(a.firstChild)}this.bottom=this.top=null;(this.desc=bp("desc"))[bl](bt.createTextNode("Created with Rapha\xebl"));a[bl](this.desc);a[bl](this.defs=bp("defs"))};bZ.remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var a in this){delete this[a]}}}if(bL.vml){var bs=function(c){var h=/[ahqtv]/ig,n=aR;(c+bI).match(h)&&(n=by);h=/[clmz]/g;if(n==aR&&!(c+bI).match(h)){var p={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},a=/([clmz]),?([^clmz]*)/gi,o=/-?[^,\s-]+/g;var j=(c+bI)[b0](a,function(t,r,q){var s=[];q[b0](o,function(u){s[a1](bm(u))});return p[r]+s});return j}var g=n(c),b,j=[],f;for(var l=0,d=g[aV];l<d;l++){b=g[l];f=bR.call(g[l][0]);f=="z"&&(f="x");for(var m=1,k=b[aV];m<k;m++){f+=bm(b[m])+(m!=k-1?",":bI)}j[a1](f)}return j[bD](bM)};bL[bC]=function(){return"Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl "+this.version};var aS=function(g,d){var c=a6("group");c.style.cssText="position:absolute;left:0;top:0;width:"+d.width+"px;height:"+d.height+"px";c.coordsize=d.coordsize;c.coordorigin=d.coordorigin;var f=a6("shape"),b=f.style;b.width=d.width+"px";b.height=d.height+"px";f.coordsize=this.coordsize;f.coordorigin=this.coordorigin;c[bl](f);var a=new bE(f,c,d);a.isAbsolute=true;a.type="path";a.path=[];a.Path=bI;g&&bb(a,{fill:"none",stroke:"#000",path:g});d.canvas[bl](c);return a};var bb=function(n,f){n.attrs=n.attrs||{};var h=n.node,d=n.attrs,q=h.style,l,v=n;for(var p in f){if(f[bj](p)){d[p]=f[p]}}f.href&&(h.href=f.href);f.title&&(h.title=f.title);f.target&&(h.target=f.target);f.cursor&&(q.cursor=f.cursor);if(f.path&&n.type=="path"){d.path=f.path;h.path=bs(d.path)}if(f.rotation!=null){n.rotate(f.rotation,true)}if(f.translation){l=(f.translation+bI)[aM](a4);aQ.call(n,l[0],l[1]);if(n._.rt.cx!=null){n._.rt.cx+=+l[0];n._.rt.cy+=+l[1];n.setBox(n.attrs,l[0],l[1])}}if(f.scale){l=(f.scale+bI)[aM](a4);n.scale(+l[0]||1,+l[1]||+l[0]||1,+l[2]||null,+l[3]||null)}if("clip-rect" in f){var u=(f["clip-rect"]+bI)[aM](a4);if(u[aV]==4){u[2]=+u[2]+(+u[0]);u[3]=+u[3]+(+u[1]);var o=h.clipRect||bt.createElement("div"),a=o.style,r=h.parentNode;a.clip=bL.format("rect({1}px {2}px {3}px {0}px)",u);if(!h.clipRect){a.position="absolute";a.top=0;a.left=0;a.width=n.paper.width+"px";a.height=n.paper.height+"px";r.parentNode.insertBefore(o,r);o[bl](r);h.clipRect=o}}if(!f["clip-rect"]){h.clipRect&&(h.clipRect.style.clip=bI)}}if(n.type=="image"&&f.src){h.src=f.src}if(n.type=="image"&&f.opacity){h.filterOpacity=" progid:DXImageTransform.Microsoft.Alpha(opacity="+(f.opacity*100)+")";q.filter=(h.filterMatrix||bI)+(h.filterOpacity||bI)}f.font&&(q.font=f.font);f["font-family"]&&(q.fontFamily='"'+f["font-family"][aM](",")[0][b0](/^['"]+|['"]+$/g,bI)+'"');f["font-size"]&&(q.fontSize=f["font-size"]);f["font-weight"]&&(q.fontWeight=f["font-weight"]);f["font-style"]&&(q.fontStyle=f["font-style"]);if(f.opacity!=null||f["stroke-width"]!=null||f.fill!=null||f.stroke!=null||f["stroke-width"]!=null||f["stroke-opacity"]!=null||f["fill-opacity"]!=null||f["stroke-dasharray"]!=null||f["stroke-miterlimit"]!=null||f["stroke-linejoin"]!=null||f["stroke-linecap"]!=null){h=n.shape||h;var g=(h.getElementsByTagName("fill")&&h.getElementsByTagName("fill")[0]),c=false;!g&&(c=g=a6("fill"));if("fill-opacity" in f||"opacity" in f){var t=((+d["fill-opacity"]+1||2)-1)*((+d.opacity+1||2)-1);t<0&&(t=0);t>1&&(t=1);g.opacity=t}f.fill&&(g.on=true);if(g.on==null||f.fill=="none"){g.on=false}if(g.on&&f.fill){var s=f.fill.match(a2);if(s){g.src=s[1];g.type="tile"}else{g.color=bL.getRGB(f.fill).hex;g.src=bI;g.type="solid";if(bL.getRGB(f.fill).error&&(v.type in {circle:1,ellipse:1}||(f.fill+bI).charAt()!="r")&&a3(v,f.fill)){d.fill="none";d.gradient=f.fill}}}c&&h[bl](g);var j=(h.getElementsByTagName("stroke")&&h.getElementsByTagName("stroke")[0]),b=false;!j&&(b=j=a6("stroke"));if((f.stroke&&f.stroke!="none")||f["stroke-width"]||f["stroke-opacity"]!=null||f["stroke-dasharray"]||f["stroke-miterlimit"]||f["stroke-linejoin"]||f["stroke-linecap"]){j.on=true}(f.stroke=="none"||j.on==null||f.stroke==0||f["stroke-width"]==0)&&(j.on=false);j.on&&f.stroke&&(j.color=bL.getRGB(f.stroke).hex);var t=((+d["stroke-opacity"]+1||2)-1)*((+d.opacity+1||2)-1),m=(bf(f["stroke-width"])||1)*0.75;t<0&&(t=0);t>1&&(t=1);f["stroke-width"]==null&&(m=d["stroke-width"]);f["stroke-width"]&&(j.weight=m);m&&m<1&&(t*=m)&&(j.weight=1);j.opacity=t;f["stroke-linejoin"]&&(j.joinstyle=f["stroke-linejoin"]||"miter");j.miterlimit=f["stroke-miterlimit"]||8;f["stroke-linecap"]&&(j.endcap=f["stroke-linecap"]=="butt"?"flat":f["stroke-linecap"]=="square"?"square":"round");if(f["stroke-dasharray"]){var k={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};j.dashstyle=k[bj](f["stroke-dasharray"])?k[f["stroke-dasharray"]]:bI}b&&h[bl](j)}if(v.type=="text"){var q=v.paper.span.style;d.font&&(q.font=d.font);d["font-family"]&&(q.fontFamily=d["font-family"]);d["font-size"]&&(q.fontSize=d["font-size"]);d["font-weight"]&&(q.fontWeight=d["font-weight"]);d["font-style"]&&(q.fontStyle=d["font-style"]);v.node.string&&(v.paper.span.innerHTML=(v.node.string+bI)[b0](/</g,"&#60;")[b0](/&/g,"&#38;")[b0](/\n/g,"<br>"));v.W=d.w=v.paper.span.offsetWidth;v.H=d.h=v.paper.span.offsetHeight;v.X=d.x;v.Y=d.y+bm(v.H/2);switch(d["text-anchor"]){case"start":v.node.style["v-text-align"]="left";v.bbx=bm(v.W/2);break;case"end":v.node.style["v-text-align"]="right";v.bbx=-bm(v.W/2);break;default:v.node.style["v-text-align"]="center";break}}};var a3=function(c,j){c.attrs=c.attrs||{};var h=c.attrs,f=c.node.getElementsByTagName("fill"),l="linear",k=".5 .5";c.attrs.gradient=j;j=(j+bI)[b0](/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,function(p,o,n){l="radial";if(o&&n){o=bf(o);n=bf(n);if(b2(o-0.5,2)+b2(n-0.5,2)>0.25){n=Math.sqrt(0.25-b2(o-0.5,2))+0.5}k=o+bM+n}return bI});j=j[aM](/\s*\-\s*/);if(l=="linear"){var m=j.shift();m=-bf(m);if(isNaN(m)){return null}}var a=aT(j);if(!a){return null}c=c.shape||c.node;f=f[0]||a6("fill");if(a[aV]){f.on=true;f.method="none";f.type=(l=="radial")?"gradientradial":"gradient";f.color=a[0].color;f.color2=a[a[aV]-1].color;var d=[];for(var b=0,g=a[aV];b<g;b++){a[b].offset&&d[a1](a[b].offset+bM+a[b].color)}f.colors.value=d[aV]?d[bD](","):"0% "+f.color;if(l=="radial"){f.focus="100%";f.focussize=k;f.focusposition=k}else{f.angle=(270-m)%360}}return 1};var bE=function(b,d,h){var f=0,g=0,a=0,c=1;this[0]=b;this.id=bL._oid++;this.node=b;b.raphael=this;this.X=0;this.Y=0;this.attrs={};this.Group=d;this.paper=h;this._={tx:0,ty:0,rt:{deg:0},sx:1,sy:1};!h.bottom&&(h.bottom=this);this.prev=h.top;h.top&&(h.top.next=this);h.top=this;this.next=null};bE[bS].rotate=function(a,c,b){if(this.removed){return this}if(a==null){if(this._.rt.cx){return[this._.rt.deg,this._.rt.cx,this._.rt.cy][bD](bM)}return this._.rt.deg}a=(a+bI)[aM](a4);if(a[aV]-1){c=bf(a[1]);b=bf(a[2])}a=bf(a[0]);if(c!=null){this._.rt.deg=a}else{this._.rt.deg+=a}b==null&&(c=null);this._.rt.cx=c;this._.rt.cy=b;this.setBox(this.attrs,c,b);this.Group.style.rotation=this._.rt.deg;return this};bE[bS].setBox=function(q,p,a){if(this.removed){return this}var r=this.Group.style,o=(this.shape&&this.shape.style)||this.node.style;q=q||{};for(var n in q){if(q[bj](n)){this.attrs[n]=q[n]}}p=p||this._.rt.cx;a=a||this._.rt.cy;var k=this.attrs,f,g,d,l;switch(this.type){case"circle":f=k.cx-k.r;g=k.cy-k.r;d=l=k.r*2;break;case"ellipse":f=k.cx-k.rx;g=k.cy-k.ry;d=k.rx*2;l=k.ry*2;break;case"rect":case"image":f=+k.x;g=+k.y;d=k.width||0;l=k.height||0;break;case"text":this.textpath.v=["m",bm(k.x),", ",bm(k.y-2),"l",bm(k.x)+1,", ",bm(k.y-2)][bD](bI);f=k.x-bm(this.W/2);g=k.y-this.H/2;d=this.W;l=this.H;break;case"path":if(!this.attrs.path){f=0;g=0;d=this.paper.width;l=this.paper.height}else{var m=bh(this.attrs.path);f=m.x;g=m.y;d=m.width;l=m.height}break;default:f=0;g=0;d=this.paper.width;l=this.paper.height;break}p=(p==null)?f+d/2:p;a=(a==null)?g+l/2:a;var c=p-this.paper.width/2,j=a-this.paper.height/2;if(this.type=="path"||this.type=="text"){(r.left!=c+"px")&&(r.left=c+"px");(r.top!=j+"px")&&(r.top=j+"px");this.X=this.type=="text"?f:-c;this.Y=this.type=="text"?g:-j;this.W=d;this.H=l;(o.left!=-c+"px")&&(o.left=-c+"px");(o.top!=-j+"px")&&(o.top=-j+"px")}else{(r.left!=c+"px")&&(r.left=c+"px");(r.top!=j+"px")&&(r.top=j+"px");this.X=f;this.Y=g;this.W=d;this.H=l;(r.width!=this.paper.width+"px")&&(r.width=this.paper.width+"px");(r.height!=this.paper.height+"px")&&(r.height=this.paper.height+"px");(o.left!=f-c+"px")&&(o.left=f-c+"px");(o.top!=g-j+"px")&&(o.top=g-j+"px");(o.width!=d+"px")&&(o.width=d+"px");(o.height!=l+"px")&&(o.height=l+"px");var b=(+q.r||0)/(br(d,l));if(this.type=="rect"&&this.arcsize!=b&&(b||this.arcsize)){var h=a6(b?"roundrect":"rect");h.arcsize=b;this.Group[bl](h);this.node.parentNode.removeChild(this.node);this.node=h;this.arcsize=b;this.attr(this.attrs)}}};bE[bS].hide=function(){!this.removed&&(this.Group.style.display="none");return this};bE[bS].show=function(){!this.removed&&(this.Group.style.display="block");return this};bE[bS].getBBox=function(){if(this.removed){return this}if(this.type=="path"){return bh(this.attrs.path)}return{x:this.X+(this.bbx||0),y:this.Y,width:this.W,height:this.H}};bE[bS].remove=function(){if(this.removed){return}bO(this,this.paper);this.node.parentNode.removeChild(this[0]);this.Group.parentNode.removeChild(this.Group);this.shape&&this.shape.parentNode.removeChild(this.shape);for(var a in this){delete this[a]}this.removed=true};bE[bS].attr=function(){if(this.removed){return this}if(arguments[aV]==0){var b={};for(var d in this.attrs){if(this.attrs[bj](d)){b[d]=this.attrs[d]}}return b}if(arguments[aV]==1&&bL.is(arguments[0],"string")){if(arguments[0]=="translation"){return aQ.call(this)}if(arguments[0]=="rotation"){return this.rotate()}if(arguments[0]=="scale"){return this.scale()}return this.attrs[arguments[0]]}if(this.attrs&&arguments[aV]==1&&bL.is(arguments[0],"array")){var f={};for(var d=0,a=arguments[0][aV];d<a;d++){f[arguments[0][d]]=this.attrs[arguments[0][d]]}return f}var c;if(arguments[aV]==2){c={};c[arguments[0]]=arguments[1]}arguments[aV]==1&&bL.is(arguments[0],"object")&&(c=arguments[0]);if(c){if(c.text&&this.type=="text"){this.node.string=c.text}bb(this,c);if(c.gradient&&(({circle:1,ellipse:1})[bj](this.type)||(c.gradient+bI).charAt()!="r")){a3(this,c.gradient)}(this.type!="path"||this._.rt.deg)&&this.setBox(this.attrs)}return this};bE[bS].toFront=function(){!this.removed&&this.Group.parentNode[bl](this.Group);this.paper.top!=this&&bd(this,this.paper);return this};bE[bS].toBack=function(){if(this.removed){return this}if(this.Group.parentNode.firstChild!=this.Group){this.Group.parentNode.insertBefore(this.Group,this.Group.parentNode.firstChild);aX(this,this.paper)}return this};bE[bS].insertAfter=function(a){if(this.removed){return this}if(a.Group.nextSibling){a.Group.parentNode.insertBefore(this.Group,a.Group.nextSibling)}else{a.Group.parentNode[bl](this.Group)}S(this,a,this.paper);return this};bE[bS].insertBefore=function(a){if(this.removed){return this}a.Group.parentNode.insertBefore(this.Group,a.Group);bJ(this,a,this.paper);return this};var bk=function(c,j,b,g){var a=a6("group"),f=a6("oval"),h=f.style;a.style.cssText="position:absolute;left:0;top:0;width:"+c.width+"px;height:"+c.height+"px";a.coordsize=c.coordsize;a.coordorigin=c.coordorigin;a[bl](f);var d=new bE(f,a,c);d.type="circle";bb(d,{stroke:"#000",fill:"none"});d.attrs.cx=j;d.attrs.cy=b;d.attrs.r=g;d.setBox({x:j-g,y:b-g,width:g*2,height:g*2});c.canvas[bl](a);return d};var bw=function(c,h,j,g,b,d){var a=a6("group"),l=a6(d?"roundrect":"rect"),f=(+d||0)/(br(g,b));l.arcsize=f;a.style.cssText="position:absolute;left:0;top:0;width:"+c.width+"px;height:"+c.height+"px";a.coordsize=c.coordsize;a.coordorigin=c.coordorigin;a[bl](l);var k=new bE(l,a,c);k.type="rect";bb(k,{stroke:"#000"});k.arcsize=f;k.setBox({x:h,y:j,width:g,height:b,r:+d});c.canvas[bl](a);return k};var a5=function(d,f,g,k,c){var a=a6("group"),b=a6("oval"),h=b.style;a.style.cssText="position:absolute;left:0;top:0;width:"+d.width+"px;height:"+d.height+"px";a.coordsize=d.coordsize;a.coordorigin=d.coordorigin;a[bl](b);var j=new bE(b,a,d);j.type="ellipse";bb(j,{stroke:"#000"});j.attrs.cx=f;j.attrs.cy=g;j.attrs.rx=k;j.attrs.ry=c;j.setBox({x:f-k,y:g-c,width:k*2,height:c*2});d.canvas[bl](a);return j};var aU=function(c,d,g,h,f,b){var a=a6("group"),l=a6("image"),j=l.style;a.style.cssText="position:absolute;left:0;top:0;width:"+c.width+"px;height:"+c.height+"px";a.coordsize=c.coordsize;a.coordorigin=c.coordorigin;l.src=d;a[bl](l);var k=new bE(l,a,c);k.type="image";k.attrs.src=d;k.attrs.x=g;k.attrs.y=h;k.attrs.w=f;k.attrs.h=b;k.setBox({x:g,y:h,width:f,height:b});c.canvas[bl](a);return k};var be=function(c,h,j,g){var a=a6("group"),b=a6("shape"),k=b.style,f=a6("path"),d=f.style,m=a6("textpath");a.style.cssText="position:absolute;left:0;top:0;width:"+c.width+"px;height:"+c.height+"px";a.coordsize=c.coordsize;a.coordorigin=c.coordorigin;f.v=bL.format("m{0},{1}l{2},{1}",bm(h),bm(j),bm(h)+1);f.textpathok=true;k.width=c.width;k.height=c.height;m.string=g+bI;m.on=true;b[bl](m);b[bl](f);a[bl](b);var l=new bE(m,a,c);l.shape=b;l.textpath=f;l.type="text";l.attrs.text=g;l.attrs.x=h;l.attrs.y=j;l.attrs.w=1;l.attrs.h=1;bb(l,{font:aY.font,stroke:"none",fill:"#000"});l.setBox();c.canvas[bl](a);return l};var bV=function(c,d){var a=this.canvas.style;this.width=bf(c||this.width);this.height=bf(d||this.height);a.width=this.width+"px";a.height=this.height+"px";a.clip="rect(0 "+this.width+"px "+this.height+"px 0)";this.coordsize=this.width+bM+this.height;var b=this.bottom;while(b){b.Group.coordsize=this.coordsize;b.attr(b.attrs);b=b.next}return this};bt.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{!bt.namespaces.rvml&&bt.namespaces.add("rvml","urn:schemas-microsoft-com:vml");var a6=function(a){return bt.createElement("<rvml:"+a+' class="rvml">')}}catch(a7){var a6=function(a){return bt.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}var aO=function(){var b=bK[bU](null,arguments),c=b.container,g=b.height,f,m=b.width,h=b.x,j=b.y;if(!c){throw new Error("VML container not found.")}var l={},k=l.canvas=bt.createElement("div"),a=k.style;m=bf(m)||512;g=bf(g)||342;l.width=m;l.height=g;l.coordsize=m+bM+g;l.coordorigin="0 0";l.span=bt.createElement("span");l.span.style.cssText="position:absolute;left:-9999px;top:-9999px;padding:0;margin:0;line-height:1;display:inline;";k[bl](l.span);a.cssText=bL.format("width:{0}px;height:{1}px;position:absolute;clip:rect(0 {0}px {1}px 0)",m,g);if(c==1){bt.body[bl](k);a.left=h+"px";a.top=j+"px";c={style:{width:m,height:g}}}else{c.style.width=m;c.style.height=g;if(c.firstChild){c.insertBefore(k,c.firstChild)}else{c[bl](k)}}for(var d in bZ){if(bZ[bj](d)){l[d]=bZ[d]}}bu.call(l,l,bL.fn);l.top=l.bottom=null;l.raphael=bL;return l};bZ.clear=function(){this.canvas.innerHTML=bI;this.bottom=this.top=null};bZ.remove=function(){this.canvas.parentNode.removeChild(this.canvas);for(var a in this){delete this[a]}}}if({"Apple Computer, Inc.":1,"Google Inc.":1}[navigator.vendor]&&!(navigator.userAgent.indexOf("Version/4.0")+1)){bZ.safari=function(){var a=this.rect(-99,-99,this.width+99,this.height+99);setTimeout(function(){a.remove()})}}else{bZ.safari=function(){}}var a8=(function(){if(bt.addEventListener){return function(b,d,a,f){var c=function(g){return a.call(f,g)};b.addEventListener(d,c,false);return function(){b.removeEventListener(d,c,false);return true}}}else{if(bt.attachEvent){return function(d,c,f,b){var a=function(h){return f.call(b,h||bH.event)};d.attachEvent("on"+c,a);var g=function(){d.detachEvent("on"+c,a);return true};if(c=="mouseover"){d.attachEvent("onmouseenter",a);return function(){d.detachEvent("onmouseenter",a);return g()}}else{if(c=="mouseout"){d.attachEvent("onmouseleave",a);return function(){d.detachEvent("onmouseleave",a);return g()}}}return g}}}})();for(var ba=i[aV];ba--;){(function(a){bE[bS][a]=function(b){if(bL.is(b,"function")){this.events=this.events||{};this.events[a]=this.events[a]||{};this.events[a][b]=this.events[a][b]||[];this.events[a][b][a1](a8(this.shape||this.node,a,b,this))}return this};bE[bS]["un"+a]=function(b){var c=this.events;c&&c[a]&&c[a][b]&&c[a][b][aV]&&c[a][b].shift()()&&!c[a][b][aV]&&delete c[a][b];return this}})(i[ba])}bE[bS].hover=function(a,b){return this.mouseover(a).mouseout(b)};bZ.circle=function(c,b,a){return bk(this,c||0,b||0,a||0)};bZ.rect=function(f,b,a,d,c){return bw(this,f||0,b||0,a||0,d||0,c||0)};bZ.ellipse=function(d,b,c,a){return a5(this,d||0,b||0,c||0,a||0)};bZ.path=function(a){a&&!bL.is(a,"string")&&!bL.is(a[0],"array")&&(a+=bI);return aS(bL.format[bU](bL,arguments),this)};bZ.image=function(c,f,b,a,d){return aU(this,c||"about:blank",f||0,b||0,a||0,d||0)};bZ.text=function(c,b,a){return be(this,c||0,b||0,a||bI)};bZ.set=function(a){arguments[aV]>1&&(a=Array[bS].splice.call(arguments,0,arguments[aV]));return new bi(a)};bZ.setSize=bV;bE[bS].scale=function(d,f,o,w){if(d==null&&f==null){return{x:this._.sx,y:this._.sy,toString:function(){return this.x+bM+this.y}}}f=f||d;!+f&&(f=d);var I,b,a,c,n=this.attrs;if(d!=0){var l=this.getBBox(),q=l.x+l.width/2,v=l.y+l.height/2,r=d/this._.sx,x=f/this._.sy;o=(+o||o==0)?o:q;w=(+w||w==0)?w:v;var m=~~(d/Math.abs(d)),s=~~(f/Math.abs(f)),F=this.node.style,h=o+(q-o)*r,k=w+(v-w)*x;switch(this.type){case"rect":case"image":var p=n.width*m*r,G=n.height*s*x,g=n.r*br(r,x),t=h-p/2,j=k-G/2;this.attr({width:p,height:G,x:t,y:j,r:g});break;case"circle":case"ellipse":this.attr({rx:n.rx*m*r,ry:n.ry*s*x,r:n.r*br(m*r,s*x),cx:h,cy:k});break;case"path":var C=a9(n.path),B=true;for(var y=0,H=C[aV];y<H;y++){var D=C[y],A,u=b1.call(D[0]);if(u=="M"&&B){continue}else{B=false}if(bL.svg&&u=="A"){D[C[y][aV]-2]*=r;D[C[y][aV]-1]*=x;D[1]*=m*r;D[2]*=s*x;D[5]=+(m+s?!!+D[5]:!+D[5])}else{if(u=="H"){for(A=1,jj=D[aV];A<jj;A++){D[A]*=r}}else{if(u=="V"){for(A=1,jj=D[aV];A<jj;A++){D[A]*=x}}else{for(A=1,jj=D[aV];A<jj;A++){D[A]*=(A%2)?r:x}}}}}var z=bh(C),I=h-z.x-z.width/2,b=k-z.y-z.height/2;C[0][1]+=I;C[0][2]+=b;this.attr({path:C});break}if(this.type in {text:1,image:1}&&(m!=1||s!=1)){if(this.transformations){this.transformations[2]="scale("[bX](m,",",s,")");this.node[aP]("transform",this.transformations[bD](bM));I=(m==-1)?-n.x-(p||0):n.x;b=(s==-1)?-n.y-(G||0):n.y;this.attr({x:I,y:b});n.fx=m-1;n.fy=s-1}else{this.node.filterMatrix=" progid:DXImageTransform.Microsoft.Matrix(M11="[bX](m,", M12=0, M21=0, M22=",s,", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')");F.filter=(this.node.filterMatrix||bI)+(this.node.filterOpacity||bI)}}else{if(this.transformations){this.transformations[2]=bI;this.node[aP]("transform",this.transformations[bD](bM));n.fx=0;n.fy=0}else{this.node.filterMatrix=bI;F.filter=(this.node.filterMatrix||bI)+(this.node.filterOpacity||bI)}}n.scale=[d,f,o,w][bD](bM);this._.sx=d;this._.sy=f}return this};bL.easing_formulas={linear:function(a){return a},"<":function(a){return b2(a,3)},">":function(a){return b2(a-1,3)+1},"<>":function(a){a=a*2;if(a<1){return b2(a,3)/2}a-=2;return(b2(a,3)+2)/2},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a=a-1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(b){if(b==0||b==1){return b}var a=0.3,c=a/4;return b2(2,-10*b)*Math.sin((b-c)*(2*Math.PI)/a)+1},bounce:function(b){var a=7.5625,c=2.75,d;if(b<(1/c)){d=a*b*b}else{if(b<(2/c)){b-=(1.5/c);d=a*b*b+0.75}else{if(b<(2.5/c)){b-=(2.25/c);d=a*b*b+0.9375}else{b-=(2.625/c);d=a*b*b+0.984375}}}return d}};var bx={length:0},bY=function(){var o=+new Date;for(var y in bx){if(y!="length"&&bx[bj](y)){var t=bx[y];if(t.stop){delete bx[y];bx[aV]--;continue}var q=o-t.start,b=t.ms,c=t.easing,x=t.from,g=t.diff,l=t.to,h=t.t,d=t.prev||0,p=t.el,j=t.callback,f={},s;if(q<b){var r=bL.easing_formulas[c]?bL.easing_formulas[c](q/b):q/b;for(var a in x){if(x[bj](a)){switch(bc[a]){case"number":s=+x[a]+r*b*g[a];break;case"colour":s="rgb("+[R(bm(x[a].r+r*b*g[a].r)),R(bm(x[a].g+r*b*g[a].g)),R(bm(x[a].b+r*b*g[a].b))][bD](",")+")";break;case"path":s=[];for(var v=0,k=x[a][aV];v<k;v++){s[v]=[x[a][v][0]];for(var w=1,u=x[a][v][aV];w<u;w++){s[v][w]=+x[a][v][w]+r*b*g[a][v][w]}s[v]=s[v][bD](bM)}s=s[bD](bM);break;case"csv":switch(a){case"translation":var m=g[a][0]*(q-d),n=g[a][1]*(q-d);h.x+=m;h.y+=n;s=m+bM+n;break;case"rotation":s=+x[a][0]+r*b*g[a][0];x[a][1]&&(s+=","+x[a][1]+","+x[a][2]);break;case"scale":s=[+x[a][0]+r*b*g[a][0],+x[a][1]+r*b*g[a][1],(2 in l[a]?l[a][2]:bI),(3 in l[a]?l[a][3]:bI)][bD](bM);break;case"clip-rect":s=[];var v=4;while(v--){s[v]=+x[a][v]+r*b*g[a][v]}break}break}f[a]=s}}p.attr(f);p._run&&p._run.call(p)}else{(h.x||h.y)&&p.translate(-h.x,-h.y);l.scale&&(l.scale=l.scale+bI);p.attr(l);delete bx[y];bx[aV]--;p.in_animation=null;bL.is(j,"function")&&j.call(p)}t.prev=q}}bL.svg&&bZ.safari();bx[aV]&&setTimeout(bY)},R=function(a){return a>255?255:(a<0?0:a)},aQ=function(c,b){if(c==null){return{x:this._.tx,y:this._.ty}}this._.tx+=+c;this._.ty+=+b;switch(this.type){case"circle":case"ellipse":this.attr({cx:+c+this.attrs.cx,cy:+b+this.attrs.cy});break;case"rect":case"image":case"text":this.attr({x:+c+this.attrs.x,y:+b+this.attrs.y});break;case"path":var a=a9(this.attrs.path);a[0][1]+=+c;a[0][2]+=+b;this.attr({path:a});break}return this};bE[bS].animateWith=function(b,d,f,a,c){bx[b.id]&&(d.start=bx[b.id].start);return this.animate(d,f,a,c)};bE[bS].onAnimation=function(a){this._run=a||null;return this};bE[bS].animate=function(c,j,l,b){if(bL.is(l,"function")||!l){b=l||null}var k={},h={},g={};for(var m in c){if(c[bj](m)){if(bc[bj](m)){k[m]=this.attr(m);(k[m]==null)&&(k[m]=aY[m]);h[m]=c[m];switch(bc[m]){case"number":g[m]=(h[m]-k[m])/j;break;case"colour":k[m]=bL.getRGB(k[m]);var o=bL.getRGB(h[m]);g[m]={r:(o.r-k[m].r)/j,g:(o.g-k[m].g)/j,b:(o.b-k[m].b)/j};break;case"path":var r=by(k[m],h[m]);k[m]=r[0];h[m]=r[1];g[m]=[];for(var p=0,d=k[m][aV];p<d;p++){g[m][p]=[0];for(var a=1,n=k[m][p][aV];a<n;a++){g[m][p][a]=(h[m][p][a]-k[m][p][a])/j}}break;case"csv":var f=(c[m]+bI)[aM](a4),q=(k[m]+bI)[aM](a4);switch(m){case"translation":k[m]=[0,0];g[m]=[f[0]/j,f[1]/j];break;case"rotation":k[m]=(q[1]==f[1]&&q[2]==f[2])?q:[0,f[1],f[2]];g[m]=[(f[0]-k[m][0])/j,0,0];break;case"scale":c[m]=f;k[m]=(k[m]+bI)[aM](a4);g[m]=[(f[0]-k[m][0])/j,(f[1]-k[m][1])/j,0,0];break;case"clip-rect":k[m]=(k[m]+bI)[aM](a4);g[m]=[];var p=4;while(p--){g[m][p]=(f[p]-k[m][p])/j}break}h[m]=f}}}}this.stop();this.in_animation=1;bx[this.id]={start:c.start||+new Date,ms:j,easing:l,from:k,diff:g,to:h,el:this,callback:b,t:{x:0,y:0}};++bx[aV]==1&&bY();return this};bE[bS].stop=function(){bx[this.id]&&bx[aV]--;delete bx[this.id];return this};bE[bS].translate=function(b,a){return this.attr({translation:b+" "+a})};bE[bS][bC]=function(){return"Rapha\xebl\u2019s object"};bL.ae=bx;var bi=function(c){this.items=[];this[aV]=0;if(c){for(var b=0,a=c[aV];b<a;b++){if(c[b]&&(c[b].constructor==bE||c[b].constructor==bi)){this[this.items[aV]]=this.items[this.items[aV]]=c[b];this[aV]++}}}};bi[bS][a1]=function(){var a,d;for(var c=0,b=arguments[aV];c<b;c++){a=arguments[c];if(a&&(a.constructor==bE||a.constructor==bi)){d=this.items[aV];this[d]=this.items[d]=a;this[aV]++}}return this};bi[bS].pop=function(){delete this[this[aV]--];return this.items.pop()};for(var aN in bE[bS]){if(bE[bS][bj](aN)){bi[bS][aN]=(function(a){return function(){for(var c=0,b=this.items[aV];c<b;c++){this.items[c][a][bU](this.items[c],arguments)}return this}})(aN)}}bi[bS].attr=function(f,c){if(f&&bL.is(f,"array")&&bL.is(f[0],"object")){for(var g=0,d=f[aV];g<d;g++){this.items[g].attr(f[g])}}else{for(var b=0,a=this.items[aV];b<a;b++){this.items[b].attr[bU](this.items[b],arguments)}}return this};bi[bS].animate=function(g,h,a,c){(bL.is(a,"function")||!a)&&(c=a||null);var j=this.items[aV],f=j,d=this,b;c&&(b=function(){!--j&&c.call(d)});this.items[--f].animate(g,h,a||b,b);while(f--){this.items[f].animateWith(this.items[j-1],g,h,a||b,b)}return this};bi[bS].insertAfter=function(a){var b=this.items[aV];while(b--){this.items[b].insertAfter(a)}};bi[bS].getBBox=function(){var g=[],c=[],f=[],a=[];for(var b=this.items[aV];b--;){var d=this.items[b].getBBox();g[a1](d.x);c[a1](d.y);f[a1](d.x+d.width);a[a1](d.y+d.height)}g=br[bU](0,g);c=br[bU](0,c);return{x:g,y:c,width:a0[bU](0,f)-g,height:a0[bU](0,a)-c}};bL.registerFont=function(b){if(!b.face){return b}this.fonts=this.fonts||{};var d={w:b.w,face:{},glyphs:{}},g=b.face["font-family"];for(var c in b.face){if(b.face[bj](c)){d.face[c]=b.face[c]}}if(this.fonts[g]){this.fonts[g][a1](d)}else{this.fonts[g]=[d]}if(!b.svg){d.face["units-per-em"]=e(b.face["units-per-em"],10);for(var a in b.glyphs){if(b.glyphs[bj](a)){var f=b.glyphs[a];d.glyphs[a]={w:f.w,k:{},d:f.d&&"M"+f.d[b0](/[mlcxtrv]/g,function(j){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[j]||"M"})+"z"};if(f.k){for(var h in f.k){if(f[bj](h)){d.glyphs[a].k[h]=f.k[h]}}}}}}return b};bZ.getFont=function(g,f,l,a){a=a||"normal";l=l||"normal";f=+f||{normal:400,bold:700,lighter:300,bolder:800}[f]||400;var k=bL.fonts[g];if(!k){var b=new RegExp("(^|\\s)"+g[b0](/[^\w\d\s+!~.:_-]/g,bI)+"(\\s|$)","i");for(var c in bL.fonts){if(bL.fonts[bj](c)){if(b.test(c)){k=bL.fonts[c];break}}}}var j;if(k){for(var h=0,d=k[aV];h<d;h++){j=k[h];if(j.face["font-weight"]==f&&(j.face["font-style"]==l||!j.face["font-style"])&&j.face["font-stretch"]==a){break}}}return j};bZ.print=function(j,l,p,s,b){var r=this.set(),n=(p+bI)[aM](bI),k=0,d=bI,a;bL.is(s,"string")&&(s=this.getFont(s));if(s){a=(b||16)/s.face["units-per-em"];var o=s.face.bbox.split(a4),m=+o[0],g=+o[1]+(o[3]-o[1])/2;for(var q=0,h=n[aV];q<h;q++){var c=q&&s.glyphs[n[q-1]]||{},f=s.glyphs[n[q]];k+=q?(c.w||s.w)+(c.k&&c.k[n[q]]||0):0;f&&f.d&&r[a1](this.path(f.d).attr({fill:"#000",stroke:"none",translation:[k,0]}))}r.scale(a,a,m,g).translate(j-m,l-g)}return r};bL.format=function(b){var a=bL.is(arguments[1],"array")?[0][bX](arguments[1]):arguments,c=/\{(\d+)\}/g;b&&bL.is(b,"string")&&a[aV]-1&&(b=b[b0](c,function(d,f){return a[++f]==null?bI:a[f]}));return b||bI};bL.ninja=function(){var c=bH.Raphael,a;if(aW.was){bH.Raphael=aW.is}else{try{delete bH.Raphael}catch(b){bH.Raphael=a}}return c};bL.el=bE[bS];return bL})();var Grafico={Version:"0.9",Base:{},BaseGraph:{},Normaliser:{},LineGraph:{},AreaGraph:{},StackGraph:{},BarGraph:{},HorizontalBarGraph:{},SparkLine:{},SparkBar:{}},Ico=Grafico;Grafico.Base=Class.create({normaliseData:function(b){return $A(b).collect(function(a){return this.normalise(a)}.bind(this))},deepCopy:function(f){var e,h,g;if(Object.prototype.toString.call(f)==="[object Array]"){e=[];g=f.length;for(h=0;h<g;h++){e[h]=arguments.callee(f[h])}return e}if(typeof f==="object"){e={};for(h in f){e[h]=arguments.callee(f[h])}return e}return f}});Grafico.Normaliser=Class.create({initialize:function(d,c){this.options={start_value:null};Object.extend(this.options,c||{});this.min=d.min();this.max=d.max();this.standard_deviation=d.standard_deviation();this.range=0;this.step=(this.same_values=!this.options.bar?this.min==this.max:false)?this.labelStep(Math.abs(this.min)):this.labelStep(this.max-this.min);this.start_value=this.calculateStart();this.process()},calculateStart:function(){var b=this.options.start_value!==null&&this.min>=0?this.options.start_value:this.min;b=this.same_values?this.min-this.step*5:this.round(b,1);if(this.min>0&&b>this.min){return 0}return b},round:function(e,d){var f=e;d=d||1;if(this.standard_deviation>0.1){d=Math.pow(10,-d);f=Math.round(e*d)/d;if(f>this.min){return this.round(e-this.step)}}return f},process:function(){this.range=this.same_values?Math.abs(this.max):this.max-this.start_value;this.step=this.labelStep(this.range);if(this.range/this.step>15){this.step*=3}this.zero_value=(0-this.start_value)/this.step},labelStep:function(b){return Math.pow(10,(Math.log(b)/Math.LN10).round()-1)}});Grafico.BaseGraph=Class.create(Grafico.Base,{initialize:function(e,d,f){this.element=e;this.data_sets=Object.isArray(d)?new Hash({one:d}):$H(d);if(this.chartDefaults().stacked===true){this.real_data=this.deepCopy(this.data_sets);this.stackData(this.data_sets)}this.flat_data=this.data_sets.collect(function(a){return a[1]}).flatten();this.normaliser=new Grafico.Normaliser(this.flat_data,this.normaliserOptions());this.label_step=this.normaliser.step;this.range=this.normaliser.range;this.start_value=this.normaliser.start_value;this.zero_value=this.normaliser.zero_value;this.data_size=this.longestDataSetLength();if(f&&f.color){f.colors={};this.data_sets.keys().each(function(a){f.colors[a]=f.color})}this.options={width:parseInt(e.getStyle("width"),10),height:parseInt(e.getStyle("height"),10),labels:$A($R(1,this.data_size)),grid:true,plot_padding:10,font_size:10,show_horizontal_labels:true,show_vertical_labels:true,vertical_label_unit:"",colors:this.makeRandomColours(),background_color:e.getStyle("backgroundColor"),label_color:"#000",grid_color:"#ccc",hover_text_color:"#fff",markers:false,marker_size:5,meanline:false,padding_top:20,draw_axis:true,datalabels:"",hover_color:"",watermark:false,watermark_location:false,hide_empty_label_grid:false,left_padding:false,label_rotation:0,label_max_size:false};Object.extend(this.options,this.chartDefaults()||{});Object.extend(this.options,f||{});this.x_padding_left=10+this.paddingLeftOffset();this.x_padding_left+=this.options.vertical_label_unit?6:0;this.x_padding_left=this.options.left_padding?this.options.left_padding:this.x_padding_left;this.x_padding_right=20;this.x_padding=this.x_padding_left+this.x_padding_right;this.y_padding_top=this.options.padding_top;this.y_padding_bottom=20+this.paddingBottomOffset();this.y_padding=this.y_padding_top+this.y_padding_bottom;this.graph_width=this.options.width-this.x_padding;this.graph_height=this.options.height-this.y_padding;this.step=this.calculateStep();this.y_label_count=(this.range/this.label_step).round();if(this.normaliser.min+this.y_label_count*this.normaliser.step<this.normaliser.max){this.y_label_count+=1}this.value_labels=this.makeValueLabels(this.y_label_count);this.top_value=this.value_labels.last();this.grid_start_offset=-1;this.paper=new Raphael(this.element,this.options.width,this.options.height);this.background=this.paper.rect(this.x_padding_left,this.y_padding_top,this.graph_width,this.graph_height);this.background.attr({fill:this.options.background_color,stroke:"none"});this.options.meanline=this.options.meanline===true?{"stroke-width":"2px",stroke:"#BBBBBB"}:this.options.meanline;this.globalMarkerSet=this.paper.set();this.globalHoverSet=this.paper.set();this.globalBlockSet=this.paper.set();this.globalAreaLineSet=this.paper.set();this.setChartSpecificOptions();this.draw();this.globalAreaLineSet.toFront();this.globalMarkerSet.toFront();this.globalHoverSet.toFront();this.globalBlockSet.toFront()},normaliserOptions:function(){return{graph_height:parseInt(this.element.getStyle("height"),10)}},chartDefaults:function(){},drawPlot:function(){},calculateStep:function(){},getMousePos:function(e){var d=0,f=0;if(!e){e=window.event}if(e.pageX||e.pageY){d=e.pageX;f=e.pageY}else{if(e.clientX||e.clientY){d=e.clientX+document.body.scrollLeft-document.documentElement.scrollLeft;f=e.clientY+document.body.scrollTop-document.documentElement.scrollTop}}return{x:d,y:f}},makeRandomColours:function(){var b={};this.data_sets.each(function(a){b[a[0]]=Raphael.hsb2rgb(Math.random(),1,0.75).hex});return b},longestDataSetLength:function(){var b=0;this.data_sets.each(function(a){b=a[1].length>b?a[1].length:b});return b},roundValue:function(d,c){c=Math.pow(10,c);d*=c;return d=Math.round(d)/c},roundValues:function(d,c){return $A(d).collect(function(a){return this.roundValue(a,c)}.bind(this))},paddingLeftOffset:function(){if(this.options.show_vertical_labels){var b=this.flat_data;b=this.roundValues(b,2);b=$A(b).sort(function(a,d){return a.toString().length<d.toString().length}).first().toString().length;b=b>2?b-1:b;return b*this.options.font_size}else{return 0}},paddingBottomOffset:function(){return this.options.font_size},normalise:function(b){return b/(this.start_value===0?this.top_value:this.range)*this.graph_height},draw:function(){this.options.grid&&this.drawGrid();this.options.watermark&&this.drawWatermark();this.options.show_vertical_labels&&this.drawVerticalLabels();this.options.show_horizontal_labels&&this.drawHorizontalLabels();this.options.watermark||this.drawLinesInit(this);this.options.draw_axis&&this.drawAxis();this.start_value!==0&&this.drawFocusHint();this.options.meanline&&this.drawMeanLine(this.normaliseData(this.flat_data))},drawLinesInit:function(b){b.data_sets.each(function(a,d){b.drawLines(a[0],b.options.colors[a[0]],b.normaliseData(a[1]),b.options.datalabels[a[0]],b.element,d)}.bind(b))},drawWatermark:function(){if(this.options.watermark=="wakoopa"){this.drawWakoopaWatermark(this,this.data)}else{var e=this.options.watermark,d=new Image,f=this;d.onload=function(){var b,a;if(f.options.watermark_location=="middle"){b=(f.graph_width-d.width)/2+f.x_padding_left;a=(f.graph_height-d.height)/2+f.y_padding_top}else{b=f.graph_width-d.width+f.x_padding_left-2;a=f.graph_height-d.height+f.y_padding_top-2}b=f.paper.image(d.src,b,a,d.width,d.height);b.attr({opacity:"0.4"});f.drawLinesInit(f,f.data);if(f.options.stacked_fill||f.options.area){b.toFront()}};d.src=e.src||e}},drawWakoopaWatermark:function(h,g){h=this.paper.path("M 66.12653,28.643755 C 65.88927,28.5774 65.20644,28.15623 65.04322,27.975565 L 64.41948,26.909725 L 64.41948,9.6875 L 64.82874,8.948709 L 65.70556,8.128486 L 66.50282,7.887364 L 67.4056,7.893512 L 68.35306,8.277407 L 69.62782,7.900526 L 71.57226,7.832284 L 72.86932,8.057673 L 73.87705,8.448976 L 74.96575,9.201389 L 76.05217,10.294938 C 76.340077,10.692297 76.570098,11.12571 76.82223,11.545138 C 76.866135,11.63585 77.017825,11.875 77.03146,11.875 C 77.04509,11.875 77.286715,11.493668 77.36473,11.349026 C 77.549845,11.005848 78.44977,9.850685 78.76001,9.558018 L 79.76786,8.753663 L 80.77321,8.238848 L 81.90958,7.942295 L 82.54448,7.831621 L 84.55837,7.907413 L 85.0527,8.041652 C 85.68887,8.214409 87.882965,9.74993 88.38521,10.373885 L 89.13951,11.5625 L 89.5687,12.708333 L 89.69726,13.229166 L 89.69726,18.92361 L 89.29135,19.756944 L 88.41673,20.619728 L 87.42381,20.921315 L 86.50957,20.835946 L 85.76571,20.472012 L 84.48893,20.857646 L 82.22912,20.914775 L 81.65764,20.799442 L 80.62316,20.490104 L 79.68566,19.979401 L 78.69499,19.154267 C 78.385265,18.84918 77.48717,17.659929 77.32773,17.343749 L 77.09135,16.874999 L 77.02603,16.874999 L 76.96071,16.874999 L 76.82203,17.188508 C 76.783895,17.274723 76.425125,17.875544 76.32718,18.017227 L 75.97102,18.532437 L 75.36886,19.112424 C 74.89758,19.566354 73.232795,20.554069 72.68337,20.70572 L 72.12782,20.859064 L 69.48893,20.872297 L 69.41426,26.840275 C 69.342233,27.111491 69.188925,27.349265 69.07653,27.603145 L 68.57711,28.187895 L 67.89892,28.583885 L 67.02365,28.721955 L 66.12653,28.643755 z M 67.75282,27.854455 L 68.21785,27.526115 L 68.56507,26.979165 L 68.72504,26.631945 L 68.76482,19.843758 L 69.97059,20.138888 L 71.85004,20.136476 L 72.33615,20.035045 L 73.44726,19.622577 L 74.53197,18.909242 C 74.818725,18.658303 75.782695,17.53299 75.9447,17.26006 L 76.19387,16.840277 L 76.56187,15.729166 L 76.56651,13.090277 L 76.44302,12.644901 L 76.08452,11.732876 L 75.42542,10.739029 L 74.55942,9.845498 L 73.35485,9.017946 L 72.33615,8.651538 L 71.08615,8.626713 L 69.2806,8.771929 L 68.28655,9.122801 L 67.23976,8.591472 L 66.35765,8.662278 L 65.90528,8.896209 L 65.3724,9.445307 L 65.14865,9.916823 L 65.14865,26.740725 L 65.48292,27.395835 C 65.653368,27.608819 65.909339,27.716383 66.12087,27.875395 L 66.91948,27.981865 L 67.75282,27.854455 z M 69.94405,16.451126 L 69.15778,15.8782 L 68.75976,15.250586 L 68.75976,13.499413 L 69.15667,12.873555 L 69.8422,12.370331 L 70.50571,12.203258 L 71.07998,12.239086 L 71.8216,12.361914 L 72.58835,12.933453 L 72.96115,13.496661 L 72.96115,15.173611 L 72.58019,15.821672 C 72.346501,16.074016 72.03605,16.229114 71.76546,16.431726 L 71.542,16.527777 L 70.11393,16.518974 L 69.94405,16.451126 z M 72.23146,14.965277 L 72.23198,13.711458 L 72.12044,13.552212 C 72.08977,13.508419 71.805305,13.24548 71.72808,13.189538 L 71.44726,12.986111 L 70.23894,12.986111 L 69.45421,13.812547 L 69.45421,14.937452 L 70.1803,15.763888 L 71.48971,15.763888 L 72.23146,14.965277 z M 85.87936,19.642929 L 86.29117,19.890908 L 87.15389,20.138888 L 87.90009,19.995942 L 88.43984,19.582404 L 88.97635,18.739342 L 88.92814,12.951388 C 88.791141,12.54239 88.597185,12.156824 88.4257,11.762184 L 87.80208,10.824995 C 87.470345,10.40955 86.11859,9.271178 85.71491,9.067298 L 84.2931,8.611111 L 82.19726,8.613523 L 80.82474,9.01531 C 80.12561,9.3323105 77.970485,11.685374 77.69821,12.428994 L 77.5578,12.812499 L 77.49723,15.520833 L 77.61048,16.006944 L 77.96658,16.985075 L 78.65928,18.039323 L 79.62734,19.01844 L 80.65058,19.682229 L 81.91948,20.134999 L 84.55837,20.10193 L 85.87936,19.642929 z M 82.08933,16.328779 C 81.91249,16.214796 81.371655,15.660515 81.2671,15.48611 L 81.12139,15.243055 L 81.12087,13.620152 L 81.25592,13.264954 L 82.15855,12.44301 L 82.47504,12.256944 L 84.00282,12.259436 L 84.23646,12.385608 L 85.22705,13.368055 L 85.35394,13.645833 L 85.35698,15.073905 L 85.2538,15.320855 L 84.40621,16.313808 L 84.08317,16.527777 L 82.39807,16.527777 L 82.08933,16.328779 z M 84.5931,15.037203 L 84.5931,13.685388 L 83.76666,12.986111 L 82.70896,12.986111 L 81.88476,13.639298 L 81.88476,15.128232 L 82.68337,15.832813 L 83.77809,15.833333 L 84.5931,15.037203 z M 91.4506,21.289805 C 91.378945,21.264235 91.0187,21.066135 90.95371,21.016565 L 90.42115,20.357005 L 90.26205,19.598487 L 90.44053,18.784721 L 91.22827,18.011772 L 92.05837,17.837228 L 92.39703,17.913935 C 92.610059,17.978137 92.825842,18.043467 93.03682,18.107197 L 93.12554,16.90368 L 93.29214,16.215277 L 93.69946,15.435813 L 94.61224,14.523034 L 95.39171,14.108924 L 96.46224,13.888888 L 98.72504,13.891058 L 99.52035,14.078221 L 100.02846,14.465779 L 100.40075,15.084358 L 100.72869,14.800524 C 100.81888,14.72247 101.26873,14.393767 101.34917,14.347141 L 102.02365,14.070819 L 103.24666,13.874003 L 104.2806,14.032831 L 105.15728,14.441183 C 105.43621,14.750079 105.77283,14.996649 106.08246,15.2699 L 106.50282,14.494109 L 107.01316,14.081427 L 107.79753,13.899093 L 108.16864,13.995753 L 108.53974,14.092413 L 109.01434,13.991856 L 110.05699,13.888888 L 110.59112,14.025496 C 110.73801,14.063064 111.35747,14.264826 111.44555,14.30379 L 111.76586,14.445475 L 112.50216,14.108388 L 113.56809,13.87124 L 114.59893,13.964653 L 115.46115,14.235318 L 116.38962,14.923212 L 116.6769,15.286656 C 116.86422,15.523623 117.27253,16.345657 117.33542,16.612397 L 117.43826,17.04861 L 117.44032,19.766458 L 117.22279,20.498962 L 116.92835,20.793403 L 116.31192,21.168925 C 116.22337,21.19122 115.79317,21.249995 115.71854,21.249995 L 115.2111,21.170965 C 115.14619,21.14923 114.81253,20.97131 114.75089,20.925555 L 114.33423,20.431673 L 114.14171,20.104166 L 114.07226,17.341136 L 113.83653,17.192833 L 113.44726,17.329423 L 113.37709,20.104166 L 113.06935,20.68101 L 112.54448,21.113965 L 112.30143,21.181595 C 112.14041,21.2264 111.40849,21.219505 111.21738,21.171385 L 110.90516,21.092765 L 110.29056,20.478167 L 110.07921,19.766458 L 110.07921,17.388888 L 109.91254,17.222222 L 109.62087,17.222222 L 109.45421,17.388888 L 109.45421,19.766458 L 109.23668,20.498962 L 108.6478,21.087845 L 108.3258,21.168925 C 108.13008,21.218205 107.3942,21.22673 107.23198,21.181595 L 106.73293,20.902785 L 106.29128,20.312155 L 106.10562,19.932701 L 105.69749,20.302042 L 104.93427,20.864645 L 104.22155,21.153125 L 103.16671,21.249175 L 102.4695,21.249995 L 102.0556,21.142225 L 101.36393,20.871444 C 101.28754,20.826619 100.83907,20.490717 100.74535,20.408131 L 100.40454,20.107817 L 99.8836,20.884015 L 99.14916,21.249995 L 95.99436,21.249995 C 95.243791,21.131778 94.787808,20.723437 94.21442,20.281452 L 93.93991,19.999999 L 93.66174,20.306074 L 93.54485,20.612147 L 92.60574,21.313255 L 91.4506,21.289805 z M 92.50889,20.536463 L 92.93648,20.138241 L 93.06506,19.619138 L 92.9268,19.113948 L 92.56248,18.749624 L 92.06887,18.61137 L 91.56649,18.72267 L 91.19142,19.060728 L 91.05143,19.612339 L 91.15455,20.136862 L 91.44969,20.472527 C 91.54951,20.543359 91.94119,20.679536 92.06481,20.686388 L 92.50889,20.536463 z M 99.45135,20.276414 L 99.66254,19.868008 L 99.66202,19.340277 L 99.3909,18.895631 L 98.97499,18.680555 L 96.39176,18.680555 L 95.99539,18.475589 L 95.70421,18.004439 L 95.70421,17.066993 L 96.24342,16.527777 L 98.91238,16.527777 L 99.40116,16.295838 L 99.67027,15.868055 L 99.6163,15.13782 L 99.28892,14.78933 L 98.79448,14.641688 L 95.94726,14.687499 L 94.72111,15.431143 L 94.04622,16.302935 L 93.81187,17.109047 L 93.87623,18.445487 L 94.23836,19.236478 L 94.9731,20.013352 L 95.59023,20.375017 L 96.22504,20.54618 L 98.90419,20.555555 L 99.45135,20.276414 z M 104.41948,20.342652 L 105.15755,19.838064 C 105.43055,19.569908 105.61043,19.230345 105.83191,18.92361 L 106.01671,18.576388 L 106.01671,16.701388 L 105.60969,15.898111 L 104.79637,15.077181 L 104.00282,14.687499 L 103.16948,14.687499 L 102.33615,14.687499 L 101.53321,15.063745 L 100.72618,15.833514 L 100.36704,16.493373 L 100.20013,17.451847 L 100.28819,18.399294 L 100.56723,19.145114 L 101.34273,20.002074 L 101.97912,20.375017 L 102.61393,20.54618 L 103.59169,20.555555 L 104.41948,20.342652 z M 102.0931,18.07383 L 102.0931,17.215324 L 102.30817,16.799413 L 102.75282,16.528297 L 103.56976,16.527777 L 104.02276,16.807744 L 104.24587,17.277934 L 104.24587,17.851683 L 104.05642,18.305095 L 103.61021,18.680555 L 102.69982,18.680555 L 102.0931,18.07383 z M 103.49146,17.421482 L 103.32609,17.222222 L 103.02365,17.222222 L 102.85698,17.388888 C 102.83965,17.471381 102.89867,17.796296 102.90659,17.873675 L 102.95619,17.923276 L 103.44726,17.881944 L 103.49146,17.421482 z M 108.28607,20.410022 L 108.55489,20.117095 L 108.6898,19.895833 L 108.69123,17.187499 L 108.82212,16.988978 L 109.35004,16.528692 L 110.23138,16.527777 L 110.63686,16.816505 L 110.8431,17.215324 L 110.84401,19.895833 C 110.96639,20.231313 111.35012,20.3179 111.58938,20.517424 L 112.05586,20.486939 L 112.29688,20.407395 L 112.64865,19.989343 L 112.64865,17.356649 L 112.8381,16.903237 L 113.28431,16.527777 L 114.25125,16.527777 L 114.83615,17.073031 L 114.9056,19.990444 L 115.19575,20.381944 L 115.77365,20.568735 L 116.35977,20.381944 L 116.68523,19.896962 L 116.64171,16.631944 L 116.2436,15.875508 L 115.46115,15.095273 L 114.63245,14.6912 L 113.28706,14.637162 L 112.91577,14.756375 L 111.74354,15.342683 L 111.08615,14.925572 L 110.20346,14.652777 L 109.2424,14.652777 L 108.46983,14.924313 L 108.21652,14.788545 L 107.8037,14.652777 L 107.18319,14.845397 L 106.88476,15.264495 L 106.88528,19.895833 L 107.16528,20.355076 L 107.61393,20.556562 C 107.84685,20.55183 108.06303,20.458649 108.28607,20.410022 z M 99.48893,17.19573 C 99.000743,17.196164 97.049363,17.248506 96.5621,17.270453 L 96.3782,17.660385 L 96.51753,17.881944 L 99.48893,18.020833 L 99.48893,17.19573 z M 5.25282,20.826367 L 3.72504,20.422372 L 3.30837,20.171278 C 2.73763,19.827334 0.850885,17.854202 0.57624,17.314051 C 0.535675,17.23427 0.29193,16.579756 0.24004,16.411274 L 0.05134,15.79861 L 0,10.215093 L 0.223,9.340277 L 0.70522,8.611728 L 1.36393,8.132128 L 2.22497,7.897951 C 2.6536043,7.9023786 3.0721721,7.997562 3.4946,8.051924 L 4.08082,8.356702 L 4.64035,8.916769 L 4.98802,9.607159 L 5.10671,9.965277 L 5.18337,15.104166 L 5.83821,15.763888 L 7.16849,15.763888 L 7.85698,15.119883 L 7.85698,10.354058 L 8.01081,9.618055 L 8.35246,8.923611 C 8.5698761,8.6426216 8.8786519,8.460513 9.14171,8.231245 L 9.79388,7.984611 L 10.66964,7.936022 L 11.52861,8.127778 L 12.26155,8.687018 L 12.79848,9.494126 L 12.96009,9.895833 L 13.0306,15.148429 L 13.68223,15.763888 L 15.10474,15.763888 L 15.76738,15.076415 L 15.80837,9.826388 L 16.19719,8.993055 L 16.85004,8.322436 C 17.084108,8.171743 17.359849,8.1144809 17.61393,8.010839 L 18.3431,7.918315 L 19.08787,8.014909 L 19.6935,8.261562 L 20.20954,8.722036 L 20.62739,9.34011 L 20.94217,10.544781 L 22.26671,9.190129 C 22.665436,8.8994121 23.100477,8.6668907 23.52413,8.416296 L 24.53108,8.049645 L 25.11393,7.896816 L 27.05837,7.832284 L 28.33719,8.054525 L 29.26865,8.405127 L 30.39492,9.154517 L 31.59308,10.397426 L 32.36716,11.388888 L 32.4056,1.909722 L 32.74068,1.077413 L 33.52728,0.290818 L 34.46884,-1.4210855e-14 L 35.32226,0.001648 C 35.638338,0.059796996 35.929498,0.19955172 36.23228,0.298231 L 36.80359,0.799002 L 37.31677,1.653147 L 37.47421,2.118055 L 37.51477,10.776827 C 39.115532,9.7919759 40.728732,8.8137558 42.36757,7.888068 L 42.78782,7.79003 C 43.188142,7.8427869 43.563503,7.993847 43.94934,8.100527 L 44.63398,8.64264 L 45.18954,9.444444 L 45.32226,10.452874 L 45.32226,11.079359 L 45.09344,11.544137 L 44.86462,12.008914 L 44.36003,12.375984 L 41.54059,14.270833 L 41.53754,14.44787 C 41.999822,14.742696 43.82206,15.961651 44.27218,16.274541 L 44.74987,16.631944 L 45.05343,17.251903 L 45.35698,17.871863 L 45.35534,18.645833 L 45.15655,19.392724 L 44.66407,20.134451 L 43.9788,20.676122 L 43.06848,20.922535 C 42.694995,20.908595 42.336934,20.795475 41.97206,20.730831 L 41.60796,20.619908 C 40.940681,20.175932 38.263004,18.412947 37.58478,17.98611 L 37.48711,18.385416 L 37.23505,19.485449 L 36.79736,20.146236 L 36.16627,20.62811 L 35.39171,20.85778 L 34.48893,20.856315 L 33.60813,20.603121 L 32.62621,19.583333 L 31.81214,20.407305 L 31.3257,20.707941 L 30.60004,20.901125 L 30.03497,20.902775 L 28.90762,20.461466 L 27.61393,20.868055 L 24.97504,20.868055 C 24.483661,20.760842 24.024814,20.555401 23.55697,20.377892 L 22.57079,19.785424 L 21.57806,18.881619 L 20.75868,17.844596 L 20.46115,17.362299 L 20.10072,17.725694 L 19.04214,19.083763 L 17.89755,19.999544 L 16.85004,20.544092 L 15.66948,20.863332 L 13.10004,20.857328 C 12.155195,20.620981 11.293919,20.17287 10.43969,19.722221 C 9.9772167,19.967769 9.5014905,20.186354 9.02897,20.412012 L 8.44726,20.642263 L 7.19726,20.900955 C 6.8722676,20.910114 5.5765276,20.844746 5.25282,20.826367 z M 9.17212,19.54083 L 10.44149,18.734127 C 10.684283,18.944312 10.957261,19.114976 11.21501,19.305299 L 12.15251,19.783047 L 13.53397,20.153523 L 15.80837,20.091782 L 16.7806,19.780508 L 17.71612,19.231083 L 18.63696,18.44988 C 18.931293,18.112229 19.174857,17.772988 19.45207,17.424144 L 19.9457,16.397856 L 20.14624,15.451388 L 20.14865,10.16363 L 19.68603,9.241812 L 19.15161,8.806177 L 18.37577,8.654044 L 17.49008,8.843766 L 16.89884,9.328155 L 16.53754,10.006535 L 16.53677,14.965277 L 16.40028,15.456554 L 15.70409,16.237666 L 15.1048,16.527777 L 13.66472,16.527777 L 13.07887,16.244171 L 12.33199,15.31326 L 12.23063,10.034722 L 11.90365,9.340277 L 11.55508,8.970105 L 10.95041,8.661623 L 10.04448,8.650114 L 9.50061,8.837818 L 8.90378,9.38796 L 8.62087,10.144099 L 8.62087,15.129847 L 8.48245,15.493935 L 7.75377,16.264406 L 7.23752,16.527777 L 5.76919,16.527777 L 5.29041,16.327731 L 4.41948,15.243055 L 4.35004,9.895833 L 3.91896,9.131944 L 3.37782,8.750225 L 2.57921,8.604072 L 1.7806,8.750225 L 1.22833,9.136239 L 0.80837,9.81527 L 0.76826,15.451388 L 0.98507,16.42962 L 1.1951,16.873719 C 1.252855,16.995846 1.62381,17.624279 1.70676,17.740522 L 2.49388,18.621206 C 2.78622,18.896987 3.77157,19.591703 4.06541,19.729208 L 4.94941,20.035214 L 5.39171,20.134525 L 7.75282,20.095971 C 8.2375523,19.941269 8.7020213,19.733511 9.17212,19.54083 z M 28.77282,19.696812 L 29.02894,19.585062 C 29.214297,19.783449 29.46973,19.886062 29.68882,20.035671 L 30.35752,20.138888 L 31.03683,20.00714 L 32.0931,18.861696 L 32.0931,13.186502 C 32.019456,12.76363 31.824093,12.378651 31.67801,11.979166 L 31.096,10.996474 L 30.19303,10.024252 L 29.22739,9.248556 L 27.82226,8.645833 L 24.97504,8.647804 L 23.89988,9.012636 L 22.82226,9.681537 L 21.70519,10.798611 L 21.06059,11.840277 L 20.68301,12.951388 L 20.61759,15.2551 L 20.84942,16.399222 C 20.997529,16.793504 21.227645,17.14748 21.42051,17.51929 L 22.13238,18.397394 L 23.01162,19.202168 L 23.86025,19.720467 L 25.04448,20.129748 L 27.50447,20.138888 C 27.934443,20.012345 28.350599,19.845508 28.77282,19.696812 z M 25.30713,16.391005 C 25.16275,16.302972 24.472095,15.589985 24.40021,15.454758 L 24.28766,15.243055 L 24.23138,13.853397 L 24.39543,13.244167 L 24.75897,12.880627 L 25.12251,12.517086 L 25.59546,12.27251 L 26.7806,12.206185 L 27.35873,12.363195 L 28.02249,12.82061 L 28.48198,13.487387 L 28.48146,15.243055 L 28.33576,15.48611 C 28.231205,15.660515 27.690365,16.214796 27.51353,16.328779 L 27.20479,16.527777 L 25.5306,16.527258 L 25.30713,16.391005 z M 27.04558,15.755403 C 27.1577,15.6978 27.633805,15.231723 27.68957,15.124976 L 27.68551,13.61524 L 26.99629,12.986111 L 25.79449,12.986111 L 25.00976,13.711458 L 25.00976,15.018328 L 25.80589,15.833333 L 27.04558,15.755403 z M 36.54538,19.166666 L 36.74419,17.743055 L 36.7806,16.631944 L 41.71115,19.811648 L 42.4056,20.137531 L 43.30837,20.135838 L 43.86512,19.882913 L 44.33537,19.347333 L 44.59403,18.762585 L 44.67882,18.143929 L 44.2932,17.284655 L 43.61224,16.672413 L 40.2181,14.432615 L 40.22239,14.270833 C 40.879498,13.837117 43.490253,12.076501 44.1329,11.621857 C 44.18309,11.575321 44.416065,11.255316 44.45425,11.180472 L 44.59157,10.402072 L 44.46265,9.615367 L 44.00147,9.041103 L 43.2883,8.637011 L 42.63415,8.570652 L 42.03527,8.780433 L 36.80178,12.109687 L 36.74587,2.31374 L 36.54707,1.653157 L 36.17245,1.112584 L 35.40417,0.736701 L 34.48893,0.733404 L 33.95618,0.91748 L 33.45998,1.353156 L 33.13612,2.048611 L 33.13612,18.784721 L 33.46093,19.479166 L 33.9301,19.935521 L 34.55837,20.137522 L 35.5306,20.0914 C 35.992913,19.930621 36.230352,19.500764 36.54538,19.166666 z").attr({fill:"#000",stroke:"#000","stroke-width":"0",opacity:"0.4","stroke-opacity":"0"});var l=this.paper.path("M 56.959209,20.312361 C 56.440882,20.244726 56.001555,19.948616 55.530602,19.743973 C 55.136598,19.423436 54.69356,19.154978 54.331946,18.800041 C 53.757674,18.135347 53.178055,17.428758 52.88401,16.592471 C 52.784311,16.142676 52.596798,15.703891 52.649097,15.235046 C 52.65914,14.568133 52.631804,13.897287 52.664996,13.232812 C 52.769793,12.78139 52.811099,12.308288 53.060678,11.906305 C 53.459916,11.004452 54.160743,10.285872 54.867149,9.6197522 C 55.305481,9.3470712 55.703535,8.9982021 56.20406,8.8431549 C 56.815475,8.6170435 57.458111,8.4259529 58.116176,8.4739387 C 58.630421,8.4901304 59.151597,8.4379635 59.661257,8.4993815 C 60.124348,8.6062785 60.61085,8.6424223 61.02684,8.8916613 C 61.37842,9.036393 61.709384,9.2153505 61.99646,9.4671612 C 62.963978,10.217089 63.741193,11.20512 64.259109,12.313169 C 64.410179,11.963245 64.37292,12.418405 64.404401,12.579714 C 64.531608,13.532204 64.473379,14.493515 64.487411,15.451388 C 64.446157,15.905695 64.404902,16.360002 64.363647,16.814308 C 64.244354,16.476541 64.166492,16.902885 64.073137,17.04348 C 63.919417,17.447708 63.660794,17.788105 63.394052,18.123562 C 63.032905,18.637349 62.511301,19.006444 62.072681,19.450371 C 61.599048,19.719468 61.1553,20.052055 60.621281,20.192862 C 60.337267,20.301578 60.055011,20.420008 59.744045,20.37972 C 58.943248,20.380428 58.138058,20.423427 57.339981,20.397957 C 57.213057,20.369425 57.086133,20.340893 56.959209,20.312361 z M 59.649651,16.534351 C 60.045619,16.377843 60.268977,15.981287 60.544809,15.679681 C 60.934258,15.04778 60.762822,14.276924 60.74975,13.557284 C 60.658177,13.162124 60.296508,12.93495 60.053879,12.633737 C 59.844345,12.430846 59.532202,12.36875 59.280602,12.223579 C 58.79516,12.232093 58.302608,12.205056 57.82149,12.235187 C 57.550144,12.335119 57.285855,12.445905 57.100641,12.678268 C 56.871302,12.911499 56.576252,13.097002 56.479665,13.426652 C 56.317426,14.045239 56.415023,14.71562 56.427484,15.352273 C 56.526312,15.602462 56.656555,15.830298 56.873804,15.996209 C 57.206053,16.296481 57.560236,16.739982 58.055482,16.665968 C 58.509117,16.655736 58.972766,16.687212 59.420257,16.651383 C 59.496721,16.612373 59.573186,16.573362 59.649651,16.534351 z").attr({fill:"#000",stroke:"#000","stroke-width":"0",opacity:"0.4","stroke-opacity":"0"}),k=this.paper.path("M 48.829208,20.31222 C 48.475841,20.26696 48.15923,20.117402 47.848722,19.950523 C 47.500983,19.784652 47.148567,19.626111 46.868692,19.353899 C 46.527053,19.072235 46.150785,18.825368 45.901675,18.450726 C 45.750138,18.076852 45.370555,18.002256 45.370279,18.167118 C 45.408175,17.816897 45.169729,17.536553 45.044033,17.227794 C 44.94573,16.895387 44.622935,16.655396 44.61657,16.304934 C 44.565627,15.306511 44.530037,14.303668 44.515945,13.305312 C 44.615598,12.912874 44.670961,12.505081 44.765879,12.117294 C 45.004171,11.750482 45.201926,11.358687 45.323891,10.9375 C 45.553614,10.988884 45.628283,10.705038 45.777569,10.582517 C 46.397513,9.8712187 47.155265,9.2586612 48.008947,8.8558433 C 48.362028,8.7462212 48.706058,8.5832266 49.064931,8.5077636 C 50.002562,8.515315 50.944553,8.4964143 51.879464,8.5204694 C 52.358793,8.7029965 52.880412,8.7941701 53.302926,9.0994288 C 53.727448,9.3447325 54.116873,9.6447143 54.4785,9.974781 C 53.689823,10.786927 52.957902,11.719351 52.7408,12.859186 C 52.656166,13.014283 52.725699,13.637005 52.493893,13.255432 C 52.26722,13.027948 52.078437,12.750492 51.828419,12.553793 C 51.573248,12.453152 51.341001,12.255113 51.069884,12.222222 C 50.613742,12.230523 50.151009,12.205955 49.698865,12.234195 C 49.451044,12.336146 49.18894,12.416137 49.01877,12.637477 C 48.767275,12.898046 48.43867,13.10057 48.31405,13.456643 C 48.228577,14.101722 48.281667,14.767525 48.291744,15.419297 C 48.548606,15.737127 48.719534,16.140787 49.089953,16.345199 C 49.287991,16.464636 49.450473,16.689759 49.706248,16.63757 C 50.227433,16.640826 50.758021,16.685037 51.273435,16.663162 C 51.836961,16.39513 52.299009,15.932894 52.60545,15.392538 C 52.714172,15.813326 52.754796,16.257044 52.907221,16.663117 C 53.241271,17.476142 53.779385,18.177558 54.355564,18.833131 C 54.558494,19.246583 53.691442,19.468074 53.440246,19.746846 C 52.970891,20.021773 52.453932,20.244291 51.926826,20.369292 C 51.034896,20.379064 50.140989,20.408275 49.250288,20.40596 C 49.109928,20.374713 48.969568,20.343466 48.829208,20.31222 z").attr({fill:"#000",stroke:"#000","stroke-width":"0",opacity:"0.4","stroke-opacity":"0"}),j,i;if(this.options.watermark_location=="middle"){j=(this.graph_width-118)/2+this.x_padding_left;i=(this.graph_height-29)/2+this.y_padding_top}else{j=this.graph_width-118+this.x_padding_left-10;i=this.graph_height-29+this.y_padding_top-7}h.translate(j,i);l.translate(j,i);k.translate(j,i);this.drawLinesInit(this,g);if(this.options.stacked_fill){h.toFront();k.toFront();l.toFront()}},drawGrid:function(){var f=this.paper.path().attr({stroke:this.options.grid_color}),e,h;e=this.graph_height+this.y_padding_top;for(var g=0;g<this.y_label_count+1;g++){f.moveTo(this.x_padding_left-0.5,parseInt(e,10)+0.5);f.lineTo(this.x_padding_left+this.graph_width-0.5,parseInt(e,10)+0.5);e-=this.graph_height/this.y_label_count}e=this.x_padding_left+this.options.plot_padding+this.grid_start_offset;h=this.options.labels.length;for(g=0;g<h;g++){if(this.options.hide_empty_label_grid===true&&this.options.labels[g]!==""||this.options.hide_empty_label_grid===false){f.moveTo(parseInt(e,10),this.y_padding_top);f.lineTo(parseInt(e,10),this.y_padding_top+this.graph_height)}e+=this.step}},drawLines:function(v,u,t,s,r,q){var p=this.calculateCoords(t),o=this.graph_height+this.y_padding_top,m,n,l;if(this.options.start_at_zero===false){l=0;$A(p).each(function(a){a[1]===o&&l++});this.options.odd_horizontal_offset=l;this.options.odd_horizontal_offset>1&&p.splice(0,this.options.odd_horizontal_offset)}if(this.options.stacked_fill||this.options.area){if(this.options.area){v=this.options.area_opacity?this.options.area_opacity:1.5/this.data_sets.collect(function(a){return a.length}).length;m=this.paper.path().attr({stroke:u,fill:u,"stroke-width":"0",opacity:v,"stroke-opacity":0})}else{m=this.paper.path().attr({stroke:u,fill:u,"stroke-width":"0"})}p.unshift([p[0][0],o]);p.push([p[p.length-1][0],o])}else{m=this.paper.path().attr({stroke:u,"stroke-width":this.options.stroke_width+"px"})}$A(p).each(function(b,a){this.drawPlot(a,m,b[0],b[1],u,p,s,r,q)}.bind(this));if(this.options.area&&this.options.stroke_width>0){n=this.paper.path().attr({stroke:u,"stroke-width":this.options.stroke_width+"px"});p.remove(0);p.remove(-1);$A(p).each(function(b,a){this.drawPlot(a,n,b[0],b[1],u,p,s,r,q,true)}.bind(this));this.globalAreaLineSet.push(n)}if(this.options.datalabels){this.drawHover(m,s,r,u);this.globalHoverSet.toFront()}},calculateCoords:function(e){var d=this.x_padding_left+this.options.plot_padding-this.step,f=this.graph_height+this.y_padding_top+this.normalise(this.start_value);return $A(e).collect(function(a){a=f-a;d+=this.step;return[d,a]}.bind(this))},drawFocusHint:function(){var e=this.x_padding_left+2.5-1,d=this.options.height-this.y_padding_bottom,f=this.paper.path().attr({stroke:this.options.label_color,"stroke-width":2});f.moveTo(e,d);f.lineTo(e-5,d-5);f.moveTo(e,d-5);f.lineTo(e-5,d-10)},drawMeanLine:function(d){var c=this.paper.path().attr(this.options.meanline);d=$A(d).inject(0,function(b,a){return a+b})/d.length-0.5;d=this.options.bar?d+this.zero_value*(this.graph_height/this.y_label_count):d;c.moveTo(this.x_padding_left-1,this.options.height-this.y_padding_bottom-d).lineTo(this.graph_width+this.x_padding_left,this.options.height-this.y_padding_bottom-d)},drawAxis:function(){var b=this.paper.path().attr({stroke:this.options.label_color});b.moveTo(parseInt(this.x_padding_left,10)-0.5,this.options.height-parseInt(this.y_padding_bottom,10)+0.5);b.lineTo(parseInt(this.graph_width+this.x_padding_left,10)-0.5,this.options.height-parseInt(this.y_padding_bottom,10)+0.5);b.moveTo(parseInt(this.x_padding_left,10)-0.5,parseInt(this.options.height-this.y_padding_bottom,10)+0.5);b.lineTo(parseInt(this.x_padding_left,10)-0.5,parseInt(this.y_padding_top,10))},makeValueLabels:function(g){for(var f=this.label_step,j=this.start_value,i=[],h=0;h<g;h++){j=this.roundValue(j+f,3);i.push(j)}return i},drawMarkers:function(x,w,v,u,t,s){function r(a){return a*w[0]}function q(a){return a*w[1]}var o=parseInt(this.x_padding_left,10)-0.5+r(u),p=this.options.height-this.y_padding_bottom+q(u),n=this.paper.path().attr({stroke:this.options.label_color}),m={font:this.options.font_size+'px "Arial"',stroke:"none",fill:this.options.label_color};Object.extend(m,s||{});x.each(function(a){if(this.options.draw_axis&&(this.options.hide_empty_label_grid===true&&a!==""||this.options.hide_empty_label_grid===false)){n.moveTo(parseInt(o,10),parseInt(p,10)+0.5);n.lineTo(parseInt(o,10)+q(5),parseInt(p,10)+0.5+r(5))}this.paper.text(o+t[0],p-2-t[1],a.toString()).attr(m).toFront();o+=r(v);p+=q(v)}.bind(this))},drawVerticalLabels:function(){for(var e=this.graph_height/this.y_label_count,d=this.options.vertical_label_unit?" "+this.options.vertical_label_unit:"",f=0;f<this.value_labels.length;f++){this.value_labels[f]+=d}this.drawMarkers(this.value_labels,[0,-1],e,e,[-8,-2],{"text-anchor":"end"})},drawHorizontalLabels:function(){var e=this.options.label_rotation?{rotation:this.options.label_rotation,translation:-this.options.font_size+" 0"}:{},d=this.options.labels;if(this.options.label_max_size){for(var f=0;f<d.length;f++){d[f]=d[f].truncate(this.options.label_max_size+1,"\u2026")}}this.drawMarkers(d,[1,0],this.step,this.options.plot_padding,[0,(this.options.font_size+7)*-1],e)},drawHover:function(r,q,p,o){var n=this.options.stacked_fill||this.options.area?"fill":"stroke",m=this.options.hover_color||o,l=this.paper.set();q=this.paper.text(r.attrs.x,r.attrs.y-this.options.font_size*1.5-4,q).attr({"font-size":this.options.font_size,fill:this.options.hover_text_color,opacity:1});var k=q.getBBox(),i=this.drawRoundRect(q,k,4);q.toFront();l.push(i,q).attr({opacity:0}).toFront();this.checkHoverPos({rect:i,set:l});this.globalHoverSet.push(l);r.node.onmouseover=function(a){n==="fill"?r.animate({fill:m,stroke:m},200):r.animate({stroke:m},200);a=this.getMousePos(a);l[0].attr({x:a.x-k.width/2-4-p.offsetLeft,y:a.y-k.height/2-this.options.font_size*1.5-4-p.offsetTop,opacity:1});l[1].attr({x:a.x-p.offsetLeft,y:a.y-this.options.font_size*1.5-p.offsetTop,opacity:1});r.node.onmousemove=function(b){b=this.getMousePos(b);l[0].attr({x:b.x-k.width/2-4-p.offsetLeft,y:b.y-k.height/2-this.options.font_size*1.5-4-p.offsetTop,opacity:1});l[1].attr({x:b.x-p.offsetLeft,y:b.y-this.options.font_size*1.5-p.offsetTop,opacity:1});this.checkHoverPos(i,l)}.bind(this)}.bind(this);r.node.onmouseout=function(){n==="fill"?r.animate({fill:o,stroke:o},200):r.animate({stroke:o},200);l.attr({opacity:0})}},checkHoverPos:function(i){var h,n,m,l,k,j;if(i.rect){h=i.rect;n=h.getBBox()}if(i.set){m=i.set}if(i.marker){l=i.marker}if(i.nib){k=i.nib}if(i.textpadding){j=i.textpadding}if(h&&m){if(h.attrs.y<0){if(k&&l){m.translate(0,m.getBBox().height+j*2);l.translate(0,-m.getBBox().height-j*2);k.translate(0,-n.height-j+1.5).scale(1,-1)}else{i=h.attrs.y;m.translate(0,1+i*-1)}}if(h.attrs.y+n.height>this.options.height){i=h.attrs.y+n.height-this.options.height;m.translate(0,i*-1-1);l&&l.translate(0,i+1)}if(h.attrs.x<0){i=h.attrs.x;m.translate(i*-1+1,0);k&&k.translate(i-1,0);l&&l.translate(i-1,0)}if(h.attrs.x+n.width>this.options.width){i=h.attrs.x+n.width-this.options.width;m.translate(i*-1-1,0);k&&k.translate(i+1,0);l&&l.translate(i+1,0)}}},drawNib:function(e,d,f){return this.paper.path().attr({fill:this.options.label_color,opacity:1,stroke:this.options.label_color,"stroke-width":"0px"}).moveTo(e.attrs.x-f,e.attrs.y+d.height/2+f-1).lineTo(e.attrs.x,e.attrs.y+d.height/2+f*2).lineTo(e.attrs.x+f,e.attrs.y+d.height/2+f-1).andClose()},drawRoundRect:function(e,d,f){return this.paper.rect(e.attrs.x-d.width/2-f,e.attrs.y-d.height/2-f,d.width+f*2,d.height+f*2,f*1.5).attr({fill:this.options.label_color,opacity:1,stroke:this.options.label_color,"stroke-width":"0px"})}});Array.prototype.sum=function(){for(var d=0,c=0;d<this.length;c+=this[d++]){}return c};if(typeof Array.prototype.max==="undefined"){Array.prototype.max=function(){return Math.max.apply({},this)}}if(typeof Array.prototype.min==="undefined"){Array.prototype.min=function(){return Math.min.apply({},this)}}Array.prototype.mean=function(){return this.sum()/this.length};Array.prototype.variance=function(){for(var e=this.mean(),d=0,f=0;f<this.length;f++){d+=Math.pow(this[f]-e,2)}return d/(this.length-1)};Array.prototype.standard_deviation=function(){return Math.sqrt(this.variance())};Array.prototype.remove=function(d,c){c=this.slice((c||d)+1||this.length);this.length=d<0?this.length+d:d;return this.push.apply(this,c)};Raphael.el.isAbsolute=true;Raphael.el.absolutely=function(){this.isAbsolute=1;return this};Raphael.el.relatively=function(){this.isAbsolute=0;return this};Raphael.el.moveTo=function(d,c){this._last={x:d,y:c};return this.attr({path:this.attrs.path+["m","M"][+this.isAbsolute]+parseFloat(d)+" "+parseFloat(c)})};Raphael.el.lineTo=function(d,c){this._last={x:d,y:c};return this.attr({path:this.attrs.path+["l","L"][+this.isAbsolute]+parseFloat(d)+" "+parseFloat(c)})};Raphael.el.cplineTo=function(e,d,f){this.attr({path:this.attrs.path+["C",this._last.x+f,this._last.y,e-f,d,e,d]});this._last={x:e,y:d};return this};Raphael.el.andClose=function(){return this.attr({path:this.attrs.path+"z"})};Grafico.LineGraph=Class.create(Grafico.BaseGraph,{chartDefaults:function(){return{line:true,start_at_zero:true,stroke_width:5,curve_amount:10}},setChartSpecificOptions:function(){},calculateStep:function(){return(this.graph_width-this.options.plot_padding*2)/(this.data_size-1)},startPlot:function(e,d,f){e.moveTo(d,f)},drawPlot:function(r,q,p,o,n,m,l,k,i){if(this.options.markers==="circle"){this.drawGraphMarkers(r,p,o,n,l,k)}else{this.options.markers==="value"&&this.drawGraphValueMarkers(r,p,o,n,l,k,i)}if(r===0){return this.startPlot(q,p-0.5,o,n)}this.options.curve_amount?q.cplineTo(p,o,this.options.curve_amount):q.lineTo(p,o)},drawGraphMarkers:function(j,i,p,o){var n=this.paper.circle(i,p,this.options.marker_size),m=this.options.marker_size,l=this.options.hover_color||o,k;n.attr({"stroke-width":"1px",stroke:this.options.background_color,fill:o});this.globalMarkerSet.push(n);n.node.onmouseover=function(){k=parseInt(1.7*m,10);n.animate({r:k,fill:l},200)}.bind(this);n.node.onmouseout=function(){n.animate({r:m,fill:o},200)}},drawGraphValueMarkers:function(v,u,t,s,r,q,p){if(this.options.odd_horizontal_offset>1){v+=this.options.odd_horizontal_offset}v-=this.options.stacked_fill||this.options.area?1:0;if(q=(this.options.stacked?this.real_data:this.data_sets).collect(function(a){return a[1][v]})[p]){q=""+q.toString().split(".");if(q[1]){q[1]=q[1].truncate(3,"")}}if(this.options.line||this.options.stacked||(this.options.stacked_fill||this.options.area)&&v!=-1&&typeof q!="undefined"){p=u-this.step/2;var o=this.options.stacked?t-this.graph_height/18:t-this.graph_height/6,m=this.step,n=this.options.stacked?this.graph_height/9:this.graph_height/3;u=this.paper.circle(u,t,this.options.marker_size);t=this.paper.rect(p,o,m,n);u.attr({"stroke-width":"1px",stroke:this.options.background_color,fill:s,opacity:0});t.attr({fill:s,"stroke-width":0,stroke:s,opacity:0}).toFront();r=this.options.datalabels?r+": "+q:q.toString();r+=this.options.vertical_label_unit?" "+this.options.vertical_label_unit:"";var l=this.paper.set();s=this.paper.text(u.attrs.cx,u.attrs.cy-this.options.font_size*1.5-8,r).attr({"font-size":this.options.font_size,fill:this.options.hover_text_color,opacity:1});q=s.getBBox();r=this.drawRoundRect(s,q,4);q=this.drawNib(s,q,4);s.toFront();l.push(u,r,q,s).attr({opacity:0}).toFront();this.checkHoverPos({rect:r,set:l,marker:u,nib:q,textpadding:4});this.globalHoverSet.push(l);this.globalBlockSet.push(t);t.node.onmouseover=function(){l.animate({opacity:1},200)};t.node.onmouseout=function(){l.animate({opacity:0},200)}}}});Grafico.AreaGraph=Class.create(Grafico.LineGraph,{chartDefaults:function(){return{area:true,area_opacity:false,stroke_width:0}},setChartSpecificOptions:function(){if(typeof this.options.curve_amount==="undefined"){this.options.curve_amount=10}},drawPlot:function(v,u,t,s,r,q,p,o,m,n){var l=this.options.area||this.options.stacked_fill;if(!n){if(l===true){if(v!==0&&v!==q.length-1){if(this.options.markers==="circle"){this.drawGraphMarkers(v,t,s,r,p,o)}else{this.options.markers==="value"&&this.drawGraphValueMarkers(v,t,s,r,p,o,m)}}}else{if(this.options.markers==="circle"){this.drawGraphMarkers(v,t,s,r,p,o)}else{this.options.markers==="value"&&this.drawGraphValueMarkers(v,t,s,r,p,o,m)}}}t-=0.5;if(v===0){return this.startPlot(u,t,s,r)}if(this.options.curve_amount&&v>1&&v<q.length-1){u.cplineTo(t,s,this.options.curve_amount)}else{this.options.curve_amount&&!l&&1?u.cplineTo(t,s,this.options.curve_amount):u.lineTo(t,s)}}});Grafico.StackGraph=Class.create(Grafico.AreaGraph,{chartDefaults:function(){return{stacked:true,stacked_fill:true,stroke_width:5}},normaliserOptions:function(){},stackData:function(d){this.stacked_data=d.collect(function(a){return a[1]});this.stacked_data.reverse();for(d=1;d<this.stacked_data.length;d++){for(var c=0;c<this.stacked_data[0].length;c++){this.stacked_data[d][c]+=this.stacked_data[d-1][c]}}this.stacked_data.reverse();return this.stacked_data}});Grafico.BarGraph=Class.create(Grafico.BaseGraph,{chartDefaults:function(){return{bar:true,plot_padding:0,bargraph_lastcolour:false,bargraph_negativecolour:false}},normaliserOptions:function(){return{start_value:0,bar:true}},setChartSpecificOptions:function(){this.bar_padding=5;this.bar_width=this.calculateBarWidth();this.options.plot_padding=this.bar_width/2;this.step=this.calculateStep();this.grid_start_offset=this.bar_padding-1},calculateBarWidth:function(){return this.graph_width/this.data_size-this.bar_padding},calculateStep:function(){this.data_size=this.data_size===1?2:this.data_size;return(this.graph_width-this.options.plot_padding*2-this.bar_padding*2)/(this.data_size-1)},drawPlot:function(r,q,p,o,n,m,l){q=this.options.height-this.y_padding_bottom-this.zero_value*(this.graph_height/this.y_label_count);var k=this.options.bargraph_lastcolour,i=this.options.bargraph_negativecolour;p+=this.bar_padding;o=this.options.height-this.y_padding_bottom-o-this.zero_value*(this.graph_height/this.y_label_count);n=k&&r===m.length-1?k:o<0?i:n;m=this.paper.rect(p-this.bar_width/2,q,this.bar_width,o).attr({fill:n,"stroke-width":0,stroke:n});o<0?m.attr({height:-m.attrs.height}):m.translate(0,-o);this.options.datalabels&&this.drawGraphValueMarkers(p,r,m,l,n);this.options.count++},drawHorizontalLabels:function(){var f=this.bar_padding+this.options.plot_padding,e=this.options.label_rotation?{rotation:this.options.label_rotation,translation:-this.options.font_size+" 0"}:{},h=this.options.labels;if(this.options.label_max_size){for(var g=0;g<h.length;g++){h[g]=h[g].truncate(this.options.label_max_size+1,"\u2026")}}this.drawMarkers(this.options.labels,[1,0],this.step,f,[0,(this.options.font_size+7)*-1],e)},drawGrid:function(){var g=this.paper.path().attr({stroke:this.options.grid_color}),f=this.graph_height+this.y_padding_top,j,i;if(this.options.horizontalbar){g.moveTo(this.x_padding_left-0.5,parseInt(f,10)+0.5);g.lineTo(this.x_padding_left+this.graph_width-0.5,parseInt(f,10)+0.5);f-=this.graph_height;g.moveTo(this.x_padding_left-0.5,parseInt(f,10)+0.5);g.lineTo(this.x_padding_left+this.graph_width-0.5,parseInt(f,10)+0.5)}else{for(var h=0;h<this.y_label_count+1;h++){g.moveTo(this.x_padding_left-0.5,parseInt(f,10)+0.5);g.lineTo(this.x_padding_left+this.graph_width-0.5,parseInt(f,10)+0.5);f-=this.graph_height/this.y_label_count}}if(this.options.horizontalbar){f=this.x_padding_left+this.options.plot_padding+this.grid_start_offset;j=this.y_label_count;i=this.options.horizontalbar?this.graph_width/this.y_label_count:this.step;for(h=0;h<j;h++){if(this.options.hide_empty_label_grid===true&&this.options.labels[h]!==""||this.options.hide_empty_label_grid===false){g.moveTo(parseInt(f,10),this.y_padding_top);g.lineTo(parseInt(f,10),this.y_padding_top+this.graph_height)}f+=i}}g.moveTo(parseInt(this.x_padding_left,10)-0.5,this.y_padding_top);g.lineTo(parseInt(this.x_padding_left,10)-0.5,this.y_padding_top+this.graph_height);g.moveTo(parseInt(this.x_padding_left+this.graph_width,10)-0.5,this.y_padding_top);g.lineTo(parseInt(this.x_padding_left+this.graph_width,10)-0.5,this.y_padding_top+this.graph_height)},drawGraphValueMarkers:function(j,i,p,o,n){var m=this.options.hover_color||n,l=this.paper.set();j=this.paper.rect(j-this.bar_width/2,this.y_padding_top,this.bar_width,this.options.height);o=o[i].toString();i=this.paper.text(p.attrs.x+this.bar_width/2,p.attrs.y-this.options.font_size*1.5,o);j.attr({fill:n,"stroke-width":0,stroke:n,opacity:0});i.attr({"font-size":this.options.font_size,fill:this.options.hover_text_color,opacity:1});var k=i.getBBox();o=this.drawRoundRect(i,k,4);k=this.drawNib(i,k,4);i.toFront();l.push(o,k,i).attr({opacity:0}).toFront();j.toFront();this.checkHoverPos({rect:o,set:l,nib:k});this.globalHoverSet.push(l);this.globalBlockSet.push(j);o.attrs.y<0&&l.translate(0,1+o.attrs.y*-1);j.node.onmouseover=function(){p.animate({fill:m,stroke:m},200);l.animate({opacity:1},200)}.bind(this);j.node.onmouseout=function(){p.animate({fill:n,stroke:n},200);l.animate({opacity:0},200)}}});Grafico.HorizontalBarGraph=Class.create(Grafico.BarGraph,{chartDefaults:function(){return{bar:true,horizontalbar:true,plot_padding:0,horizontal_rounded:false,bargraph_lastcolour:false}},setChartSpecificOptions:function(){this.x_padding_left=20+this.longestLabel()*(this.options.font_size/2);this.bar_padding=5;this.bar_width=this.calculateBarHeight();this.step=this.calculateStep();this.graph_width=this.options.width-this.x_padding_right-this.x_padding_left},normalise:function(d){var c=this.makeValueLabels(this.y_label_count);c=c[c.length-1];return d/c*this.graph_width},longestLabel:function(){return $A(this.options.labels).sort(function(d,c){return d.toString().length<c.toString().length}).first().toString().length},calculateBarHeight:function(){return this.graph_height/this.data_size-this.bar_padding},calculateStep:function(){return(this.graph_height-this.options.plot_padding*2)/this.data_size},drawLines:function(r,q,p,o){var n=this.y_padding_top+this.bar_padding/2-0.5,m=this.zero_value*(this.graph_width/this.y_label_count),l=this.x_padding_left+m-0.5,k=this.options.bargraph_lastcolour,i=this.options.bargraph_negativecolour;this.datalabel=o;$A(p).each(function(d,c){var b,a=this.options.horizontal_rounded?this.bar_width/2:0,h;b=k&&c===p.length-1?k:d<0?i:q;d=d/this.graph_width*(this.graph_width-m);h=this.paper.rect(l,n,d,this.bar_width,a).attr({fill:b,"stroke-width":0,stroke:b});d<0&&h.attr({width:-h.attrs.width}).translate(d,0);if(a){var f=this.paper.set();bargraph2=this.paper.rect(l,n,d-this.bar_width/2,this.bar_width);bargraph2.attr({fill:b,"stroke-width":0,stroke:b});h.toFront();f.push(bargraph2,h);d<0&&bargraph2.attr({width:-bargraph2.attrs.width-this.bar_width}).translate(d+this.bar_width/2,0)}if(this.options.datalabels){var e=this.options.hover_color||b,g=this.paper.set();a=this.paper.rect(this.x_padding_left,n,this.graph_width,this.bar_width);o=this.datalabel[c].toString();c=this.paper.text(m+d+this.x_padding_left/2,h.attrs.y-this.options.font_size*1.5,o);a.attr({fill:b,"stroke-width":0,stroke:b,opacity:0});c.attr({"font-size":this.options.font_size,fill:this.options.hover_text_color,opacity:1});d<0&&c.translate(c.getBBox().width,0);h=c.getBBox();d=this.drawRoundRect(c,h,4);h=this.drawNib(c,h,4);c.toFront();g.push(d,h,c).attr({opacity:0}).toFront();a.toFront();this.checkHoverPos({rect:d,set:g,nib:h});this.globalHoverSet.push(g);this.globalBlockSet.push(a);d.attrs.y<0&&g.translate(0,1+d.attrs.y*-1);a.node.onmouseover=function(){f.animate({fill:e,stroke:e},200);g.animate({opacity:1},200)}.bind(this);a.node.onmouseout=function(){f.animate({fill:b,stroke:b},200);g.animate({opacity:0},200)}}n+=this.step}.bind(this))},drawFocusHint:function(){var d=this.x_padding_left+10,c=this.options.height-this.y_padding_bottom-2.5;this.paper.path().attr({stroke:this.options.label_color,"stroke-width":2}).moveTo(d,c).lineTo(d-5,c+5).moveTo(d-5,c).lineTo(d-10,c+5)},drawVerticalLabels:function(){var f=this.step/2,e=this.options.label_rotation?{"text-anchor":"end",rotation:this.options.label_rotation,translation:"0 "+this.options.font_size/2}:{"text-anchor":"end"},h=this.options.labels;if(this.options.label_max_size){for(var g=0;g<h.length;g++){h[g]=h[g].truncate(this.options.label_max_size+1,"\u2026")}}this.drawMarkers(this.options.labels.reverse(),[0,-1],this.step,f,[-8,-(this.options.font_size/5)],e)},drawHorizontalLabels:function(){var e=this.graph_width/this.y_label_count,d=this.makeValueLabels(this.y_label_count);if(this.options.vertical_label_unit){for(var f=0;f<d.length;f++){d[f]+=this.options.vertical_label_unit}}this.drawMarkers(d,[1,0],e,e,[0,(this.options.font_size+7)*-1])},drawMeanLine:function(d){var c=this.paper.path().attr(this.options.meanline);d=$A(d).inject(0,function(b,a){return a+b})/d.length;d=this.options.bar?d+this.zero_value*(this.graph_height/this.y_label_count):d;c.moveTo(this.x_padding_left-1+d,this.y_padding_top).lineTo(this.x_padding_left-1+d,this.y_padding_top+this.graph_height)}});Grafico.SparkLine=Class.create(Grafico.Base,{initialize:function(e,d,f){this.element=e;this.data=d;this.options={highlight:false,stroke_width:1,color:this.makeRandomColour(),width:parseInt(e.getStyle("width"),10),height:parseInt(e.getStyle("height"),10),acceptable_range:false,zeroline:false};Object.extend(this.options,f||{});this.step=this.calculateStep();this.paper=new Raphael(this.element,this.options.width,this.options.height);this.background=this.options.acceptable_range?this.paper.rect(0,this.options.height-this.normalise(this.options.acceptable_range[1]),this.options.width,this.normalise(this.options.acceptable_range[0])):(this.background=this.paper.rect(0,0,this.options.width,this.options.height));this.background.attr({fill:this.options.background_color,stroke:"none"});this.draw()},calculateStep:function(){return this.options.width/(this.data.length-1)},makeRandomColour:function(){return Raphael.hsb2rgb(Math.random(),1,0.75).hex},normalise:function(d){var c=this.data.min()<0?this.data.max()-this.data.min():this.data.max();d-=this.data.min()<0?this.data.min():0;return d/c*this.options.height},draw:function(){var d=this.normaliseData(this.data),c;if(this.options.zeroline&&this.data.min()<0){this.options.zeroline=this.options.zeroline===true?{"stroke-width":"1px",stroke:"#BBBBBB"}:this.options.zeroline;c=parseInt(this.options.height-this.normalise(0),10);this.paper.path().attr(this.options.zeroline).moveTo(0,c).lineTo(this.options.width,c)}this.drawLines(this.options.color,d);this.options.highlight&&this.showHighlight(d)},drawLines:function(g,f){var j=this.paper.path().attr({stroke:g,"stroke-width":this.options.stroke_width}).moveTo(0,this.options.height-f.first()),i=0,h=this.data.min()<0?this.options.stroke_width:0;f.slice(1).each(function(a){i+=this.step;j.lineTo(i,this.options.height-a-h)}.bind(this))},showHighlight:function(f){var e=1+this.options.stroke_width/2,h=this.options.width-e;f=f[this.options.highlight.index||f.length-1]+(e/2).round();var g=this.options.highlight.color||"#f00";if(typeof this.options.highlight.index!=="undefined"){h=this.step*this.options.highlight.index}this.paper.circle(h,this.options.height-f+e/2,e).attr({stroke:false,fill:g})}});Grafico.SparkBar=Class.create(Grafico.SparkLine,{calculateStep:function(){return this.options.width/this.data.length},drawLines:function(h,g){var l=this.options.bargraph_lastcolour,k=this.step>2?this.step-1:this.step,j=k/2,i=this.normalise(0);g.each(function(c,b){var a;b=l&&b===g.length-1?l:h;a=this.paper.path().attr({stroke:b,"stroke-width":k});a.moveTo(j,this.options.height-c);a.lineTo(j,this.options.height-i);if(c<i){a.attr({stroke:this.options.bargraph_negativecolour||b})}j+=this.step}.bind(this))},showHighlight:function(){}});Grafico.SparkArea=Class.create(Grafico.SparkLine,{drawLines:function(r,q){var p=r,o=r,n=0.2,m=this.normalise(0);if(typeof r=="object"){p=r[1];o=r[0];n=1}var l=this.paper.path().attr({fill:p,stroke:p,"stroke-width":0,"stroke-opacity":0,opacity:n}).moveTo(0,this.options.height-m).lineTo(0,this.options.height-q.first()),k=this.paper.path().attr({stroke:o,"stroke-width":this.options.stroke_width}).moveTo(0,this.options.height-q.first()),i=0;q.slice(1).each(function(a){i+=this.step;l.lineTo(i,this.options.height-a);k.lineTo(i,this.options.height-a)}.bind(this));l.lineTo(i,this.options.height-m)}});