function byClassName(class_name,element,func){var el,i=0,arr=[],rex=new RegExp("\\b"+class_name+"\\b"),obj=(typeof element=='object')?element:document,elements=(element instanceof Array)?element:obj.getElementsByTagName("*");while(elements[i]){el=elements[i];if(rex.test(el.className)){if(typeof func=='function'){func(el);}arr.push(el);}i++;}return arr;}function getStyle(el,styleProperty,notStripPX){var val=null,de_camel;if(el.style[styleProperty]){val=el.style[styleProperty];}else if(el.currentStyle){val=el.currentStyle[styleProperty];}else if(window.getComputedStyle){de_camel=styleProperty.replace(/[A-Z]/g,function(l){return'-'+l.toLowerCase();});val=window.getComputedStyle(el,"").getPropertyValue(de_camel);}return(!val||notStripPX||isNaN(parseFloat(val,10)))?val:parseFloat(val,10);}function setDisplay(el,Display){var i=0;function f(o){o.style.display=(Display)?'block':'none';return o;}if(el instanceof Array){el.changeEach(f);}else{f(el);}return false;}Array.prototype.changeEach=function(f,b){var v,a=this,i=0,l=a.length;while(i<l){v=a[i];if(v instanceof Array&&b){v.changeEach(f,b);}else{v=f(v);}i++;}return a;};function PlateControl(container,plateClass,smallClass,normalClass,bigClass,direction,sizeOptions,time,fadeTime,gradiant,fadeGradiant){var i,oo,O=this,dc=[],plates=byClassName(plateClass,container);O.direction=direction;O.sizes=sizeOptions,O.fadeTime=(typeof fadeTime=='number'&&fadeTime!==0)?fadeTime:(fadeTime===0||fadeTime===false)?null:200;O.time=(typeof time=='number'&&O.fadeTime===null)?time:(typeof time=='number'&&O.fadeTime*2<time)?time-(O.fadeTime*2):800;for(i=0;i<plates.length;i++){oo=plates[i];dc[i]={size:null,status:null,showElement:null,element:oo,resizer:new ElementAnimator(oo),triggers:[],smallElement:byClassName(smallClass,oo)[0],normalElement:byClassName(normalClass,oo)[0],bigElement:byClassName(bigClass,oo)[0]};oo=dc[i];oo.faders=[new ElementAnimator(oo.smallElement),new ElementAnimator(oo.normalElement),new ElementAnimator(oo.bigElement)];oo.fade=function(to,time,gradiant,callback){var reports=0,f=function(){reportFade();};function reportFade(){reports++;if(reports==3){callback();}}this.faders.changeEach(function(v){v.resize('opacity',to,time,gradiant,f);return v;});};}O.len=plates.length;O.controls=dc;O.isRunning=false;O.callback=null;O.gradiant=(typeof gradiant=='number'&&gradiant>=0.01&&gradiant<=2)?gradiant:1;O.fadeGradiant=(typeof fadeGradiant=='number'&&fadeGradiant>=0.01&&fadeGradiant<=2)?fadeGradiant:1;}PlateControl.prototype={setHandler:function(handler,controlIndex,useHtml,eventType,otherFunc){var O=this,obj=O.controls[controlIndex],eventType=(typeof eventType=='string')?eventType:"onclick";function f(O){return function(){var val=this.pc_status;if(val=="normal"){O.run();}else if(val=="big"){O.run(controlIndex);}return false;};}if(handler instanceof Array){handler.changeEach(function(v){v.pc_status="big";v.pc_html=useHtml;v[eventType]=f(O,useHtml);obj.triggers.push(v);return v;},1);}else{handler.pc_status="big";handler.pc_html=useHtml;handler[eventType]=f(O);obj.triggers.push(handler);}},run:function(largeIndex){if(this.isRunning){return;}this.isRunning=true;var O=this,dims=O.sizes,bool=(typeof largeIndex=='number'),i=0,j=0,k=0,ft=O.fadeTime,actions=[function(v){setDisplay([v.smallElement,v.normalElement,v.bigElement]);v.resizer.resize(O.direction,v.size,O.time,O.gradiant,function(){report();});return v;},function(v){setDisplay(v.showElement,1);v.fade(100,ft,O.fadeGradiant,function(){report();});return v;},function(v){v.triggers.changeEach(function(o){o.pc_status=v.status;if(o.innerHTML&&o.pc_html instanceof Array){o.innerHTML=(o.pc_status=="normal")?o.pc_html[0]:o.pc_html[1];}return o;});return v;}];function start(obj,sz,st,se){obj.size=sz;obj.status=st;obj.showElement=se;obj.fade(0,ft,O.fadeGradiant,function(){report();});}function report(){j++;if(j==O.len){j=0;O.controls.changeEach(actions[k++]);}if(k==2){O.isRunning=false;if(typeof O.callback=='function'){O.callback();}}}O.controls.changeEach(function(v){if(bool){if(i==largeIndex){start(v,dims[2],"normal",v.bigElement);}else{start(v,dims[0],"big",v.smallElement);}}else{start(v,dims[1],"big",v.normalElement);}i++;return v;});}};function ElementAnimator(element){this.element=element;this.interval=null;this.isRunning=false;}ElementAnimator.prototype={resize:function(property,to,time,gradiant,callback){if(this.isRunning||!(typeof property=='string')){return null;}this.isRunning=true;if(/opacity/.test(property)){if(window.ActiveXObject){var dim=getStyle(this.element,"filter");if(dim!==null){dim=Number(dim.replace(/[^\d]/g,''));}else{dim=100;}}else{var dim=getStyle(this.element,property);if(dim!==null){dim*=100;}else{dim=100;}}}else{var dim=getStyle(this.element,property);}if(dim===null){return dim;}var position,O=this,gradiant=(typeof gradiant=='number'&&gradiant>=0.01&&gradiant<=2)?gradiant:1,start=dim,spd=25,startDate=new Date().getTime(),fireTime=startDate+spd,min=Math.min(start,to),max=Math.max(start,to),time=(typeof time=='number')?time:600,increase=(to>dim),diff=max-min,steps=Math.round(time/spd),currentStep=0;O.interval=window.setInterval(function(){if(new Date().getTime()>=fireTime){fireTime+=spd;position=Math.pow(((1/steps)*(++currentStep)),gradiant)*diff;position=(increase)?Math.ceil(min+position):Math.floor(max-position);if((increase&&position<to)||(!increase&&position>to)){O.setStyle(property,position+"px");}else{O.stop();O.setStyle(property,to+"px");if(typeof callback=='function'){window.setTimeout(callback,1);}}}},1);},setStyle:function(property,value){var opa,el=this.element;if(/^opacity$/.test(property)){value=parseFloat(value);opa=value/100;el.style.filter="alpha(opacity="+value+")";if(value>99&&el.style.removeAttribute){el.style.removeAttribute('filter');}el.style.opacity=opa;el.style.KHTMLOpacity=opa;el.style.MozOpacity=opa;}else{el.style[property]=value;}},stop:function(){window.clearInterval(this.interval);this.isRunning=false;}};