//MooTools, My Object Oriented Javascript Tools. Copyright (c) 2006-2007 Valerio Proietti, <http://mad4milk.net>, MIT Style License.
 ///dana test
var MooTools={version:"1.11"};function $defined(A){return(A!=undefined);}function $type(B){if(!$defined(B)){return false;}if(B.htmlElement){return"element";
}var A=typeof B;if(A=="object"&&B.nodeName){switch(B.nodeType){case 1:return"element";case 3:return(/\S/).test(B.nodeValue)?"textnode":"whitespace";}}if(A=="object"||A=="function"){switch(B.constructor){case Array:return"array";
case RegExp:return"regexp";case Class:return"class";}if(typeof B.length=="number"){if(B.item){return"collection";}if(B.callee){return"arguments";}}}return A;
}function $merge(){var C={};for(var B=0;B<arguments.length;B++){for(var E in arguments[B]){var A=arguments[B][E];var D=C[E];if(D&&$type(A)=="object"&&$type(D)=="object"){C[E]=$merge(D,A);
}else{C[E]=A;}}}return C;}var $extend=function(){var A=arguments;if(!A[1]){A=[this,A[0]];}for(var B in A[1]){A[0][B]=A[1][B];}return A[0];};var $native=function(){for(var B=0,A=arguments.length;
B<A;B++){arguments[B].extend=function(C){for(var D in C){if(!this.prototype[D]){this.prototype[D]=C[D];}if(!this[D]){this[D]=$native.generic(D);}}};}};
$native.generic=function(A){return function(B){return this.prototype[A].apply(B,Array.prototype.slice.call(arguments,1));};};$native(Function,Array,String,Number);
function $chk(A){return !!(A||A===0);}function $pick(B,A){return $defined(B)?B:A;}function $random(B,A){return Math.floor(Math.random()*(A-B+1)+B);}function $time(){return new Date().getTime();
}function $clear(A){clearTimeout(A);clearInterval(A);return null;}var Abstract=function(A){A=A||{};A.extend=$extend;return A;};var Window=new Abstract(window);
var Document=new Abstract(document);document.head=document.getElementsByTagName("head")[0];window.xpath=!!(document.evaluate);if(window.ActiveXObject){window.ie=window[window.XMLHttpRequest?"ie7":"ie6"]=true;
}else{if(document.childNodes&&!document.all&&!navigator.taintEnabled){window.webkit=window[window.xpath?"webkit420":"webkit419"]=true;}else{if(document.getBoxObjectFor!=null){window.gecko=true;
}}}window.khtml=window.webkit;Object.extend=$extend;if(typeof HTMLElement=="undefined"){var HTMLElement=function(){};if(window.webkit){document.createElement("iframe");
}HTMLElement.prototype=(window.webkit)?window["[[DOMElement.prototype]]"]:{};}HTMLElement.prototype.htmlElement=function(){};if(window.ie6){try{document.execCommand("BackgroundImageCache",false,true);
}catch(e){}}var Class=function(B){var A=function(){return(arguments[0]!==null&&this.initialize&&$type(this.initialize)=="function")?this.initialize.apply(this,arguments):this;
};$extend(A,this);A.prototype=B;A.constructor=Class;return A;};Class.empty=function(){};Class.prototype={extend:function(B){var C=new this(null);for(var D in B){var A=C[D];
C[D]=Class.Merge(A,B[D]);}return new Class(C);},implement:function(){for(var B=0,A=arguments.length;B<A;B++){$extend(this.prototype,arguments[B]);}}};Class.Merge=function(C,D){if(C&&C!=D){var B=$type(D);
if(B!=$type(C)){return D;}switch(B){case"function":var A=function(){this.parent=arguments.callee.parent;return D.apply(this,arguments);};A.parent=C;return A;
case"object":return $merge(C,D);}}return D;};var Chain=new Class({chain:function(A){this.chains=this.chains||[];this.chains.push(A);return this;},callChain:function(){if(this.chains&&this.chains.length){this.chains.shift().delay(10,this);
}},clearChain:function(){this.chains=[];}});var Events=new Class({addEvent:function(B,A){if(A!=Class.empty){this.$events=this.$events||{};this.$events[B]=this.$events[B]||[];
this.$events[B].include(A);}return this;},fireEvent:function(C,B,A){if(this.$events&&this.$events[C]){this.$events[C].each(function(D){D.create({bind:this,delay:A,"arguments":B})();
},this);}return this;},removeEvent:function(B,A){if(this.$events&&this.$events[B]){this.$events[B].remove(A);}return this;}});var Options=new Class({setOptions:function(){this.options=$merge.apply(null,[this.options].extend(arguments));
if(this.addEvent){for(var A in this.options){if($type(this.options[A]=="function")&&(/^on[A-Z]/).test(A)){this.addEvent(A,this.options[A]);}}}return this;
}});Array.extend({forEach:function(C,D){for(var B=0,A=this.length;B<A;B++){C.call(D,this[B],B,this);}},filter:function(D,E){var C=[];for(var B=0,A=this.length;
B<A;B++){if(D.call(E,this[B],B,this)){C.push(this[B]);}}return C;},map:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){C[B]=D.call(E,this[B],B,this);
}return C;},every:function(C,D){for(var B=0,A=this.length;B<A;B++){if(!C.call(D,this[B],B,this)){return false;}}return true;},some:function(C,D){for(var B=0,A=this.length;
B<A;B++){if(C.call(D,this[B],B,this)){return true;}}return false;},indexOf:function(C,D){var A=this.length;for(var B=(D<0)?Math.max(0,A+D):D||0;B<A;B++){if(this[B]===C){return B;
}}return -1;},copy:function(D,C){D=D||0;if(D<0){D=this.length+D;}C=C||(this.length-D);var A=[];for(var B=0;B<C;B++){A[B]=this[D++];}return A;},remove:function(C){var B=0;
var A=this.length;while(B<A){if(this[B]===C){this.splice(B,1);A--;}else{B++;}}return this;},contains:function(A,B){return this.indexOf(A,B)!=-1;},associate:function(C){var D={},B=Math.min(this.length,C.length);
for(var A=0;A<B;A++){D[C[A]]=this[A];}return D;},extend:function(C){for(var B=0,A=C.length;B<A;B++){this.push(C[B]);}return this;},merge:function(C){for(var B=0,A=C.length;
B<A;B++){this.include(C[B]);}return this;},include:function(A){if(!this.contains(A)){this.push(A);}return this;},getRandom:function(){return this[$random(0,this.length-1)]||null;
},getLast:function(){return this[this.length-1]||null;}});Array.prototype.each=Array.prototype.forEach;Array.each=Array.forEach;function $A(A){return Array.copy(A);
}function $each(C,B,D){if(C&&typeof C.length=="number"&&$type(C)!="object"){Array.forEach(C,B,D);}else{for(var A in C){B.call(D||C,C[A],A);}}}Array.prototype.test=Array.prototype.contains;
String.extend({test:function(A,B){return(($type(A)=="string")?new RegExp(A,B):A).test(this);},toInt:function(){return parseInt(this,10);},toFloat:function(){return parseFloat(this);
},camelCase:function(){return this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/\w[A-Z]/g,function(A){return(A.charAt(0)+"-"+A.charAt(1).toLowerCase());
});},capitalize:function(){return this.replace(/\b[a-z]/g,function(A){return A.toUpperCase();});},trim:function(){return this.replace(/^\s+|\s+$/g,"");
},clean:function(){return this.replace(/\s{2,}/g," ").trim();},rgbToHex:function(B){var A=this.match(/\d{1,3}/g);return(A)?A.rgbToHex(B):false;},hexToRgb:function(B){var A=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
return(A)?A.slice(1).hexToRgb(B):false;},contains:function(A,B){return(B)?(B+this+B).indexOf(B+A+B)>-1:this.indexOf(A)>-1;},escapeRegExp:function(){return this.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1");
}});Array.extend({rgbToHex:function(D){if(this.length<3){return false;}if(this.length==4&&this[3]==0&&!D){return"transparent";}var B=[];for(var A=0;A<3;
A++){var C=(this[A]-0).toString(16);B.push((C.length==1)?"0"+C:C);}return D?B:"#"+B.join("");},hexToRgb:function(C){if(this.length!=3){return false;}var A=[];
for(var B=0;B<3;B++){A.push(parseInt((this[B].length==1)?this[B]+this[B]:this[B],16));}return C?A:"rgb("+A.join(",")+")";}});Function.extend({create:function(A){var B=this;
A=$merge({bind:B,event:false,"arguments":null,delay:false,periodical:false,attempt:false},A);if($chk(A.arguments)&&$type(A.arguments)!="array"){A.arguments=[A.arguments];
}return function(E){var C;if(A.event){E=E||window.event;C=[(A.event===true)?E:new A.event(E)];if(A.arguments){C.extend(A.arguments);}}else{C=A.arguments||arguments;
}var F=function(){return B.apply($pick(A.bind,B),C);};if(A.delay){return setTimeout(F,A.delay);}if(A.periodical){return setInterval(F,A.periodical);}if(A.attempt){try{return F();
}catch(D){return false;}}return F();};},pass:function(A,B){return this.create({"arguments":A,bind:B});},attempt:function(A,B){return this.create({"arguments":A,bind:B,attempt:true})();
},bind:function(B,A){return this.create({bind:B,"arguments":A});},bindAsEventListener:function(B,A){return this.create({bind:B,event:true,"arguments":A});
},delay:function(B,C,A){return this.create({delay:B,bind:C,"arguments":A})();},periodical:function(A,C,B){return this.create({periodical:A,bind:C,"arguments":B})();
}});Number.extend({toInt:function(){return parseInt(this);},toFloat:function(){return parseFloat(this);},limit:function(B,A){return Math.min(A,Math.max(B,this));
},round:function(A){A=Math.pow(10,A||0);return Math.round(this*A)/A;},times:function(B){for(var A=0;A<this;A++){B(A);}}});var Element=new Class({initialize:function(D,C){if($type(D)=="string"){if(window.ie&&C&&(C.name||C.type)){var A=(C.name)?' name="'+C.name+'"':"";
var B=(C.type)?' type="'+C.type+'"':"";delete C.name;delete C.type;D="<"+D+A+B+">";}D=document.createElement(D);}D=$(D);return(!C||!D)?D:D.set(C);}});var Elements=new Class({initialize:function(A){return(A)?$extend(A,this):this;
}});Elements.extend=function(A){for(var B in A){this.prototype[B]=A[B];this[B]=$native.generic(B);}};function $(B){if(!B){return null;}if(B.htmlElement){return Garbage.collect(B);
}if([window,document].contains(B)){return B;}var A=$type(B);if(A=="string"){B=document.getElementById(B);A=(B)?"element":false;}if(A!="element"){return null;
}if(B.htmlElement){return Garbage.collect(B);}if(["object","embed"].contains(B.tagName.toLowerCase())){return B;}$extend(B,Element.prototype);B.htmlElement=function(){};
return Garbage.collect(B);}document.getElementsBySelector=document.getElementsByTagName;function $$(){var D=[];for(var C=0,B=arguments.length;C<B;C++){var A=arguments[C];
switch($type(A)){case"element":D.push(A);case"boolean":break;case false:break;case"string":A=document.getElementsBySelector(A,true);default:D.extend(A);
}}return $$.unique(D);}$$.unique=function(G){var D=[];for(var C=0,A=G.length;C<A;C++){if(G[C].$included){continue;}var B=$(G[C]);if(B&&!B.$included){B.$included=true;
D.push(B);}}for(var F=0,E=D.length;F<E;F++){D[F].$included=null;}return new Elements(D);};Elements.Multi=function(A){return function(){var D=arguments;
var B=[];var G=true;for(var E=0,C=this.length,F;E<C;E++){F=this[E][A].apply(this[E],D);if($type(F)!="element"){G=false;}B.push(F);}return(G)?$$.unique(B):B;
};};Element.extend=function(A){for(var B in A){HTMLElement.prototype[B]=A[B];Element.prototype[B]=A[B];Element[B]=$native.generic(B);var C=(Array.prototype[B])?B+"Elements":B;
Elements.prototype[C]=Elements.Multi(B);}};Element.extend({set:function(A){for(var C in A){var B=A[C];switch(C){case"styles":this.setStyles(B);break;case"events":if(this.addEvents){this.addEvents(B);
}break;case"properties":this.setProperties(B);break;default:this.setProperty(C,B);}}return this;},inject:function(C,A){C=$(C);switch(A){case"before":C.parentNode.insertBefore(this,C);
break;case"after":var B=C.getÑëåäóþùàÿ();if(!B){C.parentNode.appendChild(this);}else{C.parentNode.insertBefore(this,B);}break;case"top":var D=C.firstChild;if(D){C.insertBefore(this,D);
break;}default:C.appendChild(this);}return this;},injectBefore:function(A){return this.inject(A,"before");},injectAfter:function(A){return this.inject(A,"after");
},injectInside:function(A){return this.inject(A,"bottom");},injectTop:function(A){return this.inject(A,"top");},adopt:function(){var A=[];$each(arguments,function(B){A=A.concat(B);
});$$(A).inject(this);return this;},remove:function(){return this.parentNode.removeChild(this);},clone:function(C){var B=$(this.cloneNode(C!==false));if(!B.$events){return B;
}B.$events={};for(var A in this.$events){B.$events[A]={keys:$A(this.$events[A].keys),values:$A(this.$events[A].values)};}return B.removeEvents();},replaceWith:function(A){A=$(A);
this.parentNode.replaceChild(A,this);return A;},appendText:function(A){this.appendChild(document.createTextNode(A));return this;},hasClass:function(A){return this.className.contains(A," ");
},addClass:function(A){if(!this.hasClass(A)){this.className=(this.className+" "+A).clean();}return this;},removeClass:function(A){this.className=this.className.replace(new RegExp("(^|\\s)"+A+"(?:\\s|$)"),"$1").clean();
return this;},toggleClass:function(A){return this.hasClass(A)?this.removeClass(A):this.addClass(A);},setStyle:function(B,A){switch(B){case"opacity":return this.setOpacity(parseFloat(A));
case"float":B=(window.ie)?"styleFloat":"cssFloat";}B=B.camelCase();switch($type(A)){case"number":if(!["zIndex","zoom"].contains(B)){A+="px";}break;case"array":A="rgb("+A.join(",")+")";
}this.style[B]=A;return this;},setStyles:function(A){switch($type(A)){case"object":Element.setMany(this,"setStyle",A);break;case"string":this.style.cssText=A;
}return this;},setOpacity:function(A){if(A==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden";}}else{if(this.style.visibility!="visible"){this.style.visibility="visible";
}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1;}if(window.ie){this.style.filter=(A==1)?"":"alpha(opacity="+A*100+")";}this.style.opacity=this.$tmp.opacity=A;
return this;},getStyle:function(C){C=C.camelCase();var A=this.style[C];if(!$chk(A)){if(C=="opacity"){return this.$tmp.opacity;}A=[];for(var B in Element.Styles){if(C==B){Element.Styles[B].each(function(F){var E=this.getStyle(F);
A.push(parseInt(E)?E:"0px");},this);if(C=="border"){var D=A.every(function(E){return(E==A[0]);});return(D)?A[0]:false;}return A.join(" ");}}if(C.contains("border")){if(Element.Styles.border.contains(C)){return["Width","Style","Color"].map(function(E){return this.getStyle(C+E);
},this).join(" ");}else{if(Element.borderShort.contains(C)){return["Top","Right","Bottom","Left"].map(function(E){return this.getStyle("border"+E+C.replace("border",""));
},this).join(" ");}}}if(document.defaultView){A=document.defaultView.getComputedStyle(this,null).getPropertyValue(C.hyphenate());}else{if(this.currentStyle){A=this.currentStyle[C];
}}}if(window.ie){A=Element.fixStyle(C,A,this);}if(A&&C.test(/color/i)&&A.contains("rgb")){return A.split("rgb").splice(1,4).map(function(E){return E.rgbToHex();
}).join(" ");}return A;},getStyles:function(){return Element.getMany(this,"getStyle",arguments);},walk:function(A,C){A+="Sibling";var B=(C)?this[C]:this[A];
while(B&&$type(B)!="element"){B=B[A];}return $(B);},getÏðåäûäóùàÿious:function(){return this.walk("previous");},getÑëåäóþùàÿ:function(){return this.walk("next");},getFirst:function(){return this.walk("next","firstChild");
},getLast:function(){return this.walk("previous","lastChild");},getParent:function(){return $(this.parentNode);},getChildren:function(){return $$(this.childNodes);
},hasChild:function(A){return !!$A(this.getElementsByTagName("*")).contains(A);},getProperty:function(D){var B=Element.Properties[D];if(B){return this[B];
}var A=Element.PropertiesIFlag[D]||0;if(!window.ie||A){return this.getAttribute(D,A);}var C=this.attributes[D];return(C)?C.nodeValue:null;},removeProperty:function(B){var A=Element.Properties[B];
if(A){this[A]="";}else{this.removeAttribute(B);}return this;},getProperties:function(){return Element.getMany(this,"getProperty",arguments);},setProperty:function(C,B){var A=Element.Properties[C];
if(A){this[A]=B;}else{this.setAttribute(C,B);}return this;},setProperties:function(A){return Element.setMany(this,"setProperty",A);},setHTML:function(){this.innerHTML=$A(arguments).join("");
return this;},setText:function(B){var A=this.getTag();if(["style","script"].contains(A)){if(window.ie){if(A=="style"){this.styleSheet.cssText=B;}else{if(A=="script"){this.setProperty("text",B);
}}return this;}else{this.removeChild(this.firstChild);return this.appendText(B);}}this[$defined(this.innerText)?"innerText":"textContent"]=B;return this;
},getText:function(){var A=this.getTag();if(["style","script"].contains(A)){if(window.ie){if(A=="style"){return this.styleSheet.cssText;}else{if(A=="script"){return this.getProperty("text");
}}}else{return this.innerHTML;}}return($pick(this.innerText,this.textContent));},getTag:function(){return this.tagName.toLowerCase();},empty:function(){Garbage.trash(this.getElementsByTagName("*"));
return this.setHTML("");}});Element.fixStyle=function(E,A,D){if($chk(parseInt(A))){return A;}if(["height","width"].contains(E)){var B=(E=="width")?["left","right"]:["top","bottom"];
var C=0;B.each(function(F){C+=D.getStyle("border-"+F+"-width").toInt()+D.getStyle("padding-"+F).toInt();});return D["offset"+E.capitalize()]-C+"px";}else{if(E.test(/border(.+)Width|margin|padding/)){return"0px";
}}return A;};Element.Styles={border:[],padding:[],margin:[]};["Top","Right","Bottom","Left"].each(function(B){for(var A in Element.Styles){Element.Styles[A].push(A+B);
}});Element.borderShort=["borderWidth","borderStyle","borderColor"];Element.getMany=function(B,D,C){var A={};$each(C,function(E){A[E]=B[D](E);});return A;
};Element.setMany=function(B,D,C){for(var A in C){B[D](A,C[A]);}return B;};Element.Properties=new Abstract({"class":"className","for":"htmlFor",colspan:"colSpan",rowspan:"rowSpan",accesskey:"accessKey",tabindex:"tabIndex",maxlength:"maxLength",readonly:"readOnly",frameborder:"frameBorder",value:"value",disabled:"disabled",checked:"checked",multiple:"multiple",selected:"selected"});
Element.PropertiesIFlag={href:2,src:2};Element.Methods={Listeners:{addListener:function(B,A){if(this.addEventListener){this.addEventListener(B,A,false);
}else{this.attachEvent("on"+B,A);}return this;},removeListener:function(B,A){if(this.removeEventListener){this.removeEventListener(B,A,false);}else{this.detachEvent("on"+B,A);
}return this;}}};window.extend(Element.Methods.Listeners);document.extend(Element.Methods.Listeners);Element.extend(Element.Methods.Listeners);var Garbage={elements:[],collect:function(A){if(!A.$tmp){Garbage.elements.push(A);
A.$tmp={opacity:1};}return A;},trash:function(D){for(var B=0,A=D.length,C;B<A;B++){if(!(C=D[B])||!C.$tmp){continue;}if(C.$events){C.fireEvent("trash").removeEvents();
}for(var E in C.$tmp){C.$tmp[E]=null;}for(var F in Element.prototype){C[F]=null;}Garbage.elements[Garbage.elements.indexOf(C)]=null;C.htmlElement=C.$tmp=C=null;
}Garbage.elements.remove(null);},empty:function(){Garbage.collect(window);Garbage.collect(document);Garbage.trash(Garbage.elements);}};window.addListener("beforeunload",function(){window.addListener("unload",Garbage.empty);
if(window.ie){window.addListener("unload",CollectGarbage);}});var Event=new Class({initialize:function(C){if(C&&C.$extended){return C;}this.$extended=true;
C=C||window.event;this.event=C;this.type=C.type;this.target=C.target||C.srcElement;if(this.target.nodeType==3){this.target=this.target.parentNode;}this.shift=C.shiftKey;
this.control=C.ctrlKey;this.alt=C.altKey;this.meta=C.metaKey;if(["DOMMouseScroll","mousewheel"].contains(this.type)){this.wheel=(C.wheelDelta)?C.wheelDelta/120:-(C.detail||0)/3;
}else{if(this.type.contains("key")){this.code=C.which||C.keyCode;for(var B in Event.keys){if(Event.keys[B]==this.code){this.key=B;break;}}if(this.type=="keydown"){var A=this.code-111;
if(A>0&&A<13){this.key="f"+A;}}this.key=this.key||String.fromCharCode(this.code).toLowerCase();}else{if(this.type.test(/(click|mouse|menu)/)){this.page={x:C.pageX||C.clientX+document.documentElement.scrollLeft,y:C.pageY||C.clientY+document.documentElement.scrollTop};
this.client={x:C.pageX?C.pageX-window.pageXOffset:C.clientX,y:C.pageY?C.pageY-window.pageYOffset:C.clientY};this.rightClick=(C.which==3)||(C.button==2);
switch(this.type){case"mouseover":this.relatedTarget=C.relatedTarget||C.fromElement;break;case"mouseout":this.relatedTarget=C.relatedTarget||C.toElement;
}this.fixRelatedTarget();}}}return this;},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;}});Event.fix={relatedTarget:function(){if(this.relatedTarget&&this.relatedTarget.nodeType==3){this.relatedTarget=this.relatedTarget.parentNode;
}},relatedTargetGecko:function(){try{Event.fix.relatedTarget.call(this);}catch(A){this.relatedTarget=this.target;}}};Event.prototype.fixRelatedTarget=(window.gecko)?Event.fix.relatedTargetGecko:Event.fix.relatedTarget;
Event.keys=new Abstract({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Element.Methods.Events={addEvent:function(C,B){this.$events=this.$events||{};
this.$events[C]=this.$events[C]||{keys:[],values:[]};if(this.$events[C].keys.contains(B)){return this;}this.$events[C].keys.push(B);var A=C;var D=Element.Events[C];
if(D){if(D.add){D.add.call(this,B);}if(D.map){B=D.map;}if(D.type){A=D.type;}}if(!this.addEventListener){B=B.create({bind:this,event:true});}this.$events[C].values.push(B);
return(Element.NativeEvents.contains(A))?this.addListener(A,B):this;},removeEvent:function(C,B){if(!this.$events||!this.$events[C]){return this;}var F=this.$events[C].keys.indexOf(B);
if(F==-1){return this;}var A=this.$events[C].keys.splice(F,1)[0];var E=this.$events[C].values.splice(F,1)[0];var D=Element.Events[C];if(D){if(D.remove){D.remove.call(this,B);
}if(D.type){C=D.type;}}return(Element.NativeEvents.contains(C))?this.removeListener(C,E):this;},addEvents:function(A){return Element.setMany(this,"addEvent",A);
},removeEvents:function(A){if(!this.$events){return this;}if(!A){for(var B in this.$events){this.removeEvents(B);}this.$events=null;}else{if(this.$events[A]){this.$events[A].keys.each(function(C){this.removeEvent(A,C);
},this);this.$events[A]=null;}}return this;},fireEvent:function(C,B,A){if(this.$events&&this.$events[C]){this.$events[C].keys.each(function(D){D.create({bind:this,delay:A,"arguments":B})();
},this);}return this;},cloneEvents:function(C,A){if(!C.$events){return this;}if(!A){for(var B in C.$events){this.cloneEvents(C,B);}}else{if(C.$events[A]){C.$events[A].keys.each(function(D){this.addEvent(A,D);
},this);}}return this;}};window.extend(Element.Methods.Events);document.extend(Element.Methods.Events);Element.extend(Element.Methods.Events);Element.Events=new Abstract({mouseenter:{type:"mouseover",map:function(A){A=new Event(A);
if(A.relatedTarget!=this&&!this.hasChild(A.relatedTarget)){this.fireEvent("mouseenter",A);}}},mouseleave:{type:"mouseout",map:function(A){A=new Event(A);
if(A.relatedTarget!=this&&!this.hasChild(A.relatedTarget)){this.fireEvent("mouseleave",A);}}},mousewheel:{type:(window.gecko)?"DOMMouseScroll":"mousewheel"}});
Element.NativeEvents=["click","dblclick","mouseup","mousedown","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","keydown","keypress","keyup","load","unload","beforeunload","resize","move","focus","blur","change","submit","reset","select","error","abort","contextmenu","scroll"];
Function.extend({bindWithEvent:function(B,A){return this.create({bind:B,"arguments":A,event:Event});}});Elements.extend({filterByTag:function(A){return new Elements(this.filter(function(B){return(Element.getTag(B)==A);
}));},filterByClass:function(A,C){var B=this.filter(function(D){return(D.className&&D.className.contains(A," "));});return(C)?B:new Elements(B);},filterById:function(C,B){var A=this.filter(function(D){return(D.id==C);
});return(B)?A:new Elements(A);},filterByAttribute:function(B,A,D,E){var C=this.filter(function(F){var G=Element.getProperty(F,B);if(!G){return false;}if(!A){return true;
}switch(A){case"=":return(G==D);case"*=":return(G.contains(D));case"^=":return(G.substr(0,D.length)==D);case"$=":return(G.substr(G.length-D.length)==D);
case"!=":return(G!=D);case"~=":return G.contains(D," ");}return false;});return(E)?C:new Elements(C);}});function $E(A,B){return($(B)||document).getElement(A);
}function $ES(A,B){return($(B)||document).getElementsBySelector(A);}$$.shared={regexp:/^(\w*|\*)(?:#([\w-]+)|\.([\w-]+))?(?:\[(\w+)(?:([!*^$]?=)["']?([^"'\]]*)["']?)?])?$/,xpath:{getParam:function(B,D,E,C){var A=[D.namespaceURI?"xhtml:":"",E[1]];
if(E[2]){A.push('[@id="',E[2],'"]');}if(E[3]){A.push('[contains(concat(" ", @class, " "), " ',E[3],' ")]');}if(E[4]){if(E[5]&&E[6]){switch(E[5]){case"*=":A.push("[contains(@",E[4],', "',E[6],'")]');
break;case"^=":A.push("[starts-with(@",E[4],', "',E[6],'")]');break;case"$=":A.push("[substring(@",E[4],", string-length(@",E[4],") - ",E[6].length,' + 1) = "',E[6],'"]');
break;case"=":A.push("[@",E[4],'="',E[6],'"]');break;case"!=":A.push("[@",E[4],'!="',E[6],'"]');}}else{A.push("[@",E[4],"]");}}B.push(A.join(""));return B;
},getItems:function(B,E,G){var F=[];var A=document.evaluate(".//"+B.join("//"),E,$$.shared.resolver,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(var D=0,C=A.snapshotLength;
D<C;D++){F.push(A.snapshotItem(D));}return(G)?F:new Elements(F.map($));}},normal:{getParam:function(A,C,E,B){if(B==0){if(E[2]){var D=C.getElementById(E[2]);
if(!D||((E[1]!="*")&&(Element.getTag(D)!=E[1]))){return false;}A=[D];}else{A=$A(C.getElementsByTagName(E[1]));}}else{A=$$.shared.getElementsByTagName(A,E[1]);
if(E[2]){A=Elements.filterById(A,E[2],true);}}if(E[3]){A=Elements.filterByClass(A,E[3],true);}if(E[4]){A=Elements.filterByAttribute(A,E[4],E[5],E[6],true);
}return A;},getItems:function(A,B,C){return(C)?A:$$.unique(A);}},resolver:function(A){return(A=="xhtml")?"http://www.w3.org/1999/xhtml":false;},getElementsByTagName:function(D,C){var E=[];
for(var B=0,A=D.length;B<A;B++){E.extend(D[B].getElementsByTagName(C));}return E;}};$$.shared.method=(window.xpath)?"xpath":"normal";Element.Methods.Dom={getElements:function(A,H){var C=[];
A=A.trim().split(" ");for(var E=0,D=A.length;E<D;E++){var F=A[E];var G=F.match($$.shared.regexp);if(!G){break;}G[1]=G[1]||"*";var B=$$.shared[$$.shared.method].getParam(C,this,G,E);
if(!B){break;}C=B;}return $$.shared[$$.shared.method].getItems(C,this,H);},getElement:function(A){return $(this.getElements(A,true)[0]||false);},getElementsBySelector:function(A,E){var D=[];
A=A.split(",");for(var C=0,B=A.length;C<B;C++){D=D.concat(this.getElements(A[C],true));}return(E)?D:$$.unique(D);}};Element.extend({getElementById:function(C){var B=document.getElementById(C);
if(!B){return false;}for(var A=B.parentNode;A!=this;A=A.parentNode){if(!A){return false;}}return B;},getElementsByClassName:function(A){return this.getElements("."+A);
}});document.extend(Element.Methods.Dom);Element.extend(Element.Methods.Dom);Element.extend({getValue:function(){switch(this.getTag()){case"select":var A=[];
$each(this.options,function(B){if(B.selected){A.push($pick(B.value,B.text));}});return(this.multiple)?A:A[0];case"input":if(!(this.checked&&["checkbox","radio"].contains(this.type))&&!["hidden","text","password"].contains(this.type)){break;
}case"textarea":return this.value;}return false;},getFormElements:function(){return $$(this.getElementsByTagName("input"),this.getElementsByTagName("select"),this.getElementsByTagName("textarea"));
},toQueryString:function(){var A=[];this.getFormElements().each(function(D){var C=D.name;var E=D.getValue();if(E===false||!C||D.disabled){return ;}var B=function(F){A.push(C+"="+encodeURIComponent(F));
};if($type(E)=="array"){E.each(B);}else{B(E);}});return A.join("&");}});Element.extend({scrollTo:function(A,B){this.scrollLeft=A;this.scrollTop=B;},getSize:function(){return{scroll:{x:this.scrollLeft,y:this.scrollTop},size:{x:this.offsetWidth,y:this.offsetHeight},scrollSize:{x:this.scrollWidth,y:this.scrollHeight}};
},getPosition:function(A){A=A||[];var B=this,D=0,C=0;do{D+=B.offsetLeft||0;C+=B.offsetTop||0;B=B.offsetParent;}while(B);A.each(function(E){D-=E.scrollLeft||0;
C-=E.scrollTop||0;});return{x:D,y:C};},getTop:function(A){return this.getPosition(A).y;},getLeft:function(A){return this.getPosition(A).x;},getCoordinates:function(B){var A=this.getPosition(B);
var C={width:this.offsetWidth,height:this.offsetHeight,left:A.x,top:A.y};C.right=C.left+C.width;C.bottom=C.top+C.height;return C;}});Element.Events.domready={add:function(B){if(window.loaded){B.call(this);
return ;}var A=function(){if(window.loaded){return ;}window.loaded=true;window.timer=$clear(window.timer);this.fireEvent("domready");}.bind(this);if(document.readyState&&window.webkit){window.timer=function(){if(["loaded","complete"].contains(document.readyState)){A();
}}.periodical(50);}else{if(document.readyState&&window.ie){if(!$("ie_ready")){var C=(window.location.protocol=="https:")?"://0":"javascript:void(0)";document.write('<script id="ie_ready" defer src="'+C+'"><\/script>');
$("ie_ready").onreadystatechange=function(){if(this.readyState=="complete"){A();}};}}else{window.addListener("load",A);document.addListener("DOMContentLoaded",A);
}}}};window.onDomReady=function(A){return this.addEvent("domready",A);};window.extend({getWidth:function(){if(this.webkit419){return this.innerWidth;}if(this.opera){return document.body.clientWidth;
}return document.documentElement.clientWidth;},getHeight:function(){if(this.webkit419){return this.innerHeight;}if(this.opera){return document.body.clientHeight;
}return document.documentElement.clientHeight;},getScrollWidth:function(){if(this.ie){return Math.max(document.documentElement.offsetWidth,document.documentElement.scrollWidth);
}if(this.webkit){return document.body.scrollWidth;}return document.documentElement.scrollWidth;},getScrollHeight:function(){if(this.ie){return Math.max(document.documentElement.offsetHeight,document.documentElement.scrollHeight);
}if(this.webkit){return document.body.scrollHeight;}return document.documentElement.scrollHeight;},getScrollLeft:function(){return this.pageXOffset||document.documentElement.scrollLeft;
},getScrollTop:function(){return this.pageYOffset||document.documentElement.scrollTop;},getSize:function(){return{size:{x:this.getWidth(),y:this.getHeight()},scrollSize:{x:this.getScrollWidth(),y:this.getScrollHeight()},scroll:{x:this.getScrollLeft(),y:this.getScrollTop()}};
},getPosition:function(){return{x:0,y:0};}});var Fx={};Fx.Base=new Class({options:{onStart:Class.empty,onComplete:Class.empty,onCancel:Class.empty,transition:function(A){return -(Math.cos(Math.PI*A)-1)/2;
},duration:500,unit:"px",wait:true,fps:50},initialize:function(A){this.element=this.element||null;this.setOptions(A);if(this.options.initialize){this.options.initialize.call(this);
}},step:function(){var A=$time();if(A<this.time+this.options.duration){this.delta=this.options.transition((A-this.time)/this.options.duration);this.setNow();
this.increase();}else{this.stop(true);this.set(this.to);this.fireEvent("onComplete",this.element,10);this.callChain();}},set:function(A){this.now=A;this.increase();
return this;},setNow:function(){this.now=this.compute(this.from,this.to);},compute:function(B,A){return(A-B)*this.delta+B;},start:function(B,A){if(!this.options.wait){this.stop();
}else{if(this.timer){return this;}}this.from=B;this.to=A;this.change=this.to-this.from;this.time=$time();this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);
this.fireEvent("onStart",this.element);return this;},stop:function(A){if(!this.timer){return this;}this.timer=$clear(this.timer);if(!A){this.fireEvent("onCancel",this.element);
}return this;},custom:function(B,A){return this.start(B,A);},clearTimer:function(A){return this.stop(A);}});Fx.Base.implement(new Chain,new Events,new Options);
Fx.CSS={select:function(B,C){if(B.test(/color/i)){return this.Color;}var A=$type(C);if((A=="array")||(A=="string"&&C.contains(" "))){return this.Multi;
}return this.Single;},parse:function(C,D,A){if(!A.push){A=[A];}var F=A[0],E=A[1];if(!$chk(E)){E=F;F=C.getStyle(D);}var B=this.select(D,E);return{from:B.parse(F),to:B.parse(E),css:B};
}};Fx.CSS.Single={parse:function(A){return parseFloat(A);},getNow:function(C,B,A){return A.compute(C,B);},getValue:function(C,A,B){if(A=="px"&&B!="opacity"){C=Math.round(C);
}return C+A;}};Fx.CSS.Multi={parse:function(A){return A.push?A:A.split(" ").map(function(B){return parseFloat(B);});},getNow:function(E,D,C){var A=[];for(var B=0;
B<E.length;B++){A[B]=C.compute(E[B],D[B]);}return A;},getValue:function(C,A,B){if(A=="px"&&B!="opacity"){C=C.map(Math.round);}return C.join(A+" ")+A;}};
Fx.CSS.Color={parse:function(A){return A.push?A:A.hexToRgb(true);},getNow:function(E,D,C){var A=[];for(var B=0;B<E.length;B++){A[B]=Math.round(C.compute(E[B],D[B]));
}return A;},getValue:function(A){return"rgb("+A.join(",")+")";}};Fx.Style=Fx.Base.extend({initialize:function(B,C,A){this.element=$(B);this.property=C;
this.parent(A);},hide:function(){return this.set(0);},setNow:function(){this.now=this.css.getNow(this.from,this.to,this);},set:function(A){this.css=Fx.CSS.select(this.property,A);
return this.parent(this.css.parse(A));},start:function(C,B){if(this.timer&&this.options.wait){return this;}var A=Fx.CSS.parse(this.element,this.property,[C,B]);
this.css=A.css;return this.parent(A.from,A.to);},increase:function(){this.element.setStyle(this.property,this.css.getValue(this.now,this.options.unit,this.property));
}});Element.extend({effect:function(B,A){return new Fx.Style(this,B,A);}});Fx.Styles=Fx.Base.extend({initialize:function(B,A){this.element=$(B);this.parent(A);
},setNow:function(){for(var A in this.from){this.now[A]=this.css[A].getNow(this.from[A],this.to[A],this);}},set:function(C){var A={};this.css={};for(var B in C){this.css[B]=Fx.CSS.select(B,C[B]);
A[B]=this.css[B].parse(C[B]);}return this.parent(A);},start:function(C){if(this.timer&&this.options.wait){return this;}this.now={};this.css={};var E={},D={};
for(var B in C){var A=Fx.CSS.parse(this.element,B,C[B]);E[B]=A.from;D[B]=A.to;this.css[B]=A.css;}return this.parent(E,D);},increase:function(){for(var A in this.now){this.element.setStyle(A,this.css[A].getValue(this.now[A],this.options.unit,A));
}}});Element.extend({effects:function(A){return new Fx.Styles(this,A);}});Fx.Elements=Fx.Base.extend({initialize:function(B,A){this.elements=$$(B);this.parent(A);
},setNow:function(){for(var C in this.from){var F=this.from[C],E=this.to[C],B=this.css[C],A=this.now[C]={};for(var D in F){A[D]=B[D].getNow(F[D],E[D],this);
}}},set:function(G){var B={};this.css={};for(var D in G){var F=G[D],C=this.css[D]={},A=B[D]={};for(var E in F){C[E]=Fx.CSS.select(E,F[E]);A[E]=C[E].parse(F[E]);
}}return this.parent(B);},start:function(D){if(this.timer&&this.options.wait){return this;}this.now={};this.css={};var I={},J={};for(var E in D){var G=D[E],A=I[E]={},H=J[E]={},C=this.css[E]={};
for(var B in G){var F=Fx.CSS.parse(this.elements[E],B,G[B]);A[B]=F.from;H[B]=F.to;C[B]=F.css;}}return this.parent(I,J);},increase:function(){for(var C in this.now){var A=this.now[C],B=this.css[C];
for(var D in A){this.elements[C].setStyle(D,B[D].getValue(A[D],this.options.unit,D));}}}});Fx.Scroll=Fx.Base.extend({options:{overflown:[],offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.now=[];
this.element=$(B);this.bound={stop:this.stop.bind(this,false)};this.parent(A);if(this.options.wheelStops){this.addEvent("onStart",function(){document.addEvent("mousewheel",this.bound.stop);
}.bind(this));this.addEvent("onComplete",function(){document.removeEvent("mousewheel",this.bound.stop);}.bind(this));}},setNow:function(){for(var A=0;A<2;
A++){this.now[A]=this.compute(this.from[A],this.to[A]);}},scrollTo:function(B,F){if(this.timer&&this.options.wait){return this;}var D=this.element.getSize();
var C={x:B,y:F};for(var E in D.size){var A=D.scrollSize[E]-D.size[E];if($chk(C[E])){C[E]=($type(C[E])=="number")?C[E].limit(0,A):A;}else{C[E]=D.scroll[E];
}C[E]+=this.options.offset[E];}return this.start([D.scroll.x,D.scroll.y],[C.x,C.y]);},toTop:function(){return this.scrollTo(false,0);},toBottom:function(){return this.scrollTo(false,"full");
},toLeft:function(){return this.scrollTo(0,false);},toRight:function(){return this.scrollTo("full",false);},toElement:function(B){var A=this.element.getPosition(this.options.overflown);
var C=$(B).getPosition(this.options.overflown);return this.scrollTo(C.x-A.x,C.y-A.y);},increase:function(){this.element.scrollTo(this.now[0],this.now[1]);
}});var Drag={};Drag.Base=new Class({options:{handle:false,unit:"px",onStart:Class.empty,onBeforeStart:Class.empty,onComplete:Class.empty,onSnap:Class.empty,onDrag:Class.empty,limit:false,modifiers:{x:"left",y:"top"},grid:false,snap:6},initialize:function(B,A){this.setOptions(A);
this.element=$(B);this.handle=$(this.options.handle)||this.element;this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.bound={start:this.start.bindWithEvent(this),check:this.check.bindWithEvent(this),drag:this.drag.bindWithEvent(this),stop:this.stop.bind(this)};
this.attach();if(this.options.initialize){this.options.initialize.call(this);}},attach:function(){this.handle.addEvent("mousedown",this.bound.start);return this;
},detach:function(){this.handle.removeEvent("mousedown",this.bound.start);return this;},start:function(C){this.fireEvent("onBeforeStart",this.element);
this.mouse.start=C.page;var A=this.options.limit;this.limit={x:[],y:[]};for(var D in this.options.modifiers){if(!this.options.modifiers[D]){continue;}this.value.now[D]=this.element.getStyle(this.options.modifiers[D]).toInt();
this.mouse.pos[D]=C.page[D]-this.value.now[D];if(A&&A[D]){for(var B=0;B<2;B++){if($chk(A[D][B])){this.limit[D][B]=($type(A[D][B])=="function")?A[D][B]():A[D][B];
}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid};}document.addListener("mousemove",this.bound.check);
document.addListener("mouseup",this.bound.stop);this.fireEvent("onStart",this.element);C.stop();},check:function(A){var B=Math.round(Math.sqrt(Math.pow(A.page.x-this.mouse.start.x,2)+Math.pow(A.page.y-this.mouse.start.y,2)));
if(B>this.options.snap){document.removeListener("mousemove",this.bound.check);document.addListener("mousemove",this.bound.drag);this.drag(A);this.fireEvent("onSnap",this.element);
}A.stop();},drag:function(A){this.out=false;this.mouse.now=A.page;for(var B in this.options.modifiers){if(!this.options.modifiers[B]){continue;}this.value.now[B]=this.mouse.now[B]-this.mouse.pos[B];
if(this.limit[B]){if($chk(this.limit[B][1])&&(this.value.now[B]>this.limit[B][1])){this.value.now[B]=this.limit[B][1];this.out=true;}else{if($chk(this.limit[B][0])&&(this.value.now[B]<this.limit[B][0])){this.value.now[B]=this.limit[B][0];
this.out=true;}}}if(this.options.grid[B]){this.value.now[B]-=(this.value.now[B]%this.options.grid[B]);}this.element.setStyle(this.options.modifiers[B],this.value.now[B]+this.options.unit);
}this.fireEvent("onDrag",this.element);A.stop();},stop:function(){document.removeListener("mousemove",this.bound.check);document.removeListener("mousemove",this.bound.drag);
document.removeListener("mouseup",this.bound.stop);this.fireEvent("onComplete",this.element);}});Drag.Base.implement(new Events,new Options);Element.extend({makeResizable:function(A){return new Drag.Base(this,$merge({modifiers:{x:"width",y:"height"}},A));
}});Drag.Move=Drag.Base.extend({options:{droppables:[],container:false,overflown:[]},initialize:function(B,A){this.setOptions(A);this.element=$(B);this.droppables=$$(this.options.droppables);
this.container=$(this.options.container);this.position={element:this.element.getStyle("position"),container:false};if(this.container){this.position.container=this.container.getStyle("position");
}if(!["relative","absolute","fixed"].contains(this.position.element)){this.position.element="absolute";}var D=this.element.getStyle("top").toInt();var C=this.element.getStyle("left").toInt();
if(this.position.element=="absolute"&&!["relative","absolute","fixed"].contains(this.position.container)){D=$chk(D)?D:this.element.getTop(this.options.overflown);
C=$chk(C)?C:this.element.getLeft(this.options.overflown);}else{D=$chk(D)?D:0;C=$chk(C)?C:0;}this.element.setStyles({top:D,left:C,position:this.position.element});
this.parent(this.element);},start:function(C){this.overed=null;if(this.container){var A=this.container.getCoordinates();var B=this.element.getCoordinates();
if(this.position.element=="absolute"&&!["relative","absolute","fixed"].contains(this.position.container)){this.options.limit={x:[A.left,A.right-B.width],y:[A.top,A.bottom-B.height]};
}else{this.options.limit={y:[0,A.height-B.height],x:[0,A.width-B.width]};}}this.parent(C);},drag:function(A){this.parent(A);var B=this.out?false:this.droppables.filter(this.checkAgainst,this).getLast();
if(this.overed!=B){if(this.overed){this.overed.fireEvent("leave",[this.element,this]);}this.overed=B?B.fireEvent("over",[this.element,this]):null;}return this;
},checkAgainst:function(B){B=B.getCoordinates(this.options.overflown);var A=this.mouse.now;return(A.x>B.left&&A.x<B.right&&A.y<B.bottom&&A.y>B.top);},stop:function(){if(this.overed&&!this.out){this.overed.fireEvent("drop",[this.element,this]);
}else{this.element.fireEvent("emptydrop",this);}this.parent();return this;}});Element.extend({makeDraggable:function(A){return new Drag.Move(this,A);}});
var XHR=new Class({options:{method:"post",async:true,onRequest:Class.empty,onSuccess:Class.empty,onFailure:Class.empty,urlEncoded:true,encoding:"utf-8",autoCancel:false,headers:{}},setTransport:function(){this.transport=(window.XMLHttpRequest)?new XMLHttpRequest():(window.ie?new ActiveXObject("Microsoft.XMLHTTP"):false);
return this;},initialize:function(A){this.setTransport().setOptions(A);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers={};if(this.options.urlEncoded&&this.options.method=="post"){var B=(this.options.encoding)?"; charset="+this.options.encoding:"";
this.setHeader("Content-type","application/x-www-form-urlencoded"+B);}if(this.options.initialize){this.options.initialize.call(this);}},onStateChange:function(){if(this.transport.readyState!=4||!this.running){return ;
}this.running=false;var A=0;try{A=this.transport.status;}catch(B){}if(this.options.isSuccess.call(this,A)){this.onSuccess();}else{this.onFailure();}this.transport.onreadystatechange=Class.empty;
},isSuccess:function(A){return((A>=200)&&(A<300));},onSuccess:function(){this.response={text:this.transport.responseText,xml:this.transport.responseXML};
this.fireEvent("onSuccess",[this.response.text,this.response.xml]);this.callChain();},onFailure:function(){this.fireEvent("onFailure",this.transport);},setHeader:function(A,B){this.headers[A]=B;
return this;},send:function(A,C){if(this.options.autoCancel){this.cancel();}else{if(this.running){return this;}}this.running=true;if(C&&this.options.method=="get"){A=A+(A.contains("?")?"&":"?")+C;
C=null;}this.transport.open(this.options.method.toUpperCase(),A,this.options.async);this.transport.onreadystatechange=this.onStateChange.bind(this);if((this.options.method=="post")&&this.transport.overrideMimeType){this.setHeader("Connection","close");
}$extend(this.headers,this.options.headers);for(var B in this.headers){try{this.transport.setRequestHeader(B,this.headers[B]);}catch(D){}}this.fireEvent("onRequest");
this.transport.send($pick(C,null));return this;},cancel:function(){if(!this.running){return this;}this.running=false;this.transport.abort();this.transport.onreadystatechange=Class.empty;
this.setTransport();this.fireEvent("onCancel");return this;}});XHR.implement(new Chain,new Events,new Options);var Ajax=XHR.extend({options:{data:null,update:null,onComplete:Class.empty,evalScripts:false,evalResponse:false},initialize:function(B,A){this.addEvent("onSuccess",this.onComplete);
this.setOptions(A);this.options.data=this.options.data||this.options.postBody;if(!["post","get"].contains(this.options.method)){this._method="_method="+this.options.method;
this.options.method="post";}this.parent();this.setHeader("X-Requested-With","XMLHttpRequest");this.setHeader("Accept","text/javascript, text/html, application/xml, text/xml, */*");
this.url=B;},onComplete:function(){if(this.options.update){$(this.options.update).empty().setHTML(this.response.text);}if(this.options.evalScripts||this.options.evalResponse){this.evalScripts();
}this.fireEvent("onComplete",[this.response.text,this.response.xml],20);},request:function(A){A=A||this.options.data;switch($type(A)){case"element":A=$(A).toQueryString();
break;case"object":A=Object.toQueryString(A);}if(this._method){A=(A)?[this._method,A].join("&"):this._method;}return this.send(this.url,A);},evalScripts:function(){var B,A;
if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){A=this.response.text;}else{A=[];var C=/<script[^>]*>([\s\S]*?)<\/script>/gi;
while((B=C.exec(this.response.text))){A.push(B[1]);}A=A.join("\n");}if(A){(window.execScript)?window.execScript(A):window.setTimeout(A,0);}},getHeader:function(A){try{return this.transport.getResponseHeader(A);
}catch(B){}return null;}});Object.toQueryString=function(B){var C=[];for(var A in B){C.push(encodeURIComponent(A)+"="+encodeURIComponent(B[A]));}return C.join("&");
};Element.extend({send:function(A){return new Ajax(this.getProperty("action"),$merge({data:this.toQueryString()},A,{method:"post"})).request();}});var Slider=new Class({options:{onChange:Class.empty,onComplete:Class.empty,onTick:function(A){this.knob.setStyle(this.p,A);
},mode:"horizontal",steps:100,offset:0},initialize:function(D,A,B){this.element=$(D);this.knob=$(A);this.setOptions(B);this.previousChange=-1;this.previousEnd=-1;
this.step=-1;this.element.addEvent("mousedown",this.clickedElement.bindWithEvent(this));var C,F;switch(this.options.mode){case"horizontal":this.z="x";this.p="left";
C={x:"left",y:false};F="offsetWidth";break;case"vertical":this.z="y";this.p="top";C={x:false,y:"top"};F="offsetHeight";}this.max=this.element[F]-this.knob[F]+(this.options.offset*2);
this.half=this.knob[F]/2;this.getPos=this.element["get"+this.p.capitalize()].bind(this.element);this.knob.setStyle("position","relative").setStyle(this.p,-this.options.offset);
var E={};E[this.z]=[-this.options.offset,this.max-this.options.offset];this.drag=new Drag.Base(this.knob,{limit:E,modifiers:C,snap:0,onStart:function(){this.draggedKnob();
}.bind(this),onDrag:function(){this.draggedKnob();}.bind(this),onComplete:function(){this.draggedKnob();this.end();}.bind(this)});if(this.options.initialize){this.options.initialize.call(this);
}},set:function(A){this.step=A.limit(0,this.options.steps);this.checkStep();this.end();this.fireEvent("onTick",this.toPosition(this.step));return this;
},clickedElement:function(B){var A=B.page[this.z]-this.getPos()-this.half;A=A.limit(-this.options.offset,this.max-this.options.offset);this.step=this.toStep(A);
this.checkStep();this.end();this.fireEvent("onTick",A);},draggedKnob:function(){this.step=this.toStep(this.drag.value.now[this.z]);this.checkStep();},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;
this.fireEvent("onChange",this.step);}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("onComplete",this.step+"");
}},toStep:function(A){return Math.round((A+this.options.offset)/this.max*this.options.steps);},toPosition:function(A){return this.max*A/this.options.steps;
}});Slider.implement(new Events);Slider.implement(new Options);/*
 
Correctly handle PNG transparency in Win IE 5.5 & 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.

Use in <HEAD> with DEFER keyword wrapped in conditional comments:
<!--[if lt IE 7]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->

*/

var PNG = new Class({
    
    initialize: function(container) {
        this.arVersion = navigator.appVersion.split("MSIE");
        if (this.arVersion.length > 1)
        {
        
            this.version = parseFloat(this.arVersion[1]);
            if (container) this.fix(container);
        }
    },

    fix: function(container,show) {
        if ((this.version >= 5.5) && (document.body.filters)) 
        {
            
            var fiximgs = $(container).getElements('img');
        
            fiximgs.each(function(img,i){
                var imgName = img.src.toUpperCase()
                if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
                {
                    var tmp = new Element('div').cloneEvents(img);
                
                    var imgID = (img.id) ? "id='" + img.id + "' " : ""
                    var imgClass = (img.className) ? "class=\"pngfix " + img.className + "\" " : "class=\"pngfix\" "
                    var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
                    var imgStyle = "display:inline-block;" + img.style.cssText 
                    if (img.align == "left") imgStyle = "float:left;" + imgStyle
                    if (img.align == "right") imgStyle = "float:right;" + imgStyle
                    if (img.getParent() && img.getParent().href) imgStyle = "cursor:hand;" + imgStyle
                    var strNewHTML = "<span " + imgID + imgClass + imgTitle
                    + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
                    + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                    + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
                    img.outerHTML = strNewHTML;
                    var availableSpans = container.getElements('span.pngfix');
                    if (tmp && tmp.$events) availableSpans[i].cloneEvents(tmp);
                }
            });
        }
    }
    
});

var pngFix;

window.addEvent('domready',function(){
    pngFix = new PNG(window.document);
});


function highlight(element, callback){
    $(element).style.backgroundColor = "#FFFF00";
    var highlighter = new Fx.Style(element, 'backgroundColor',
        {duration: 2000,
        onComplete: function() { callback(); }
        });
    
    highlighter.start('#FFFFFF');
}

function removeProfileItem(actionUrl, id, oldDiv, showingDiv){
    if (confirm("Are you sure you want to remove this?")){
        new Ajax(actionUrl, {
            method: "post",
            data: Object.toQueryString({id: id}),
            onComplete: function(response){
                var parent = $(oldDiv).getParent();
                $(oldDiv).remove();
                
                if (response != ""){
                    parent.innerHTML = parent.innerHTML.replace(/<div\s+class\s*=\s*"clear"\s*>\s*<\/div>/g, "");
                    parent.innerHTML += response + '<div class = "clear"></div>';
                    decNums(showingDiv, false);
                }else{
                    decNums(showingDiv, true);
                }
            }
        }).request();
    }
}

function removeItem(actionUrl, id, oldDiv, showingDiv){
    if (confirm("Are you sure you want to remove this?")){
        new Ajax(actionUrl, {
            method: "post",
            data: Object.toQueryString({id: id}),
            onComplete: function(response){
                var parent = $(oldDiv).getParent();
                $(oldDiv).remove();

                decNums(showingDiv, true);
            }
        }).request();
    }
}

var speedDial={t:-1,m:null};
function showSpeedDial(s){if($('sdSize').value==0)return;if(speedDial.m==null){speedDial.m=new Fx.Styles("speedDialMenu",{duration:200});}speedDial.m.start({opacity:(s?1.0:0.0)});}
function clearSpeedTimeout(){if(speedDial.t!=-1){clearTimeout(speedDial.t);speedDial.t=-1;}}
function setSpeedTimeout(){if(speedDial.t!=-1)clearTimeout(speedDial.t);speedDial.t=setTimeout("showSpeedDial(false)",500);}
function decNums(e,b){if(b==null)b=false;var r = /(Showing\s)([0-9]+)(\sof\s)([0-9]+)(.*)/.exec($(e).innerHTML);$(e).innerHTML=""+r[1]+(b?r[2]-1:r[2])+r[3]+(r[4]-1)+r[5];}

function incNums(e,b)
{
    if (b == null)
        b=false;
    var r = /(Showing\s)([0-9]+)(\sof\s)([0-9]+)(.*)/.exec($(e).innerHTML);
    
    $(e).innerHTML = "" + r[1] + (b?r[2]-0+1:r[2])+r[3]+(r[4]-0+1)+r[5];
}


//rotating thumb functions
var changing_thumbs = new Array();
function changeThumb(index, i, num_thumbs, path, cache_control)
{
    if (changing_thumbs[index])
    {
        hidden_image_id = (i + 1) % num_thumbs;
        
        $(index).src = path + "/small" + i + ".jpg?cache_control=" + cache_control;
        $("hidden_image").src = path + "/small" + hidden_image_id + ".jpg?cache_control=" + cache_control;
        
        i = i % num_thumbs;
        i++;
        setTimeout("changeThumb('" + index + "'," + i + ", " + num_thumbs + ", '" + path + "', " + cache_control + ")", 600);
    }
}    
function startThumbChange(index, num_thumbs, path, cache_control)
{    
    changing_thumbs[index] = true;
    
    changeThumb(index, 1, num_thumbs, path, cache_control);
}
function endThumbChange(index, path, cache_control)
{
    changing_thumbs[index] = false;
    document.getElementById(index).src = path + "/small.jpg?cache_control=" + cache_control;
}

//show more less links javascript
function showMoreLess(id, more_text, less_text)
{
    if ($(id + "_link").innerHTML == more_text)
    {
        $(id).setStyles({visibility: 'visible', display: 'inline'});
        $(id + "_link").innerHTML = less_text;
    }
    else
    {
        $(id).setStyles({visibility: 'hidden', display: 'none'});
        $(id + "_link").innerHTML = more_text;
    }
}

function GetSwfVer(){var f=-1;if(navigator.plugins!=null&&navigator.plugins.length>0){if(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]){var s=navigator.plugins["Shockwave Flash 2.0"]?" 2.0":"";var l=navigator.plugins["Shockwave Flash"+s].description;var d=l.split(" ");var t=d[2].split(".");var v=t[0];    var e=t[1];var r=d[3];if(r==""){r=d[4];}if(r[0]=="d"){r=r.substring(1);}else if(r[0]=="r"){r=r.substring(1);if(r.indexOf("d")>0){r=r.substring(0,r.indexOf("d"));}}f=v+"."+e+"."+r;}}else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.6")!=-1)f=4;else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.5")!=-1)f=3;else if(navigator.userAgent.toLowerCase().indexOf("webtv")!=-1)f=2;else if(isIE&&isWin&&!isOpera){flashVer=ControlVersion();}return f;}var isIE=(navigator.appVersion.indexOf("MSIE")!=-1);var isWin=(navigator.appVersion.toLowerCase().indexOf("win")!=-1);var isOpera=(navigator.userAgent.indexOf("Opera")!=-1);function ControlVersion(){var v;var a;var e;try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");v=a.GetVariable("$version");}catch(e){}if(!v){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");v="WIN 6,0,21,0";a.AllowScriptAccess="always";v=a.GetVariable("$version");}catch(e){}}if(!v){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");v=a.GetVariable("$version");}catch(e){}}if(!v){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");v="WIN 3,0,18,0";}catch(e){}}if(!v){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");v="WIN 2,0,0,11";}catch(e){v=-1;}}return v;}




/**
 * SWFObject v1.4.4: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
 *   legal reasons.
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}
if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}
if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}
deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a,_b){if(!document.getElementById){return;}
this.DETECT_KEY=_b?_b:"detectflash";
this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);
this.params=new Object();
this.variables=new Object();
this.attributes=new Array();
if(_1){this.setAttribute("swf",_1);}
if(id){this.setAttribute("id",id);}
if(w){this.setAttribute("width",w);}
if(h){this.setAttribute("height",h);}
if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}
this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();
if(c){this.addParam("bgcolor",c);}
var q=_8?_8:"high";
this.addParam("quality",q);
this.setAttribute("useExpressInstall",_7);
this.setAttribute("doExpressInstall",false);
var _d=(_9)?_9:window.location;
this.setAttribute("xiRedirectUrl",_d);
this.setAttribute("redirectUrl","");
if(_a){this.setAttribute("redirectUrl",_a);}};
deconcept.SWFObject.prototype={setAttribute:function(_e,_f){
this.attributes[_e]=_f;
},getAttribute:function(_10){
return this.attributes[_10];
},addParam:function(_11,_12){
this.params[_11]=_12;
},getParams:function(){
return this.params;
},addVariable:function(_13,_14){
this.variables[_13]=_14;
},getVariable:function(_15){
return this.variables[_15];
},getVariables:function(){
return this.variables;
},getVariablePairs:function(){
var _16=new Array();
var key;
var _18=this.getVariables();
for(key in _18){_16.push(key+"="+_18[key]);}
return _16;},getSWFHTML:function(){var _19="";
if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
if(this.getAttribute("doExpressInstall")){
this.addVariable("MMplayerType","PlugIn");}
_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\"";
_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";
var _1a=this.getParams();
for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}
var _1c=this.getVariablePairs().join("&");
if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";
}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");}
_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\">";
_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";
var _1d=this.getParams();
for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}
var _1f=this.getVariablePairs().join("&");
if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}
return _19;
},write:function(_20){
if(this.getAttribute("useExpressInstall")){
var _21=new deconcept.PlayerVersion([6,0,65]);
if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){
this.setAttribute("doExpressInstall",true);
this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));
document.title=document.title.slice(0,47)+" - Flash Player Installation";
this.addVariable("MMdoctitle",document.title);}}
if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){
var n=(typeof _20=="string")?document.getElementById(_20):_20;
n.innerHTML=this.getSWFHTML();return true;
}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}
return false;}};
deconcept.SWFObjectUtil.getPlayerVersion=function(){
var _23=new deconcept.PlayerVersion([0,0,0]);
if(navigator.plugins&&navigator.mimeTypes.length){
var x=navigator.plugins["Shockwave Flash"];
if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}
}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}
catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}
catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}
catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}
return _23;};
deconcept.PlayerVersion=function(_27){
this.major=_27[0]!=null?parseInt(_27[0]):0;
this.minor=_27[1]!=null?parseInt(_27[1]):0;
this.rev=_27[2]!=null?parseInt(_27[2]):0;
};
deconcept.PlayerVersion.prototype.versionIsValid=function(fv){
if(this.major<fv.major){return false;}
if(this.major>fv.major){return true;}
if(this.minor<fv.minor){return false;}
if(this.minor>fv.minor){return true;}
if(this.rev<fv.rev){
return false;
}return true;};
deconcept.util={getRequestParameter:function(_29){
var q=document.location.search||document.location.hash;
if(q){var _2b=q.substring(1).split("&");
for(var i=0;i<_2b.length;i++){
if(_2b[i].substring(0,_2b[i].indexOf("="))==_29){
return _2b[i].substring((_2b[i].indexOf("=")+1));}}}
return "";}};
deconcept.SWFObjectUtil.cleanupSWFs=function(){if(window.opera||!document.all){return;}
var _2d=document.getElementsByTagName("OBJECT");
for(var i=0;i<_2d.length;i++){_2d[i].style.display="none";for(var x in _2d[i]){
if(typeof _2d[i][x]=="function"){_2d[i][x]=function(){};}}}};
deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};
__flash_savedUnloadHandler=function(){};
if(typeof window.onunload=="function"){
var _30=window.onunload;
window.onunload=function(){
deconcept.SWFObjectUtil.cleanupSWFs();_30();};
}else{window.onunload=deconcept.SWFObjectUtil.cleanupSWFs;}};
if(typeof window.onbeforeunload=="function"){
var oldBeforeUnload=window.onbeforeunload;
window.onbeforeunload=function(){
deconcept.SWFObjectUtil.prepUnload();
oldBeforeUnload();};
}else{window.onbeforeunload=deconcept.SWFObjectUtil.prepUnload;}
if(Array.prototype.push==null){
Array.prototype.push=function(_31){
this[this.length]=_31;
return this.length;};}
var getQueryParamValue=deconcept.util.getRequestParameter;
var FlashObject=deconcept.SWFObject;
var SWFObject=deconcept.SWFObject;


//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
    var version;
    var axo;
    var e;

    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("$version");
    } catch (e) {
    }

    if (!version)
    {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
            
            // installed player is some revision of 6.0
            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful. 
            
            // default to the first public version
            version = "WIN 6,0,21,0";

            // throws if AllowScripAccess does not exist (introduced in 6.0r47)        
            axo.AllowScriptAccess = "always";

            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("$version");

        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }
    
    return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
    // NS/Opera version >= 3 check for Flash plugin in plugin array
    var flashVer = -1;
    
    if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
            var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
            var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
            var descArray = flashDescription.split(" ");
            var tempArrayMajor = descArray[2].split(".");            
            var versionMajor = tempArrayMajor[0];
            var versionMinor = tempArrayMajor[1];
            var versionRevision = descArray[3];
            if (versionRevision == "") {
                versionRevision = descArray[4];
            }
            if (versionRevision[0] == "d") {
                versionRevision = versionRevision.substring(1);
            } else if (versionRevision[0] == "r") {
                versionRevision = versionRevision.substring(1);
                if (versionRevision.indexOf("d") > 0) {
                    versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                }
            }
            var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
        }
    }
    // MSN/WebTV 2.6 supports Flash 4
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
    // WebTV 2.5 supports Flash 3
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
    // older WebTV supports Flash 2
    else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
    else if ( isIE && isWin && !isOpera ) {
        flashVer = ControlVersion();
    }    
    return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
    versionStr = GetSwfVer();
    if (versionStr == -1 ) {
        return false;
    } else if (versionStr != 0) {
        if(isIE && isWin && !isOpera) {
            // Given "WIN 2,0,0,11"
            tempArray         = versionStr.split(" ");     // ["WIN", "2,0,0,11"]
            tempString        = tempArray[1];            // "2,0,0,11"
            versionArray      = tempString.split(",");    // ['2', '0', '0', '11']
        } else {
            versionArray      = versionStr.split(".");
        }
        var versionMajor      = versionArray[0];
        var versionMinor      = versionArray[1];
        var versionRevision   = versionArray[2];

            // is the major.revision >= requested major.revision AND the minor version >= requested minor
        if (versionMajor > parseFloat(reqMajorVer)) {
            return true;
        } else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer))
                return true;
            else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision))
                    return true;
            }
        }
        return false;
    }
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){    
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":    
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblclick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}



var DragNDrop = new Class({
    initialize: function(options){
        this.indexes = options.indexes;
        this.page = 1;
        this.pages_url = options.pages_url;
        this.image_base = options.image_base;
        
        this.loadDraggables();
        this.loadDroppables();
    },

    loadDraggables: function(){
        $$("#draggables div.draggable").each (function (drag){
            drag.orig_x = drag.style.left;
            drag.orig_y = drag.style.top;
            
            var span = drag.getElementsByTagName("span")[0];
            
            drag.friend_id = span.innerHTML;

            /*new Drag.Move(drag, {
                droppables: $$('#droppables div.droppable')
            });
            
            drag.addEvent("emptydrop", function(){
                this.setStyle("left", this.orig_x);
                this.setStyle("top", this.orig_y);
            });*/
            drag.addEvent("mousedown", function(e){
                e = new Event(e).stop();
                
                var clone = this.clone()
                    .setStyles(this.getCoordinates())
                    .setStyles({"opacity": 0.8, "position": "absolute"})
                    .addEvent("emptydrop", function(){ this.remove(); })
                    .inject(document.body);
                
                clone.makeDraggable({droppables: $$('#droppables div.droppable')}).start(e);
                clone.friend_id = drag.friend_id;
                clone.real = drag;
            });
        });
    },
    
    loadDroppables: function(){
        var me = this;
        
        $$("#droppables div.droppable").each (function (drop, index){
            drop.dropPos = index;
            drop.friend_id = me.indexes[index];

            drop.addEvents({
                "over": function (el, obj){
                    this.setStyle("background-color", "#333");
                },
                
                "leave": function (el, obj){
                    this.setStyle("background-color", "#111");
                },
                
                "drop": function (el, obj){
                    this.setStyle("background-color", "#111");
                    
                    //check the friend ID to see if its already in the list
                    var used = -1;
                    for (var i = 0; i < me.indexes.length; i++){
                        if (i != this.dropPos && me.indexes[i] == el.friend_id){
                            used = i;
                            break;
                        }
                    }
                    var old = this.innerHTML;
                    
                    /*el.style.left = el.orig_x;
                    el.style.top = el.orig_y;*/
                    
                    if (used < 0){
                        this.innerHTML = el.real.innerHTML;
                        
                        this.friend_id = el.friend_id;
                        me.indexes[this.dropPos] = this.friend_id;
                    }else{
                        var otherDrop = $("droppable" + used);
                        
                        this.innerHTML = otherDrop.innerHTML;
                        otherDrop.innerHTML = old;
                        
                        var old_id = this.friend_id;
                        this.friend_id = me.indexes[otherDrop.dropPos];
                        otherDrop.friend_id = old_id;
                        
                        me.indexes[otherDrop.dropPos] = old_id;
                        me.indexes[this.dropPos] = this.friend_id;
                    }
                    
                    el.remove();
                }
            });
        });
    },
    
    getPage: function(page){
        var me = this;
        $("draggables").innerHTML = "<img src = \"" + this.image_base + "ajax-loader.gif\" alt = \"Loading...\" />";
        new Ajax(this.pages_url, {
            method: "get",
            data: Object.toQueryString({page: page}),
            onComplete: function(response){
                $("draggables").innerHTML = response;
                me.page = page;
                me.loadDraggables();
            }
        }).request();
    },
    
    submit: function(){
        var str = "<form action = \"" + window.location.href +
            "\" method = \"post\" id = \"submit_form\">";
        this.indexes.each( function(item, index){
            str += "<input type = \"hidden\" name = \"index[" +
                index + "]\" value = \"" + item + "\" />";
        });
        str += "</form>";
        
        $("draggables").innerHTML = str;
        $("submit_form").submit();
    },
    
    removeSpot: function(i){
        var drop = $("droppable" + i);
        
        drop.friend_id = 0;
        drop.innerHTML = "";
        this.indexes[i] = 0;
    }
});

function addTagToTarget(tag, target)
{
    var current_value = target.value;
    if (current_value.indexOf(tag) == -1)
        target.value += " " + tag;
}

/**
 * Javascript class for the Rater plugin
 */

var Rater = new Class({
    initialize: function(options){
        this.id = options.id;
        this.type = options.type;
        this.submit_url = options.submit_url;
        this.rating = options.rating;
        this.num_ratings = options.num_ratings;
        this.feedback_box = options.feedback_box;
        this.object_name = options.object_name;
        
        this.locked = false;
        
        if (options.post_ajax)
            this.post_ajax = options.post_ajax;
        else
            this.post_ajax = function(){}
    },
    
    mouseOver: function(num){
        if (!this.locked){
            if (num == 0)
                this.feedback_box.innerHTML = "Lame";
            else if (num == 1)
                this.feedback_box.innerHTML = "Bleh";
            else if (num == 2)
                this.feedback_box.innerHTML = "Alright";
            else if (num == 3)
                this.feedback_box.innerHTML = "Good";
            else if (num == 4)
                this.feedback_box.innerHTML = "Awesome";
                
            for (var i = 0; i <= num; i++)
                $(this.object_name + "_rating_star_" + i).className = "star star_full";
            for (var i = num + 1; i < 5; i++)
                $(this.object_name + "_rating_star_" + i).className = "star star_empty";
        }
    },
    
    rate: function(num){
        if (!this.locked){
            this.locked = true;
        
            var me = this;
            new Ajax(this.submit_url, {
                method: "post",
                data: Object.toQueryString({id: this.id, value: num + 1}),
                onComplete: function(response){
                    me.feedback_box.innerHTML = response + "<br />";
                    me.post_ajax();
                }
            }).request();
        }
    },
    
    reset: function(){
        if (!this.locked){
            for(var i = 0; i < 5; i++){
                if (this.rating <= i + 0.1)
                    $(this.object_name + "_rating_star_" + i).className = "star star_empty";
                else if (this.rating < i + 0.5)
                    $(this.object_name + "_rating_star_" + i).className = "star star_half";
                else
                    $(this.object_name + "_rating_star_" + i).className = "star star_full";
            }
            this.feedback_box.innerHTML = this.num_ratings + " Ratings";
        }
    }
});

/**
 * Javascript class for the Share plugin
 */

var Share = new Class({
    initialize: function(options){
        this.object_id = options.object_id;
        this.submit_url = options.submit_url;
        this.button = options.button;
        this.feedback_box = options.feedback_box;
        this.object_name = options.object_name;
        this.on_complete = options.on_complete;
        this.share_to = options.share_to; 
        this.share_name = options.share_name;
        this.share_message = options.share_message;
    },
    
    send: function(){
        var me = this;
        this.button.disabled = 'disabled';
        this.feedback_box.innerHTML = '<div class="notice">Sending...</div>';
        //alert(this.submit_url);
        new Ajax(this.submit_url, {
            method: "post",
            data: Object.toQueryString({id: this.object_id,
                to: me.share_to.value, name: me.share_name.value,
                message: me.share_message.value}),
            onComplete: function() {
                me.feedback_box.innerHTML = '<div class="success">Sent successfully</div>';
                setTimeout(me.object_name + ".feedback_box.innerHTML = ''; " + me.object_name + ".button.disabled = '';", 3000);
                me.on_complete();
            }
        }).request();
    }
});

/**
 * Javascript class for the Share plugin
 */

var Flagger = new Class({
    initialize: function(options){
        this.object_id = options.object_id;
        this.submit_url = options.submit_url;
        this.num_types = options.num_types;
        this.button = options.button;
        this.feedback_box = options.feedback_box;
        this.object_name = options.object_name;
        this.on_complete = options.on_complete;

    },
    
    send: function(){
        var me = this;
        
        var selected = 0;
        for (var i = 1; i <= this.num_types; i++){
            if ($("flag_" + i).checked){
                selected = i;
                break;
            }
        }
        
        if($("flag_" + selected).value == "copyright" || $("flag_" + selected).value == "copy")
        {
            alert("Please send any copyright reports to copyright@pornhub.com. Thank you.");
            return;
        }
        
        if (selected == 0)
            this.feedback_box.innerHTML = '<div class="error">Please Select a Reason</div>';
        else
        {
            this.button.disabled = 'disabled';
            this.feedback_box.innerHTML = '<div class="notice">Posting...</div>';
            new Ajax(this.submit_url, {
                method: "post",
                data: Object.toQueryString({id: this.object_id,
                    reason: $("flag_reason").value,
                    checked: selected}),
                onComplete: function() {
                    me.feedback_box.innerHTML = '<div class="success">Flagged successfully</div>';
                    setTimeout(me.object_name + ".feedback_box.innerHTML = ''; " + me.object_name + ".button.disabled = '';", 3000);
                    me.on_complete();
                }
            }).request();
        }
    }
});

var CommentController = new Class(
{
    initialize: function(options)
    {
        this.item_id = options.item_id;
        this.item_owner_id = options.item_owner_id; 
        this.item_type = options.item_type; 
        this.writer_id = options.writer_id;
        this.message_box = options.message_box;
        this.feedback_box = options.feedback_box;
        this.char_left_box = options.char_left_box;
        this.comment_box_prefix = options.comment_box_prefix;
        this.report_spam_box_prefix = options.report_spam_box_prefix;
        this.new_comment_box = options.new_comment_box;
        this.paging = options.paging;
        this.action = options.action;
        this.js_object = options.js_object;
        this.unique = options.unique;
        this.get_page_url = options.get_page_url;
        this.anchor = options.anchor;
        this.video_attacher = options.video_attacher;
        
        this.i = 1;
        this.page = 1;
    },
    
    show_chars_left: function()
    {
        var chars_left = 1000 - $(this.message_box).value.length;
        
        if (chars_left < 0)
            chars_left = 0;
        
        $(this.char_left_box).innerHTML = chars_left + " Characters left.";
    },
    
    postComment: function(url_base)
    {
        if ($(this.message_box).value.length > 1000)
        {
            $(this.feedback_box).innerHTML = '<div class="profile-box-content-center"><div class="error">You can\'t have more than 1000 characters.</div></div>';
            return;
        }
        
        if ($(this.message_box).value.match(/^\s*$/))
        {
            $(this.feedback_box).innerHTML = '<div class="profile-box-content-center"><div class="error">You have to type a message.</div></div>';
            return;
        }
        
        $(this.feedback_box).innerHTML = '<div class="profile-box-content-center"><div class="warning">Posting...</div></div>';
        
        $("comment_submit_" + this.unique).disabled = true;
        
        var video_id = (this.video_attacher == null ? 0 : eval(this.video_attacher + ".getVideo()"));
        var rnd_id = Math.floor(Math.random() * 100000000 + 1);
        var me = this;
        var postBody = Object.toQueryString({item_id: this.item_id, writer_id: this.writer_id,
                                             item_owner_id: this.item_owner_id, item_type: this.item_type,
                                             comment: $(this.message_box).value, i: this.i, js_object: this.js_object,
                                             unique: this.unique, video_id: video_id, rnd_id: rnd_id});
        
        $(this.message_box).readOnly = true;
        
        new Ajax(url_base,{
            method: 'post',
            data: postBody, 
            onComplete: function (html) {
                $(me.message_box).readOnly = false;
                $("comment_submit_" + me.unique).disabled = false;
                
                if (me.video_attacher != null){
                    eval(me.video_attacher + ".showPanel(false)");
                }
                
                if(html == 'time_limit')
                {
                    $(me.feedback_box).innerHTML = '<div class="profile-box-content-center"><div class="error">Please Don\'t Spam!</div></div>';
                }
                else if(html == 'spam')
                {
                    $(me.feedback_box).innerHTML = '<div class="profile-box-content-center"><div class="error">Message Posting Failed!</div></div>';
                }
                else
                {
                    if (me.page == 1)
                    {
                        if ($("no_comments_yet"))
                            $("no_comments_yet").style.display = "none";
                        $(me.new_comment_box).innerHTML = html;
                        incNums("numMessages_" + me.unique, true);
                        me.new_comment_box = 'new_comment_box_' + me.unique + "_" + me.i;
                   /*     
                        if (parseInt(video_id))
                        {
                            var to = new SWFObject("http://www.pornhub.com/players/pornhub_2.swf", "player", "475", "356", "8", "#000000");
                            to.addParam("allowfullscreen", "true");
                            to.addVariable("options", "http://www.pornhub.com/wall_player_v2.php?id=" + video_id);
                            to.write("playerDiv_" + me.i);
                        }
                     */   
                        me.i++;
                    }
                    else
                    {
                        me.getPage(1);
                    }
                    
                    $(me.feedback_box).innerHTML = '<div class="profile-box-content-center"><div class="success">Message Posted Successfully</div></div>';
                    $(me.message_box).value = "";
                }
                    
                if (video_id != 0)
                    eval(me.video_attacher + ".setToNull()");
                
                setTimeout(me.js_object + ".clearFeedbackBox()", 3000);
            }
        }).request();
    },
    
    deleteComment: function(id, url_base)
    {
        var me = this;
        $(me.comment_box_prefix + "_" + id).innerHTML = '<div class="profile-box-content-center"><div class="warning">Deleting...</div></div>';
        new Ajax(url_base + "&id=" + id + "&type=" + this.item_type + "&item_id=" + this.item_id,{
            method: 'post',
            data: "", 
            onComplete: function (html) {
                setTimeout(me.js_object + ".deleteCommentDiv(" + id + ")", 3000);
                decNums("numMessages_" + me.unique, true);        
            }
        }).request();
    },
    
    deleteCommentDiv: function(comment_id) {
        $(this.comment_box_prefix + "_" + comment_id).remove();
    },
    
    clearFeedbackBox: function() {
        $(this.feedback_box).innerHTML = "";
    },
    
    reportSpam: function(id, owner_id, url_base)
    {
        var me = this;
        
        new Ajax(url_base + "&id=" + id + "&type=" + this.item_type + "&owner_id=" + owner_id,{
            method: 'post',
            data: "", 
            onComplete: function (html) {
                $(me.report_spam_box_prefix + id).innerHTML = "Marked as spam";
            }
        }).request();
    },
    
    blockUser: function(id, url_base, user_to_block_id, block_or_unblock)
    {
        if(block_or_unblock)
            if (!confirm("Are you sure you want to block this user?"))
                return false;
            
        var me = this;
        
        var postBody = Object.toQueryString({id: user_to_block_id, block: block_or_unblock});
                                                                                       
        new Ajax(url_base,{
            method: 'post',
            data: postBody,
            onComplete: function (html)
            {
                window.location.href = me.action;
            }
        }).request();
    },
    
    getPage: function(page, url_base)
    {
        var me = this;
        this.page = page;
        var postBody = Object.toQueryString({id: this.item_id, type: this.item_type, page: page, url: this.action, unique: this.unique});
        
        $(me.paging).innerHTML = '<div class="profile-box-content-center"><div class="warning">Loading...</div></div>';
        
        var scroller = new Fx.Scroll(window,{ 
            duration: 500,
            wait: false
        });

        scroller.toElement(this.anchor);
        
        new Ajax(this.get_page_url,{
            method: 'post',
            data: postBody,
            onComplete: function (html)
            {
                $(me.paging).innerHTML = html;
                for (var i = 1; i <= 10; i++)
                {   
                    if ($("video_" + i) != null && $("video_" + i).value)
                    {    
                        //var to = new SWFObject("http://phi.pornhub.com/xmoov_flv/player/index.php", "xmoov-flv-player", "475", "356", "8", "#000000");
                        //to.addParam("allowfullscreen", "true");
                        //to.addVariable("styleURL", "wall_player.php?id=" + $("video_" + i).value);
                        //to.write("playerDiv_" + i);
                    }
                }
            }
        }).request();
    }
});

var DropDown = new Class({

    initialize: function(options){
        this.selectedItem = -1;
        this.unique = options.unique;
        this.tags_box = options.tags_box;
        this.target_url = options.target_url;
        
        var dd = $("dropdown_" + this.unique), cb = $("chooser_box_" + this.unique); 
        dd.setStyle("left", cb.getPosition().x);
        dd.setStyle("top", cb.getPosition().y + 20);
    },
    
    checkItem: function(event){
        var text = $("chooser_box_" + this.unique).value;
        
        var key = (event.which ? event.which : event.keyCode);
        
        if (key == 40 && this.selectedItem < 9)
            this.selectedItem++;
        else if (key == 38 && this.selectedItem > -1)
            this.selectedItem--;
        
        var me = this;
        if (text.length > 2){
            new Ajax(this.target_url, {
                method: "get",
                data: Object.toQueryString({text: text, selectedItem: this.selectedItem}),
                onComplete: function(response){
                    $("dropdown_" + me.unique).innerHTML = response;
                    $("dropdown_" + me.unique).style.display = "block";
                }
            }).request();
        }else{
            $("dropdown_" + this.unique).style.display = "none";
        }
    },

    selectItem: function(){
        this.tags_box.innerHTML += " " +
            (this.selectedItem == -1 ? $("chooser_box_" + this.unique).value : $("selectedItem_" + this.unique).innerHTML);
        
        $("dropdown_" + this.unique).style.display = "none";
        $("chooser_box_" + this.unique).value = '';
        this.selectedItem = -1;
    },

    highlightItem: function(i){
        this.selectedItem = i;
        
        var me = this;
        new Ajax(this.target_url, {
            method: "get",
            data: Object.toQueryString({text: $("chooser_box_" + this.unique).value, selectedItem: this.selectedItem, unique: this.unique}),
            onComplete: function(response){
                $("dropdown_" + me.unique).innerHTML = response;
                $("dropdown_" + me.unique).style.display = "block";
            }
        }).request();
    }
});

// JavaScript Document

var ThumbCropper = new Class({
    
    initialize: function(options) {
        this.left = 10;
        this.top = 10;
        this.ratio = options.thumb_height / options.thumb_width;
        this.min_left = 0;
        this.max_right = options.max_right;
        this.min_top = 0;
        this.max_bottom = options.max_bottom;
        this.min_width = options.min_width;
        this.min_height = options.min_height;
        this.image_filter = (options.image_filter == null ? "" : options.image_filter);
        this.action = options.action;
        
        this.thumb_width = options.thumb_width;
        this.thumb_height = options.thumb_height;
        this.in_pic = options.in_pic;
        this.out_pic = options.out_pic;
        this.dark_pic = options.dark_pic;
        
        this.pre_ajax = (options.pre_ajax == null ? function(){} : options.pre_ajax);
        this.post_ajax = (options.post_ajax == null ? function(){} : options.post_ajax);
        
        this.resizing = false;
        this.moving = false;
        
        this.container = $('cropper-container');
        this.resizer = $('cropper-resizer');
        this.mover = $('cropper-mover');
        
        var pos = this.container.getPosition();
        var size = this.mover.getSize().size;
        this.container_left = pos.x;
        this.container_top = pos.y;
        this.mover_width = size.x;
        this.mover_height = size.y;
        var pos = this.mover.getPosition();
        this.mover_left = pos.x - this.container_left;
        this.mover_top = pos.y - this.container_top;

        $('cropper-container-border').addEvent("mouseenter", this.enter.bind(this));
        $('cropper-container-border').addEvent("mouseout", this.out.bind(this));
        document.addEvent("mouseup", this.mouseUp.bind(this));
        document.addEvent("mousemove", this.move.bind(this));
        this.resizer.addEvent("mousedown", this.resizeMouseDown.bind(this));
        this.mover.addEvent("mousedown", this.moveMouseDown.bind(this));
        
        this.x_offset = 0;
        this.y_offset = 0;
    },
    
    enter: function(event) {
        event = new Event(event);
        
    },
    
    out: function(event) {
        event = new Event(event);
    },
    
    mouseUp: function(event) {
        event = new Event(event);
        
        if (this.resizing)
        {
            this.resizing = false;
        }
        
        if (this.moving)
        {
            this.moving = false;
        }
    },
    
    move: function(event) {
        event = new Event(event);
        
        var difference = 0;
        
        if (this.moving)
        {
            var mouse_x = event.page.x - this.container_left;
            var mouse_y = event.page.y - this.container_top;
        
            if (mouse_x - this.x_offset + this.mover_width > this.max_right)
                this.mover_left = this.max_right - this.mover_width;
            else if (mouse_x - this.x_offset < this.min_left)
                this.mover_left = this.min_left;
            else
                this.mover_left = mouse_x - this.x_offset;
            
            if (mouse_y - this.y_offset + this.mover_height > this.max_bottom)
                this.mover_top = this.max_bottom - this.mover_height;
            else if (mouse_y - this.y_offset < this.min_top)
                this.mover_top = this.min_top;
            else
                this.mover_top = mouse_y - this.y_offset;
            
            //reset offset (since sometimes cursor can move when box doesn't
            this.x_offset = mouse_x - this.mover_left;
            this.y_offset = mouse_y - this.mover_top;
            
            this.mover.setStyle("top",this.mover_top);
            this.mover.setStyle("left",this.mover_left);
            //this.mover.setStyle("background-position", "-" + (this.mover_left + 1) + "px -" + (this.mover_top + 1) + "px;");
            this.mover.style.backgroundPosition = "-" + (this.mover_left + 1) + "px -" + (this.mover_top + 1) + "px";
            this.resizer.setStyle("top",this.mover_top + this.mover_height);
            this.resizer.setStyle("left",this.mover_left + this.mover_width);
        }
        else if (this.resizing)
        {
            difference = event.page.x - this.container_left - this.mover_left - this.mover_width;
            var do_resize = false;
            

            
            if (this.mover_left + this.mover_width + difference <= this.max_right && 
                this.mover_width + difference > this.min_width && 
                parseInt(this.mover_top + this.mover_height + (difference * this.ratio)) <= this.max_bottom && 
                parseInt(this.mover_height + (difference * this.ratio)) > this.min_height)
            {
                this.mover_width += difference;
                this.mover_height = parseInt(this.mover_width * this.ratio);
                
                this.mover.setStyle("width",this.mover_width - 2);        //-2 for border
                this.mover.setStyle("height",this.mover_height - 2);    //-2 for border
                this.resizer.setStyle("top",this.mover_top + this.mover_height);
                this.resizer.setStyle("left",this.mover_left + this.mover_width);
                
            }

        }
    },
    
    resizeMouseDown: function(event) {
        event = new Event(event);
        this.resizing = true;
        this.moving = false;
    },
    
    moveMouseDown: function(event) {
        event = new Event(event);
        this.moving = true;
        this.resizing = false;
        
        this.x_offset = event.page.x - this.mover_left - this.container_left;
        this.y_offset = event.page.y - this.mover_top  - this.container_top;
    },
    
    crop: function() {
        this.pre_ajax();
    
        $("cropper_msg").innerHTML = "Cropping...";
    
        var postBody = Object.toQueryString({in_pic: this.in_pic, 
                                             out_pic: this.out_pic, 
                                             left: this.mover_left, 
                                             top: this.mover_top,
                                             width: this.mover_width,
                                             height: this.mover_height,
                                             thumb_width: this.thumb_width,
                                             thumb_height: this.thumb_height, 
                                             image_filter: this.image_filter});
        var out_pic = this.out_pic;
        var me = this;
        new Ajax(this.action,{
            method: 'post',
            data: postBody, 
            onComplete: function(response){
                $("cropper_msg").innerHTML = "Done!";
                setTimeout("$('cropper_msg').innerHTML = '';", 3000);
                me.post_ajax(response);
            }
        }).request();
    },
    
    recrop: function() {
        $('cropper').setStyle("display", "block");
        $('cropper').setStyle("visibility", "visible");
        $('thumb_preview').setStyle("display", "none");
        $('thumb_preview').setStyle("visibility", "hidden");
    },
    
    cancel: function() {
        $('thumb_preview').setStyle("display", "block");
        $('thumb_preview').setStyle("visibility", "visible");
        $('cropper').setStyle("display", "none");
        $('cropper').setStyle("visibility", "hidden");
    }
    
});

/**
 * Javascript class for the Share plugin
 */

var FeedbackPoll = new Class({
    initialize: function(options){
        this.message_box = options.message_box;
        this.button = options.button;
        this.feedback_box = options.feedback_box;
        this.object_name = options.object_name;
        this.submit_url = options.submit_url;
        this.num_options = options.num_options;
        this.on_complete = options.on_complete;
        this.referral_url = options.referral_url;
        this.feedback_id = options.feedback_id;
        this.user_id = options.user_id;
        this.browsing_info = options.browsing_info;
    },
    
    send: function(){
        var me = this;
        
        var selected = 0;
        for (var i = 1; i <= this.num_options; i++){
            if ($(this.object_name + '_' + i).checked){
                selected = $(this.object_name + '_' + i).value;
                break;
            }
        }

        if (selected == 0)
            this.feedback_box.innerHTML = '<div class="error">Please Select a Reason</div>';
        else if (selected == 'other' && this.message_box.value == "")
            this.feedback_box.innerHTML = '<div class="error">Please enter a message if you choose the option "Other"</div>';
        else
        {
            this.button.disabled = 'disabled';
            this.feedback_box.innerHTML = '<div class="notice">Posting...</div>';
            new Ajax(this.submit_url, {
                method: "post",
                data: Object.toQueryString({
                    message: me.message_box.value + me.browsing_info,
                    option_id: selected,
                    referral_url: me.referral_url,
                    feedback_id: me.feedback_id,
                    user_id: me.user_id}),
                onComplete: function(html) {

                    if (html == "spam")
                    {
                        me.feedback_box.innerHTML = '<div class="error">You cannot report problems this fast! SLOW DOWN!!!</div>';
                        me.button.disabled = '';
                        
                    }
                    else
                    {
                        me.message_box.value = '';
                        me.feedback_box.innerHTML = html;
                        setTimeout(me.object_name + ".feedback_box.innerHTML = ''; " + me.object_name + ".button.disabled = '';", 3000);
                        me.on_complete();
                    }
                }
            }).request();
        }
    }
});


var SideScroller = new Class({
    initialize: function(options){
        this.divHeight = options.divHeight;
        this.divWidth = options.divWidth;
        this.numItems = options.numItems;
        this.itemWidth = options.itemWidth;
        this.scrollingDiv = options.scrollingDiv;
        
        this.scrollPos = 0;
        this.increments = 5;
        this.timer = 0;
        
        var sl = options.scrollLeft;
        var sr = options.scrollRight;
        
        var stop = function() { scroller.stopScroll(); return false; };
        
        var me = this;
        
        sl.addEvent("mouseup", function(){
            me.scrollingDiv.scrollLeft = me.scrollPos = 0;
        });
        sl.addEvent("mouseover", function(){
            scroller.scrollLeft();
            return false;
        });
        sl.addEvent("mouseout", stop);
        sl.style.cursor = "pointer";
        
        sr.addEvent("mouseup", function(){
            me.scrollPos = me.numItems * me.itemWidth - me.divWidth;
            me.scrollingDiv.scrollLeft = me.scrollPos;
        });
        sr.addEvent("mouseover", function(){
            scroller.scrollRight();
            return false;
        });
        sr.addEvent("mouseout", stop);
        sr.style.cursor = "pointer";
    },
    
    scrollLeft: function(){
        if (this.timer) clearTimeout(this.timer);
    
        this.scrollPos = Math.max(this.scrollPos - this.increments, 0);
        this.scrollingDiv.scrollLeft = this.scrollPos;
        
        this.timer = setTimeout("scroller.scrollLeft()", 15);
    },
    
    scrollRight: function(){
        if (this.timer) clearTimeout(this.timer);
        
        this.scrollPos = Math.min(this.scrollPos + this.increments, this.numItems * this.itemWidth - this.divWidth);
        this.scrollingDiv.scrollLeft = this.scrollPos;
        
        this.timer = setTimeout("scroller.scrollRight()", 15);
    },
    
    stopScroll: function(){
        clearTimeout(this.timer);
        this.timer = 0;
    }
});

var VideoAttacher = new Class({
    initialize: function(options){
        this.selected_id = options.selected_id;
        this.image_base = options.image_base;
        this.page_url = options.page_url;
    },
    
    showPanel: function(show){
        $("video_attacher_panel").style.display = (show ? "block" : "none");
    },

    getPage: function(page, type){
        $("video_attacher_content").innerHTML = "<img src = \"" + this.image_base + "ajax-loader.gif\" alt = \"\" />";
        new Ajax(this.page_url, {
            method: "get",
            data: Object.toQueryString({page: page, type: type, selected_id: this.selected_id}),
            onComplete: function(response){
                $("video_attacher_content").innerHTML = response;
            }
        }).request();;
    },
    
    clickVideo: function(id){
        if (this.selected_id)
            $("video_box_" + this.selected_id).style.border = "1px solid #111";
    
        $("video_box_" + id).style.border = "1px dashed #F98E00";
        this.selected_id = id;
    },
    
    attachVideo: function(){
        
        if (this.selected_id != $("attached_video_id").value)
        {
            $("attached_video_id").value = this.selected_id;
            this.selected_id = 0;    
        }
    },
    
    getVideo: function(){
        return this.selected_id;
    },
    
    setToNull: function(){
        this.selected_id = 0;
    }
});

//    NOTES - ok to delete
//    AddSite= this will be the url to the social bookmarking site for adding bookmarks
//    AddUrlVar= variable for URL
//    AddTitleVar= variable for TITLE
//    AddNote= the notes or description of the page - we're using the title for this when it's used
//    AddReturn= so far, one site requires a return url to be passed
//    AddOtherVars= some social bookmarking sites require other variables and their values to be passed - if any exist, they'll be set to this var
//    AddToMethod    = [0=direct,1=popup]

var txtVersion = "0.1";
var addtoInterval = null;
var popupWin = '';



///////////////////////////////////////////////////////////////////////////////
// Add To Bookmarks Layout Style

var addtoLayout='';                        // addtoLayout: 0=Horizonal 1 row, 1=Horizonal 2 rows, 2=Vertical with icons, 3=Vertical no icons
var addtoMethod=1;                        // addtoMethod: 0=direct link, 1=popup 
var AddURL = document.location.href;    // could be set dynamically to your blog post's permalink
var AddTitle = escape(document.title);    // same here, this could be set dymaically instead of the page's current title*/

switch(addtoLayout){
    case 0:        // horizontal, 1 row
document.write('<div class="addToContent"><dl class="addTo"><dd><span title="Learn about Social Bookmarking" class="addToAbout" onclick');
document.write('="addto(0)">ADD TO:</span></dd><dd><span title="Add this page to Blink"  onclick="addto(1)"><img src="modules/bookmarks/AddTo_Blin');
document.write('k.gif" width="16" height="16" border="0" />Blink</span></dd><dd><span title="Add this page to Delicious" onclick="addto');
document.write('(2)"><img src="modules/bookmarks/AddTo_Delicious.gif" width="16" height="16" border="0" />Del.icio.us</span></dd><dd><span title="');
document.write('Add this page to Digg" onclick="addto(3)"><img src="modules/bookmarks/AddTo_Digg.gif" width="16" height="16" border="0" />Digg</spa');
document.write('n></dd><dd><span title="Add this page to Furl" onclick="addto(4)"><img src="modules/bookmarks/AddTo_Furl.gif" width="16" height="1');
document.write('6" border="0" />Furl</span></dd><dd><span title="Add this page to Google" onclick="addto(5)"><img src="modules/bookmarks/AddTo_Goo');
document.write('gle.gif" width="16" height="16" border="0" />Google</span></dd><dd><span title="Add this page to Simpy" onclick="addto(');
document.write('6)"><img src="modules/bookmarks/AddTo_Simpy.gif" width="16" height="16" border="0" />Simpy</span></dd><dd><span title="Add this pa');
document.write('ge to Spurl" onclick="addto(8)"><img src="modules/bookmarks/AddTo_Spurl.gif" width="16" height="16" border="0" />Spurl</span></dd>');
document.write('<dd><span title="Add this page to Yahoo! MyWeb" onclick="addto(7)"><img src="modules/bookmarks/AddTo_Yahoo.gif" width="16" height="');
document.write('16" border="0" />Y! MyWeb</span></dd></dl></div>');    
    break;
    case 1:        // horizontal, 2 rows
document.write('<div class="addToContent"><div class="addTo2Row"><div class="addToHeader" onclick="addto(0)">ADD THIS TO YOUR SOCIAL BO');
document.write('OKMARKS</div><div class="addToFloat"><span title="Add this page to Blink"  onclick="addto(1)"><img src="modules/bookmarks/AddTo_Bl');
document.write('ink.gif" width="16" height="16" border="0" /> Blink</span><br /><span title="Add this page to Delicious" onclick="addto');
document.write('(2)"><img src="modules/bookmarks/AddTo_Delicious.gif" width="16" height="16" border="0" /> Del.icio.us</span></div><div class="add');
document.write('ToFloat"><span title="Add this page to Digg" onclick="addto(3)"><img src="modules/bookmarks/AddTo_Digg.gif" width="16" height="16" ');
document.write('border="0" /> Digg</span><br /><span title="Add this page to Furl" onclick="addto(4)"><img src="modules/bookmarks/AddTo_Furl.gif" ');
document.write('width="16" height="16" border="0" /> Furl</span></div><div class="addToFloat"><span title="Add this page to Google" onc');
document.write('lick="addto(5)"><img src="modules/bookmarks/AddTo_Google.gif" width="16" height="16" border="0" /> Google</span><br /><span title=');
document.write('"Add this page to Simpy" onclick="addto(6)"><img src="modules/bookmarks/AddTo_Simpy.gif" width="16" height="16" border="0" />Simpy<');
document.write('/span></div><div class="addToFloat"><span title="Add this page to Spurl" onclick="addto(8)"><img src="modules/bookmarks/AddTo_Spur');
document.write('l.gif" width="16" height="16" border="0" />Spurl</span><br /><span title="Add this page to Yahoo! MyWeb" onclick="addto');
document.write('(7)"><img src="modules/bookmarks/AddTo_Yahoo.gif" width="16" height="16" border="0" /> Y! MyWeb</span><br /></div></div></div>');
    break;
    case 2:        // vertical with icons
document.write('<div class="addToContent"><dl class="addToV"><dd><span title="Learn about Social Bookmarking" class="addToAbout" onclic');
document.write('k="addto(0)">ADD TO:</span></dd><dd><span title="Add this page to Blink"  onclick="addto(1)"><img src="modules/bookmarks/AddTo_Bli');
document.write('nk.gif" width="16" height="16" border="0" />Blink</span></dd><dd><span title="Add this page to Delicious" onclick="addt');
document.write('o(2)"><img src="modules/bookmarks/AddTo_Delicious.gif" width="16" height="16" border="0" />Del.icio.us</span></dd><dd><span title=');
document.write('"Add this page to Digg" onclick="addto(3)"><img src="modules/bookmarks/AddTo_Digg.gif" width="16" height="16" border="0" />Digg</sp');
document.write('an></dd><dd><span title="Add this page to Furl" onclick="addto(4)"><img src="modules/bookmarks/AddTo_Furl.gif" width="16" height="');
document.write('16" border="0" />Furl</span></dd><dd><span title="Add this page to Google" onclick="addto(5)"><img src="modules/bookmarks/AddTo_Go');
document.write('ogle.gif" width="16" height="16" border="0" />Google</span></dd><dd><span title="Add this page to Simpy" onclick="addto');
document.write('(6)"><img src="modules/bookmarks/AddTo_Simpy.gif" width="16" height="16" border="0" />Simpy</span></dd><dd><span title="Add this p');
document.write('age to Spurl" onclick="addto(8)"><img src="modules/bookmarks/AddTo_Spurl.gif" width="16" height="16" border="0" />Spurl</span></dd>');
document.write('<dd><span title="Add this page to Yahoo! MyWeb" onclick="addto(7)"><img src="modules/bookmarks/AddTo_Yahoo.gif" width="16" height=');
document.write('"16" border="0" />Y! MyWeb</span></dd></dl></div>');
    break;    
    case 3:        // vertical no icons
document.write('<div class="addToContent"><dl class="addToVNoImg"><dd><span title="Learn about Social Bookmarking" class="addToAbout" o');
document.write('nclick="addto(0)">ADD TO:</span></dd><dd><span title="Add this page to Blink" onclick="addto(1)">Blink</span></dd><dd>');
document.write('<span title="Add this page to Delicious" onclick="addto(2)">Del.icio.us</span></dd><dd><span title="Add this page to Di');
document.write('gg" onclick="addto(3)">Digg</span></dd><dd><span title="Add this page to Furl" onclick="addto(4)">Furl</span></dd><dd>');
document.write('<span title="Add this page to Google" onclick="addto(5)">Google</span></dd><dd><span title="Add this page to Simpy" onc');
document.write('lick="addto(6)">Simpy</span></dd><dd><span title="Add this page to Spurl" onclick="addto(8)">Spurl</span></dd><dd><spa');
document.write('n title="Add this page to Yahoo! MyWeb" onclick="addto(7)">Y! MyWeb</span></dd></dl></div>');
    break;
    default:    
}
function addtoWin(addtoFullURL)
{
    if (!popupWin.closed && popupWin.location){
        popupWin.location.href = addtoFullURL;
        var addtoInterval = setInterval("closeAddTo();",1000);
    }
    else{
        popupWin = window.open(addtoFullURL,'addtoPopUp','width=770px,height=500px,status=0,location=0,resizable=1,scrollbars=1,left=0,top=100');
        var addtoInterval = setInterval("closeAddTo();",1000);
        if (!popupWin.opener) popupWin.opener = self;
    }
    if (window.focus) {popupWin.focus()}
    return false;
}
// closes the popupWin
function closeAddTo() {
    if (!popupWin.closed && popupWin.location){
        if (popupWin.location.href == AddURL)    //if it's the same url as what was bookmarked, close the win
        popupWin.close();
    }
    else {    //if it's closed - clear the timer
        clearInterval(addtoInterval)
        return true
    }
}
//main addto function - sets the variables for each Social Bookmarking site
function addto(addsite){
    switch(addsite){
        case 0:
            var AddSite = "http://www.clip-share.com/?";
            var AddUrlVar = "url";
            var AddTitleVar = "title";
            var AddNoteVar = "";
            var AddReturnVar = "";
            var AddOtherVars = "";    
            break    
        case 1:    //    Blink ID:1
            var AddSite = "http://www.blinklist.com/index.php?Action=Blink/addblink.php";
            var AddUrlVar = "url";
            var AddTitleVar = "title";
            var AddNoteVar = "description";
            var AddReturnVar = "";
            var AddOtherVars = "&Action=Blink/addblink.php";    
            break
        case 2:    //    Del.icio.us    ID:2 &v=3&noui=yes&jump=close
            var AddSite = "http://del.icio.us/post?";
            var AddUrlVar = "url";
            var AddTitleVar = "title";
            var AddNoteVar = "";
            var AddReturnVar = "";
            var AddOtherVars = "";        
            break
        case 3:    //    Digg ID:3
            var AddSite = "http://digg.com/submit?";
            var AddUrlVar = "url";
            var AddTitleVar =  "";
            var AddNoteVar =  "";
            var AddReturnVar =  "";
            var AddOtherVars = "&phase=2";
            break
        case 4:    //    Furl ID:4
            var AddSite = "http://www.furl.net/storeIt.jsp?";
            var AddUrlVar = "u";
            var AddTitleVar = "t";
            var AddNoteVar = "";
            var AddReturnVar = "";
            var AddOtherVars = "";    
            break
        case 5:    //    GOOGLE ID:5
            var AddSite = "http://fusion.google.com/add?";
            var AddUrlVar = "feedurl";
            var AddTitleVar = "";
            var AddNoteVar = "";
            var AddReturnVar = "";
            var AddOtherVars = "";
            break
        case 6:    //    Simpy ID:6
            var AddSite = "http://simpy.com/simpy/LinkAdd.do?";
            var AddUrlVar = "href";
            var AddTitleVar = "title";
            var AddNoteVar = "note";
            var AddReturnVar = "_doneURI";
            var AddOtherVars = "&v=6&src=bookmarklet";
            break
        case 7:    //    Yahoo ID: 7
            var AddSite = "http://myweb2.search.yahoo.com/myresults/bookmarklet?";
            var AddUrlVar = "u";
            var AddTitleVar = "t";
            var AddNoteVar = "";
            var AddReturnVar = "";
            var AddOtherVars = "&d=&ei=UTF-8";
            break
        case 8:    //    Spurl ID: 8     d.selection?d.selection.createRange().text:d.getSelection()
            var AddSite = "http://www.spurl.net/spurl.php?";
            var AddUrlVar = "url";
            var AddTitleVar = "title";
            var AddNoteVar = "blocked";
            var AddReturnVar = "";
            var AddOtherVars = "&v=3";
            break            
        default:
    }
//    Build the URL
    var addtoFullURL = AddSite + AddUrlVar + "=" + AddURL + "&" + AddTitleVar + "=" + AddTitle + AddOtherVars ;
    if (AddNoteVar != "") 
        {var addtoFullURL = addtoFullURL + "&" + AddNoteVar + "=" + AddTitle;}
    if (AddReturnVar != "")
        {var addtoFullURL = addtoFullURL + "&" + AddReturnVar + "=" + AddURL;}
//    Checking AddToMethod, to see if it opens in new window or not
    switch(addtoMethod){
        case 0:    // 0=direct link
            self.location = addtoFullURL
            break
        case 1:    // 1=popup
            addtoWin(addtoFullURL);
            break
        default:    
        }
        return true;
}
//    checking across domains causes errors - this is to supress these
function handleError() {return true;}
//window.onerror = handleError;

//for grabing browsing info
var BrowserDetect = {
    init: function () {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
            || this.searchVersion(navigator.appVersion)
            || "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
        this.language =  navigator.language;
        this.plugins = navigator.plugins;
        this.cookieEnabled = navigator.cookieEnabled;
        this.javaEnabled = this.javaEnabled();
        this.colordepth = window.screen.colorDepth;
        this.width = window.screen.width;
        this.height = window.screen.height;
        this.maxwidth = window.screen.availWidth;
        this.maxheight = window.screen.availHeight;
    },
    javaEnabled: function (){
            if(navigator.javaEnabled() < 1) return 'No';
            else if(navigator.javaEnabled() == 1) return 'Yes'; 
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++)    {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    },
    dataBrowser: [
        {
            string: navigator.userAgent,
            subString: "Chrome",
            identity: "Chrome"
        },
        {     string: navigator.userAgent,
            subString: "OmniWeb",
            versionSearch: "OmniWeb/",
            identity: "OmniWeb"
        },
        {
            string: navigator.vendor,
            subString: "Apple",
            identity: "Safari",
            versionSearch: "Version"
        },
        {
            prop: window.opera,
            identity: "Opera"
        },
        {
            string: navigator.vendor,
            subString: "iCab",
            identity: "iCab"
        },
        {
            string: navigator.vendor,
            subString: "KDE",
            identity: "Konqueror"
        },
        {
            string: navigator.userAgent,
            subString: "Firefox",
            identity: "Firefox"
        },
        {
            string: navigator.vendor,
            subString: "Camino",
            identity: "Camino"
        },
        {        // for newer Netscapes (6+)
            string: navigator.userAgent,
            subString: "Netscape",
            identity: "Netscape"
        },
        {
            string: navigator.userAgent,
            subString: "MSIE",
            identity: "Explorer",
            versionSearch: "MSIE"
        },
        {
            string: navigator.userAgent,
            subString: "Gecko",
            identity: "Mozilla",
            versionSearch: "rv"
        },
        {         // for older Netscapes (4-)
            string: navigator.userAgent,
            subString: "Mozilla",
            identity: "Netscape",
            versionSearch: "Mozilla"
        }
    ],
    dataOS : [
        {
            string: navigator.platform,
            subString: "Win",
            identity: "Windows"
        },
        {
            string: navigator.platform,
            subString: "Mac",
            identity: "Mac"
        },
        {
               string: navigator.userAgent,
               subString: "iPhone",
               identity: "iPhone/iPod"
        },
        {
            string: navigator.platform,
            subString: "Linux",
            identity: "Linux"
        }
    ]

};


//***************************
//Movie box rotation code
//Tomasz Rakowski
//2/26/2009
//***************************


document.mboxThumbScripts = new Array();

function moveBoxRotator(basePath, elementName, duration) {
    this.basePath = basePath;
    this.elementName = elementName;
    this.duration = duration;
    this.stepLength = 3;
    this.element;
    this.counter = 2;
    this.step = 40;
    this.speed = 600;
    this.timeoutId;
    this.exec;
    this.orginalSource;

    this.start = function() {
        //console.log('start');
        this.originalSource = this.getElement().src;
        this.exec = 'document.mboxThumbScripts[' + this.elementName +'].rotate()';                                
        this.timeoutId = setInterval(this.exec, this.speed);
    }
    
    this.rotate = function() {
        //console.log('rotate -> ' + this.counter + ' ' + (this.duration / this.stepLength));
        if(this.counter > (this.duration / this.stepLength)) {
            this.reset();
        } else {
            var filename = String(this.counter + ".jpg");
            for(x = filename.length; x < 8; x++) {
                filename = String("0" + filename);
            }
            this.setImage(this.basePath + filename);
            this.counter = this.counter + this.step;
        }    
    }

    this.reset = function() {
        //console.log('reset ' + this.counter);
        this.counter = 2;
        this.rotate();
    }

    this.stop = function() {
        //console.log('stop');
        clearInterval(this.timeoutId);
        this.getElement().src = this.originalSource;
    }

    this.getElement = function() {
        if(!this.element) {
            this.element = document.getElementById(this.elementName);
        }
        return this.element;
    }

    this.setImage = function(path) {
        //console.log(path);
        this.getElement().src = path;
    }
}

BrowserDetect.init();


//http://www.featureblend.com/license.txt
var FlashDetect=new function(){var self=this;self.installed=false;self.raw="";self.major=-1;self.minor=-1;self.revision=-1;self.revisionStr="";var activeXDetectRules=[{"name":"ShockwaveFlash.ShockwaveFlash.7","version":function(obj){return getActiveXVersion(obj);}},{"name":"ShockwaveFlash.ShockwaveFlash.6","version":function(obj){var version="6,0,21";try{obj.AllowScriptAccess="always";version=getActiveXVersion(obj);}catch(err){}
return version;}},{"name":"ShockwaveFlash.ShockwaveFlash","version":function(obj){return getActiveXVersion(obj);}}];var getActiveXVersion=function(activeXObj){var version=-1;try{version=activeXObj.GetVariable("$version");}catch(err){}
return version;};var getActiveXObject=function(name){var obj=-1;try{obj=new ActiveXObject(name);}catch(err){obj={activeXError:true};}
return obj;};var parseActiveXVersion=function(str){var versionArray=str.split(",");return{"raw":str,"major":parseInt(versionArray[0].split(" ")[1],10),"minor":parseInt(versionArray[1],10),"revision":parseInt(versionArray[2],10),"revisionStr":versionArray[2]};};var parseStandardVersion=function(str){var descParts=str.split(/ +/);var majorMinor=descParts[2].split(/\./);var revisionStr=descParts[3];return{"raw":str,"major":parseInt(majorMinor[0],10),"minor":parseInt(majorMinor[1],10),"revisionStr":revisionStr,"revision":parseRevisionStrToInt(revisionStr)};};var parseRevisionStrToInt=function(str){return parseInt(str.replace(/[a-zA-Z]/g,""),10)||self.revision;};self.majorAtLeast=function(version){return self.major>=version;};self.minorAtLeast=function(version){return self.minor>=version;};self.revisionAtLeast=function(version){return self.revision>=version;};self.versionAtLeast=function(major){var properties=[self.major,self.minor,self.revision];var len=Math.min(properties.length,arguments.length);for(i=0;i<len;i++){if(properties[i]>=arguments[i]){if(i+1<len&&properties[i]==arguments[i]){continue;}else{return true;}}else{return false;}}};self.FlashDetect=function(){if(navigator.plugins&&navigator.plugins.length>0){var type='application/x-shockwave-flash';var mimeTypes=navigator.mimeTypes;if(mimeTypes&&mimeTypes[type]&&mimeTypes[type].enabledPlugin&&mimeTypes[type].enabledPlugin.description){var version=mimeTypes[type].enabledPlugin.description;var versionObj=parseStandardVersion(version);self.raw=versionObj.raw;self.major=versionObj.major;self.minor=versionObj.minor;self.revisionStr=versionObj.revisionStr;self.revision=versionObj.revision;self.installed=true;}}else if(navigator.appVersion.indexOf("Mac")==-1&&window.execScript){var version=-1;for(var i=0;i<activeXDetectRules.length&&version==-1;i++){var obj=getActiveXObject(activeXDetectRules[i].name);if(!obj.activeXError){self.installed=true;version=activeXDetectRules[i].version(obj);if(version!=-1){var versionObj=parseActiveXVersion(version);self.raw=versionObj.raw;self.major=versionObj.major;self.minor=versionObj.minor;self.revision=versionObj.revision;self.revisionStr=versionObj.revisionStr;}}}}}();};FlashDetect.JS_RELEASE="1.0.4";
