/**
 * horizon.slim.0.2.js
 * Javascript Class - where the magic happens ;)
 *
 * @package      "Horizon Slim"
 * @version      0.2.6_RC3
 *
 * @description  A horizontal Accordion Slider for various purposes
 *
 * @author       Jan Jost <support@negetics.de>
 * @link         http://www.negetics.de
 * @linkProject  http://extensions.negetics.de
 * @copyright    Copyright (C) 2010 Jan Jost! All Rights Reserved
 * @license      GNU/GPLv3 see GPL.txt
 */
var descFader=new Array();
function horizon(){
  var x,v,r,C,E,D,k,u,c,f,F,b,y,q,j,h,B,s,i,e,d,o,a,A,z,n,g,p;
  this.build=function(R,L,U,K,W,G,X,M,ac,ab,ae,H,S,ad,I,t,w,N,l,P,T){
    x=document.getElementById(R);
    v=L;r=U;C=K;W=W;E=G;
    x.clickEffect=X;
    x.even=M;u=ac;f=ab;F=ae;
    x.fC=H;
    b=x.getElementsByTagName("li");
    y=b.length;q=x.offsetWidth;
    j=Math.floor((q-v)/(y-1));
    z=(q-(j*(y-1))-v);n=Math.floor(q/y);
    g=q-(Math.floor(q/y)*y);x.aSD=P;
    x.dDFO=T;l=l;x.dS=w;x.o=false;
    x.active=false;x.list_width=q/y;
    x.dD=S;x.dDH=ad;x.lastOver=false;
    x.lastOut=false;x.firstActive=x.active;x.aPOn=I;
    x.aPPause=false;x.clickStopsaP=t;x.aPSpeed=N;
    
    if(W!=null){
      x.a=b[W-1];
    }
    if(navigator.appName.indexOf("Microsoft")!=-1){
      x.ie=true;
    }else{
      x.ie=false;
    }
    if(navigator.userAgent.indexOf("Mozilla")!=-1){
      x.mozilla=true;
    }
    else{
      x.mozilla=false;
    }
    if(navigator.userAgent.indexOf("Firefox")==-1){
      r=parseInt(U*2);C=parseInt(K/2);
    }
    x.h=this;
    for(var V=0;V<y;V++){
      var Q=b[V];Q.style.width=x.list_width+"px";
      var af=Q.getElementsByTagName("div");
      var aa=af[0].getElementsByTagName("div");
      
      if(x.slideMin){
        af[0].style.width=x.slideO+"px";
      }
      
      var Y;Q.desc=false;
      
      for(var J=0;J<aa.length;J++){
        if(aa[J].className=="neHSf"){
          Y=aa[J];Q.fader=aa[J];
        }
      
      if(aa[J].className=="neHSb"){
        Q.desc=aa[J];Q.desc.m=x;
        if(!x.aSD){
          if(x.dD==0){
            Q.desc.style.top=(Q.desc.parentNode.offsetHeight)+"px";
          }
          if(x.dD==1){
            Q.desc.style.top=(0-Q.desc.offsetHeight)+"px";
          }
          if(x.dDH==0){
            Q.desc.style.left=(Q.desc.parentNode.offsetWidth)+"px";
          }
          if(x.dDH==1){
            Q.desc.style.left="-"+(Q.desc.offsetWidth)+"px";
          }
        }
        else{
          if(x.dD==0){
            Q.desc.style.top=(Q.desc.parentNode.offsetHeight-Q.desc.offsetHeight)+"px"
          }
          if(x.dD==1){
            Q.desc.style.top=(0)+"px";
          }
          if(x.dDH==0){
            Q.desc.style.left=(Q.desc.parentNode.offsetWidth-Q.desc.offsetWidth)+"px"
          }
          if(x.dDH==1){
            Q.desc.style.left="-"+(0)+"px";
          }
        }
        
        var O=Q.desc.getElementsByTagName("div");
        Q.desc.beBa=O[0];Q.desc.beTe=O[1];
        x.h.sO(Q.desc.beBa,l);Q.desc.beBa.style.width=Q.desc.offsetWidth+"px";
        Q.desc.beBa.style.height=Q.desc.offsetHeight+"px";
        Q.desc.s=Q;Q.desc.beBa.s=Q;
        
        this.setClick(Q.desc.beBa);
      }
      
      if(aa[J].className=="neHSiO"){
        Q.fadeInImg=aa[J];x.h.sO(Q.fadeInImg,0);Q.fadeInImg.s=Q;
        this.setClick(Q.fadeInImg);
      }
      if(aa[J].className=="neHSi"){
        Q.img=aa[J];Q.img.s=Q;
        this.setClick(Q.img);
      }
      
      var m=aa[J].parentNode.getElementsByTagName("img");
      
      if(m.length>0){
        var Z=m[0];
        Q.handle=Z;Q.handle.s=Q;this.setClick(Q.handle);
      }
    }
    
    Q.num=V;
    this.sO(Y,0);
    
    if(V==W-1){x.a=Q;}
    
    this.timerFade(Q);
  }
  
  if(W!=null){
    x.o=b[W-1];x.a=b[W-1];
  }
  x.timerFade=setInterval(function(){x.h.fade(false)},r);
  x.onmouseout=function(){if(x.fC){x.a=false}x.lastOver=x.o;x.o=false;x.aPPause=false};
  
  if(x.aPOn){
    x.h.startaP();
  }
  
  return(this)
};

this.setClick=function(l){
                            if(x.clickEffect||(l.s.handle&&l.s.handle==l)){
                                  l.onclick=function(){
                                            x.slideEnded=false;l=this.s;
                                            if(x.clickStopsaP){
                                                x.h.stopaP();
                                            }
                                            if(l==x.a&&!E){
                                                var m=-1;
                                                for(var t=0;t<y;t++){
                                                  var w=b[t];
                                                  if(w==x.a&&m==-1){
                                                    m=parseInt(t);
                                                  }
                                                }
                                                if(u==0){
                                                  if(m<y-1&&m!=-1){
                                                    x.a=b[m+1];l=b[m+1];
                                                  }
                                                  else{
                                                    x.a=b[0];l=b[0];
                                                  }
                                                }
                                                else{
                                                  if(m>0&&m!=-1){
                                                      x.a=b[m-1];l=b[m-1];
                                                  }
                                                  else{
                                                      x.a=b[y-1];l=b[y-1];
                                                  }
                                                }
                                              }
                                              else{x.a=l;}
                                              clearInterval(x.timerFade);
                                              x.timerFade=setInterval(function(){
                                                                  x.h.fade(l)
                                                                },r);
                                    }
                                }
                            };
                            
                            this.fadeDesc=function(m){
                                if(x.o){
                                    m=x.o.desc;
                                }
                                else{
                                    if(x.a){m=x.a.desc;}
                                }
                                var l=false;
                                if(x.aSD==false&&(m&&(m.s==x.o||m.s==x.a)&&m.parentNode.style.width==m.parentNode.parentNode.style.width)){
                                    l=x.h.moveIt(m,x.dD,true);
                                }
                                if(x.aSD==false&&(x.a&&x.a.desc&&x.a.desc.parentNode.style.width==x.a.desc.parentNode.parentNode.style.width)&&(!x.dDFO||x.o==x.a)){
                                  l=x.h.moveIt(x.a.desc,x.dD,true);
                                }
                                x.h.clearDesc(m.s);
                                x.re=l;
                                return(l);
                              };
                              
                              this.clearDesc=function(w){
                                            if(x.o){w=x.o;}
                                            else{
                                              if(x.a){w=x.a;}
                                            }
                                            var m=true;
                                            for(var l=0;l<b.length;l++){
                                              var t=b[l].desc;
                                              if(x.aSD==false&&((t&&w!=t.s&&(!x.a||t.s!=x.a))||(x.dDFO&&x.o&&x.o!=t.s)||(t.parentNode.style.width!=t.parentNode.parentNode.style.width&&(x.dDFO||(x.a&&x.a!=t.s))))){
                                                m=x.h.moveIt(t,x.dD,false);
                                              }
                                            }
                                            return(m)
                              };
                              
                              this.moveIt=function(M,w,G){
                                      var K=x.dD;var L=true;var H;var t;
                                      if(G){t=2;}
                                      else{t=1;}
                                      if(M.style){
                                        if(x.dD==0){
                                          if(G){H=M.offsetHeight;}
                                          else{H=0;}
                                          var m=(M.parentNode.offsetHeight-H);
                                          var J=parseInt(M.style.top);
                                          if(J>m||(!G&&J<m)){
                                            var l;
                                            if(G){l=parseInt((J-m)/x.dS);}
                                            else{
                                              l=parseInt((m-J)/x.dS);
                                            }
                                            l=(l>0)?l:t;
                                            if(!G){l=l*-1;}
                                            var I=J-l;
                                            if(I>m||(!G&&J<m)){
                                              M.style.top=I+"px";
                                            }
                                            else{M.style.top=m+"px";L=true;}
                                          }
                                        }
                                        if(x.dD==1){
                                          if(!G){H=M.offsetHeight;}
                                          else{H=0;}
                                          var m=0-H;
                                          var J=parseInt(M.style.top);
                                          if(J<m||(!G&&J>m)){
                                            var l;
                                              if(G){l=parseInt((m-J)/x.dS)}
                                              else{l=parseInt((J-m)/x.dS)}
                                              l=(l>0)?l:t;
                                              if(!G){l=l*-1;}
                                              var I=J+l;
                                              if(I<m||(!G&&J>m)){M.style.top=I+"px"}
                                              else{M.style.top=m+"px";L=true}
                                          }
                                        }
                                        
                                        if(x.dDH==0){
                                          if(G){H=M.offsetWidth}
                                          else{H=0}
                                          var m=(M.parentNode.offsetWidth-H);
                                          var J=parseInt(M.style.left);
                                          if(J>m||(!G&&J<m)){
                                            var l;
                                            if(G){l=parseInt((J-m)/x.dS)}
                                            else{l=parseInt((m-J)/x.dS)}
                                            l=(l>0)?l:t;
                                            if(!G){l=l*-1}
                                            var I=J-l;
                                            if(I>m||(!G&&J<m)){M.style.left=I+"px"}
                                            else{M.style.left=m+"px";L=true}
                                          }
                                        }
                                        
                                        if(x.dDH==1){
                                          if(!G){H=M.offsetWidth}
                                          else{H=0}
                                          var m=0-H;
                                          var J=parseInt(M.style.left);
                                          if(J<m||(!G&&J>m)){
                                            var l;
                                            if(G){l=parseInt((m+-J)/x.dS)}
                                            else{l=parseInt((J-m)/x.dS)}
                                            l=(l>0)?l:t;
                                            if(!G){l=l*-1}
                                            var I=J+l;
                                            if(I<m||(!G&&J>m)){M.style.left=I+"px"}
                                            else{M.style.left=m+"px";L=true}
                                          }
                                        }
                                      }
                                      
                                      return(L)
                                };
                                
                                this.timerFade=function(l){
                                    l.onmouseover=function(){
                                            x.o=l;x.aPPause=true;
                                            if((!x.lastOver&&!x.o)||(x.lastOver.num&&x.lastOver.num!=x.o.num)||(x.fC&&!E)){clearInterval(x.timerFade);x.timerFade=setInterval(function(){x.h.fade(l)},r)}
                                            x.lastOver=l
                                    }
                                };
                                
                                this.startaP=function(){
                                    if(x.aP){clearInterval(x.aP)}
                                    x.o=false;
                                    x.aP=setInterval(function(){x.h.aP()},x.aPSpeed)
                                };
                                
                                this.stopaP=function(){
                                  if(x.aP){clearInterval(x.aP)}
                                };
                                
                                this.aP=function(){
                                  if(!x.aPPause){
                                    if(!x.a){x.a=b[b.length-1]}
                                    var l=x.a.num;
                                    var m=false;
                                    if(u==0){if(l<y-1&&l!=-1){x.a=b[l+1];m=b[l+1]}else{x.a=b[0];m=b[0]}}
                                    else{
                                      if(l>0&&l!=-1){x.a=b[l-1];m=b[l-1]}
                                      else{x.a=b[y-1];m=b[y-1]}
                                    }
                                    clearInterval(x.timerFade);
                                    x.timerFade=setInterval(function(){x.h.fade(m)},r)
                                  }
                                };
                                
                                this.slide=function(J){
                                    var Q=x.list_width;x.slideEnded=false;
                                    if(J==undefined){J=false}
                                    if(J.style){var t=parseInt(J.style.width)}
                                    if(J==false&&x.even==true&&!x.a||(x.a==undefined&&!J)){
                                          if(Q!=parseInt(Q)){Q=Q-(0.003*y)}
                                          x.h.clearDesc(J);x.slideEnded=true;
                                          var T=new Array();
                                          var V=new Array();
                                          var K=0;
                                          for(var R=0;R<y;R++){
                                              O=b[R];w=parseInt(O.style.width);
                                              if(w<=n){V[V.length]=O;K=K+parseInt(O.style.width)}
                                              else{
                                                if(w>n){T[T.length]=O}
                                              }
                                          }
                                          var S=q;
                                          var N=g;
                                          var U=y;
                                          for(var R=0;R<T.length;R++){
                                            var O,w,G;var L=0;O=T[R];w=parseInt(O.style.width);
                                            L=Math.ceil((w-n)/C);
                                            L=(L>0)?L:1;
                                            if(w-L>n){G=w-L;x.slideEnded=false}
                                            else{G=n;if(N>0){var I=Math.ceil(N/U);G=G+I;N=N-I}}
                                            
                                            if(S-G<0){G=G+(S-G)}
                                            O.style.width=(G)+"px";S=S-G;U--
                                          }
                                          
                                          var m=V.length;L=Math.floor((S-K)/m);L=(L>0)?L:1;
                                          for(var R=0;R<V.length;R++){O=V[R];w=parseInt(O.style.width);if(w+L<=n||(N>0&&w+L<=n+1)){G=w+L;if(w+L<n+1){x.slideEnded=false}}else{G=n}if(R==V.length-1){G=(S)}if(N>0){var I=Math.ceil(N/U);G=G+I;N=N-I}if(S-G<0){G=G+(S-G)}O.style.width=(G)+"px";S=S-G;U--}}else{if(t<v||(J==false&&x.a&&parseInt(x.a.style.width)<v)){x.h.clearDesc(J);var H=0;var R=0;var M=z;
                                          for(R;R<y;R++){if(b[R]!=J||(J==false&&b[R]!=x.a)){var O,w;var L=0;O=b[R];w=parseInt(O.style.width);if(w>j){L=Math.floor((w-j)/C);L=(L>0)?L:1;var l=w-L;if(l==j&&M>0)
                                          {l++;M--;L--;}
                                          O.style.width=(l)+"px";}
                                          H=H+(w-L)}}
                                          if(J.style)
                                          {J.style.width=(q-H)+"px"}else{if(J==false&&x.a){var P=parseInt(q);
                                          for(var R=0;R<y;R++){if(b[R]!=x.a){P=P-parseInt(b[R].style.width)}}x.a.style.width=(P)+"px"}}}else{x.slideEnded=true;if(x.a&&x.a.desc){x.a.desc.aktiv=true;x.slideEnded=x.h.fadeDesc(x.a.desc)}
                                          if((J&&J.desc)&&J!=x.a){J.desc.aktiv=true;x.slideEnded=x.h.fadeDesc(J.desc)}}}};this.fade=function(L){if((E||x.fC)){if(x.o!=false&&E){x.h.slide(x.o)}else{if(x.fC&&L==false){x.a=false;x.o=false}if(x.even&&L==false){x.h.slide(false)}else{if(x.a){x.h.slide(x.a)}else{x.h.slide(false)}}}}else{if(x.a){x.h.slide(x.a)}}var w=0;var J=x.getElementsByTagName("li");var t=J.length;var G=1;for(w;w<t;w++){var H;var I=J[w];H=this.gO(I.fader);if(I!=x.a||(x.dDFO&&x.a!=x.o)){if(H<F){I.fader.style.display="block";H=H+0.04;this.sO(I.fader,H);if(H<F){G=0}}if(I.fadeInImg&&I!=x.o){var m=this.gO(I.fadeInImg);m=m-0.04;m=(m>0)?m:0;this.sO(I.fadeInImg,m);if(m>0){G=0}}}}if(x.a&&(!x.dDFO||(x.dDFO&&!x.o))){H=H-f;if(x.a.fader.style.display!="none"){this.sO(x.a.fader,0);x.a.fader.style.display="none"}if(x.a.fadeInImg){var m=this.gO(x.a.fadeInImg);m=m+0.04;if(m<1){this.sO(x.a.fadeInImg,m);if(m<1){G=0}}else{this.sO(x.a.fadeInImg,1)}}}if(x.o){var H;H=this.gO(x.o.fader);if(H>0){H=H-f;if(x.o.fader.style.display!="none"){this.sO(x.o.fader,0);x.o.fader.style.display="none"}}if(x.o.fadeInImg){var m=this.gO(x.o.fadeInImg);m=m+0.04;m=(m<1)?m:1;if(m<1){this.sO(x.o.fadeInImg,m);if(m<1){G=0}}else{this.sO(x.o.fadeInImg,1)}}}var K=true;if(x.a){K=x.h.clearDesc(x.a)}if(G==1&&K&&(x.slideEnded||(x.slideEnded==undefined&&x.even))){x.o=false;x.lastOver=false}};this.sO=function(l,m){if(x.ie){var t=parseInt(m*100);if(t>(100)){t=100}l.style.filter="alpha(opacity="+t+")"}else{l.style.opacity=m}};this.gO=function(l){var m;if(x.ie){m=parseInt(parseFloat(l.style.filter.replace(/[\D\.]/g,"")))/100}else{m=parseFloat(l.style.opacity)}return(m)}};