/*
 * MooFlow - Image gallery
 */ 
var MooFlow=new Class({Implements:[Events,Options],options:{onStart:$empty,onClickView:$empty,onAutoPlay:$empty,onAutoStop:$empty,onRequest:$empty,onResized:$empty,onEmptyinit:$empty,reflection:0.4,heightRatio:0.6,offsetY:0,startIndex:0,interval:3000,factor:115,bgColor:'#000',useCaption:false,useResize:false,useSlider:false,useWindowResize:false,useMouseWheel:true,useKeyInput:false,useViewer:false},initialize:function(a,b){this.MooFlow=a;this.setOptions(b);this.foc=150;this.factor=this.options.factor;this.offY=this.options.offsetY;this.isFull=false;this.isAutoPlay=false;this.isLoading=false;this.inMotion=false;this.MooFlow.addClass('mf').setStyles({'overflow':'hidden','background-color':this.options.bgColor,'position':'relative','height':this.MooFlow.getSize().x*this.options.heightRatio,'opacity':0});if(this.options.useWindowResize)window.addEvent('resize',this.update.bind(this,'init'));if(this.options.useMouseWheel||this.options.useSlider)this.MooFlow.addEvent('mousewheel',this.wheelTo.bind(this));if(this.options.useKeyInput)document.addEvent('keydown',this.keyTo.bind(this));this.getElements(this.MooFlow)},clearInit:function(){this.fireEvent('emptyinit')},getElements:function(c){this.master={'images':[]};var d=c.getChildren();if(!d.length){this.clearInit();return}$$(d).each(function(a){var b=$H(a.getElement('img').getProperties('src','title','alt','longdesc'));if(a.get('tag')=='a')b.combine(a.getProperties('href','rel','target'));this.master['images'].push(b.getClean());a.dispose()},this);this.clearMain()},clearMain:function(){if(this.cap){this.cap.fade(0)}if(this.nav){new Fx.Tween(this.nav,{'onComplete':function(){this.MooFlow.empty();this.createAniObj()}.bind(this)}).start('bottom',-50)}if(!this.nav&&!this.cap){this.MooFlow.empty();this.createAniObj()}},getMooFlowElements:function(b){var c=[];this.master.images.each(function(a){c.push(a[b])});return c},createAniObj:function(){this.aniFx=new Fx.Value({'transition':Fx.Transitions.Expo.easeOut,'link':'cancel','duration':750,onMotion:this.process.bind(this),'onStart':this.flowStart.bind(this),'onComplete':this.flowComplete.bind(this)});this.addLoader()},addLoader:function(){this.MooFlow.store('height',this.MooFlow.getSize().y);this.loader=new Element('div',{'class':'loader'}).inject(this.MooFlow);new Fx.Tween(this.MooFlow,{'duration':800,'onComplete':this.preloadImg.bind(this)}).start('opacity',1)},preloadImg:function(){this.loadedImages=new Asset.images(this.getMooFlowElements('src'),{'onComplete':this.loaded.bind(this),'onProgress':this.createMooFlowElement.bind(this)})},createMooFlowElement:function(a,i){var b=this.getCurrent(i);var c=this.loadedImages[i];b['width']=c.width;b['height']=c.height;c.removeProperties('width','height');b['div']=new Element('div').setStyles({'position':'absolute','display':'none','height':this.MooFlow.getSize().y}).inject(this.MooFlow);b['con']=new Element('div').inject(b['div']);c.setStyles({'vertical-align':'bottom','width':'100%','height':'50%'});c.addEvents({'click':this.viewCallBack.bind(this,i),'dblclick':this.clickTo.bind(this,i)});c.inject(b['con']);new Element('div').reflect({'img':c,'ref':this.options.reflection,'height':b.height,'width':b.width,'color':this.options.bgColor}).setStyles({'width':'100%','height':'50%','background-color':this.options.bgColor}).inject(b['con']);this.loader.set('text',(a+1)+' / '+this.loadedImages.length)},loaded:function(){this.index=this.options.startIndex;this.iL=this.master.images.length-1;new Fx.Tween(this.loader,{'duration':800,'onComplete':this.createUI.bind(this)}).start('opacity',0)},createUI:function(){this.loader.dispose();if(this.options.useCaption){this.cap=new Element('div').addClass('caption').set('opacity',0).inject(this.MooFlow)}this.nav=new Element('div').addClass('mfNav').setStyle('bottom','-50px');this.autoPlayCon=new Element('div').addClass('autoPlayCon');this.sliderCon=new Element('div').addClass('sliderCon');this.resizeCon=new Element('div').addClass('resizeCon');if(this.options.useAutoPlay){this.autoPlayCon.adopt(new Element('a',{'class':'stop','events':{'click':this.stop.bind(this)}}),new Element('a',{'class':'play','events':{'click':this.play.bind(this)}}))}if(this.options.useSlider){this.sliPrev=new Element('a',{'class':'sliderNext','events':{'click':this.prev.bind(this)}});this.sliNext=new Element('a',{'class':'sliderPrev','events':{'click':this.next.bind(this)}});this.knob=new Element('div',{'class':'knob'});this.knob.adopt(new Element('div',{'class':'knobleft'}));this.slider=new Element('div',{'class':'slider'}).adopt(this.knob);this.sliderCon.adopt(this.sliPrev,this.slider,this.sliNext);this.slider.store('parentWidth',this.sliderCon.getSize().x-this.sliPrev.getSize().x-this.sliNext.getSize().x)}if(this.options.useResize){this.resizeCon.adopt(new Element('a',{'class':'resize','events':{'click':this.setScreen.bind(this)}}))}this.MooFlow.adopt(this.nav.adopt(this.autoPlayCon,this.sliderCon,this.resizeCon));this.showUI()},showUI:function(){if(this.cap)this.cap.fade(1);this.nav.tween('bottom',20);this.fireEvent('start');this.update()},update:function(e){if(e=='init')return;this.oW=this.MooFlow.getSize().x;this.sz=this.oW*0.5;if(this.options.useSlider){this.slider.setStyle('width',this.slider.getParent().getSize().x-this.sliPrev.getSize().x-this.sliNext.getSize().x-1);this.knob.setStyle('width',(this.slider.getSize().x/this.iL));this.sli=new SliderEx(this.slider,this.knob,{steps:this.iL}).set(this.index);this.sli.addEvent('onChange',this.glideTo.bind(this))}this.glideTo(this.index);this.isLoading=false},setScreen:function(){if(this.isFull=!this.isFull){this.holder=new Element('div').inject(this.MooFlow,'after');this.MooFlow.wraps(new Element('div').inject(document.body));this.MooFlow.setStyles({'position':'absolute','z-index':'100','top':'0','left':'0','width':window.getSize().x,'height':window.getSize().y});if(this.options.useWindowResize){this._initResize=this.initResize.bind(this);window.addEvent('resize',this._initResize)}}else{this.MooFlow.wraps(this.holder);window.removeEvent('resize',this._initResize);delete this.holder,this._initResize;this.MooFlow.setStyles({'position':'relative','z-index':'','top':'','left':'','width':'','height':this.MooFlow.retrieve('height')});this.slider.setStyle('width',this.slider.retrieve('parentWidth'))}this.fireEvent('resized',this.isFull);this.update()},initResize:function(){this.MooFlow.setStyles({'width':window.getSize().x,'height':window.getSize().y});this.update()},getCurrent:function(a){return this.master.images[$chk(a)?a:this.index]},loadJSON:function(b){if(!b||this.isLoading)return;this.isLoading=true;new Request.JSON({'onComplete':function(a){if($chk(a)){this.master=a;this.clearMain();this.fireEvent('request',a)}}.bind(this)},this).get(b)},loadHTML:function(e,f){if(!e||!f||this.isLoading)return;this.isLoading=true;new Request.HTML({'onSuccess':function(a,b,c){var d=new Element('div',{'html':c}).getChildren(f);this.getElements(d);this.fireEvent('request',d)}.bind(this)},this).get(e)},flowStart:function(){this.inMotion=true},flowComplete:function(){this.inMotion=false},viewCallBack:function(a){if(this.index!=a||this.inMotion)return;var b=$H(this.getCurrent());var c={};c['coords']=b.div.getElement('img').getCoordinates();b.each(function(v,k){if($type(v)=='number'||$type(v)=='string')c[k]=v},this);this.fireEvent('clickView',c)},prev:function(){if(this.index>0)this.clickTo(this.index-1)},next:function(){if(this.index<this.iL)this.clickTo(this.index+1)},stop:function(){$clear(this.autoPlay);this.isAutoPlay=false;this.fireEvent('autoStop')},play:function(){this.autoPlay=this.auto.periodical(this.options.interval,this);this.isAutoPlay=true;this.fireEvent('autoPlay')},auto:function(){if(this.index<this.iL)this.next();else if(this.index==this.iL)this.clickTo(0)},keyTo:function(e){switch(e.code){case 37:e.stop();this.prev();break;case 39:e.stop();this.next()}},wheelTo:function(e){if(e.wheel>0)this.prev();if(e.wheel<0)this.next();e.stop().preventDefault()},clickTo:function(a){if(this.index==a)return;if(this.sli)this.sli.set(a);this.glideTo(a)},glideTo:function(a){this.index=a;this.aniFx.start(this.aniFx.get(),a*-this.foc);if(this.cap)this.cap.set('html',this.getCurrent().title)},process:function(x){var z,W,H,zI=this.iL,foc=this.foc,f=this.factor,sz=this.sz,oW=this.oW,offY=this.offY,div,elh,elw;this.master.images.each(function(a){div=a.div.style;elw=a.width;elh=a.height;if(x>-foc*6&&x<foc*6){with(Math){z=sqrt(10000+x*x)+100;H=round((elh/elw*f)/z*sz);W=round(elw*H/elh);if(H>=elw*0.5){W=round(f/z*sz)}div.left=round(((x/z*sz)+sz)-(f*0.5)/z*sz)+'px';div.top=round(oW*0.4-H)+offY+'px'}a.con.style.height=H*2+'px';div.width=W+'px';div.zIndex=x<0?zI++:zI--;div.display='block'}else{div.display='none'}x+=foc})}});var SliderEx=new Class({Extends:Slider,set:function(a){this.step=Math.round(a);this.fireEvent('tick',this.toPosition(this.step));return this},clickedElement:function(a){var b=this.range<0?-1:1;var c=a.page[this.axis]-this.element.getPosition()[this.axis]-this.half;c=c.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+b*this.toStep(c));this.checkStep();this.fireEvent('tick',c)}});Fx.Value=new Class({Extends:Fx,compute:function(a,b,c){this.value=Fx.compute(a,b,c);this.fireEvent('motion',this.value);return this.value},get:function(){return this.value||0}});Element.implement({reflect:function(a){var i=a.img.clone().set('src',a.img.src);if(Browser.Engine.trident){i.style.filter='flipv progid:DXImageTransform.Microsoft.Alpha(opacity=20, style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy='+100*a.ref+')';i.setStyles({'width':'100%','height':'100%'});return new Element('div').adopt(i)}else{var b=new Element('canvas').setProperties({'width':a.width,'height':a.height});if(b.getContext){var c=b.getContext("2d");c.save();c.translate(0,a.height-1);c.scale(1,-1);try{c.drawImage(i,0,0,a.width,a.height)}catch(err){}c.restore();c.globalCompositeOperation="destination-out";c.fillStyle=a.color;c.fillRect(0,a.height*0.5,a.width,a.height);var d=c.createLinearGradient(0,0,0,a.height*a.ref);d.addColorStop(1,"rgba(255, 255, 255, 1.0)");d.addColorStop(0,"rgba(255, 255, 255, "+(1-a.ref)+")");c.fillStyle=d;c.rect(0,0,a.width,a.height);c.fill();delete c,d}return b}}});
/*
 * Milkbox v3.0.2 - required: mootools.js v1.3 core + more (see the relative js file for details about used modules)
 */
(function(){var a=null;this.Milkbox=new Class({Implements:[Options,Events],options:{overlayOpacity:0.7,marginTop:50,initialWidth:250,initialHeight:250,fileboxBorderWidth:"0px",fileboxBorderColor:"#000000",fileboxPadding:"0px",resizeDuration:0.5,resizeTransition:"sine:in:out",autoPlay:false,autoPlayDelay:7,removeTitle:true,autoSize:true,autoSizeMaxHeight:0,centered:false,imageOfText:"of",onXmlGalleries:function(){},onClosed:function(){},onFileReady:function(){}},initialize:function(b){if(a){return a}a=this;this.setOptions(b);this.autoPlayBkup={autoPlayDelay:this.options.autoPlayDelay,autoPlay:this.options.autoPlay};this.fullOptionsBkup={};this.galleries=[];this.formElements=[];this.activated;this.busy=false;this.paused=false;this.closed=true;this.intId;this.loadCheckerId;this.externalGalleries=[];this.singlePageLinkId=0;this.currentIndex;this.currentGallery;this.fileReady;this.loadedImages=[];this.currentFile;this.options_bkup;this.display;this.getPageGalleries();if(this.galleries.length!=0){this.prepare(true)}},prepare:function(b){if(b){this.checkFormElements()}this.prepareHTML();this.prepareEventListeners();this.activated=true},open:function(b,c){var d;if(!this.activated){this.prepare(true)}var f=(instanceOf(b,MilkboxGallery))?b:this.getGallery(b);if(!f){return false}if(typeOf(c)!=="number"){d=f.get_index_of(c);if(d!==-1){c=d}}d=parseInt(c,10);if(isNaN(d)){d=0}this.closed=false;var e=f.get_item(d);if(!e){return false}this.currentGallery=f;this.currentIndex=d;this.hideFormElements();this.display.set_mode(this.currentGallery.type);this.display.appear();if(this.options.autoPlay||f.options.autoplay){this.startAutoPlay(true)}this.loadFile(e,this.getPreloads());return true},close:function(b){if(b){this.display.disappear()}this.showFormElements();this.pauseAutoPlay();this.stopLoadingCheck();this.currentGallery=null;this.currentIndex=null;this.currentFile=null;this.busy=false;this.paused=false;this.fileReady=false;this.closed=true;this.fireEvent("close")},startAutoPlay:function(b){var e=this.currentGallery.options.autoplay_delay||this.options.autoPlayDelay;if(e<this.options.resizeDuration*2){e=this.options.resizeDuration*2}var c=function(){this.removeEvent("fileReady",c);this.intId=this.navAux.periodical(e*1000,this,[null,"next"])};if(b){this.addEvent("fileReady",c)}else{this.intId=this.navAux.periodical(e*1000,this,[null,"next"])}this.paused=false},pauseAutoPlay:function(){if(this.intId){clearInterval(this.intId);this.intId=null}this.paused=true},setAutoPlay:function(c){var b=(typeOf(c)=="object")?[c]:c;b.each(function(h){var f=this.getGallery(h.gallery);if(!f){return}var e=(h.autoplay==true)?h.autoplay:false;var i=(h.delay&&e)?h.delay:this.options.autoPlayDelay;f.setOptions({autoplay:e,autoplay_delay:i}).refresh()},this)},openWithFile:function(c,b){if(!this.activated){this.prepare()}if(b){this.refreshDisplay(b,true)}var d=new MilkboxGallery([c],{remove_title:this.options.removeTitle});this.open(d,0)},getPreloads:function(){var b=this.currentGallery.items;var c=this.currentIndex;if(b.length==1){return null}var e=(c!=b.length-1)?b[c+1]:b[0];var f=(c!=0)?b[c-1]:b[b.length-1];var d=(f==e)?[f]:[f,e];return d},loadFile:function(c,b){this.fileReady=false;this.display.clear_content();this.display.hide_bottom();if(this.checkFileType(c,"swf")){this.loadSwf(c)}else{if(this.checkFileType(c,"html")){this.loadHtml(c)}else{this.loadImage(c)}}if(!this.checkFileType(c,"swf")){this.startLoadingCheck()}if(b){this.preloadFiles(b)}},startLoadingCheck:function(){var b=0;if(!this.loadCheckerId){this.loadCheckerId=(function(){b+=1;if(b>5){if(this.loadCheckerId){this.display.show_loader()}this.stopLoadingCheck()}}).periodical(100,this)}},stopLoadingCheck:function(){clearInterval(this.loadCheckerId)},preloadFiles:function(b){b.each(function(d,c){if(!this.checkFileType(d,"swf")&&!this.checkFileType(d,"html")){this.preloadImage(d.href)}},this)},preloadImage:function(c){if(!this.loadedImages.contains(c)){var b=new Asset.image(c,{onLoad:function(){this.loadedImages.push(c)}.bind(this)})}},loadImage:function(d){var c=d.href;var b=new Asset.image(c,{onLoad:function(e){if(!this.loadedImages.contains(c)){this.loadedImages.push(c)}this.loadComplete(e,d.caption)}.bind(this)})},loadSwf:function(c){var b=new Swiff(c.href,{width:c.size.width,height:c.size.height,vars:c.vars,params:{wMode:"opaque",swLiveConnect:"false"}});this.loadComplete($(b),c.caption)},loadHtml:function(c){var d=(c.vars?"?"+Object.toQueryString(c.vars):"");var b=new Element("iframe",{src:c.href+d,frameborder:0,styles:{border:"none"}});if(c.size){b.set({width:c.size.width,height:c.size.height})}this.loadComplete(b,c.caption)},loadComplete:function(c,b){if(this.closed){return}this.fileReady=true;this.stopLoadingCheck();this.currentFile=c;var d;d=(function(){if(this.display.ready){if(this.currentGallery.items!=null){this.display.show_file(c,b,this.currentIndex+1,this.currentGallery.items.length)}clearInterval(d)}}).periodical(100,this);this.fireEvent("fileReady")},checkFileType:function(c,d){var b=(typeOf(c)!="string")?c.href:c;var e=new RegExp(".("+d+")$","i");return b.split("?")[0].test(e)},getPageGalleries:function(){var c=[];var b=$$("a[data-milkbox]");b.each(function(e){var d=e.get("data-milkbox");if(d=="single"){this.galleries.push(new MilkboxGallery(e,{name:"single"+this.singlePageLinkId++,remove_title:this.options.removeTitle}))}else{if(!c.contains(d)){c.push(d)}}},this);c.each(function(d){this.galleries.push(new MilkboxGallery($$("a[data-milkbox="+d+"]"),{name:d,remove_title:this.options.removeTitle}))},this);if(this.options.autoPlay){this.galleries.each(function(d){d.setOptions({autoplay:this.options.autoPlay,autoplay_delay:this.options.autoPlayDelay})})}},reloadPageGalleries:function(){this.removePageGalleryEvents();this.galleries=this.galleries.filter(function(b){if(!b.external){b.clear()}return b.external});this.getPageGalleries();this.addPageGalleriesEvents();if(!this.activated){this.prepare(true)}},resetExternalGalleries:function(b){this.galleries=this.galleries.filter(function(d){if(d.external){d.clear()}return !d.external});if(!b){return}var c=(typeOf(b)=="array")?b:[b];c.each(function(d){this.addGalleries(d)},this)},addGalleries:function(b){if(!this.activated){this.prepare(true)}if(typeOf(b)=="string"&&b.split("?")[0].test(/\.(xml)$/i)){this.loadXml(b)}else{this.setObjectGalleries(b)}if(!this.activated){this.prepare(true)}},loadXml:function(b){var c=new Request({method:"get",autoCancel:true,url:b,onRequest:function(){}.bind(this),onSuccess:function(f,d){var e=f.replace(/(<a.+)\/>/gi,"$1></a>");this.setXmlGalleries(new Element("div",{html:e}))}.bind(this),onFailure:function(d){alert("Milkbox :: loadXml: XML file path error or local Ajax test: please test xml galleries on-line")}}).send()},setXmlGalleries:function(e){var g=e;var b=g.getElements(".gallery");var f;var d=[];b.each(function(k,j){var h={name:k.getProperty("name"),autoplay:Boolean(k.getProperty("autoplay")),autoplay_delay:Number(k.getProperty("autoplay_delay"))};var c=k.getChildren("a").map(function(i){return{href:i.href,size:i.get("data-milkbox-size"),title:i.get("title")}},this);this.galleries.push(new MilkboxGallery(c,h))},this);this.fireEvent("xmlGalleries")},setObjectGalleries:function(b){var c=(typeOf(b)=="array")?b:[b];c.each(function(e){var d={name:e.name,autoplay:e.autoplay,autoplay_delay:e.autoplay_delay};this.galleries.push(new MilkboxGallery(e.files,d))},this)},getGallery:function(b){var c=this.galleries.filter(function(d){return d.name==b},this);return c[0]||null},prepareHTML:function(){this.display=new MilkboxDisplay({initialWidth:this.options.initialWidth,initialHeight:this.options.initialHeight,overlayOpacity:this.options.overlayOpacity,marginTop:this.options.marginTop,fileboxBorderWidth:this.options.fileboxBorderWidth,fileboxBorderColor:this.options.fileboxBorderColor,fileboxPadding:this.options.fileboxPadding,resizeDuration:this.options.resizeDuration,resizeTransition:this.options.resizeTransition,centered:this.options.centered,autoSize:this.options.autoSize,autoSizeMaxHeight:this.options.autoSizeMaxHeight,imageOfText:this.options.imageOfText})},refreshDisplay:function(d,c){if(!this.activated){return}var b=this.display.options;var e=Object.merge({},b,d);if(this.display){this.display.clear()}this.display=new MilkboxDisplay(e);this.addDisplayEvents();if(c){this.options_bkup=b}else{this.options_bkup=null}},checkFormElements:function(){this.formElements=$$("select, textarea");if(this.formElements.length==0){return}this.formElements=this.formElements.map(function(b){b.store("visibility",b.getStyle("visibility"));b.store("display",b.getStyle("display"));return b})},hideFormElements:function(){if(this.formElements.length==0){return}this.formElements.each(function(b){b.setStyle("display","none")})},showFormElements:function(){if(this.formElements.length==0){return}this.formElements.each(function(b){b.setStyle("visibility",b.retrieve("visibility"));b.setStyle("display",b.retrieve("display"))})},addPageGalleriesEvents:function(){var b=this.galleries.filter(function(c){return !c.external});b.each(function(c){c.items.each(function(d){d.element.addEvent("click",function(f){f.preventDefault();this.open(c.name,c.get_index_of(d))}.bind(this))},this)},this)},removePageGalleryEvents:function(){var b=this.galleries.filter(function(c){return !c.external});b.each(function(c){c.items.each(function(d){d.element.removeEvents("click")})})},addDisplayEvents:function(){this.display.addEvent("nextClick",function(){this.navAux(true,"next")}.bind(this));this.display.addEvent("prevClick",function(){this.navAux(true,"prev")}.bind(this));this.display.addEvent("playPauseClick",function(){if(this.paused){this.startAutoPlay()}else{this.pauseAutoPlay()}this.display.set_paused(this.paused)}.bind(this));this.display.addEvent("disappear",function(){if(this.options_bkup){this.refreshDisplay(this.options_bkup)}this.close(false)}.bind(this));this.display.addEvent("resizeComplete",function(){this.busy=false}.bind(this))},prepareEventListeners:function(){this.addPageGalleriesEvents();this.addDisplayEvents();window.addEvent("resize",function(){if(this.display.ready){this.display.resetOverlaySize()}}.bind(this));window.document.addEvent("keydown",function(b){if(this.busy==true||this.closed){return}if(b.key=="right"||b.key=="left"||b.key=="space"){b.preventDefault()}if(this.display.mode!="single"){if(b.key=="right"||b.key=="space"){this.navAux(b,"next")}else{if(b.key=="left"){this.navAux(b,"prev")}}}if(b.key=="esc"){this.display.disappear()}}.bind(this))},navAux:function(f,d){if(f){this.pauseAutoPlay()}else{if(this.busy||!this.fileReady){return}}this.busy=true;var b,c;if(d=="next"){b=(this.currentIndex!=this.currentGallery.items.length-1)?this.currentIndex+=1:this.currentIndex=0;c=(this.currentIndex!=this.currentGallery.items.length-1)?this.currentIndex+1:0}else{b=(this.currentIndex!=0)?this.currentIndex-=1:this.currentIndex=this.currentGallery.items.length-1;c=(this.currentIndex!=0)?this.currentIndex-1:this.currentGallery.items.length-1}this.loadFile(this.currentGallery.get_item(b),[this.currentGallery.get_item(c)])}})})();var MilkboxDisplay=new Class({Implements:[Options,Events],options:{initialWidth:100,initialHeight:100,overlayOpacity:1,marginTop:0,fileboxBorderWidth:"0px",fileboxBorderColor:"#000000",fileboxPadding:"0px",resizeDuration:0.5,resizeTransition:"sine:in:out",centered:false,autoSize:false,autoSizeMaxHeight:0,imageOfText:"of",onNextClick:function(){},onPrevClick:function(){},onPlayPause:function(){},onDisappear:function(){},onResizeComplete:function(){}},initialize:function(a){this.setOptions(a);this.overlay;this.mainbox;this.filebox;this.bottom;this.controls;this.caption;this.close;this.next;this.prev;this.playpause;this.paused=false;this.count;this.mode="standard";this.ready=false;this.overlay_show_fx;this.overlay_hide_fx;this.mainbox_show_fx;this.mainbox_hide_fx;this.mainbox_resize_fx;this.current_file=null;this.build_html();this.prepare_effects();this.prepare_events()},build_html:function(){this.overlay=new Element("div",{id:"mbox-overlay",styles:{visibility:"visible",position:"fixed",display:"none",left:0,width:"100%",opacity:0,height:0,overflow:"hidden",margin:0,padding:0}}).inject($(document.body));this.mainbox=new Element("div",{id:"mbox-mainbox",styles:{position:(this.options.centered)?"fixed":"absolute",overflow:"hidden",display:"none","z-index":50001,width:this.options.initialWidth,height:this.options.initialHeight,opacity:0,margin:0,left:"50%",marginLeft:-(this.options.initialWidth/2),marginTop:(this.options.centered)?-(this.options.initialHeight/2):"",top:(this.options.centered)?"50%":""}}).inject($(document.body));this.filebox=new Element("div",{id:"mbox-filebox",styles:{"border-style":"solid","border-width":this.options.fileboxBorderWidth,"border-color":this.options.fileboxBorderColor,padding:this.options.fileboxPadding,opacity:0}}).inject(this.mainbox);this.bottom=new Element("div#mbox-bottom").setStyle("visibility","hidden").inject(this.mainbox);this.controls=new Element("div#mbox-controls");this.caption=new Element("div#mbox-caption",{html:"test"}).setStyle("display","none");this.bottom.adopt(new Element("div.mbox-reset"),this.controls,this.caption,new Element("div.mbox-reset"));this.close=new Element("div#mbox-close");this.next=new Element("div#mbox-next");this.prev=new Element("div#mbox-prev");this.playpause=new Element("div#mbox-playpause");this.count=new Element("div#mbox-count");$$(this.next,this.prev,this.close,this.playpause).setStyles({outline:"none",cursor:"pointer"});this.controls.adopt(new Element("div.mbox-reset"),this.close,this.next,this.prev,this.playpause,new Element("div.mbox-reset"),this.count)},prepare_effects:function(){this.overlay_show_fx=new Fx.Tween(this.overlay,{duration:"short",link:"cancel",property:"opacity",onStart:function(){this.element.setStyles({top:-window.getScroll().y,height:window.getScrollSize().y+window.getScroll().y,display:"block"})},onComplete:function(){this.mainbox_show_fx.start(1)}.bind(this)});this.overlay_hide_fx=new Fx.Tween(this.overlay,{duration:"short",link:"cancel",property:"opacity",onStart:function(){},onComplete:function(){this.overlay.setStyle("display","none");this.fireEvent("disappear")}.bind(this)});this.mainbox_show_fx=new Fx.Tween(this.mainbox,{duration:"short",link:"cancel",property:"opacity",onStart:function(){this.mainbox.setStyle("display","block")}.bind(this),onComplete:function(){this.ready=true}.bind(this)});this.mainbox_hide_fx=new Fx.Tween(this.mainbox,{duration:"short",link:"cancel",property:"opacity",onStart:function(){this.ready=false}.bind(this),onComplete:function(){this.overlay.setStyle("display","none")}.bind(this)});this.mainbox_resize_fx=new Fx.Morph(this.mainbox,{duration:this.options.resizeDuration*1000,transition:this.options.resizeTransition,link:"cancel",onStart:function(){this.filebox.setStyle("opacity",0)}.bind(this),onComplete:function(){this.show_bottom();this.filebox.setStyle("height",this.current_file.height+"px");this.filebox.grab(this.current_file).tween("opacity",1);this.fireEvent("resizeComplete")}.bind(this)});this.filebox.set("tween",{duration:"short",link:"chain"})},prepare_events:function(){$$(this.overlay,this.close).addEvent("click",function(){this.disappear()}.bind(this));this.prev.addEvent("click",function(){this.fireEvent("prevClick")}.bind(this));this.next.addEvent("click",function(){this.fireEvent("nextClick")}.bind(this));this.playpause.addEvent("click",function(){this.fireEvent("playPauseClick")}.bind(this))},show_file:function(c,k,f,b){this.hide_loader();if(c.match&&c.match("img")&&(this.options.autoSize||this.options.centered)){var c=this.get_resized_image(c)}var g={w:c.width.toInt(),h:c.height.toInt()};if(!g.w||!g.h){alert("Milkbox error: you must pass size values if the file is swf or html or a free file (openWithFile)");return}g=Object.map(g,function(l){return l.toInt()});this.caption.innerHTML=(k)?k:"";this.update_count(f,b);var h=this.filebox.getStyle("border-width").toInt()*2+this.filebox.getStyle("padding").toInt()*2;var i=g.w+h;var j=this.caption.getStyles("paddingRight","marginRight");this.caption.setStyle("width",i-j.paddingRight.toInt()-j.marginRight.toInt());$$(this.bottom,this.controls).setStyle("height",Math.max(this.caption.getDimensions().height,this.controls.getComputedSize().totalHeight));var a=this.mainbox.getComputedSize();var e=g.h+h+this.bottom.getComputedSize().totalHeight;var d={w:i,h:e,total_w:i+a.totalWidth-a.width,total_h:e+a.totalHeight-a.height};this.current_file=c;this.resize_to(d)},get_resized_image:function(f){var e;var b;var a;var g={w:f.get("width").toInt(),h:f.get("height").toInt()};var c=window.getSize();var e={w:c.x-60,h:c.y-68-this.options.marginTop*2};var d=Math.max(e.h,e.w);if(d==e.w){b=d/g.w;a="h"}else{b=d/g.h;a="w"}b=(b<=1)?b:1;g=Object.map(g,function(h){return Math.floor(h*b)});b=(e[a]/g[a]<=1)?e[a]/g[a]:1;g=Object.map(g,function(h){return Math.floor(h*b)});if(this.options.autoSizeMaxHeight>0){b=(this.options.autoSizeMaxHeight/g.height<1)?this.options.autoSizeMaxHeight/g.height:1;g=Object.map(g,function(h){return Math.floor(h*b)})}f.set({width:g.w,height:g.h});return f},resize_to:function(a){this.mainbox_resize_fx.start({width:a.w,height:a.h,marginLeft:-(a.total_w/2).round(),marginTop:(this.options.centered)?-(a.total_h/2).round():""})},show_loader:function(){this.mainbox.addClass("mbox-loading")},hide_loader:function(){this.mainbox.removeClass("mbox-loading")},clear_content:function(){this.filebox.empty();this.caption.empty();this.count.empty();$$(this.bottom,this.controls).setStyle("height","")},hide_bottom:function(){this.caption.setStyle("display","none");this.bottom.setStyle("visibility","hidden")},show_bottom:function(){this.caption.setStyle("display","block");this.bottom.setStyle("visibility","visible")},appear:function(){if(!this.options.centered){this.mainbox.setStyle("top",window.getScroll().y+this.options.marginTop)}this.overlay_show_fx.start(this.options.overlayOpacity)},disappear:function(){this.cancel_effects();this.current_file=null;this.ready=false;this.mode="standard";$$(this.prev,this.next,this.playpause,this.count).setStyle("display","none");this.playpause.setStyle("backgroundPosition","0 0");this.count.empty();this.caption.setStyle("display","none").empty();this.bottom.setStyle("visibility","hidden");this.filebox.setStyle("height","").empty();this.mainbox.setStyles({opacity:0,display:"none",width:this.options.initialWidth,height:this.options.initialHeight,marginLeft:-(this.options.initialWidth/2),marginTop:(this.options.centered)?-(this.options.initialHeight/2):"",top:(this.options.centered)?"50%":""});this.filebox.setStyle("opacity",0);this.overlay_hide_fx.start(0)},cancel_effects:function(){[this.mainbox_resize_fx,this.mainbox_hide_fx,this.mainbox_show_fx,this.overlay_hide_fx,this.overlay_show_fx].each(function(a){a.cancel()})},set_mode:function(b){this.mode=b;var c=this.close.getComputedSize().width;var a=this.prev.getComputedSize().width;var d=this.next.getComputedSize().width;var f=this.playpause.getComputedSize().width;var e=this.mainbox.getStyle("border-right-width").toInt();switch(b){case"autoplay":$$(this.playpause,this.close,this.next,this.prev,this.count).setStyle("display","block");this.controls.setStyle("width",c+a+d+f+e);break;case"single":$$(this.playpause,this.next,this.prev,this.count).setStyle("display","none");this.controls.setStyle("width",c+e);break;case"standard":$$(this.close,this.next,this.prev,this.count).setStyle("display","block");this.playpause.setStyle("display","none");this.controls.setStyle("width",c+a+d+e);break;default:return}this.caption.setStyle("margin-right",this.controls.getComputedSize().totalWidth)},set_paused:function(a){this.paused=a;var b=(this.paused)?"0 -66px":"";this.playpause.setStyle("background-position",b)},update_count:function(a,b){this.count.set("text",a+" "+this.options.imageOfText+" "+b)},resetOverlaySize:function(){if(this.overlay.getStyle("opacity")==0){return}var a=window.getSize().y;this.overlay.setStyles({height:a})},clear:function(){this.overlay.destroy();this.mainbox.destroy()}});var MilkboxGallery=new Class({Implements:[Options,Events],options:{name:null,autoplay:null,autoplay_delay:null,remove_title:true},initialize:function(b,a){this.setOptions(a);this.source=b;this.external=false;this.items=null;this.name=this.options.name;this.type=null;this.prepare_gallery();this.prepare_elements()},prepare_gallery:function(){switch(typeOf(this.source)){case"element":if(this.check_extension(this.source.href)){this.items=[this.source]}else{alert("Wrong file extension: "+this.source.href)}break;case"elements":this.items=this.source.filter(function(a){return this.check_extension(a.href)},this);break;case"array":this.items=this.source.filter(function(a){return this.check_extension(a.href)},this);this.external=true;break;default:return}if(this.items.length==0){alert("Warning: gallery "+this.name+" is empty")}},prepare_elements:function(){this.items=this.items.map(function(d){var b=d.href.split("?");var a={};a.element=(typeOf(d)=="element")?d:null;a.href=b[0];a.vars=(b[1])?b[1].parseQueryString():null;a.size=null;a.caption=(a.element)?a.element.get("title"):d.title;if(this.options.remove_title&&a.element){a.element.removeProperty("title")}var c=(a.element)?a.element.get("data-milkbox-size"):d.size;if(c){a.size=Object.map(this.get_item_props(c),function(f,e){return f.toInt()})}return a},this);if(this.items.length==0){return}this.type=(this.items.length==1)?"single":(this.options.autoplay)?"autoplay":"standard"},check_extension:function(a){return a.split("?")[0].test(/\.(gif|jpg|jpeg|png|swf|html)$/i)},get_index_of:function(b){var a=(typeOf(b)=="string")?this.items.indexOf(this.items.filter(function(c){return c.href===b})[0]):this.items.indexOf(b);return this.items.indexOf(b)},get_item:function(a){return this.items[a]},get_item_props:function(a){var c={};var b=a.split(",").each(function(f,e){var d=f.trim().split(":");c[d[0].trim()]=d[1].trim()},this);return c},refresh:function(){this.type=(this.items.length==1)?"single":(this.options.autoplay)?"autoplay":"standard"},clear:function(){this.source=null;this.items=null}});
/*
 * FormCheck
 */
var FormCheck=new Class({Implements:[Options,Events],options:{tipsClass:'fc-tbx',errorClass:'fc-error',fieldErrorClass:'fc-field-error',submit:true,submitAction:false,submitMethod:false,trimValue:false,validateDisabled:false,submitByAjax:false,ajaxResponseDiv:false,ajaxEvalScripts:false,onAjaxRequest:$empty,onAjaxComplete:$empty,onAjaxSuccess:$empty,onAjaxFailure:$empty,onSubmit:$empty,onValidateSuccess:$empty,onValidateFailure:$empty,display:{showErrors:0,titlesInsteadNames:0,errorsLocation:1,indicateErrors:1,indicateErrorsInit:0,keepFocusOnError:0,checkValueIfEmpty:1,addClassErrorToField:0,removeClassErrorOnTipClosure:0,fixPngForIe:1,replaceTipsEffect:1,flashTips:0,closeTipsButton:1,tipsPosition:"right",tipsOffsetX:-45,tipsOffsetY:0,listErrorsAtTop:false,scrollToFirst:true,fadeDuration:300},alerts:{required:"This field is required.",alpha:"This field accepts alphabetic characters only.",alphanum:"This field accepts alphanumeric characters only.",nodigit:"No digits are accepted.",digit:"Please enter a valid integer.",digitltd:"The value must be between %0 and %1",number:"Please enter a valid number.",email:"Please enter a valid email.",image:'This field should only contain image types',phone:"Enter a valid phone.",phone_inter:"Please enter a valid international phone number.",url:"Please enter a valid url.",confirm:"This field is different from %0",differs:"This value must be different of %0",length_str:"The length is incorrect, it must be between %0 and %1",length_fix:"The length is incorrect, it must be exactly %0 characters",lengthmax:"The length is incorrect, it must be at max %0",lengthmin:"The length is incorrect, it must be at least %0",words_min:"This field must concain at least %0 words, currently: %1 words",words_range:"This field must contain %0-%1 words, currently: %2 words",words_max:"This field must contain at max %0 words, currently: %1 words",checkbox:"Please check the box",checkboxes_group:'Please check at least %0 box(es)',radios:"Please select a radio",select:"Please choose a value",select_multiple:"Please choose at least one value"},regexp:{required:/[^.*]/,alpha:/^[a-z ._-]+$/i,alphanum:/^[a-z0-9 ._-]+$/i,digit:/^[-+]?[0-9]+$/,nodigit:/^[^0-9]+$/,number:/^[-+]?\d*\.?\d+$/,email:/^([a-zA-Z0-9_\.\-\+%])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,image:/.(jpg|jpeg|png|gif|bmp)$/i,phone:/^\+{0,1}[0-9 \(\)\.\-]+$/,phone_inter:/^\+{0,1}[0-9 \(\)\.\-]+$/,url:/^(http|https|ftp)\:\/\/[a-z0-9\-\.]+\.[a-z]{2,3}(:[a-z0-9]*)?\/?([a-z0-9\-\._\?\,\'\/\\\+&amp;%\$#\=~])*$/i}},initialize:function(form,options){if(this.form=$(form)){this.form.isValid=true;this.regex=['length'];this.groups={};if(typeof(formcheckLanguage)!='undefined')this.options.alerts=$merge(this.options.alerts,formcheckLanguage);this.setOptions(options);this.form.setProperty('action',this.options.submitAction||this.form.getProperty('action')||'post');this.form.setProperty('method',this.options.submitMethod||this.form.getProperty('method')||'');this.validations=[];this.alreadyIndicated=false;this.firstError=false;$H(this.options.regexp).each(function(el,key){this.regex.push(key)},this);this.form.getElements("*[class*=validate]").each(function(el){this.register(el)},this);this.form.addEvents({"submit":this.onSubmit.bind(this)});if(this.options.display.fixPngForIe)this.fixIeStuffs();document.addEvent('mousewheel',function(){this.isScrolling=false}.bind(this));if(this.options.display.indicateErrorsInit){this.validations.each(function(el){if(!this.manageError(el,'submit'))this.form.isValid=false},this)}}},register:function(el,position){el.validation=[];el.getProperty("class").split(' ').each(function(classX){if(classX.match(/^validate(\[.+\])$/)){var valid=true;var validators=eval(classX.match(/^validate(\[.+\])$/)[1]);for(var i=0;i<validators.length;i++){el.validation.push(validators[i]);if(validators[i].match(/^confirm:/)){var field=validators[i].match(/.+:(.+)$/)[1];if(this.form[field].validation.contains('required'))el.validation.push('required')}if(validators[i].match(/^target:.+/)){el.target=validators[i].match(/^target:(.+)/)[1]}}el.isChild=this.isChildType(el,validators);if(el.isChild&&el.type=='radio'){this.validations.each(function(registeredEl){if(registeredEl.name==el.name)valid=false},this)}if(el.isChild&&el.type=='checkbox'){this.validations.each(function(registeredEl){if(registeredEl.groupID==el.groupID)valid=false},this)}if(position&&position<=this.validations.length){var newValidations=[];this.validations.each(function(valider,i){if(position==i+1&&valid){newValidations.push(el);this.addListener(el)}newValidations.push(valider)},this);this.validations=newValidations}else if(valid){this.validations.push(el);this.addListener(el)}}},this)},dispose:function(element){this.validations.erase(element)},addListener:function(el){el.errors=[];if(el.validation[0]=='submit'){el.addEvent('click',function(e){new Event(e).stop();if(this.onSubmit(e))this.form.submit()}.bind(this));return true}if(!el.isChild){el.addEvent('blur',function(){if(!this.fxRunning&&(el.element||this.options.display.showErrors==1)&&(this.options.display.checkValueIfEmpty||el.value))this.manageError(el,'blur')}.bind(this))}else if(el.isChild&&el.type=='radio'){var radioGroup=this.form.getElements('input[name="'+el.getProperty("name")+'"]');radioGroup.each(function(radio){radio.addEvent('blur',function(){if(!this.fxRunning&&(el.element||this.options.display.showErrors==1)&&(this.options.display.checkValueIfEmpty||el.value))this.manageError(el,'click')}.bind(this))},this)}},manageError:function(el,method){var isValid=this.validate(el);if(method=='testonly')return isValid;if((!isValid&&el.validation.contains('required'))||!isValid||el.value==""){if(this.options.display.listErrorsAtTop&&method=='submit')this.listErrorsAtTop(el);if(this.options.display.indicateErrors==2||this.alreadyIndicated==false||el==this.alreadyIndicated){if(!this.firstError)this.firstError=el;this.alreadyIndicated=el;if(this.options.display.keepFocusOnError&&el==this.firstError){(function(){el.focus()}).delay(10)}this.addError(el);return false}}else if((isValid||(!el.validation.contains('required')&&!el.value))){this.removeError(el);return true}return true},validate:function(el){el.errors=[];el.isOk=true;if(!this.options.validateDisabled&&el.get('disabled'))return true;if(this.options.trimValue&&el.value)el.value=el.value.trim();el.validation.each(function(rule){if(el.isChild){if(!this.validateGroup(el))el.isOk=false}else{var ruleArgs=[];if(rule.match(/target:.+/))return;var ruleMethod=rule;if(rule.match(/^.+\[/)){ruleMethod=rule.split('[')[0];ruleArgs=eval(rule.match(/^.+(\[.+\])$/)[1].replace(/([A-Z0-9\._-]+)/i,"'$1'"))}if(this.regex.contains(ruleMethod)&&el.get('tag')!="select"){if(this.validateRegex(el,ruleMethod,ruleArgs)==false){el.isOk=false}}if(rule.match(/confirm:.+/)){ruleArgs=[rule.match(/.+:(.+)$/)[1]];if(this.validateConfirm(el,ruleArgs)==false){el.isOk=false}}if(rule.match(/differs:.+/)){ruleArgs=[rule.match(/.+:(.+)$/)[1]];if(this.validateDiffers(el,ruleArgs)==false){el.isOk=false}}if(ruleMethod=='words'){if(this.validateWords(el,ruleArgs)==false){el.isOk=false}}if(ruleMethod=='required'&&(el.get('tag')=="select"||el.type=="checkbox")){if(this.simpleValidate(el)==false){el.isOk=false}}if(rule.match(/%[A-Z0-9\._-]+$/i)||(el.isOk&&rule.match(/~[A-Z0-9\._-]+$/i))){if(eval(rule.slice(1)+'(el)')==false){el.isOk=false}}}},this);return(el.isOk)?true:false},simpleValidate:function(el){if(el.get('tag')=='select'){if(!el.multiple){if(el.selectedIndex<=0){el.errors.push(this.options.alerts.select);return false}}else{var selected=false;el.getChildren('option').each(function(el){if(el.selected)selected=true});if(!selected){el.errors.push(this.options.alerts.select_multiple);return false}}}else if(el.type=="checkbox"&&el.checked==false){el.errors.push(this.options.alerts.checkbox);return false}return true},validateRegex:function(el,ruleMethod,ruleArgs){var msg="";if(ruleMethod=='length'&&ruleArgs[1]){if(ruleArgs[1]==-1){this.options.regexp.length=new RegExp("^[\\s\\S]{"+ruleArgs[0]+",}$");msg=this.options.alerts.lengthmin.replace("%0",ruleArgs[0])}else if(ruleArgs[0]==ruleArgs[1]){this.options.regexp.length=new RegExp("^[\\s\\S]{"+ruleArgs[0]+"}$");msg=this.options.alerts.length_fix.replace("%0",ruleArgs[0])}else{this.options.regexp.length=new RegExp("^[\\s\\S]{"+ruleArgs[0]+","+ruleArgs[1]+"}$");msg=this.options.alerts.length_str.replace("%0",ruleArgs[0]).replace("%1",ruleArgs[1])}}else if(ruleArgs[0]&&ruleMethod=='length'){this.options.regexp.length=new RegExp("^.{0,"+ruleArgs[0]+"}$");msg=this.options.alerts.lengthmax.replace("%0",ruleArgs[0])}else{msg=this.options.alerts[ruleMethod]}if((ruleMethod=='digit'||ruleMethod=='number')&&ruleArgs[1]){var valueres,regres=true;if(!this.options.regexp[ruleMethod].test(el.value)){el.errors.push(this.options.alerts[ruleMethod]);regres=false}if(ruleArgs[1]==-1){valueres=(el.value.toFloat()>=ruleArgs[0].toFloat());msg=this.options.alerts.digitmin.replace("%0",ruleArgs[0])}else{valueres=(el.value.toFloat()>=ruleArgs[0].toFloat()&&el.value.toFloat()<=ruleArgs[1].toFloat());msg=this.options.alerts.digitltd.replace("%0",ruleArgs[0]).replace("%1",ruleArgs[1])}if(regres==false||valueres==false){el.errors.push(msg);return false}}else if(this.options.regexp[ruleMethod].test(el.value)==false){el.errors.push(msg);return false}return true},validateConfirm:function(el,ruleArgs){var confirm=ruleArgs[0];if(el.value!=this.form[confirm].value){var msg=(this.options.display.titlesInsteadNames)?this.options.alerts.confirm.replace("%0",this.form[confirm].getProperty('title')):this.options.alerts.confirm.replace("%0",confirm);el.errors.push(msg);return false}return true},validateDiffers:function(el,ruleArgs){var differs=ruleArgs[0];if(el.value==this.form[differs].value){var msg=(this.options.display.titlesInsteadNames)?this.options.alerts.differs.replace("%0",this.form[differs].getProperty('title')):this.options.alerts.differs.replace("%0",differs);el.errors.push(msg);return false}return true},validateWords:function(el,ruleArgs){var min=ruleArgs[0];var max=ruleArgs[1];var words=el.value.replace(/[ \t\v\n\r\f\p]/m,' ').replace(/[,.;:]/g,' ').clean().split(' ');if(max==-1){if(words.length<min){el.errors.push(this.options.alerts.words_min.replace("%0",min).replace("%1",words.length));return false}}else{if(min>0){if(words.length<min||words.length>max){el.errors.push(this.options.alerts.words_range.replace("%0",min).replace("%1",max).replace("%2",words.length));return false}}else{if(words.length>max){el.errors.push(this.options.alerts.words_max.replace("%0",max).replace("%1",words.length));return false}}}return true},isFormValid:function(){this.form.isValid=true;this.validations.each(function(el){var validation=this.manageError(el,'testonly');if(!validation)this.form.isValid=false},this);return this.form.isValid},isChildType:function(el,validators){var validator;if($defined(el.type)&&el.type=='radio'){return true}else if(validator=validators.join().match(/group(\[.*\])/)){var group=eval(validator[1]);this.groups[group[0]]=this.groups[group[0]]||[];this.groups[group[0]][0]=this.groups[group[0]][0]||[];this.groups[group[0]][1]=group[1]||this.groups[group[0]][1]||1;this.groups[group[0]][0].push(el);el.groupID=group[0];return true}return false},validateGroup:function(el){el.errors=[];if(el.type=='radio'){var nlButtonGroup=this.form[el.getProperty("name")];el.group=nlButtonGroup;var cbCheckeds=false;for(var i=0;i<nlButtonGroup.length;i++){if(nlButtonGroup[i].checked){cbCheckeds=true}}if(cbCheckeds==false){el.errors.push(this.options.alerts.radios);return false}else{return true}}else if(el.type=='checkbox'){var checked=0;this.groups[el.groupID][0].each(function(groupEl){if(groupEl.checked)checked++});if(checked>=this.groups[el.groupID][1]){return true}else{(this.groups[el.groupID][0].length>1)?el.errors.push(this.options.alerts.checkboxes_group.replace('%0',this.groups[el.groupID][1])):el.errors.push(this.options.alerts.checkbox);return false}}else{return false}},listErrorsAtTop:function(obj){if(!this.form.element){this.form.element=new Element('div',{'id':'errorlist','class':this.options.errorClass}).injectTop(this.form)}if($type(obj)=='collection'){new Element('p').set('html',"<span>"+obj[0].name+" : </span>"+obj[0].errors[0]).injectInside(this.form.element)}else{if((obj.validation.contains('required')&&obj.errors.length>0)||(obj.errors.length>0&&obj.value&&obj.validation.contains('required')==false)){obj.errors.each(function(error){new Element('p').set('html',"<span>"+obj.name+" : </span>"+error).injectInside(this.form.element)},this)}}window.fireEvent('resize')},addError:function(obj){var coord=obj.target?$(obj.target).getCoordinates():obj.getCoordinates();if(!obj.element&&this.options.display.indicateErrors!=0){if(this.options.display.errorsLocation==1){var pos=(this.options.display.tipsPosition=='left')?coord.left:coord.right;var options={'opacity':0,'position':'absolute','float':'left','left':pos+this.options.display.tipsOffsetX};obj.element=new Element('div',{'class':this.options.tipsClass,'styles':options}).injectInside(document.body);this.addPositionEvent(obj)}else if(this.options.display.errorsLocation==2){obj.element=new Element('div',{'class':this.options.errorClass,'styles':{'opacity':0}}).injectBefore(obj)}else if(this.options.display.errorsLocation==3){obj.element=new Element('div',{'class':this.options.errorClass,'styles':{'opacity':0}});if($type(obj.group)=='object'||$type(obj.group)=='collection')obj.element.injectAfter(obj.group[obj.group.length-1]);else obj.element.injectAfter(obj)}}if(obj.element&&obj.element!=true){obj.element.empty();if(this.options.display.errorsLocation==1){var errors=[];obj.errors.each(function(error){errors.push(new Element('p').set('html',error))});var tips=this.makeTips(errors).injectInside(obj.element);if(this.options.display.closeTipsButton){tips.getElements('a.close').addEvent('mouseup',function(){this.removeError(obj,'tip')}.bind(this))}obj.element.setStyle('top',coord.top-tips.getCoordinates().height+this.options.display.tipsOffsetY)}else{obj.errors.each(function(error){new Element('p').set('html',error).injectInside(obj.element)})}if(!this.options.display.fadeDuration||Browser.Engine.trident&&Browser.Engine.version==5&&this.options.display.errorsLocation<2){obj.element.setStyle('opacity',1)}else{obj.fx=new Fx.Tween(obj.element,{'duration':this.options.display.fadeDuration,'ignore':true,'onStart':function(){this.fxRunning=true}.bind(this),'onComplete':function(){this.fxRunning=false;if(obj.element&&obj.element.getStyle('opacity').toInt()==0){obj.element.destroy();obj.element=false}}.bind(this)});if(obj.element.getStyle('opacity').toInt()!=1)obj.fx.start('opacity',1)}}if(this.options.display.addClassErrorToField&&!obj.isChild){obj.addClass(this.options.fieldErrorClass);obj.element=obj.element||true}},addPositionEvent:function(obj){if(this.options.display.replaceTipsEffect){obj.event=function(){var coord=obj.target?$(obj.target).getCoordinates():obj.getCoordinates();new Fx.Morph(obj.element,{'duration':this.options.display.fadeDuration}).start({'left':[obj.element.getStyle('left'),coord.right+this.options.display.tipsOffsetX],'top':[obj.element.getStyle('top'),coord.top-obj.element.getCoordinates().height+this.options.display.tipsOffsetY]})}.bind(this)}else{obj.event=function(){var coord=obj.target?$(obj.target).getCoordinates():obj.getCoordinates();obj.element.setStyles({'left':coord.right+this.options.display.tipsOffsetX,'top':coord.top-obj.element.getCoordinates().height+this.options.display.tipsOffsetY})}.bind(this)}window.addEvent('resize',obj.event)},removeError:function(obj,method){if((this.options.display.addClassErrorToField&&!obj.isChild&&this.options.display.removeClassErrorOnTipClosure)||(this.options.display.addClassErrorToField&&!obj.isChild&&!this.options.display.removeClassErrorOnTipClosure&&method!='tip'))obj.removeClass(this.options.fieldErrorClass);if(!obj.element)return;this.alreadyIndicated=false;obj.errors=[];obj.isOK=true;window.removeEvent('resize',obj.event);if(this.options.display.errorsLocation>=2&&obj.element){new Fx.Tween(obj.element,{'duration':this.options.display.fadeDuration}).start('height',0)}if(!this.options.display.fadeDuration||Browser.Engine.trident&&Browser.Engine.version==5&&this.options.display.errorsLocation==1&&obj.element){this.fxRunning=true;obj.element.destroy();obj.element=false;(function(){this.fxRunning=false}.bind(this)).delay(200)}else if(obj.element&&obj.element!=true){obj.fx.start('opacity',0)}},focusOnError:function(obj){if(this.options.display.scrollToFirst&&!this.alreadyFocused&&!this.isScrolling){var dest;if(!this.options.display.indicateErrors||!this.options.display.errorsLocation){dest=obj.getCoordinates().top-30}else{switch(this.options.display.errorsLocation){case 1:dest=obj.element.getCoordinates().top;break;case 2:dest=obj.element.getCoordinates().top-30;break;case 3:dest=obj.getCoordinates().top-30;break}this.isScrolling=true}if(window.getScroll().y!=dest){new Fx.Scroll(window,{onComplete:function(){this.isScrolling=false;if(obj.getProperty('type')!='hidden')obj.focus()}.bind(this)}).start(0,dest)}else{this.isScrolling=false;obj.focus()}this.alreadyFocused=true}},fixIeStuffs:function(){if(Browser.Engine.trident4){var rpng=new RegExp('url\\(([\.a-zA-Z0-9_/:-]+\.png)\\)');var search=new RegExp('(.+)formcheck\.css');for(var i=0;i<document.styleSheets.length;i++){if(document.styleSheets[i].href.match(/formcheck\.css$/)){var root=document.styleSheets[i].href.replace(search,'$1');var count=document.styleSheets[i].rules.length;for(var j=0;j<count;j++){var cssstyle=document.styleSheets[i].rules[j].style;var bgimage=root+cssstyle.backgroundImage.replace(rpng,'$1');if(bgimage&&bgimage.match(/\.png/i)){var scale=(cssstyle.backgroundRepeat=='no-repeat')?'crop':'scale';cssstyle.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=\''+bgimage+'\', sizingMethod=\''+scale+'\')';cssstyle.backgroundImage="none"}}}}}},makeTips:function(txt){var table=new Element('table');table.cellPadding='0';table.cellSpacing='0';table.border='0';var tbody=new Element('tbody').injectInside(table);var tr1=new Element('tr').injectInside(tbody);new Element('td',{'class':'tl'}).injectInside(tr1);new Element('td',{'class':'t'}).injectInside(tr1);new Element('td',{'class':'tr'}).injectInside(tr1);var tr2=new Element('tr').injectInside(tbody);new Element('td',{'class':'l'}).injectInside(tr2);var cont=new Element('td',{'class':'c'}).injectInside(tr2);var errors=new Element('div',{'class':'err'}).injectInside(cont);txt.each(function(error){error.injectInside(errors)});if(this.options.display.closeTipsButton)new Element('a',{'class':'close'}).injectInside(cont);new Element('td',{'class':'r'}).injectInside(tr2);var tr3=new Element('tr').injectInside(tbody);new Element('td',{'class':'bl'}).injectInside(tr3);new Element('td',{'class':'b'}).injectInside(tr3);new Element('td',{'class':'br'}).injectInside(tr3);return table},reinitialize:function(forced){this.validations.each(function(el){if(el.element){el.errors=[];el.isOK=true;if(this.options.display.flashTips==1||forced=='forced'){el.element.destroy();el.element=false}}},this);if(this.form.element)this.form.element.empty();this.alreadyFocused=false;this.firstError=false;this.elementToRemove=this.alreadyIndicated;this.alreadyIndicated=false;this.form.isValid=true},submitByAjax:function(){this.fireEvent('ajaxRequest');new Request({url:this.form.action,method:this.form.method,data:this.form.toQueryString(),evalScripts:this.options.ajaxEvalScripts,onFailure:function(instance){this.fireEvent('ajaxFailure',instance)}.bind(this),onComplete:function(instance){this.fireEvent('ajaxComplete',instance)}.bind(this),onSuccess:function(result){this.fireEvent('ajaxSuccess',result);if(this.options.ajaxResponseDiv)$(this.options.ajaxResponseDiv).set('html',result)}.bind(this)}).send();return false},onSubmit:function(event){this.reinitialize();this.fireEvent('onSubmit');this.validations.each(function(el){var validation=this.manageError(el,'submit');if(!validation)this.form.isValid=false},this);if(this.form.isValid){this.fireEvent('validateSuccess');return(this.options.submitByAjax)?this.submitByAjax():this.options.submit}else{if(this.elementToRemove&&this.elementToRemove!=this.firstError&&this.options.display.indicateErrors==1){this.removeError(this.elementToRemove)}this.focusOnError(this.firstError);this.fireEvent('validateFailure');return false}}});

var MIT_Common = new Class( {
    /** @lends WC_Common# */
    
    Implements : [ Options ],

    options : {
    },
    
    /**
     * Initialize
     * 
     * @constructs
     * @param options
     * @return {Null}
     */
    initialize : function(options) {
        this.setOptions(options);
    },

    /**
     * Get URL Parameter
     * 
     * Returns the URL parameter.
     * 
     * @param param
     * @returns {String}
     */
    get_url_param : function(param) {
        var string_return = "";
        var string_href = window.location.href;
        if (string_href.indexOf("?") > -1) {
            var string_query = string_href.substr(string_href.indexOf("?")).toLowerCase();
            var query = string_query.split("&");
            for ( var i = 0; i < query.length; i++) {
                if (query[i].indexOf(param.toLowerCase() + "=") > -1) {
                    var p = query[i].split("=");
                    if (p[1]) {
                        string_return = p[1];
                    }
                    break;
                }
            }
        }
        return unescape(string_return);
    },
    
    /**
     * Set product box link.
     * 
     * @param el
     * @param url
     */
    set_product_link : function(el, url, blank) {
        var blank = (blank == true) ? true : false;
        if ($(el)) {
            $(el).addEvent('click', function() {
                if (blank == true) {
                    window.open(url);
                }
                else {
                    window.location = url;
                }
            });
        }
        else {
            return;
        }
    }
    
});

window.addEvent('domready', function() {
    /* webcentral */
    var common = new MIT_Common();
    common.set_product_link('product-14-day-trial', 'https://signup.melbourneitwebsites.com/create', true);
    common.set_product_link('product-bizbooster', '/cc/website-design/order?product_name=BizBooster%20Web%20Design');
    common.set_product_link('product-small-business', '/cc/website-design/order?product_name=Small%20Business%20Web%20Design');
    common.set_product_link('product-ecommerce', '/cc/website-design/order?product_name=eCommerce%20Web%20Design');
    
    /* milkbox */
    var galleries=[{name:'gallery-1',autoplay:false,files:[{href:'/assets/web-design/images/examples/large/1.jpg',title:'<strong>Asia Spa Retreat</strong> - Home'},{href:'/assets/web-design/images/examples/large/2.jpg',title:'<strong>Asia Spa Retreat</strong> - Tour Packages'}]},{name:'gallery-2',autoplay:false,files:[{href:'/assets/web-design/images/examples/large/3.jpg',title:'<strong>CEC Engineers</strong> - Home'},{href:'/assets/web-design/images/examples/large/4.jpg',title:'<strong>CEC Engineers</strong> - Services'},{href:'/assets/web-design/images/examples/large/5.jpg',title:'<strong>CEC Engineers</strong> - About Us'}]},{name:'gallery-3',autoplay:false,files:[{href:'/assets/web-design/images/examples/large/9.jpg',title:'<strong>Celtic Ceilings and Partitions</strong> - Home'},{href:'/assets/web-design/images/examples/large/6.jpg',title:'<strong>Celtic Ceilings and Partitions</strong> - Services'},{href:'/assets/web-design/images/examples/large/7.jpg',title:'<strong>Celtic Ceilings and Partitions</strong> - Services - Office Fitouts'},{href:'/assets/web-design/images/examples/large/8.jpg',title:'<strong>Celtic Ceilings and Partitions</strong> - Contact'}]},{name:'gallery-4',autoplay:false,files:[{href:'/assets/web-design/images/examples/large/10.jpg',title:'<strong>Fico Ristorante</strong> - Home'},{href:'/assets/web-design/images/examples/large/11.jpg',title:'<strong>Fico Ristorante</strong> - Contact'},{href:'/assets/web-design/images/examples/large/12.jpg',title:'<strong>Fico Ristorante</strong> - Menu'}]},{name:'gallery-10',autoplay:false,files:[{href:'/assets/web-design/images/examples/large/30.jpg',title:'<strong>The Bowls Tour Company</strong> - Home'},{href:'/assets/web-design/images/examples/large/28.jpg',title:'<strong>The Bowls Tour Company</strong> - Participation Tours'},{href:'/assets/web-design/images/examples/large/29.jpg',title:'<strong>The Bowls Tour Company</strong> - Spectator Tours'}]},{name:'gallery-11',autoplay:false,files:[{href:'/assets/web-design/images/examples/large/32.jpg',title:'<strong>Control Logic</strong> - Home'},{href:'/assets/web-design/images/examples/large/31.jpg',title:'<strong>Control Logic</strong> - Application'},{href:'/assets/web-design/images/examples/large/34.jpg',title:'<strong>Control Logic</strong> - Products'}]},{name:'gallery-12',autoplay:false,files:[{href:'/assets/web-design/images/examples/large/38.jpg',title:'<strong>Debbie\'s All Care Pet Services</strong> - Home'},{href:'/assets/web-design/images/examples/large/36.jpg',title:'<strong>Debbie\'s All Care Pet Services</strong> - Puppy Pre-school'},{href:'/assets/web-design/images/examples/large/37.jpg',title:'<strong>Debbie\'s All Care Pet Services</strong> - Services'}]},{name:'gallery-13',autoplay:false,files:[{href:'/assets/web-design/images/examples/large/41.jpg',title:'<strong>EMP Industrial</strong> - Home'},{href:'/assets/web-design/images/examples/large/39.jpg',title:'<strong>EMP Industrial</strong> - Products - Blankets'},{href:'/assets/web-design/images/examples/large/40.jpg',title:'<strong>EMP Industrial</strong> - Products - Runners (Floor and Stairs)'}]}];  
    var Lightbox = new Milkbox({centered: true,overlayOpacity: 0.8});
    Lightbox.addGalleries(galleries);

    /* mooflow (coverflow) */
    var Showcase = {
        start: function(){
            /* mooflow instance */
            var mf = new MooFlow($('showcase'), {
                startIndex: Math.floor($$('#showcase img').length / 2),
                heightRatio: 0.25,
                factor: 120,
                offsetY: -132,
                bgColor: 'transparent',
                onClickView: function(obj){
                    var gallery = obj.href;
                    var gallery = gallery.replace(/#/g, '');
                    Lightbox.open(gallery, 0);
                }
            });
            /* back button */
            $$('.mbox-button#back').addEvent('click',function() {
                mf.prev();
            });
            /* back button */
            $$('.mbox-button#next').addEvent('click',function() {
                mf.next();
            });
        }
    };
    var showcaseStart = new Showcase.start();
    
    /* formcheck */
    var formValidation = new FormCheck('eoiform', {
        display : {
            scrollToFirst   :   false,
            showErrors      :   1,
            indicateErrors  :   2,
            errorsLocation  :   3,
            addClassErrorToField: 1
        },
        alerts : {
            words_min       :   "Please enter both you first and last name.",
            words_range     :   "Please enter both you first and last name.",
            words_max       :   "Please enter both you first and last name.",
            email           :   "Enter a valid email."
        }
    });
    
});
