/*
    Ext Image FX v. 0.5.9
    -----------------------
    1000Grad Digital GmbH
    -----------------------
    last Update: 14.09.2011
*/

Ext.ns("Ext.ux");Ext.ux.imageFX=Ext.extend(Ext.util.Observable,{constructor:function(b,a){a=a||{};Ext.apply(this,a);Ext.ux.imageFX.superclass.constructor.call(this,a);this.error=new Array;this.sleep=false;this.start=false;this.animator=null;this.oldPosi=0;this.hash=0;this.lasthash=null;this.margin=0;this.jump=0;this.cntbox=Ext.get(b);if(this.cntbox==null){this.error[this.error.length]="cntbox is undefined or not exists!"}this.getConfig();this.setup();this.setEvents();this.setNavigation();this.setAutorun(this);this.checkError()},checkError:function(){if(this.error.length>0){for(var a=0;a<this.error.length;a++){if(console!=undefined){console.log("ERROR: "+this.error[a])}}}},getConfig:function(){this.config=new Array;this.config.type=((this.type!=undefined)?this.type:"slider");this.config.useway=((this.useway!=undefined)?this.useway:"right");this.config.shownavi=((this.shownavi!=undefined)?this.shownavi:true);this.config.allowautorun=((this.allowautorun!=undefined)?this.allowautorun:true);this.config.waitautorun=((this.waitautorun!=undefined)?this.waitautorun:"1500");this.config.speed=((this.speed!=undefined)?this.speed:0.4);this.config.carousel=((this.carousel!=undefined)?this.carousel:true);this.config.imgclick=((this.imgclick!=undefined)?this.imgclick:true);this.config.hoversleep=((this.hoversleep!=undefined)?this.hoversleep:false);this.config.effect=((this.effect!=undefined)?this.effect:new Array("easeOut","easeIn"))},getContentData:function(){if(this.error.length>0){return false}this.containerId=this.cntbox.child("ul").id;this.container=Ext.get(this.containerId);this.childs=this.container.select("li");if(this.childs.elements.length==0){this.error[this.error.length]="container has no child elements!"}this.childsCount=this.childs.getCount();this.childsData=new Array;this.childsDataCount=0;for(var a=0;a<this.childs.elements.length;a++){if(this.childs.elements[a].className=="gen"){continue}this.childsData[this.childsDataCount]=a;this.childsDataCount++}this.contWidth=this.container.getWidth();this.contHeight=this.container.getHeight();this.contMaxWidth=(this.childsCount*this.contWidth);this.contMaxHeight=(this.childsCount*this.contHeight);this.hash=parseInt(self.location.hash.split("#").join(""));if(this.childsData[this.hash-1]==undefined){this.hash=1}this.posi=this.childsData[0];if(this.hash!=1){this.posi=this.hash}},generateElements:function(){if(this.error.length>0){return false}if(this.config.type!="slider"||this.config.carousel==false){return false}if(this.isWayForward()==1){Ext.DomHelper.append(this.container,{tag:"li",cls:"gen",id:0,html:this.childs.elements[0].innerHTML})}else{if(this.isWayForward()==2){Ext.DomHelper.insertFirst(this.container,{tag:"li",cls:"gen",id:(this.childsCount-1),html:this.childs.elements[this.childsCount-1].innerHTML})}else{this.error[this.error.length]="config: useway value is unknown!"}}this.shadowboxReload()},getAnimType:function(a){if(a==undefined){return false}if(parseFloat(a)>0){if(parseFloat(a)==this.lasthash){return false}this.lasthash=parseFloat(a)}else{this.lasthash=null}switch(this.type){case"slider":this.setAnimSlider(a);break;case"fader":this.setAnimFader(a);break}},genWay:function(a){this.jump=0;this.oldPosi=this.posi;if(this.isWayForward(a)==1){if(this.posi<(this.childsCount-1)){this.posi++}else{if(this.config.carousel==false){this.posi=0}else{this.posi=0;this.jump=1}}}else{if(this.isWayForward(a)==2){if(this.posi>0){this.posi--}else{if(this.config.carousel==false){this.posi=(this.childsCount-1)}else{this.posi=(this.childsCount-1);this.jump=1}}}else{this.posi=((this.isWayForward()==2)?a:a-1);this.jump=0}}this.margin=(this.posi*((this.isWayHorizon())?this.contWidth:this.contHeight)*-1);if(this.naviChilds!=undefined){navOldPosi=this.genNaviPosi(this.oldPosi);navPosi=this.genNaviPosi(this.posi);if(this.navi.children[navOldPosi]!=undefined){this.navi.children[navOldPosi].className=""}if(this.navi.children[navPosi]!=undefined){this.navi.children[navPosi].className="active"}}},setup:function(){if(this.error.length>0){return false}this.getContentData();this.generateElements();this.getContentData();this.setAnimType()},setAnimType:function(){if(this.error.length>0){return false}switch(this.type){default:this.error[this.error.length]="config: type value is unknown!";break;case"slider":if(this.isWayHorizon()){this.container.setStyle({"float":"left",width:this.contMaxWidth+"px"})}else{this.container.setStyle({"float":"left",height:this.contMaxHeight+"px"})}this.childs.each(function(a){a.setStyle({"float":"left"})},this);break;case"fader":this.childs.each(function(a){a.setStyle({position:"absolute",opacity:0,"z-index":0})},this);this.childs.item(0).setStyle({opacity:1,"z-index":1});break}if(this.posi>0){this.start=true;this.getAnimType(this.posi)}},setAnimSlider:function(a){if(this.error.length>0){return false}this.genWay(a);if(this.jump==0&&this.start==false){if(this.isWayHorizon()){this.container.animate({marginLeft:{to:this.margin}},this.config.speed,null,this.config.effect[0],"motion")}else{this.container.animate({marginTop:{to:this.margin}},this.config.speed,null,this.config.effect[0],"motion")}}else{if(this.isWayHorizon()){this.container.setStyle({"margin-left":this.margin+"px"})}else{this.container.setStyle({"margin-top":this.margin+"px"})}if(this.start==true){this.start=false}if(this.jump==1&&this.start==false){this.setAnimSlider(a)}}},setAnimFader:function(a){if(this.error.length>0){return false}this.genWay(a);if(this.start==false){if(this.childs.item(this.posi)!=null){this.childs.item(this.posi).animate({opacity:{from:0,to:1}},this.config.speed,null,this.config.effect[0],"run");this.childs.item(this.posi).setStyle({"z-index":1})}if(this.childs.item(this.oldPosi)!=null){this.childs.item(this.oldPosi).animate({opacity:{from:1,to:0}},this.config.speed,null,this.config.effect[1],"run");this.childs.item(this.oldPosi).setStyle({"z-index":0})}}else{if(this.childs.item(this.posi)!=null){this.childs.item(this.posi).setStyle({opacity:1,"z-index":1})}if(this.childs.item(this.oldPosi)!=null){this.childs.item(this.oldPosi).setStyle({opacity:0,"z-index":0})}this.start=false}},setNavigation:function(){if(this.error.length>0){return false}if(this.config.shownavi==false){return false}locUrl=document.location.href.split("#");this.naviChilds=new Array;for(var a=0;a<this.childsDataCount;a++){this.naviChilds[a]={tag:"a",cls:((a==(this.hash-1))?"active":""),href:locUrl[0]+"#"+(a+1),html:"<span>"+(a+1)+"</span>"}}this.navi=Ext.DomHelper.append(this.cntbox,{tag:"div",cls:"imgNavi",style:"clear: both; width: "+(13*this.childsDataCount)+"px",children:[this.naviChilds]});Ext.select("#"+this.cntbox.id+" ."+this.navi.className+" > a").each(function(b){this.setEventNaviClick(b)},this)},setEvents:function(){if(this.error.length>0){return false}this.childs.each(function(a){if(this.config.imgclick==true||this.config.hoversleep==true){a.setStyle({cursor:"pointer"})}this.setEventImageClick(a);this.setEventImageMouseOver(a);this.setEventImageMouseOut(a)},this)},setEventImageClick:function(a){if(this.config.imgclick==false){return false}a.addListener("click",function(b,c){this.killAutorun();this.getAnimType(this.config.useway)},this)},setEventNaviClick:function(a){if(this.config.shownavi==false){return false}a.addListener("click",function(b,c){this.hash=parseInt(c.hash.split("#").join(""));this.killAutorun(1000);this.getAnimType(this.hash)},this)},setEventImageMouseOver:function(a){if(this.config.hoversleep==false){return false}a.addListener("mouseover",function(b,c){this.sleep=true;this.killAutorun()},this)},setEventImageMouseOut:function(a){if(this.config.hoversleep==false){return false}a.addListener("mouseout",function(b,c){this.sleep=false;this.setAutorun(this)},this)},setAutorun:function(a){if(this.error.length>0){return false}if(this.config.allowautorun==false){return false}this.autorun=window.setInterval(function(){a.getAnimType(a.config.useway)},(this.config.waitautorun+this.config.speed))},killAutorun:function(a){if(this.error.length>0){return false}if(this.config.allowautorun==false){return false}if(a==undefined||a==""){a=0}clearInterval(this.autorun);if(this.sleep==false){this.setAutorun(this)}},genNaviPosi:function(a){genId=((this.childs.elements[a]!=undefined)?parseInt(this.childs.elements[a].id):"none");navPosi=(!isNaN(genId)?genId:((this.isWayForward()==2&&this.config.type=="slider")?(a-1):a));return navPosi},isWayHorizon:function(){switch(this.config.useway){default:case"right":case"left":return true;break;case"top":case"bottom":return false;break}},isWayForward:function(a){if(a==null){a=this.config.useway}switch(a){case"left":case"top":return 1;break;case"right":case"bottom":return 2;break;default:return false;break}},shadowboxReload:function(){if(this.error.length>0){return false}if(typeof Shadowbox!=="undefined"){this.shadowboxFx=Shadowbox.select();if(this.shadowboxFx!=null){for(var a=0;a<this.shadowboxFx.length;a++){Shadowbox.addCache(this.shadowboxFx[a],Shadowbox.options)}}}}});
