var MooTools={version:"1.2.0",build:""};var Native=function(O){O=O||{};var S=O.afterImplement||function(){};var R=O.generics;R=(R!==false);var Q=O.legacy;var T=O.initialize;var M=O.protect;var N=O.name;var L=T||Q;L.constructor=Native;L.$family={name:"native"};if(Q&&T){L.prototype=Q.prototype}L.prototype.constructor=L;if(N){var K=N.toLowerCase();L.prototype.$family={name:K};Native.typize(L,K)}var P=function(D,B,C,A){if(!M||A||!D.prototype[B]){D.prototype[B]=C}if(R){Native.genericize(D,B,M)}S.call(D,B,C);return D};L.implement=function(A,B,C){if(typeof A=="string"){return P(this,A,B,C)}for(var D in A){P(this,D,A[D],B)}return this};L.alias=function(D,B,C){if(typeof D=="string"){D=this.prototype[D];if(D){P(this,B,D,C)}}else{for(var A in D){this.alias(A,D[A],B)}}return this};return L};Native.implement=function(F,G){for(var H=0,E=F.length;H-1:this.indexOf(C)>-1},trim:function(){return this.replace(/^\s+|\s+$/g,"")},clean:function(){return this.replace(/\s+/g," ").trim()},camelCase:function(){return this.replace(/-\D/g,function(B){return B.charAt(1).toUpperCase()})},hyphenate:function(){return this.replace(/[A-Z]/g,function(B){return("-"+B.charAt(0).toLowerCase())})},capitalize:function(){return this.replace(/\b[a-z]/g,function(B){return B.toUpperCase()})},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},toInt:function(B){return parseInt(this,B||10)},toFloat:function(){return parseFloat(this)},hexToRgb:function(D){var C=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(C)?C.slice(1).hexToRgb(D):null},rgbToHex:function(D){var C=this.match(/\d{1,3}/g);return(C)?C.rgbToHex(D):null},stripScripts:function(F){var D="";var E=this.replace(/]*>([\s\S]*?)<\/script>/gi,function(){D+=arguments[1]+"\n";return""});if(F===true){$exec(D)}else{if($type(F)=="function"){F(D,E)}}return E},substitute:function(C,D){return this.replace(D||(/\\?\{([^}]+)\}/g),function(A,B){if(A.charAt(0)=="\\"){return A.slice(1)}return(C[B]!=undefined)?C[B]:""})}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(D){for(var C in this){if(this.hasOwnProperty(C)&&this[C]===D){return C}}return null},hasValue:function(B){return(Hash.keyOf(this,B)!==null)},extend:function(B){Hash.each(B,function(A,D){Hash.set(this,D,A)},this);return this},combine:function(B){Hash.each(B,function(A,D){Hash.include(this,D,A)},this);return this},erase:function(B){if(this.hasOwnProperty(B)){delete this[B]}return this},get:function(B){return(this.hasOwnProperty(B))?this[B]:null},set:function(C,D){if(!this[C]||this.hasOwnProperty(C)){this[C]=D}return this},empty:function(){Hash.each(this,function(D,C){delete this[C]},this);return this},include:function(F,E){var D=this[F];if(D==undefined){this[F]=E}return this},map:function(F,E){var D=new Hash;Hash.each(this,function(A,B){D.set(B,F.call(E,A,B,this))},this);return D},filter:function(F,E){var D=new Hash;Hash.each(this,function(A,B){if(F.call(E,A,B,this)){D.set(B,A)}},this);return D},every:function(F,E){for(var D in this){if(this.hasOwnProperty(D)&&!F.call(E,this[D],D)){return false}}return true},some:function(F,E){for(var D in this){if(this.hasOwnProperty(D)&&F.call(E,this[D],D)){return true}}return false},getKeys:function(){var B=[];Hash.each(this,function(A,D){B.push(D)});return B},getValues:function(){var B=[];Hash.each(this,function(A){B.push(A)});return B},toQueryString:function(C){var D=[];Hash.each(this,function(A,B){if(C){B=C+"["+B+"]"}var G;switch($type(A)){case"object":G=Hash.toQueryString(A,B);break;case"array":var H={};A.each(function(E,F){H[F]=E});G=Hash.toQueryString(H,B);break;default:G=B+"="+encodeURIComponent(A)}if(A!=undefined){D.push(G)}});return D.join("&")}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});var Event=new Native({name:"Event",initialize:function(Q,Y){Y=Y||window;var T=Y.document;Q=Q||Y.event;if(Q.$extended){return Q}this.$extended=true;var U=Q.type;var X=Q.target||Q.srcElement;while(X&&X.nodeType==3){X=X.parentNode}if(U.test(/key/)){var P=Q.which||Q.keyCode;var R=Event.Keys.keyOf(P);if(U=="keydown"){var N=P-111;if(N>0&&N<13){R="f"+N}}R=R||String.fromCharCode(P).toLowerCase()}else{if(U.match(/(click|mouse|menu)/i)){T=(!T.compatMode||T.compatMode=="CSS1Compat")?T.html:T.body;var V={x:Q.pageX||Q.clientX+T.scrollLeft,y:Q.pageY||Q.clientY+T.scrollTop};var O={x:(Q.pageX)?Q.pageX-Y.pageXOffset:Q.clientX,y:(Q.pageY)?Q.pageY-Y.pageYOffset:Q.clientY};if(U.match(/DOMMouseScroll|mousewheel/)){var W=(Q.wheelDelta)?Q.wheelDelta/120:-(Q.detail||0)/3}var Z=(Q.which==3)||(Q.button==2);var S=null;if(U.match(/over|out/)){switch(U){case"mouseover":S=Q.relatedTarget||Q.fromElement;break;case"mouseout":S=Q.relatedTarget||Q.toElement}if(!(function(){while(S&&S.nodeType==3){S=S.parentNode}return true}).create({attempt:Browser.Engine.gecko})()){S=false}}}}return $extend(this,{event:Q,type:U,page:V,client:O,rightClick:Z,wheel:W,relatedTarget:S,target:X,code:P,key:R,shift:Q.shiftKey,control:Q.ctrlKey,alt:Q.altKey,meta:Q.metaKey})}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault()},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation()}else{this.event.cancelBubble=true}return this},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault()}else{this.event.returnValue=false}return this}});var Class=new Native({name:"Class",initialize:function(D){D=D||{};var C=function(B){for(var G in this){this[G]=$unlink(this[G])}for(var A in Class.Mutators){if(!this[A]){continue}Class.Mutators[A](this,this[A]);delete this[A]}this.constructor=C;if(B===$empty){return this}var H=(this.initialize)?this.initialize.apply(this,arguments):this;if(this.options&&this.options.initialize){this.options.initialize.call(this)}return H};$extend(C,this);C.constructor=Class;C.prototype=D;return C}});Class.implement({implement:function(){Class.Mutators.Implements(this.prototype,Array.slice(arguments));return this}});Class.Mutators={Implements:function(C,D){$splat(D).each(function(A){$extend(C,($type(A)=="class")?new A($empty):A)})},Extends:function(self,klass){var instance=new klass($empty);delete instance.parent;delete instance.parentOf;for(var key in instance){var current=self[key],previous=instance[key];if(current==undefined){self[key]=previous;continue}var ctype=$type(current),ptype=$type(previous);if(ctype!=ptype){continue}switch(ctype){case"function":if(!arguments.callee.caller){self[key]=eval("("+String(current).replace(/\bthis\.parent\(\s*(\))?/g,function(full,close){return"arguments.callee._parent_.call(this"+(close||", ")})+")")}self[key]._parent_=previous;break;case"object":self[key]=$merge(previous,current)}}self.parent=function(){return arguments.callee.caller._parent_.apply(this,arguments)};self.parentOf=function(descendant){return descendant._parent_.apply(this,Array.slice(arguments,1))}}};var Chain=new Class({chain:function(){this.$chain=(this.$chain||[]).extend(arguments);return this},callChain:function(){return(this.$chain&&this.$chain.length)?this.$chain.shift().apply(this,arguments):false},clearChain:function(){if(this.$chain){this.$chain.empty()}return this}});var Events=new Class({addEvent:function(E,F,D){E=Events.removeOn(E);if(F!=$empty){this.$events=this.$events||{};this.$events[E]=this.$events[E]||[];this.$events[E].include(F);if(D){F.internal=true}}return this},addEvents:function(C){for(var D in C){this.addEvent(D,C[D])}return this},fireEvent:function(E,F,D){E=Events.removeOn(E);if(!this.$events||!this.$events[E]){return this}this.$events[E].each(function(A){A.create({bind:this,delay:D,"arguments":F})()},this);return this},removeEvent:function(D,C){D=Events.removeOn(D);if(!this.$events||!this.$events[D]){return this}if(!C.internal){this.$events[D].erase(C)}return this},removeEvents:function(G){for(var F in this.$events){if(G&&G!=F){continue}var H=this.$events[F];for(var E=H.length;E--;E){this.removeEvent(F,H[E])}}return this}});Events.removeOn=function(B){return B.replace(/^on([A-Z])/,function(D,A){return A.toLowerCase()})};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));if(!this.addEvent){return this}for(var B in this.options){if($type(this.options[B])!="function"||!(/^on[A-Z]/).test(B)){continue}this.addEvent(B,this.options[B]);delete this.options[B]}return this}});Document.implement({newElement:function(C,D){if(Browser.Engine.trident&&D){["name","type","checked"].each(function(A){if(!D[A]){return }C+=" "+A+'="'+D[A]+'"';if(A!="checked"){delete D[A]}});C="<"+C+">"}return $.element(this.createElement(C)).set(D)},newTextNode:function(B){return this.createTextNode(B)},getDocument:function(){return this},getWindow:function(){return this.defaultView||this.parentWindow},purge:function(){var E=this.getElementsByTagName("*");for(var F=0,D=E.length;F1);E.each(function(B){var A=this.getElementsByTagName(B.trim());(H)?G.extend(A):G=A},this);return new Elements(G,{ddup:H,cash:!F})}});Element.Storage={get:function(B){return(this[B]||(this[B]={}))}};Element.Inserters=new Hash({before:function(D,C){if(C.parentNode){C.parentNode.insertBefore(D,C)}},after:function(F,D){if(!D.parentNode){return }var E=D.nextSibling;(E)?D.parentNode.insertBefore(F,E):D.parentNode.appendChild(F)},bottom:function(D,C){C.appendChild(D)},top:function(F,D){var E=D.firstChild;(E)?D.insertBefore(F,E):D.appendChild(F)}});Element.Inserters.inside=Element.Inserters.bottom;Element.Inserters.each(function(E,F){var D=F.capitalize();Element.implement("inject"+D,function(A){E(this,$(A,true));return this});Element.implement("grab"+D,function(A){E($(A,true),this);return this})});Element.implement({getDocument:function(){return this.ownerDocument},getWindow:function(){return this.ownerDocument.getWindow()},getElementById:function(F,G){var H=this.ownerDocument.getElementById(F);if(!H){return null}for(var E=H.parentNode;E!=this;E=E.parentNode){if(!E){return null}}return $.element(H,G)},set:function(F,H){switch($type(F)){case"object":for(var G in F){this.set(G,F[G])}break;case"string":var E=Element.Properties.get(F);(E&&E.set)?E.set.apply(this,Array.slice(arguments,1)):this.setProperty(F,H)}return this},get:function(D){var C=Element.Properties.get(D);return(C&&C.get)?C.get.apply(this,Array.slice(arguments,1)):this.getProperty(D)},erase:function(D){var C=Element.Properties.get(D);(C&&C.erase)?C.erase.apply(this,Array.slice(arguments,1)):this.removeProperty(D);return this},match:function(B){return(!B||Element.get(this,"tag")==B)},inject:function(D,C){Element.Inserters.get(C||"bottom")(this,$(D,true));return this},wraps:function(D,C){D=$(D,true);return this.replaces(D).grab(D,C)},grab:function(D,C){Element.Inserters.get(C||"bottom")($(D,true),this);return this},appendText:function(D,C){return this.grab(this.getDocument().newTextNode(D),C)},adopt:function(){Array.flatten(arguments).each(function(B){B=$(B,true);if(B){this.appendChild(B)}},this);return this},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this},clone:function(M,N){switch($type(this)){case"element":var U={};for(var V=0,X=this.attributes.length;V1),cash:!K})}});Element.implement({match:function(J){if(!J){return true}var H=Selectors.Utils.parseTagAndID(J);var F=H[0],G=H[1];if(!Selectors.Filters.byID(this,G)||!Selectors.Filters.byTag(this,F)){return false}var I=Selectors.Utils.parseSelector(J);return(I)?Selectors.Utils.filter(this,I,{}):true}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};Selectors.Utils={chk:function(F,E){if(!E){return true}var D=$uid(F);if(!E[D]){return E[D]=true}return false},parseNthArgument:function(H){if(Selectors.Cache.nth[H]){return Selectors.Cache.nth[H]}var K=H.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!K){return false}var I=parseInt(K[1]);var L=(I||I===0)?I:1;var J=K[2]||false;var G=parseInt(K[3])||0;if(L!=0){G--;while(G<1){G+=L}while(G>=L){G-=L}}else{L=G;J="index"}switch(J){case"n":K={a:L,b:G,special:"n"};break;case"odd":K={a:2,b:0,special:"n"};break;case"even":K={a:2,b:1,special:"n"};break;case"first":K={a:0,special:"index"};break;case"last":K={special:"last-child"};break;case"only":K={special:"only-child"};break;default:K={a:(L-1),special:"index"}}return Selectors.Cache.nth[H]=K},parseSelector:function(T){if(Selectors.Cache.parsed[T]){return Selectors.Cache.parsed[T]}var K,Q={classes:[],pseudos:[],attributes:[]};while((K=Selectors.RegExps.combined.exec(T))){var P=K[1],R=K[2],S=K[3],M=K[4],L=K[5],O=K[6];if(P){Q.classes.push(P)}else{if(L){var N=Selectors.Pseudo.get(L);if(N){Q.pseudos.push({parser:N,argument:O})}else{Q.attributes.push({name:L,operator:"=",value:O})}}else{if(R){Q.attributes.push({name:R,operator:S,value:M})}}}}if(!Q.classes.length){delete Q.classes}if(!Q.attributes.length){delete Q.attributes}if(!Q.pseudos.length){delete Q.pseudos}if(!Q.classes&&!Q.attributes&&!Q.pseudos){Q=null}return Selectors.Cache.parsed[T]=Q},parseTagAndID:function(F){var D=F.match(Selectors.RegExps.tag);var E=F.match(Selectors.RegExps.id);return[(D)?D[1]:"*",(E)?E[1]:false]},filter:function(J,M,K){var L;if(M.classes){for(L=M.classes.length;L--;L){var I=M.classes[L];if(!Selectors.Filters.byClass(J,I)){return false}}}if(M.attributes){for(L=M.attributes.length;L--;L){var N=M.attributes[L];if(!Selectors.Filters.byAttribute(J,N.name,N.operator,N.value)){return false}}}if(M.pseudos){for(L=M.pseudos.length;L--;L){var H=M.pseudos[L];if(!Selectors.Filters.byPseudo(J,H.parser,H.argument,K)){return false}}}return true},getByTagAndID:function(H,E,F){if(F){var G=(H.getElementById)?H.getElementById(F,true):Element.getElementById(H,F,true);return(G&&Selectors.Filters.byTag(G,E))?[G]:[]}else{return H.getElementsByTagName(E)}},search:function(m,n,g){var u=[];var t=n.trim().replace(Selectors.RegExps.splitter,function(A,B,C){u.push(B);return":)"+C}).split(":)");var l,q,r,Y;for(var Z=0,e=t.length;Z":function(O,P,N,M,Q){var K=Selectors.Utils.getByTagAndID(P,N,M);for(var R=0,J=K.length;RD){return false}}return(E==D)},even:function(D,C){return Selectors.Pseudo["nth-child"].call(this,"2n+1",C)},odd:function(D,C){return Selectors.Pseudo["nth-child"].call(this,"2n",C)}});Element.Events.domready={onAdd:function(B){if(Browser.loaded){B.call(this)}}};(function(){var D=function(){if(Browser.loaded){return }Browser.loaded=true;window.fireEvent("domready");document.fireEvent("domready")};switch(Browser.Engine.name){case"webkit":(function(){(["loaded","complete"].contains(document.readyState))?D():arguments.callee.delay(50)})();break;case"trident":var C=document.createElement("div");(function(){($try(function(){C.doScroll("left");return $(C).inject(document.body).set("html","temp").dispose()}))?D():arguments.callee.delay(50)})();break;default:window.addEvent("load",D);document.addEvent("DOMContentLoaded",D)}})();var JSON=new Hash({encode:function(D){switch($type(D)){case"string":return'"'+D.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case"array":return"["+String(D.map(JSON.encode).filter($defined))+"]";case"object":case"hash":var C=[];Hash.each(D,function(A,B){var F=JSON.encode(A);if(F){C.push(JSON.encode(B)+":"+F)}});return"{"+C+"}";case"number":case"boolean":return String(D);case false:return"null"}return null},$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(B){return JSON.$specialChars[B]||"\\u00"+Math.floor(B.charCodeAt()/16).toString(16)+(B.charCodeAt()%16).toString(16)},decode:function(string,secure){if($type(string)!="string"||!string.length){return null}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null}return eval("("+string+")")}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this)}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(D,C){this.key=D;this.setOptions(C)},write:function(D){D=encodeURIComponent(D);if(this.options.domain){D+="; domain="+this.options.domain}if(this.options.path){D+="; path="+this.options.path}if(this.options.duration){var C=new Date();C.setTime(C.getTime()+this.options.duration*24*60*60*1000);D+="; expires="+C.toGMTString()}if(this.options.secure){D+="; secure"}this.options.document.cookie=this.key+"="+D;return this},read:function(){var B=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");return(B)?decodeURIComponent(B[1]):null},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this}});Cookie.write=function(F,E,D){return new Cookie(F,D).write(E)};Cookie.read=function(B){return new Cookie(B).read()};Cookie.dispose=function(D,C){return new Cookie(D,C).dispose()};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object},initialize:function(S,R){this.instance="Swiff_"+$time();this.setOptions(R);R=this.options;var P=this.id=R.id||this.instance;var Q=$(R.container);Swiff.CallBacks[this.instance]={};var Z=R.params,X=R.vars,Y=R.callBacks;var W=$extend({height:R.height,width:R.width},R.properties);var T=this;for(var N in Y){Swiff.CallBacks[this.instance][N]=(function(A){return function(){return A.apply(T.object,arguments)}})(Y[N]);X[N]="Swiff.CallBacks."+this.instance+"."+N}Z.flashVars=Hash.toQueryString(X);if(Browser.Engine.trident){W.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";Z.movie=S}else{W.type="application/x-shockwave-flash";W.data=S}var U=''}}U+="";this.object=((Q)?Q.empty():new Element("div")).set("html",U).firstChild},replaces:function(B){B=$(B,true);B.parentNode.replaceChild(this.toElement(),B);return this},inject:function(B){$(B,true).appendChild(this.toElement());return this},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments))}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction(''+__flash__argumentsToXML(arguments,2)+"");return eval(rs)};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore",transition:function(B){return -(Math.cos(Math.PI*B)-1)/2}},initialize:function(C){this.subject=this.subject||this;this.setOptions(C);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var D=this.options.wait;if(D===false){this.options.link="cancel"}},step:function(){var C=$time();if(C=(7-4*H)/11){G=-Math.pow((11-6*H-11*F)/4,2)+E*E;break}}return G},Elastic:function(D,C){return Math.pow(2,10*--D)*Math.cos(20*D*Math.PI*(C[0]||1)/3)}});["Quad","Cubic","Quart","Quint"].each(function(D,C){Fx.Transitions[D]=new Fx.Transition(function(A){return Math.pow(A,[C+2])})});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false},initialize:function(B){this.xhr=new Browser.Request();this.setOptions(B);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers)},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return }this.running=false;this.status=0;$try(function(){this.status=this.xhr.status}.bind(this));if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};this.success(this.response.text,this.response.xml)}else{this.response={text:null,xml:null};this.failure()}this.xhr.onreadystatechange=$empty},isSuccess:function(){return((this.status>=200)&&(this.status<300))},processScripts:function(B){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(B)}return B.stripScripts(this.options.evalScripts)},success:function(D,C){this.onSuccess(this.processScripts(D),C)},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain()},failure:function(){this.onFailure()},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr)},setHeader:function(C,D){this.headers.set(C,D);return this},getHeader:function(B){return $try(function(){return this.xhr.getResponseHeader(B)}.bind(this))},check:function(B){if(!this.running){return true}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(B.bind(this,Array.slice(arguments,1)));return false}return false},send:function(N){if(!this.check(arguments.callee,N)){return this}this.running=true;var P=$type(N);if(P=="string"||P=="element"){N={data:N}}var J=this.options;N=$extend({data:J.data,url:J.url,method:J.method},N);var R=N.data,L=N.url,M=N.method;switch($type(R)){case"element":R=$(R).toQueryString();break;case"object":case"hash":R=Hash.toQueryString(R)}if(this.options.format){var O="format="+this.options.format;R=(R)?O+"&"+R:O}if(this.options.emulation&&["put","delete"].contains(M)){var Q="_method="+M;R=(R)?Q+"&"+R:Q;M="post"}if(this.options.urlEncoded&&M=="post"){var K=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers.set("Content-type","application/x-www-form-urlencoded"+K)}if(R&&M=="get"){L=L+(L.contains("?")?"&":"?")+R;R=null}this.xhr.open(M.toUpperCase(),L,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this);this.headers.each(function(A,B){if(!$try(function(){this.xhr.setRequestHeader(B,A);return true}.bind(this))){this.fireEvent("exception",[B,A])}},this);this.fireEvent("request");this.xhr.send(R);if(!this.options.async){this.onStateChange()}return this},cancel:function(){if(!this.running){return this}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent("cancel");return this}});(function(){var B={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(A){B[A]=function(){var D=Array.link(arguments,{url:String.type,data:$defined});return this.send($extend(D,{method:A.toLowerCase()}))}});Request.implement(B)})();Element.Properties.send={set:function(C){var D=this.retrieve("send");if(D){D.cancel()}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},C))},get:function(B){if(B||!this.retrieve("send")){if(B||!this.retrieve("send:options")){this.set("send",B)}this.store("send",new Request(this.retrieve("send:options")))}return this.retrieve("send")}};Element.implement({send:function(C){var D=this.get("send");D.send({data:this,url:C||D.options.url});return this}});Request.HTML=new Class({Extends:Request,options:{update:false,evalScripts:true,filter:false},processHTML:function(E){var F=E.match(/]*>([\s\S]*?)<\/body>/i);E=(F)?F[1]:E;var D=new Element("div");return $try(function(){var J=""+E+"",B;if(Browser.Engine.trident){B=new ActiveXObject("Microsoft.XMLDOM");B.async=false;B.loadXML(J)}else{B=new DOMParser().parseFromString(J,"text/xml")}J=B.getElementsByTagName("root")[0];for(var C=0,I=J.childNodes.length;Cthis.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});this.fireEvent("start",this.element).fireEvent("snap",this.element)}},drag:function(C){if(this.options.preventDefault){C.preventDefault()}this.mouse.now=C.page;for(var D in this.options.modifiers){if(!this.options.modifiers[D]){continue}this.value.now[D]=this.mouse.now[D]-this.mouse.pos[D];if(this.options.invert){this.value.now[D]*=-1}if(this.options.limit&&this.limit[D]){if($chk(this.limit[D][1])&&(this.value.now[D]>this.limit[D][1])){this.value.now[D]=this.limit[D][1]}else{if($chk(this.limit[D][0])&&(this.value.now[D]D.left&&C.xD.top)},checkDroppables:function(){var B=this.droppables.filter(this.checkAgainst,this).getLast();if(this.overed!=B){if(this.overed){this.fireEvent("leave",[this.element,this.overed])}if(B){this.overed=B;this.fireEvent("enter",[this.element,B])}else{this.overed=null}}},drag:function(B){this.parent(B);if(this.droppables.length){this.checkDroppables()}},stop:function(B){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed]);this.overed=null;return this.parent(B)}});Element.implement({makeDraggable:function(B){return new Drag.Move(this,B)}});Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(D,C){this.parent(D,C);this.load()},save:function(){var B=JSON.encode(this.hash);if(!B||B.length>4096){return false}if(B=="{}"){this.dispose()}else{this.write(B)}return true},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this}});Hash.Cookie.implement((function(){var B={};Hash.each(Hash.prototype,function(A,D){B[D]=function(){var C=A.apply(this.hash,arguments);if(this.options.autoSave){this.save()}return C}});return B})());var Color=new Native({initialize:function(F,E){if(arguments.length>=3){E="rgb";F=Array.slice(arguments,0,3)}else{if(typeof F=="string"){if(F.match(/rgb/)){F=F.rgbToHex().hexToRgb(true)}else{if(F.match(/hsb/)){F=F.hsbToRgb()}else{F=F.hexToRgb(true)}}}}E=E||"rgb";switch(E){case"hsb":var D=F;F=F.hsbToRgb();F.hsb=D;break;case"hex":F=F.hexToRgb(true);break}F.rgb=F.slice(0,3);F.hsb=F.hsb||F.rgbToHsb();F.hex=F.rgbToHex();return $extend(F,this)}});Color.implement({mix:function(){var D=Array.slice(arguments);var E=($type(D.getLast())=="number")?D.pop():50;var F=this.slice();D.each(function(B){B=new Color(B);for(var A=0;A<3;A++){F[A]=Math.round((F[A]/100*(100-E))+(B[A]/100*E))}});return new Color(F,"rgb")},invert:function(){return new Color(this.map(function(B){return 255-B}))},setHue:function(B){return new Color([B,this.hsb[1],this.hsb[2]],"hsb")},setSaturation:function(B){return new Color([this.hsb[0],B,this.hsb[2]],"hsb")},setBrightness:function(B){return new Color([this.hsb[0],this.hsb[1],B],"hsb")}});function $RGB(E,F,D){return new Color([E,F,D],"rgb")}function $HSB(E,F,D){return new Color([E,F,D],"hsb")}function $HEX(B){return new Color(B,"hex")}Array.implement({rgbToHsb:function(){var O=this[0],N=this[1],S=this[2];var V,W,U;var T=Math.max(O,N,S),X=Math.min(O,N,S);var R=T-X;U=T/255;W=(T!=0)?R/T:0;if(W==0){V=0}else{var M=(T-O)/R;var P=(T-N)/R;var Q=(T-S)/R;if(O==T){V=Q-P}else{if(N==T){V=2+M-Q}else{V=4+P-M}}V/=6;if(V<0){V++}}return[Math.round(V*360),Math.round(W*100),Math.round(U*100)]},hsbToRgb:function(){var K=Math.round(this[2]/100*255);if(this[1]==0){return[K,K,K]}else{var G=this[0]%360;var I=G%60;var H=Math.round((this[2]*(100-this[1]))/10000*255);var J=Math.round((this[2]*(6000-this[1]*I))/600000*255);var L=Math.round((this[2]*(6000-this[1]*(60-I)))/600000*255);switch(Math.floor(G/60)){case 0:return[K,L,H];case 1:return[J,K,H];case 2:return[H,K,L];case 3:return[H,J,K];case 4:return[L,H,K];case 5:return[K,H,J]}}return false}});String.implement({rgbToHsb:function(){var B=this.match(/\d{1,3}/g);return(B)?hsb.rgbToHsb():null},hsbToRgb:function(){var B=this.match(/\d{1,3}/g);return(B)?B.hsbToRgb():null}});var Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);this.events={};this.checker={}},addEvent:function(D,C){this.checker[D]=this.checker[D]||{};this.events[D]=this.events[D]||[];if(this.events[D].contains(C)){return false}else{this.events[D].push(C)}this.instances.each(function(B,A){B.addEvent(D,this.check.bind(this,[D,B,A]))},this);return this},check:function(G,E,H){this.checker[G][H]=true;var F=this.instances.every(function(A,B){return this.checker[G][B]||false},this);if(!F){return }this.checker[G]={};this.events[G].each(function(A){A.call(this,this.instances,E)},this)}});var Asset=new Hash({javascript:function(J,L){L=$extend({onload:$empty,document:document,check:$lambda(true)},L);var N=new Element("script",{src:J,type:"text/javascript"});var K=L.onload.bind(N),H=L.check,I=L.document;delete L.onload;delete L.check;delete L.document;N.addEvents({load:K,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){K()}}}).setProperties(L);if(Browser.Engine.webkit419){var M=(function(){if(!$try(H)){return }$clear(M);K()}).periodical(50)}return N.inject(I.head)},css:function(D,C){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:D},C)).inject(document.head)},image:function(G,H){H=$merge({onload:$empty,onabort:$empty,onerror:$empty},H);var F=new Image();var E=$(F)||new Element("img");["load","abort","error"].each(function(C){var B="on"+C;var A=H[B];delete H[B];F[B]=function(){if(!F){return }if(!E.parentNode){E.width=F.width;E.height=F.height}F=F.onload=F.onabort=F.onerror=null;A.delay(1,E,E);E.fireEvent(C,E,1)}});F.src=E.src=G;if(F&&F.complete){F.onload.delay(1)}return E.setProperties(H)},images:function(F,G){G=$merge({onComplete:$empty,onProgress:$empty},G);if(!F.push){F=[F]}var E=[];var H=0;F.each(function(A){var B=new Asset.image(A,{onload:function(){G.onProgress.call(this,H,F.indexOf(A));H++;if(H==F.length){G.onComplete()}}});E.push(B)});return new Elements(E)}});var Sortables=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:false,revert:false,handle:false,constrain:false},initialize:function(C,D){this.setOptions(D);this.elements=[];this.lists=[];this.idle=true;this.addLists($$($(C)||C));if(!this.options.clone){this.options.revert=false}if(this.options.revert){this.effect=new Fx.Morph(null,$merge({duration:250,link:"cancel"},this.options.revert))}},attach:function(){this.addLists(this.lists);return this},detach:function(){this.lists=this.removeLists(this.lists);return this},addItems:function(){Array.flatten(arguments).each(function(C){this.elements.push(C);var D=C.retrieve("sortables:start",this.start.bindWithEvent(this,C));(this.options.handle?C.getElement(this.options.handle)||C:C).addEvent("mousedown",D)},this);return this},addLists:function(){Array.flatten(arguments).each(function(B){this.lists.push(B);this.addItems(B.getChildren())},this);return this},removeItems:function(){var B=[];Array.flatten(arguments).each(function(D){B.push(D);this.elements.erase(D);var A=D.retrieve("sortables:start");(this.options.handle?D.getElement(this.options.handle)||D:D).removeEvent("mousedown",A)},this);return $$(B)},removeLists:function(){var B=[];Array.flatten(arguments).each(function(A){B.push(A);this.lists.erase(A);this.removeItems(A.getChildren())},this);return $$(B)},getClone:function(D,C){if(!this.options.clone){return new Element("div").inject(document.body)}if($type(this.options.clone)=="function"){return this.options.clone.call(this,D,C,this.list)}return C.clone(true).setStyles({margin:"0px",position:"absolute",visibility:"hidden",width:C.getStyle("width")}).inject(this.list).position(C.getPosition(C.getOffsetParent()))},getDroppables:function(){var B=this.list.getChildren();if(!this.options.constrain){B=this.lists.concat(B).erase(this.list)}return B.erase(this.clone).erase(this.element)},insert:function(E,F){var D="inside";if(this.lists.contains(F)){this.list=F;this.drag.droppables=this.getDroppables()}else{D=this.element.getAllPrevious().contains(F)?"before":"after"}this.element.inject(F,D);this.fireEvent("sort",[this.element,this.clone])},start:function(D,C){if(!this.idle){return }this.idle=false;this.element=C;this.opacity=C.get("opacity");this.list=C.getParent();this.clone=this.getClone(D,C);this.drag=new Drag.Move(this.clone,{snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){D.stop();this.clone.setStyle("visibility","visible");this.element.set("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone])}.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});this.clone.inject(this.element,"before");this.drag.start(D)},end:function(){this.drag.detach();this.element.set("opacity",this.opacity);if(this.effect){var C=this.element.getStyles("width","height");var D=this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));this.effect.element=this.clone;this.effect.start({top:D.top,left:D.left,width:C.width,height:C.height,opacity:0.25}).chain(this.reset.bind(this))}else{this.reset()}},reset:function(){this.idle=true;this.clone.destroy();this.fireEvent("complete",this.element)},serialize:function(){var E=Array.link(arguments,{modifier:Function.type,index:$defined});var F=this.lists.map(function(A){return A.getChildren().map(E.modifier||function(B){return B.get("id")},this)},this);var D=E.index;if(this.lists.length==1){D=0}return $chk(D)&&D>=0&&DN[J]){I=L.page[J]-this.options.offsets[J]-K[J]}this.tip.setStyle(M[J],I)}},fill:function(C,D){(typeof D=="string")?C.set("html",D):C.adopt(D)},show:function(){this.fireEvent("show",this.tip)},hide:function(){this.fireEvent("hide",this.tip)}});var SmoothScroll=new Class({Extends:Fx.Scroll,initialize:function(J,I){I=I||document;var G=I.getDocument(),H=I.getWindow();this.parent(G,J);this.links=(this.options.links)?$$(this.options.links):$$(G.links);var F=H.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(A){if(A.href.indexOf(F)!=0){return }var B=A.href.substr(F.length);if(B&&$(B)){this.useLink(A,B)}},this);if(!Browser.Engine.webkit419){this.addEvent("complete",function(){H.location.hash=this.anchor},true)}},useLink:function(D,C){D.addEvent("click",function(A){this.anchor=C;this.toElement(C);A.stop()}.bind(this))}});var Slider=new Class({Implements:[Events,Options],options:{onTick:function(B){if(this.options.snap){B=this.toPosition(this.step)}this.knob.setStyle(this.property,B)},snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(I,G,J){this.setOptions(J);this.element=$(I);this.knob=$(G);this.previousChange=this.previousEnd=this.step=-1;this.element.addEvent("mousedown",this.clickedElement.bind(this));if(this.options.wheel){this.element.addEvent("mousewheel",this.scrolledElement.bindWithEvent(this))}var H,L={},K={x:false,y:false};switch(this.options.mode){case"vertical":this.axis="y";this.property="top";H="offsetHeight";break;case"horizontal":this.axis="x";this.property="left";H="offsetWidth"}this.half=this.knob[H]/2;this.full=this.element[H]-this.knob[H]+(this.options.offset*2);this.min=$chk(this.options.range[0])?this.options.range[0]:0;this.max=$chk(this.options.range[1])?this.options.range[1]:this.options.steps;this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.knob.setStyle("position","relative").setStyle(this.property,-this.options.offset);K[this.axis]=this.property;L[this.axis]=[-this.options.offset,this.full-this.options.offset];this.drag=new Drag(this.knob,{snap:0,limit:L,modifiers:K,onDrag:this.draggedKnob.bind(this),onStart:this.draggedKnob.bind(this),onComplete:function(){this.draggedKnob();this.end()}.bind(this)});if(this.options.snap){this.drag.options.grid=Math.ceil(this.stepWidth);this.drag.options.limit[this.axis][1]=this.full}},set:function(B){if(!((this.range>0)^(B0)^(B>this.max))){B=this.max}this.step=Math.round(B);this.checkStep();this.end();this.fireEvent("tick",this.toPosition(this.step));return this},clickedElement:function(E){var F=this.range<0?-1:1;var D=E.page[this.axis]-this.element.getPosition()[this.axis]-this.half;D=D.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+F*this.toStep(D));this.checkStep();this.end();this.fireEvent("tick",D)},scrolledElement:function(C){var D=(this.options.mode=="horizontal")?(C.wheel<0):(C.wheel>0);this.set(D?this.step-this.stepSize:this.step+this.stepSize);C.stop()},draggedKnob:function(){var D=this.range<0?-1:1;var C=this.drag.value.now[this.axis];C=C.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+D*this.toStep(C));this.checkStep()},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent("change",this.step)}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("complete",this.step+"")}},toStep:function(C){var D=(C+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(D-=D%this.stepSize):D},toPosition:function(B){return(this.full*Math.abs(this.min-B))/(this.steps*this.stepSize)-this.options.offset}});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(C,D){this.element.scrollTo(C,D)}},initialize:function(D,C){this.setOptions(C);this.element=$(D);this.listener=($type(this.element)!="element")?$(this.element.getDocument().body):this.element;this.timer=null;this.coord=this.getCoords.bind(this)},start:function(){this.listener.addEvent("mousemove",this.coord)},stop:function(){this.listener.removeEvent("mousemove",this.coord);this.timer=$clear(this.timer)},getCoords:function(B){this.page=(this.listener.get("tag")=="body")?B.client:B.page;if(!this.timer){this.timer=this.scroll.periodical(50,this)}},scroll:function(){var J=this.element.getSize(),F=this.element.getScroll(),G=this.element.getPosition(),H={x:0,y:0};for(var I in this.page){if(this.page[I]<(this.options.area+G[I])&&F[I]!=0){H[I]=(this.page[I]-this.options.area-G[I])*this.options.velocity}else{if(this.page[I]+this.options.area>(J[I]+G[I])&&J[I]+J[I]!=F[I]){H[I]=(this.page[I]-J[I]+this.options.area-G[I])*this.options.velocity}}}if(H.y||H.x){this.fireEvent("change",[F.x+H.x,F.y+H.y])}}});var Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var E=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});this.parent(E.elements,E.options);this.togglers=$$(E.togglers);this.container=$(E.container);this.previous=-1;if(this.options.alwaysHide){this.options.wait=true}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show}if(this.options.start){this.options.display=false;this.options.show=false}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity"}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth"}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight"}for(var F=0,D=this.togglers.length;F0));this.fireEvent(H?"background":"active",[this.togglers[G],B]);for(var A in this.effects){D[G][A]=H?0:B[this.effects[A]]}},this);return this.start(D)}});var MooColumns=new Class({Implements:Options,options:{selector:".multiColumn",className:"multiColumn",numOfColumns:2,defaultNumOfColumns:2,gutterWidth:5,gutterClassName:"gutter",columnClassName:"column",tweak:{x:0,y:0,width:0},splittableElements:["p","div","span","ul"],morePrecise:true,tolerance:10,colBreaksTrump:true,debug:false},sizerElWrapper:null,columnParents:[],mooColumnsAreasArr:[],initialize:function(B){this.setOptions(B);if($type(parseFloat(this.options.numOfColumns))!="number"){this.options.numOfColumns=this.options.defaultNumOfColumns}this.sizerElWrapper=new Element("div",{id:"sizerElWrapper"}).inject(document.body,"inside").setStyles({visibility:"hidden",position:"absolute",display:"block",padding:0,margin:0,top:0,left:0,width:0,height:0,overflow:"hidden"});this.columnParents=$(document.body).getElements(this.options.selector);this.columnParents.each(function(F,H){var A=this.getOrSetId($(F));var G=new MooColumnsArea(this.options,F);this.mooColumnsAreasArr[A]=G;F.className+="-screen"}.bind(this))},getOrSetId:function(G){if(!G.id){var F=new Date();var H=F.getMilliseconds().toString();var E=Math.floor(Math.random()*1000);if(G.nodeName){G.id=G.nodeName.toString()+"-"+H+E.toString()}else{G.id="element"+H+E.toString()}}return G.id}});var MooColumnsArea=new Class({Implements:Options,options:{parentEl:null,printEl:null,debug:null,colBreakDepth:5},columnElsArr:[],gutterElsArr:[],colWidth:null,targetHeight:null,tempContentHolder:null,sizerEl:null,tallest:0,unsplittableTags:["td","tr","table","tbody"],hasColBreaks:false,initialize:function(J,G){this.setOptions(J);this.options.parentEl=G;this.sizerEl=new Element("div").inject($("sizerElWrapper"),"inside").setStyles({visibility:"hidden",position:"absolute",display:"block",padding:0,margin:0,top:0,left:0});this.options.printEl=new Element("div",{"class":this.options.className+"-print"}).inject(this.options.parentEl,"after").set("html",this.options.parentEl.innerHTML);this.options.parentEl.empty();var H=new Element("div").setStyles({display:"block",position:"relative",padding:0,margin:0}).inject(this.options.parentEl,"top");this.options.parentEl=G.getFirst();var I=H.getStyle("width").toInt()+this.options.tweak.width.toInt();var F=(100*I)/H.getStyle("width").toInt();H.setStyles({width:F+"%",left:this.options.tweak.x});this.go();window.addEvent("resize",function(){$clear(A);var A=(function(){this.setHeights()}.bind(this)).delay(100)}.bind(this))},go:function(){var E=this.options.numOfColumns-1;if(this.options.gutterWidth.toString().contains("px")){this.options.gutterWidth=Math.round((100*parseFloat(this.options.gutterWidth))/this.options.parentEl.getCoordinates().width)}var H=Math.round(E*parseFloat(this.options.gutterWidth)/this.options.numOfColumns);this.colWidth=Math.round(100/this.options.numOfColumns)-H;var G=Math.round((this.options.parentEl.getCoordinates().width*this.colWidth)/100);this.sizerEl.setStyle("width",G).set("html",this.options.printEl.innerHTML);this.targetHeight=Math.round(this.sizerEl.getCoordinates().height/this.options.numOfColumns);this.makeWireFrame();this.options.printEl.set("html",this.options.printEl.get("html").stripScripts().split(/)]*-->/).join(""));this.wrapTextNodes(this.options.printEl);this.convertColBreaks(this.options.printEl);if($(this.options.printEl).getElements(".colBreak").length>0){this.hasColBreaks=true}while(this.options.colBreakDepth>0){this.splitColBreakParents(this.options.printEl);this.options.colBreakDepth--}if(this.options.colBreaksTrump===true&&this.hasColBreaks){this.options.morePrecise=false}var F;if(this.hasColBreaks&&this.options.colBreaksTrump){F=this.divideContent2()}else{F=this.divideContent()}for(i=0;ithis.tallest){this.tallest=this.columnElsArr[i].getCoordinates().height}}if(this.options.parentEl.getScrollSize().y>0){this.tallest=this.options.parentEl.getScrollSize().y}for(i=0;i=1){$(L.getElements(".colBreak")[0]).inject(J,"after")}}}.bind(this))},wrapTextNodes:function(D){var E=$(D).childNodes;for(i=0;i0){F--;if(!E[D]){E[D]=new Element("div")}$(this.tempContentHolder).getFirst().inject(this.sizerEl,"inside");if(this.sizerEl.getCoordinates().height>=this.targetHeight||this.sizerEl.getLast().hasClass("colBreak")){$(E[D]).set("html",this.sizerEl.innerHTML);this.sizerEl.empty();D++;if(D>=this.options.numOfColumns){D=this.options.numOfColumns-1}if(!E[D]){E[D]=new Element("div")}if(!this.tempContentHolder.getFirst()){$(E[D]).set("html",this.tempContentHolder.innerHTML+$(E[D]).innerHTML)}}}$(E[D]).set("html",$(E[D]).innerHTML+this.sizerEl.innerHTML);this.sizerEl.empty();return E},divideContent2:function(){this.tempContentHolder=new Element("div",{id:"tempContentHolder"}).set("html",this.options.printEl.innerHTML).inject(document.body,"inside").setStyles({display:"none",position:"absolute"});this.sizerEl.empty();var E=[];var D=0;var F=1300;while(D0){F--;if(!E[D]){E[D]=new Element("div")}if(this.tempContentHolder.getFirst()){$(this.tempContentHolder).getFirst().inject(this.sizerEl,"inside")}if(this.sizerEl.getLast().hasClass("colBreak")){$(E[D]).set("html",this.sizerEl.innerHTML);this.sizerEl.empty();D++;if(D>=this.options.numOfColumns){D=this.options.numOfColumns-1}if(!E[D]){E[D]=new Element("div")}if(!this.tempContentHolder.getFirst()){$(E[D]).set("html",this.tempContentHolder.innerHTML+$(E[D]).innerHTML)}}}$(E[D]).set("html",$(E[D]).innerHTML+this.sizerEl.innerHTML);this.sizerEl.empty();return E},shaveColumns:function(){for(i=0;i0&&L){var P=K.getCoordinates().height-O+this.options.tolerance;var J=K.clone().inject($("sizerElWrapper"),"inside");J.empty();var I=50;while(I>0&&K.childNodes.length&&K.getCoordinates().height>P){I--;if($type(K.childNodes[K.childNodes.length-1])==="textnode"||$type(K.childNodes[K.childNodes.length-1])==="whitespace"){var N=50;var M=K.childNodes[K.childNodes.length-1].nodeValue.split(" ");while(N>0&&K.childNodes[K.childNodes.length-1].nodeValue.length>=0&&K.getCoordinates().height>P){N--;if($defined(M.getLast())){J.innerHTML=M.getLast().toString()+" "+J.innerHTML}M=M.filter(function(A,B){return B<(M.length-1)&&$defined(A)});K.childNodes[K.childNodes.length-1].nodeValue=M.join(" ")}if(!$defined(M.getLast())){K.removeChild(K.childNodes[K.childNodes.length-1])}}else{if($(K.childNodes[K.childNodes.length-1])){if($(K.childNodes[K.childNodes.length-1]).hasClass("colBreak")){I=0}else{$(K.childNodes[K.childNodes.length-1]).inject(J,"top")}}}}J.inject(this.columnElsArr[i+1],"top")}else{if(O>this.options.tolerance&&!L){K.inject(this.columnElsArr[i+1],"top")}}}}});var ImageMenu=new Class({getOptions:function(){return{onOpen:true,onClose:Class.empty,openWidth:200,transition:Fx.Transitions.Quad.easeOut,duration:400,open:null,border:0}},initialize:function(B,A,C){this.setOptions(this.getOptions(),A);this.elements=$$(B);this.widths={};this.widths.closed=this.elements[0].getStyle("width").toInt();this.widths.openSelected=this.options.openWidth;this.widths.openOthers=Math.round(((this.widths.closed*this.elements.length)-(this.widths.openSelected+this.options.border))/(this.elements.length-1));this.fx=new Fx.Elements(this.elements,{wait:false,duration:this.options.duration,transition:this.options.transition});this.elements.each(function(E,D){E.addEvent("mouseenter",function(G){new Event(G).stop();this.reset(D);switch(D){case 0:E.setStyle("background","url(css/img/home.jpg) repeat scroll 0%");break;case 1:E.setStyle("background","url(css/img/about.jpg) repeat scroll 0%");break;case 2:E.setStyle("background","url(css/img/prodandser.jpg) repeat scroll 0%");break;case 3:E.setStyle("background","url(css/img/careers.jpg) repeat scroll 0%");break;case 4:E.setStyle("background","url(css/img/contact.jpg) repeat scroll 0%");break;case 5:E.setStyle("background","url(css/img/blog.jpg) repeat scroll 0%");break}}.bind(this));var F=this;E.addEvent("mouseleave",function(G){new Event(G).stop();F.reset(F.options.open)}.bind(this));E.addEvent("click",function(G){new Event(G).stop();F.options.open=D;openPage(F.elements,D);F.reset(D)})}.bind(this));if(this.options.open!=null){if($type(this.options.open)=="number"){openPage(this.elements,this.options.open);this.reset(this.options.open)}else{this.elements.each(function(E,D){if(E.id==this.options.open){this.reset(D)}},this)}}},reset:function(A){if($type(A)=="number"){var B=this.widths.openOthers;if(A+1==this.elements.length){B+=this.options.border}}else{var B=this.widths.closed}var C={};this.elements.each(function(F,E){if(this.options.open!=E){switch(E){case 0:F.setStyle("background","url(css/img/home-bw.jpg) repeat scroll 0%");break;case 1:F.setStyle("background","url(css/img/about-bw.jpg) repeat scroll 0%");break;case 2:F.setStyle("background","url(css/img/prodandser-bw.jpg) repeat scroll 0%");break;case 3:F.setStyle("background","url(css/img/careers-bw.jpg) repeat scroll 0%");break;case 4:F.setStyle("background","url(css/img/contact-bw.jpg) repeat scroll 0%");break;case 5:F.setStyle("background","url(css/img/blog-bw.jpg) repeat scroll 0%");break}}var D=B;if(E==this.elements.length-1){D=B+5}C[E]={width:D}}.bind(this));if($type(A)=="number"){C[A]={width:this.widths.openSelected}}this.fx.start(C)}});ImageMenu.implement(new Options);ImageMenu.implement(new Events);(function(){function $m(){var elements=[];for(var i=0;i=1.5){Msn.Drawing.Graphic.CreateGraphic=function(f,b){return new Msn.Drawing.SVGGraphic(f,b)}}this.maps[api]=new VEMap(element.id);this.maps[api].LoadMap();this.maps[api].AttachEvent("onclick",function(e){me.clickHandler(e.view.LatLong.Latitude,e.view.LatLong.Longitude,me)});this.maps[api].AttachEvent("onchangeview",function(e){me.moveendHandler(me)});this.resizeTo(msft_width,msft_height);this.loaded[api]=true}else{alert(api+" map script not imported")}break;case"openlayers":this.maps[api]=new OpenLayers.Map(element.id,{maxExtent:new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),maxResolution:156543,numZoomLevels:18,units:"meters",projection:"EPSG:41001"});this.layers.osmmapnik=new OpenLayers.Layer.TMS("OSM Mapnik",["http://a.tile.openstreetmap.org/","http://b.tile.openstreetmap.org/","http://c.tile.openstreetmap.org/"],{type:"png",getURL:function(bounds){var res=this.map.getResolution();var x=Math.round((bounds.left-this.maxExtent.left)/(res*this.tileSize.w));var y=Math.round((this.maxExtent.top-bounds.top)/(res*this.tileSize.h));var z=this.map.getZoom();var limit=Math.pow(2,z);if(y<0||y>=limit){return null}else{x=((x%limit)+limit)%limit;var path=z+"/"+x+"/"+y+"."+this.type;var url=this.url;if(url instanceof Array){url=this.selectUrl(path,url)}return url+path}},displayOutsideMaxExtent:true});this.layers.osm=new OpenLayers.Layer.TMS("OSM",["http://a.tah.openstreetmap.org/Tiles/tile.php/","http://b.tah.openstreetmap.org/Tiles/tile.php/","http://c.tah.openstreetmap.org/Tiles/tile.php/"],{type:"png",getURL:function(bounds){var res=this.map.getResolution();var x=Math.round((bounds.left-this.maxExtent.left)/(res*this.tileSize.w));var y=Math.round((this.maxExtent.top-bounds.top)/(res*this.tileSize.h));var z=this.map.getZoom();var limit=Math.pow(2,z);if(y<0||y>=limit){return null}else{x=((x%limit)+limit)%limit;var path=z+"/"+x+"/"+y+"."+this.type;var url=this.url;if(url instanceof Array){url=this.selectUrl(path,url)}return url+path}},displayOutsideMaxExtent:true});this.maps[api].addLayer(this.layers.osmmapnik);this.maps[api].addLayer(this.layers.osm);this.loaded[api]=true;break;case"openstreetmap":if(GMap2){if(GBrowserIsCompatible()){this.maps[api]=new GMap2(element);GEvent.addListener(this.maps[api],"click",function(marker,location){if(location){me.clickHandler(location.y,location.x,location,me)}});GEvent.addListener(this.maps[api],"moveend",function(){me.moveendHandler(me)});var copyright=new GCopyright(1,new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)),0,"copyleft");var copyrightCollection=new GCopyrightCollection("OSM");copyrightCollection.addCopyright(copyright);var tilelayers=[];tilelayers[0]=new GTileLayer(copyrightCollection,1,18);tilelayers[0].getTileUrl=function(a,b){return"http://tile.openstreetmap.org/"+b+"/"+a.x+"/"+a.y+".png"};tilelayers[0].isPng=function(){return true};tilelayers[0].getOpacity=function(){return 1};var custommap=new GMapType(tilelayers,new GMercatorProjection(19),"OSM",{errorMessage:"More OSM coming soon"});this.maps[api].addMapType(custommap);this.loaded[api]=true;var myPoint=new LatLonPoint(50.6805,-1.4062505);this.setCenterAndZoom(myPoint,11);this.maps[api].setMapType(custommap)}else{alert("browser not compatible with Google Maps")}}else{alert(api+" map script not imported")}break;case"multimap":if(MultimapViewer){if(this.debug){window.print_debug=function(strMessage){var dbg=document.getElementById("debug");if(dbg){dbg.innerHTML+="

MUlTIMAP: "+strMessage+"

"}else{alert(strMessage)}}}this.maps[api]=new MultimapViewer(element);this.maps[api].addEventHandler("click",function(eventType,eventTarget,arg1,arg2,arg3){if(arg1){me.clickHandler(arg1.lat,arg1.lon,me)}});this.maps[api].addEventHandler("changeZoom",function(eventType,eventTarget,arg1,arg2,arg3){me.moveendHandler(me)});this.maps[api].addEventHandler("endPan",function(eventType,eventTarget,arg1,arg2,arg3){me.moveendHandler(me)});this.loaded[api]=true}else{alert(api+" map script not imported")}break;case"map24":if(Map24){Map24.loadApi(["core_api","wrapper_api"],function(){Map24.MapApplication.init({NodeName:element.id,MapType:"Static"});me.maps[api]=Map24.MapApplication.Map;Map24.MapApplication.Map.addListener("Map24.Event.MapClick",function(e){me.clickHandler(e.Coordinate.Latitude/60,e.Coordinate.Longitude/60,me);e.stop()});Map24.MapApplication.Map.addListener("MapPanStop",function(e){me.moveendHandler(me)});var client=Map24.MapApplication.Map.MapClient.Static;me.loaded[api]=true;for(var i=0;i-1)&&(index+SCRIPT_NAME.length==src.length)){scriptLocation=src.slice(0,-SCRIPT_NAME.length);break}}}return scriptLocation};Mapstraction.writeInclude=function(api,key,version){var jsfiles=[];var allScriptTags="";var host=Mapstraction._getScriptLocation()+"lib/";switch(api){case"google":if(version===null){version="2"}jsfiles.push("http://maps.google.com/maps?file=api&v="+version+"&key="+key);break;case"microsoft":if(version===null){version="v3"}jsfiles.push("http://dev.virtualearth.net/mapcontrol/"+version+"/mapcontrol.js");break;case"yahoo":if(version===null){version="3.8"}jsfiles.push("http://api.maps.yahoo.com/ajaxymap?v="+version+"&appid="+key);break;case"openlayers":jsfiles.push("http://openlayers.org/api/OpenLayers.js");break;case"multimap":if(version===null){version="1.2"}jsfiles.push("http://developer.multimap.com/API/maps/"+version+"/"+key);break;case"map24":jsfiles.push("http://api.maptp.map24.com/ajax?appkey="+key);break;case"mapquest":if(version===null){version="5.3"}jsfiles.push("http://btilelog.access.mapquest.com/tilelog/transaction?transaction=script&key="+key+"&ipr=true&itk=true&ipkg=controls1&v="+version);jsfiles.push("mapquest-js/mqcommon.js");jsfiles.push("mapquest-js/mqutils.js");jsfiles.push("mapquest-js/mqobjects.js");jsfiles.push("mapquest-js/mqexec.js");break;case"freeearth":jsfiles.push("http://freeearth.poly9.com/api.js");break;case"openspace":jsfiles.push("http://openspace.ordnancesurvey.co.uk/osmapapi/openspace.js?key="+key);jsfiles.push("mapstraction-js/mapstraction-openspace.js");break;case"viamichelin":jsfiles.push("http://api.viamichelin.com/apijs/js/api.js");break}for(var i=0;i1;i--){map.controls[i-1].deactivate();map.removeControl(map.controls[i-1])}if(args.pan){map.addControl(new OpenLayers.Control.PanZoomBar())}else{}if(args.zoom=="large"){map.addControl(new OpenLayers.Control.PanZoomBar())}else{if(args.zoom=="small"){map.addControl(new OpenLayers.Control.ZoomBox())}else{map.addControl(new OpenLayers.Control.ZoomBox())}}if(args.overview){map.addControl(new OpenLayers.Control.OverviewMap())}if(args.map_type){map.addControl(new OpenLayers.Control.LayerSwitcher())}break;case"openspace":for(var i=map.controls.length;i>3;i--){map.controls[i-1].deactivate();map.removeControl(map.controls[i-1])}if(args.zoom=="large"){map.addControl(new OpenSpace.Control.LargeMapControl())}else{if(args.zoom=="small"||args.pan){map.addControl(new OpenSpace.Control.SmallMapControl())}}if(args.overview){var osOverviewControl=new OpenSpace.Control.OverviewMap();map.addControl(osOverviewControl);osOverviewControl.maximizeControl()}if(args.map_type){map.addControl(new OpenLayers.Control.LayerSwitcher())}break;case"multimap":pan_zoom_widget="MM";if(args.zoom&&args.zoom=="small"){pan_zoom_widget=pan_zoom_widget+"Small"}if(args.pan){pan_zoom_widget=pan_zoom_widget+"Pan"}if(args.zoom){pan_zoom_widget=pan_zoom_widget+"Zoom"}pan_zoom_widget=pan_zoom_widget+"Widget";if(pan_zoom_widget!="MMWidget"){eval(" map.addWidget( new "+pan_zoom_widget+"() );")}if(args.map_type){map.addWidget(new MMMapTypeWidget())}if(args.overview){map.addWidget(new MMOverviewWidget())}break;case"mapquest":if(this.controls){while((ctl=this.controls.pop())){map.removeControl(ctl)}}else{this.controls=[]}c=this.controls;if(args.pan){c.unshift(new MQA.PanControl());map.addControl(c[0],new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT,new MQA.Size(0,0)))}if(args.zoom=="large"){c.unshift(new MQA.LargeZoomControl());map.addControl(c[0],new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT,new MQA.Size(0,0)))}else{if(args.zoom=="small"){c.unshift(new MQA.ZoomControl());map.addControl(c[0],new MQA.MapCornerPlacement(MQA.MapCorner.BOTTOM_LEFT,new MQA.Size(0,0)))}}if(args.map_type){c.unshift(new MQA.ViewControl());map.addControl(c[0],new MQA.MapCornerPlacement(MQA.MapCorner.TOP_RIGHT,new MQA.Size(0,0)))}break;case"viamichelin":if(args.zoom=="large"){map.activateZoom(true);map.showMapTools()}else{if(args.zoom=="small"){map.activateMiniZoom(true);map.showMapTools()}else{map.hideMapTools()}}break}};Mapstraction.prototype.addSmallControls=function(){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.addSmallControls()});return }var map=this.maps[this.api];switch(this.api){case"yahoo":map.addPanControl();map.addZoomShort();this.addControlsArgs.pan=true;this.addControlsArgs.zoom="small";break;case"google":case"openstreetmap":map.addControl(new GSmallMapControl());this.addControlsArgs.zoom="small";break;case"openlayers":map.addControl(new OpenLayers.Control.ZoomBox());map.addControl(new OpenLayers.Control.LayerSwitcher({ascending:false}));break;case"multimap":smallPanzoomWidget=new MMSmallPanZoomWidget();map.addWidget(smallPanzoomWidget);this.addControlsArgs.pan=true;this.addControlsArgs.zoom="small";break;case"mapquest":map.addControl(new MQA.ZoomControl(map));map.addControl(new MQA.PanControl(map));this.addControlsArgs.pan=true;this.addControlsArgs.zoom="small";break;case"openspace":map.addControl(new OpenSpace.Control.SmallMapControl());break;case"viamichelin":map.activateMiniZoom(true);this.addControlsArgs.zoom="small";map.showMapTools();break}};Mapstraction.prototype.addLargeControls=function(){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.addLargeControls()});return }var map=this.maps[this.api];switch(this.api){case"yahoo":map.addPanControl();map.addZoomLong();this.addControlsArgs.pan=true;this.addControlsArgs.zoom="large";break;case"openlayers":map.addControl(new OpenLayers.Control.PanZoomBar());break;case"google":map.addControl(new GMapTypeControl());map.addControl(new GOverviewMapControl());this.addControlsArgs.overview=true;this.addControlsArgs.map_type=true;case"openstreetmap":map.addControl(new GLargeMapControl());map.addControl(new GScaleControl());this.addControlsArgs.pan=true;this.addControlsArgs.zoom="large";this.addControlsArgs.scale=true;break;case"multimap":panzoomWidget=new MMPanZoomWidget();map.addWidget(panzoomWidget);this.addControlsArgs.pan=true;this.addControlsArgs.zoom="large";break;case"mapquest":map.addControl(new MQA.LargeZoomControl(map));map.addControl(new MQA.PanControl(map));map.addControl(new MQA.ViewControl(map));this.addControlsArgs.pan=true;this.addControlsArgs.zoom="large";this.addControlsArgs.map_type=true;break;case"openspace":map.addControl(new OpenSpace.Control.LargeMapControl());break;case"viamichelin":map.activateZoom(true);this.addControlsArgs.zoom="large";map.showMapTools();break}};Mapstraction.prototype.addMapTypeControls=function(){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.addMapTypeControls()});return }var map=this.maps[this.api];switch(this.api){case"yahoo":map.addTypeControl();break;case"google":case"openstreetmap":map.addControl(new GMapTypeControl());break;case"multimap":map.addWidget(new MMMapTypeWidget());break;case"mapquest":map.addControl(new MQA.ViewControl(map));break;case"openlayers":map.addControl(new OpenLayers.Control.LayerSwitcher({ascending:false}));break;case"viamichelin":map.activateSatelliteHybrid(true);break}};Mapstraction.prototype.dragging=function(on){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.dragging(on)});return }var map=this.maps[this.api];switch(this.api){case"openspace":for(var i=0;i10){oszoom=10}}map.setCenter(point.toOpenSpace(),oszoom);break;case"viamichelin":map.drawMap(new VMLonLat(point.lng,point.lat),Math.floor(zoom/19*16));break;default:if(this.debug){alert(this.api+" not supported by Mapstraction.setCenterAndZoom")}}};Mapstraction.prototype.addMarker=function(marker,old){var map=this.maps[this.api];marker.mapstraction=this;marker.api=this.api;marker.map=this.maps[this.api];if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.addMarker(marker,old)});return }switch(this.api){case"yahoo":var ypin=marker.toYahoo();marker.setChild(ypin);map.addOverlay(ypin);if(!old){this.markers.push(marker)}break;case"google":case"openstreetmap":var gpin=marker.toGoogle();marker.setChild(gpin);map.addOverlay(gpin);if(!old){this.markers.push(marker)}break;case"microsoft":var mpin=marker.toMicrosoft();marker.setChild(mpin);map.AddPushpin(mpin);if(!old){this.markers.push(marker)}break;case"openlayers":if(!this.layers.markers){this.layers.markers=new OpenLayers.Layer.Markers("markers");map.addLayer(this.layers.markers)}var olmarker=marker.toOpenLayers();marker.setChild(olmarker);this.layers.markers.addMarker(olmarker);if(!old){this.markers.push(marker)}break;case"openspace":if(!this.layers.markers){this.layers.markers=map.getMarkerLayer()}var osmarker=marker.toOpenSpace();marker.setChild(osmarker);if(marker.infoBubble){if(marker.hover){osmarker.events.register("mouseover",{marker:osmarker,html:marker.infoBubble},function(evt){this.marker.map.closeInfoWindow();this.marker.map.openInfoWindow(this.marker.icon,this.marker.lonlat,this.html);OpenLayers.Event.stop(evt)});osmarker.events.register("mouseout",{marker:osmarker},function(evt){this.marker.map.closeInfoWindow();OpenLayers.Event.stop(evt)})}else{osmarker.events.register("mousedown",{marker:osmarker,html:marker.infoBubble},function(evt){this.marker.map.closeInfoWindow();this.marker.map.openInfoWindow(this.marker.icon,this.marker.lonlat,this.html);OpenLayers.Event.stop(evt)})}}this.layers.markers.addMarker(osmarker);if(!old){this.markers.push(marker)}break;case"multimap":var mmpin=marker.toMultiMap();marker.setChild(mmpin);map.addOverlay(mmpin);if(!old){this.markers.push(marker)}break;case"map24":var m24pin=marker.toMap24();marker.setChild(m24pin);m24pin.commit();if(!old){this.markers.push(marker)}break;case"mapquest":var mqpin=marker.toMapQuest();marker.setChild(mqpin);map.addPoi(mqpin);if(!old){this.markers.push(marker)}break;case"freeearth":var fepin=marker.toFreeEarth();marker.setChild(fepin);map.addOverlay(fepin);if(!old){this.markers.push(marker)}break;case"viamichelin":var vmpin=marker.toViaMichelin();marker.setChild(vmpin);map.addLayer(vmpin);if(!old){this.markers.push(marker)}break;default:if(this.debug){alert(this.api+" not supported by Mapstraction.addMarker")}}};Mapstraction.prototype.addMarkerWithData=function(marker,data){marker.addData(data);this.addMarker(marker)};Mapstraction.prototype.addPolylineWithData=function(polyline,data){polyline.addData(data);this.addPolyline(polyline)};Mapstraction.prototype.removeMarker=function(marker){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.removeMarker(marker)});return }var map=this.maps[this.api];var tmparray=[];while(this.markers.length>0){current_marker=this.markers.pop();if(marker==current_marker){switch(this.api){case"google":case"openstreetmap":map.removeOverlay(marker.proprietary_marker);break;case"yahoo":map.removeOverlay(marker.proprietary_marker);break;case"microsoft":map.DeletePushpin(marker.pinID);break;case"multimap":map.removeOverlay(marker.proprietary_marker);break;case"mapquest":map.removeShape(marker.proprietary_marker);break;case"map24":marker.proprietary_marker.remove();break;case"openlayers":case"openspace":this.layers.markers.removeMarker(marker.proprietary_marker);marker.proprietary_marker.destroy();break;case"viamichelin":map.removeLayer(marker.proprietary_marker);break}marker.onmap=false;break}else{tmparray.push(current_marker)}}this.markers=this.markers.concat(tmparray)};Mapstraction.prototype.removeAllMarkers=function(){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.removeAllMarkers()});return }var map=this.maps[this.api];switch(this.api){case"yahoo":map.removeMarkersAll();break;case"google":case"openstreetmap":map.clearOverlays();break;case"microsoft":map.DeleteAllPushpins();break;case"multimap":map.removeAllOverlays();break;case"mapquest":map.removeAllShapes();break;case"map24":var current_marker;while(this.markers.length>0){current_marker=this.markers.pop();current_marker.proprietary_marker.remove()}break;case"openlayers":case"openspace":if(this.layers.markers){this.layers.markers.clearMarkers()}break;case"viamichelin":map.removeAllLayers();break;default:if(this.debug){alert(this.api+" not supported by Mapstraction.removeAllMarkers")}}this.markers=[]};Mapstraction.prototype.declutterMarkers=function(opts){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.declutterMarkers(opts)});return }var map=this.maps[this.api];switch(this.api){case"multimap":map.declutterGroup(opts.groupName);break;default:if(this.debug){alert(this.api+" not supported by Mapstraction.declutterMarkers")}}};Mapstraction.prototype.addPolyline=function(polyline,old){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.addPolyline(polyline,old)});return }var map=this.maps[this.api];polyline.api=this.api;polyline.map=this.maps[this.api];switch(this.api){case"openspace":ospolyline=polyline.toOpenSpace();polyline.setChild(ospolyline);map.getVectorLayer().addFeatures([ospolyline]);if(!old){this.polylines.push(polyline)}break;case"yahoo":ypolyline=polyline.toYahoo();polyline.setChild(ypolyline);map.addOverlay(ypolyline);if(!old){this.polylines.push(polyline)}break;case"google":case"openstreetmap":gpolyline=polyline.toGoogle();polyline.setChild(gpolyline);map.addOverlay(gpolyline);if(!old){this.polylines.push(polyline)}break;case"microsoft":mpolyline=polyline.toMicrosoft();polyline.setChild(mpolyline);map.AddPolyline(mpolyline);if(!old){this.polylines.push(polyline)}break;case"openlayers":if(!this.layers.polylines){this.layers.polylines=new OpenLayers.Layer.Vector("polylines");map.addLayer(this.layers.polylines)}var olpolyline=polyline.toOpenLayers();polyline.setChild(olpolyline);this.layers.polylines.addFeatures([olpolyline]);if(!old){this.polylines.push(polyline)}break;case"multimap":mmpolyline=polyline.toMultiMap();polyline.setChild(mmpolyline);map.addOverlay(mmpolyline);if(!old){this.polylines.push(polyline)}break;case"mapquest":mqpolyline=polyline.toMapQuest();polyline.setChild(mqpolyline);map.addOverlay(mqpolyline);if(!old){this.polylines.push(polyline)}break;case"map24":var m24polyline=polyline.toMap24();polyline.setChild(m24polyline);m24polyline.commit();if(!old){this.polylines.push(polyline)}break;case"viamichelin":var vmpolyline=polyline.toViaMichelin();polyline.setChild(vmpolyline);map.addLayer(vmpolyline);if(!old){this.polylines.push(polyline)}break;default:if(this.debug){alert(this.api+" not supported by Mapstraction.addPolyline")}}};Mapstraction.prototype.removePolyline=function(polyline){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.removePolyline(polyline)});return }var map=this.maps[this.api];var tmparray=[];while(this.polylines.length>0){current_polyline=this.polylines.pop();if(polyline==current_polyline){switch(this.api){case"openspace":map.getVectorLayer().removeFeatures([polyline.proprietary_polyline]);break;case"google":case"openstreetmap":map.removeOverlay(polyline.proprietary_polyline);break;case"yahoo":map.removeOverlay(polyline.proprietary_polyline);break;case"microsoft":map.DeletePolyline(polyline.pllID);break;case"multimap":polyline.proprietary_polyline.remove();break;case"mapquest":map.removeOverlay(polyline.proprietary_polyline);break;case"map24":polyline.proprietary_polyline.remove();break;case"openlayers":this.layers.polylines.removeFeatures([polyline.proprietary_polyline]);break;case"viamichelin":map.removeLayer(polyline.proprietary_polyline);break}polyline.onmap=false;break}else{tmparray.push(current_polyline)}}this.polylines=this.polylines.concat(tmparray)};Mapstraction.prototype.removeAllPolylines=function(){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.removeAllPolylines()});return }var map=this.maps[this.api];switch(this.api){case"openspace":for(var i=0,length=this.polylines.length;i0){current_polyline=this.polylines.pop();current_polyline.proprietary_polyline.remove()}break;case"openlayers":var olpolylines=[];for(var i=0,length=this.polylines.length;i10){oszoom=10}}map.zoomTo(oszoom);break;case"yahoo":var yzoom=18-zoom;map.setZoomLevel(yzoom);break;case"google":case"openstreetmap":map.setZoom(zoom);break;case"openlayers":map.zoomTo(zoom);break;case"microsoft":map.SetZoomLevel(zoom);break;case"multimap":map.setZoomFactor(zoom);break;case"mapquest":map.setZoomLevel(zoom-3);break;case"map24":var point=this.getCenter();var newSettings={};newSettings.Latitude=point.lat*60;newSettings.Longitude=point.lon*60;var client=map.MapClient.Static;var dLon=getDegreesFromGoogleZoomLevel(client.getCanvasSize().Width,zoom);newSettings.MinimumWidth=lonToMetres(dLon,point.lat);Map24.MapApplication.center(newSettings);break;case"viamichelin":map.changeMapScale(Math.floor(zoom/19*16));break;default:if(this.debug){alert(this.api+" not supported by Mapstraction.setZoom")}}};Mapstraction.prototype.autoCenterAndZoom=function(){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.autoCenterAndZoom()});return }var lat_max=-90;var lat_min=90;var lon_max=-180;var lon_min=180;for(var i=0;ilat_max){lat_max=lat}if(latlon_max){lon_max=lon}if(lonlat_max){lat_max=lat}if(latlon_max){lon_max=lon}if(lonne.lon){sw.lon-=360}var center=new YGeoPoint((sw.lat+ne.lat)/2,(ne.lon+sw.lon)/2);var container=map.getContainerSize();for(var zoom=1;zoom<=17;zoom++){var sw_pix=convertLatLonXY_Yahoo(sw,zoom);var ne_pix=convertLatLonXY_Yahoo(ne,zoom);if(sw_pix.x>ne_pix.x){sw_pix.x-=(1<<(26-zoom))}if(Math.abs(ne_pix.x-sw_pix.x)<=container.width&&Math.abs(ne_pix.y-sw_pix.y)<=container.height){map.drawZoomAndCenter(center,zoom);break}}break;case"microsoft":map.SetMapView([new VELatLong(sw.lat,sw.lon),new VELatLong(ne.lat,ne.lon)]);break;case"multimap":var mmlocation=map.getAutoScaleLocation([sw.toMultiMap(),ne.toMultiMap()]);map.goToPosition(mmlocation.coords,mmlocation.zoom_factor);break;case"mapquest":var mqcenter=new LatLonPoint((sw.lat+ne.lat)/2,(ne.lon+sw.lon)/2);var dLon=ne.lon-sw.lon;var mqsize=map.getSize();var zoom=getGoogleZoomLevelFromDegrees(mqsize.getWidth(),dLon);this.setCenterAndZoom(mqcenter,Math.floor(zoom));break;case"freeearth":var center=new LatLonPoint((sw.lat+ne.lat)/2,(ne.lon+sw.lon)/2);this.setCenter(center);break;case"map24":var settings={};settings.Latitude=((sw.lat+ne.lat)/2)*60;settings.Longitude=((sw.lon+ne.lon)/2)*60;settings.MinimumWidth=lonToMetres(ne.lon-sw.lon,(ne.lat+sw.lat)/2);settings.MinimumWidth*=2.4;Map24.MapApplication.center(settings);break;case"viamichelin":var vmpoints=new Array(new LatLonPoint(sw.lat,sw.lon),new LatLonPoint(ne.lat,ne.lon));var vmpoly=new VMPolyLine(vmpoints);map.addLayer(vmpoly);map.drawMapFromLayers();break;default:if(this.debug){alert(this.api+" not supported by Mapstraction.setBounds")}}};Mapstraction.prototype.addImageOverlay=function(id,src,opacity,west,south,east,north){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.addImageOverlay(id,src,opacity,west,south,east,north)});return }var map=this.maps[this.api];var b=document.createElement("img");b.style.display="block";b.setAttribute("id",id);b.setAttribute("src",src);b.style.position="absolute";b.style.zIndex=1;b.setAttribute("west",west);b.setAttribute("south",south);b.setAttribute("east",east);b.setAttribute("north",north);switch(this.api){case"google":case"openstreetmap":map.getPane(G_MAP_MAP_PANE).appendChild(b);this.setImageOpacity(id,opacity);this.setImagePosition(id);GEvent.bind(map,"zoomend",this,function(){this.setImagePosition(id)});GEvent.bind(map,"moveend",this,function(){this.setImagePosition(id)});break;case"multimap":map.getContainer().appendChild(b);this.setImageOpacity(id,opacity);this.setImagePosition(id);me=this;map.addEventHandler("changeZoom",function(eventType,eventTarget,arg1,arg2,arg3){me.setImagePosition(id)});map.addEventHandler("drag",function(eventType,eventTarget,arg1,arg2,arg3){me.setImagePosition(id)});map.addEventHandler("endPan",function(eventType,eventTarget,arg1,arg2,arg3){me.setImagePosition(id)});break;case"viamichelin":default:b.style.display="none";if(this.debug){alert(this.api+"not supported by Mapstraction.addImageOverlay not supported")}break}};Mapstraction.prototype.setImageOpacity=function(id,opacity){if(opacity<0){opacity=0}if(opacity>=100){opacity=100}var c=opacity/100;var d=document.getElementById(id);if(typeof (d.style.filter)=="string"){d.style.filter="alpha(opacity:"+opacity+")"}if(typeof (d.style.KHTMLOpacity)=="string"){d.style.KHTMLOpacity=c}if(typeof (d.style.MozOpacity)=="string"){d.style.MozOpacity=c}if(typeof (d.style.opacity)=="string"){d.style.opacity=c}};Mapstraction.prototype.setImagePosition=function(id){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.setImagePosition(id)});return }var map=this.maps[this.api];var x=document.getElementById(id);var d;var e;switch(this.api){case"google":case"openstreetmap":d=map.fromLatLngToDivPixel(new GLatLng(x.getAttribute("north"),x.getAttribute("west")));e=map.fromLatLngToDivPixel(new GLatLng(x.getAttribute("south"),x.getAttribute("east")));break;case"multimap":d=map.geoPosToContainerPixels(new MMLatLon(x.getAttribute("north"),x.getAttribute("west")));e=map.geoPosToContainerPixels(new MMLatLon(x.getAttribute("south"),x.getAttribute("east")));break;case"viamichelin":}x.style.top=d.y.toString()+"px";x.style.left=d.x.toString()+"px";x.style.width=(e.x-d.x).toString()+"px";x.style.height=(e.y-d.y).toString()+"px"};Mapstraction.prototype.addOverlay=function(url,autoCenterAndZoom){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.addOverlay(georssURL)});return }if(autoCenterAndZoom==null){autoCenterAndZoom=false}var map=this.maps[this.api];switch(this.api){case"yahoo":map.addOverlay(new YGeoRSS(url));break;case"openstreetmap":case"google":var geoXML=new GGeoXml(url);map.addOverlay(geoXML,function(){if(autoCenterAndZoom){geoXML.gotoDefaultViewport(map)}});break;case"microsoft":var shapeLayer=new VEShapeLayer();var shapeSpec=new VEShapeSourceSpecification(VEDataType.ImportXML,url,shapeLayer);map.ImportShapeLayerData(shapeSpec,function(feed){},autoCenterAndZoom);break;case"multimap":break;case"freeearth":if(this.freeEarthLoaded){var ferss=new FE.GeoRSS(url);map.addOverlay(ferss)}else{var me=this;this.freeEarthOnLoad.push(function(){me.addOverlay(url)})}break;case"viamichelin":default:if(this.debug){alert(this.api+" not supported by Mapstraction.addOverlay")}}};Mapstraction.prototype.addJSON=function(json){var features;if(typeof (json)=="string"){features=eval("("+json+")")}else{features=json}features=features.features;var map=this.maps[this.api];var html="";var item;var polyline;var marker;var markers=[];if(features.type=="FeatureCollection"){this.addJSON(features.features)}for(var i=0;i"+item.title+"

"+item.description+"

";marker=new Marker(new LatLonPoint(item.geometry.coordinates[1],item.geometry.coordinates[0]));markers.push(marker);this.addMarkerWithData(marker,{infoBubble:html,label:item.title,date:'new Date("'+item.date+'")',iconShadow:item.icon_shadow,marker:item.id,date:'new Date("'+item.date+'")',iconShadowSize:item.icon_shadow_size,icon:"http://boston.openguides.org/markers/AQUA.png",iconSize:item.icon_size,category:item.source_id,draggable:false,hover:false});break;case"Polygon":var points=[];polyline=new Polyline(points);mapstraction.addPolylineWithData(polyline,{fillColor:item.poly_color,date:'new Date("'+item.date+'")',category:item.source_id,width:item.line_width,opacity:item.line_opacity,color:item.line_color,polygon:true});markers.push(polyline);default:}}return markers};Mapstraction.prototype.addTileLayer=function(tile_url,opacity,copyright_text,min_zoom,max_zoom){if(!tile_url){return }if(!this.tileLayers){this.tileLayers=[]}if(!opacity){opacity=0.6}if(!copyright_text){copyright_text="Mapstraction"}if(!min_zoom){min_zoom=1}if(!max_zoom){max_zoom=18}switch(this.api){case"google":case"openstreetmap":var copyright=new GCopyright(1,new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)),0,"copyleft");var copyrightCollection=new GCopyrightCollection(copyright_text);copyrightCollection.addCopyright(copyright);var tilelayers=[];tilelayers[0]=new GTileLayer(copyrightCollection,min_zoom,max_zoom);tilelayers[0].isPng=function(){return true};tilelayers[0].getOpacity=function(){return opacity};tilelayers[0].getTileUrl=function(a,b){url=tile_url;url=url.replace(/\{Z\}/,b);url=url.replace(/\{X\}/,a.x);url=url.replace(/\{Y\}/,a.y);return url};tileLayerOverlay=new GTileLayerOverlay(tilelayers[0]);this.tileLayers.push([tile_url,tileLayerOverlay,true]);this.maps[this.api].addOverlay(tileLayerOverlay);break}return tileLayerOverlay};Mapstraction.prototype.toggleTileLayer=function(tile_url){switch(this.api){case"google":case"openstreetmap":for(var f=0;ff[2]){vis=false}break;case"eq":if(o.getAttribute(f[0])==f[2]){vis=false}break}return vis};Mapstraction.prototype.getAttributeExtremes=function(field){var min;var max;for(var m=0;mthis.markers[m].getAttribute(field)){min=this.markers[m].getAttribute(field)}if(!max||maxthis.polylines[p].getAttribute(field)){min=this.polylines[p].getAttribute(field)}if(!max||max=this.sw.lat&&point.lat<=this.ne.lat&&point.lon>=this.sw.lon&&point.lon<=this.ne.lon};BoundingBox.prototype.toSpan=function(){return new LatLonPoint(Math.abs(this.sw.lat-this.ne.lat),Math.abs(this.sw.lon-this.ne.lon))};BoundingBox.prototype.extend=function(point){if(this.sw.lat>point.lat){this.sw.lat=point.lat}if(this.sw.lon>point.lon){this.sw.lon=point.lon}if(this.ne.lat2F ATC Centre, 148 Katipunan Ave., St. Ignatius Subdivision, Quezon City, Metro Manila, Philippines");C.addMarker(A);C.addControls({pan:true,zoom:"small",overview:true,scale:true,map_type:true})}window.addEvent("domready",function(){var A=new SmoothScroll({duration:400},window);var C=new ImageMenu($$("#imageMenu div"),{openWidth:200,border:2,open:0});if(!Browser.Engine.trident){var B=new MooColumns({numOfColumns:3})}else{$("home").addEvent("click",function(E){E.stop();var D=$("gmap");if(D!=null){D.dispose()}});$("about").addEvent("click",function(E){E.stop();var D=$("gmap");if(D!=null){D.dispose()}});$("prodandser").addEvent("click",function(E){E.stop();var D=$("gmap");if(D!=null){D.dispose()}});$("careers").addEvent("click",function(E){E.stop();var D=$("gmap");if(D!=null){D.dispose()}});$("blog").addEvent("click",function(E){E.stop();var D=$("gmap");if(D!=null){D.dispose()}})}$("contact").addEvent("click",function(F){F.stop();var E=$("gmap");if(E==null){var E=new Element("div",{id:"gmap","class":"gmap"});var G=$("page4");E.inject(G,"top")}var D=new Mapstraction("gmap","openstreetmap");dagitabMap(D)})});