window.log=function(){log.history=log.history||[];log.history.push(arguments);arguments.callee=arguments.callee.caller;if(this.console)console.log(Array.prototype.slice.call(arguments));};(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();)b[a]=b[a]||c})(window.console=window.console||{});function get_script(url,callback){var scriptTag=new Element('script');scriptTag.onload=scriptTag.onreadystatechange=function(){if(!this.status||this.status==200){callback.call();}};scriptTag.type='text/javascript';scriptTag.src=url;document.body.insert(scriptTag);}
(function(){var userAgent=navigator.userAgent.toLowerCase();Prototype.Browser.version=(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1];}());Event.live=function(selector,eventName,callback,delegated){var delegated=$(delegated)||$(document.body);delegated.observe(eventName,function(event){var target=event.target,nodes=delegated.select(selector),originalEventTarget=target,d=delegated;while(target&&nodes.indexOf(target)<0)target=target.parentNode;if(target&&!(target===d))callback(target,event);});}
Element.addMethods({delegate:function(element,selector,eventName,callback){Event.live(selector,eventName,callback,element);}});Element.addMethods({toggleLoading:function(element,customClass,customStyle){var element=$(element);var overlay=null;if(!(overlay=element.down('div.loading-overlay'))){overlay=new Element('div');overlay.addClassName('loading-overlay');if(customClass){overlay.addClassName(customClass);}
var style={position:'absolute',width:'100%',height:'100%',display:'none',top:'0px',left:'0px'};Object.extend(style,customStyle||{})
overlay.setStyle(style);element.setStyle({position:'relative'});element.insert({top:overlay});}
overlay.toggle();return element;}});function get_radio_value(prefix){var checked=$$('input[id^='+prefix+']').findAll(function(el){return el.checked;});if(checked.length>0){return checked[0].value;}
return null;}
Array.prototype.hover=function(hoverclass){if(typeof(hoverclass)=='undefined'){hoverclass='hovered';}
this.invoke('observe','mouseenter',function(ev){ev.element().addClassName(hoverclass);});this.invoke('observe','mouseleave',function(ev){ev.element().removeClassName(hoverclass);});return this;};ImageLoader=Class.create({count:0,total:0,domImages:null,images:null,options:{onStart:Prototype.emptyFunction,onLoaded:Prototype.emptyFunction,onError:Prototype.emptyFunction,onComplete:Prototype.emptyFunction},initialize:function(images,options){this.images=[];this.domImages=images;this.count=0;this.total=images.length;Object.extend(this.options,options||{});if(typeof(this.options.onStart)=='function'){this.options.onStart.call(this);}
images.each(this.parse.bind(this));},parse:function(image,index){var imageObject=new Image();this.images.push(imageObject);imageObject.onerror=this.onImageError.bind(this,index);imageObject.onload=this.onImageLoaded.bind(this,index);imageObject.src=image.src;},onImageLoaded:function(index){this.count++;this.options.onLoaded.call(this,this.domImages[index],this.count);if(this.count==this.total){if(typeof(this.options.onComplete)=='function'){this.options.onComplete.call(this);}}},onImageError:function(index){this.total--;if(typeof(this.options.onError)=='function'){this.options.onError.call(this,this.domImages[index],this.count);}
if(this.count==this.total){if(typeof(this.options.onComplete)=='function'){this.options.onComplete.call(this);}}}});ProgressBar=Class.create(ImageLoader,{initialize:function($super,element,onCompleteCallback){this.element=$(element);this.onCompleteCallback=onCompleteCallback;$super($(element).select('img'),{onStart:function(){$(element).toggleLoading();var container=$(element);var progressBarWrapper=new Element('div',{'class':'progress-bar-wrapper'});var progressBar=new Element('div',{'class':'progress-bar'});container.insert(progressBarWrapper);progressBarWrapper.insert(progressBar);this._progressBar=progressBar;},onLoaded:function(image){var progressBarWrapperInternalWidth=this._progressBar.up().getWidth()-(parseInt(this._progressBar.getStyle('marginLeft'))+parseInt(this._progressBar.getStyle('marginRight')));var w=(this.count/this.total)*progressBarWrapperInternalWidth;this._progressBar.setStyle({width:parseInt(w)+'px'});},onError:function(){this.options.onLoaded.call(this);},onComplete:function(){this.element.toggleLoading();this._progressBar.up().hide();if(typeof(this.onCompleteCallback)=='function'){this.onCompleteCallback.call(this);}}});}});Element.addMethods({progressBar:function(element,onCompleteCallback){new ProgressBar(element,onCompleteCallback);return $(element);}});(function(){var eventMatchers={'HTMLEvents':/^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,'MouseEvents':/^(?:click|mouse(?:down|up|over|move|out))$/}
var defaultOptions={pointerX:0,pointerY:0,button:0,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false,bubbles:true,cancelable:true}
Event.simulate=function(element,eventName){var options=Object.extend(defaultOptions,arguments[2]||{});var oEvent,eventType=null;element=$(element);for(var name in eventMatchers){if(eventMatchers[name].test(eventName)){eventType=name;break;}}
if(!eventType)
throw new SyntaxError('Only HTMLEvents and MouseEvents interfaces are supported');if(document.createEvent){oEvent=document.createEvent(eventType);if(eventType=='HTMLEvents'){oEvent.initEvent(eventName,options.bubbles,options.cancelable);}
else{oEvent.initMouseEvent(eventName,options.bubbles,options.cancelable,document.defaultView,options.button,options.pointerX,options.pointerY,options.pointerX,options.pointerY,options.ctrlKey,options.altKey,options.shiftKey,options.metaKey,options.button,element);}
element.dispatchEvent(oEvent);}
else{options.clientX=options.pointerX;options.clientY=options.pointerY;oEvent=Object.extend(document.createEventObject(),options);element.fireEvent('on'+eventName,oEvent);}
return element;}
Element.addMethods({simulate:Event.simulate});})()
