(function(){var D,P,UA=navigator.userAgent,is_gecko=/gecko/i.test(UA),is_opera=/opera/i.test(UA),is_ie=/msie/i.test(UA)&&!is_opera&&!(/mac_powerpc/i.test(UA)),is_ie5=is_ie&&/msie 5\.[^5]/i.test(UA),is_mac_ie=/msie.*mac/i.test(UA),is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent),IE_LEFT=is_ie?"marginLeft":"left",CNN_DISABLED="dynarch-nav-disabled",CNR_DISABLED="dynarch-right-disabled",CNL_DISABLED="dynarch-left-disabled";
Interval={_currentId:0,_cached:{}
,_timers:{}
,set:function(action,speed){var o,id=++Interval._currentId;
if(Interval._cached[speed]){o=Interval._cached[speed];
o.actions[id]=action;
++o.length;
Interval._timers[id]=o;
return id;
}
else{o={speed:speed,actions:{}
,length:1,timerID:setInterval(function(){var a=o.actions;
for(var i in a)a[i]();
}
,speed)}
;
o.actions[id]=action;
Interval._cached[speed]=o;
Interval._timers[id]=o;
}
return id;
}
,clear:function(id){var o=Interval._timers[id];
--o.length;
if(o.length==0){delete Interval._cached[o.speed];
clearInterval(o.timerID);
}
else{delete o.actions[id];
}
delete Interval._timers[id];
}
}
;
function Animation(length,speed,pos1,pos2){this.length=length;
this.speed=Math.round(1000/speed);
this.pos1=pos1;
this.pos2=pos2;
this.diff=pos2-pos1;
this.percent=0;
this.timerID=null;
this.accel=false;
}
;
Animation.prototype={clearTimer:function(){(this.timerID)&&Interval.clear(this.timerID);
this.timerID=null;
}
,start:function(){if(typeof this.step=="undefined"||this.step<0||this.step>=this.length)this.restart();
else{var self=this;
this.clearTimer();
this.timerID=Interval.set(function(){self.update();
}
,this.speed);
}
}
,restart:function(){this.onStart();
this.pos=this.pos1;
this.step=0;
this.diff=this.pos2-this.pos1;
this.rad_step=Math.PI/(2*this.length);
this.rad_pos=0;
this.start();
}
,update:function(){if(this.step<this.length&&this.step>=0){var f=this.accel?(1-Math.cos(this.rad_pos)):Math.sin(this.rad_pos);
this.delta=Math.round(f*this.diff);
this.pos=this.pos1+this.delta;
this.percent=100*(this.pos-this.pos1)/this.diff;
this.onUpdate();
++this.step;
this.rad_pos+=this.rad_step;
}
else{this.delta=this.pos2-this.pos;
this.pos=this.pos2;
this.percent=100;
this.onUpdate();
this.stop(true);
}
}
,stop:function(call){this.clearTimer();
call&&this.onStop();
}
,comp:function(start,stop){return start+(stop-start)*this.percent/100;
}
,onStart:function(){}
,onStop:function(){}
,onUpdate:function(){}
}
;
function noop(){}
;
function DC(el,c){if(el){var a=el.className.split(" "),i=a.length;
while(--i>=0)if(a[i]==c)a.splice(i,1);
el.className=a.join(" ");
}
}
;
function AC(el,ac,dc){if(el){if(dc)DC(el,dc);
DC(el,ac);
el.className+=" "+ac;
}
}
;
function CE(tagName,parent,cn){var el=document.createElement(tagName);
if(cn)el.className=cn;
if(parent)parent.appendChild(el);
return el;
}
;
function CT(parent,cn){var T1=CE("table",parent,cn),T2=CE("tbody",T1);
T1.border=T1.cellSpacing=T1.cellPadding=0;
return[T1,T2];
}
;
function lookupLabel(div){var l=div.firstChild,k,i,tmp;
while(l&&l.nodeType!=1)l=l.nextSibling;
if(l&&/^label$/i.test(l.tagName)){div._LABEL=l;
k=l.getAttribute("accesskey",false);
l.parentNode.removeChild(l);
if(k){div.setAttribute("accesskey",k);
function f(l){for(i=l.firstChild;
i;
i=i.nextSibling){if(i.nodeType==3){tmp=CE("span");
tmp.innerHTML=i.data.replace(new RegExp("("+k+")","i"),"<u>$1</u>");
while(tmp.firstChild)l.insertBefore(tmp.firstChild,i);
l.removeChild(i);
throw "finished";
}
else if(i.nodeType==1)f(i);
}
}
;
try{f(l);
}
catch(k){}
;
}
}
}
;
function NOOP(){return false;
}
;
function DynarchRB(rbel,config){if(typeof config=="undefined")config={}
;
function PD(N,V){if(typeof config[N]=="undefined")config[N]=V;
}
;
PD("fixedHeight",false);
PD("start",-1);
PD("tabs",false);
PD("changeLocation",false);
PD("hideButtons",false);
PD("animation",[20,40]);
PD("tabColors",null);
PD("noInit",false);
var self=this,tmp=D.defaultHooks,tr,td,el,width,height;
this._hooks={onchangestart:tmp.onChangeStart.slice(0),onchangeend:tmp.onChangeEnd.slice(0),onanimation:tmp.onAnimation.slice(0),oninit:tmp.onInit.slice(0)}
;
this.config=config;
if(typeof rbel=="string")rbel=document.getElementById(rbel);
this.element=CE("div",null,"dynarch-rollbar");
this.container=CE("div",this.element,"dynarch-rollbar-container");
rbel.parentNode.insertBefore(this.element,rbel.nextSibling);
this.id=rbel.id;
this.center=CE("div",this.container,"dynarch-roll-center");
(this.leftBtn=CE("a",this.container,"dynarch-roll-nav dynarch-roll-left")).href="#";
(this.rightBtn=CE("a",this.container,"dynarch-roll-nav dynarch-roll-right")).href="#";
this.leftBtn.innerHTML=this.rightBtn.innerHTML="<br>";
if(this.config.hideButtons)this.leftBtn.style.display=this.rightBtn.style.display="none";
this.sections=[];
this.sections.current=0;
this.center.innerHTML="<div>www.ableclothing.co.nz</div>";
width=this.center.offsetWidth-this.leftBtn.offsetWidth-this.rightBtn.offsetWidth;
this.center.removeChild(this.center.firstChild);
this.center.style.left=this.leftBtn.offsetWidth+"px";
this.center.style.width=width+"px";
tmp=CT(this.center,"dynarch-inner-table");
tr=CE("tr",tmp[1]);
this.innerTable=tmp=tmp[0];
tmp.style[IE_LEFT]="0px";
if(!is_ie)tmp.style.position="relative";
else this.rightBtn.style.left=this.leftBtn.offsetWidth+width;
height=0;
for(tmp=rbel.firstChild;tmp;){el=tmp.nextSibling;
if(tmp.nodeType==1&&/^div$/i.test(tmp.tagName)){tmp.INDEX=this.sections.length;
this.sections.push(tmp);
(td=CE("td",tr)).appendChild(tmp);
td.className="dynarch-inner-td";
if(tmp.className)AC(td,tmp.className);
tmp.WIDTH=width>td.offsetWidth?width:td.offsetWidth;
tmp.style.width=tmp.WIDTH+"px";
tmp._TITLE=tmp.title||"";
tmp.removeAttribute("title",false);
lookupLabel(tmp);
}
tmp=el;
}
rbel.parentNode.removeChild(rbel);
height=this.innerTable.offsetHeight;
this.refresh();
this.element.style.display="none";
this.element.style.display="block";
this.leftBtn.onclick=function(){
	if(typeof this.blur=="function")
	  this.blur();
	SLIDES.previous();
	if (SLIDES.current>=0 && SLIDES.current<=9)
	  self.showSection(0); 
	if (SLIDES.current>=10 && SLIDES.current<=19)
	  self.showSection(1); 
	if (SLIDES.current>=20 && SLIDES.current<=33)
	  self.showSection(2); 
	if (SLIDES.current>=34 && SLIDES.current<=35)
	  self.showSection(3); 
	if (SLIDES.current>=36 && SLIDES.current<=39)
	  self.showSection(4); 
	if (SLIDES.current>=40 && SLIDES.current<=42)
	  self.showSection(5); 
	if (SLIDES.current>=43 && SLIDES.current<=43)
	  self.showSection(6);	  
   
	return false;
}
;
this.rightBtn.onclick=function(){
	if(typeof this.blur=="function")
		this.blur();
	SLIDES.next();
		if (SLIDES.current>=0 && SLIDES.current<=9)
	  self.showSection(0); 
	if (SLIDES.current>=10 && SLIDES.current<=19)
	  self.showSection(1); 
	if (SLIDES.current>=20 && SLIDES.current<=33)
	  self.showSection(2); 
	if (SLIDES.current>=34 && SLIDES.current<=35)
	  self.showSection(3); 
	if (SLIDES.current>=36 && SLIDES.current<=39)
	  self.showSection(4); 
	if (SLIDES.current>=40 && SLIDES.current<=42)
	  self.showSection(5);
	if (SLIDES.current>=43 && SLIDES.current<=43)
	  self.showSection(6);	  
	return false;
}
;
this.leftBtn.onmousedown=this.rightBtn.onmousedown=NOOP;
if(is_ie){this.leftBtn.ondblclick=this.leftBtn.onclick;
this.rightBtn.ondblclick=this.rightBtn.onclick;
}
if(config.fixedHeight)for(tmp=this.sections.length;
--tmp>=0;
)this.sections[tmp].style.height=height+"px";
if(config.tabs)this.createTabs(config.tabs);
if(!config.noInit)this.init();
}
;
window.DynarchRB=D=DynarchRB;
D.defaultHooks={onChangeStart:[],onChangeEnd:[],onAnimation:[],onInit:[]}
;
P=D.prototype;
D.preloadImages=function(filter){if(is_ie){var ai=[],hi={}
,i;
function f(s,p){var i,t,pp=s.href;
if(filter&&s.readOnly&&!filter.test(p+pp))return;
if(pp)p+=pp.replace(/(\x2f?)[^\x2f]+$/,"$1");
for(i=s.rules.length;
--i>=0;
){t=s.rules(i).style.backgroundImage;
if(/url\((.*?)\)/.test(t)){t=p+RegExp.$1;
if(!hi[t]){ai.push(t);
hi[t]=1;
}
}
}
for(i=s.imports.length;--i>=0;)f(s.imports(i),p);
}
;
for(i=document.styleSheets.length;
--i>=0;
)f(document.styleSheets[i],"");
document.write("<div style='display:none'>");
for(i=ai.length;
--i>=0;
)document.write("<img src='"+ai[i]+"' />");
document.write("</div>");
}
}
;
P.refresh=function(){this.leftBtn.style.height=this.rightBtn.style.height=this.innerTable.offsetHeight+"px";
}
;
P.init=function(){var c=this.config;
this._callHooks("onInit");
if(c.start==-1){tmp=new RegExp("#"+this.id+"-pane-([0-9]+)");
if(tmp.test(window.location))c.start=parseInt(RegExp.$1,10);
else c.start=0;
}
this.showSection(c.start,true);
}
;
P.showSection=function(index,fast){var tpos=0,i,a=this.anim,sc=this.sections,cfa=this.config.animation,prev=sc.current,s=this.innerTable.style,div=sc[index],cpos=parseInt(s[IE_LEFT]),self=this;
this.center.scrollLeft=0;
tpos=-sc[index].parentNode.offsetLeft;
if(!cfa)fast=true;
if(!fast){if(a){a.restarting=true;
a.stop(true);
a.restarting=false;
}
this.anim=a=new Animation(cfa[0],cfa[1],cpos,tpos);
a.onStart=function(){self._callHooks("onChangeStart",prev,index);
}
;
a.onUpdate=function(){s[IE_LEFT]=this.pos+"px";
self._callHooks("onAnimation",prev,index,this);
}
;
a.onStop=function(){self.anim=null;
self._callHooks("onChangeEnd",prev,index,this.restarting);
}
;
a.restart();
}
else{this._callHooks("onChangeStart",prev,index);
this._callHooks("onChangeEnd",prev,index);
s[IE_LEFT]=tpos+"px";
}
sc.current=index;
if(this.config.changeLocation)window.location="#"+this.id+"-pane-"+index;
}
;
P.prev=function(){var c=this.sections.current;
if(c>0)this.showSection(c-1);
}
;
P.next=function(){var s=this.sections,c=s.current;
if(c<s.length-1)this.showSection(c+1);
}
;
P._callHooks=function(event,A,B,C,D,E,F){var a=this._hooks[event.toLowerCase()],i,aa=[];
if(a){for(i=1;
i<arguments.length;
++i)aa.push(arguments[i]);
this.event=event;
for(i=0;
i<a.length;
++i)a[i].apply(this,aa);
this.event=null;
}
else alert("No such event: "+event);
}
;
P.addEventListener=function(event,handler){var a=this._hooks[event.toLowerCase()];
if(a){a.push(handler);
}
else alert("No such event: "+event);
}
;
P.createTabs=function(pos,labels){var i,sc=this.sections,div,tmp,self=this,k,a,label,tr,td,span,tabbar=this.tabBar=CE("div",null,"dynarch-roll-tabs dynarch-roll-tabs-"+pos);
if(typeof labels=="undefined")labels=[];
this.tabs=[];
tr=CE("tr",CT(tabbar)[1]);
for(i=0;
i<sc.length;
++i){div=sc[i];
td=CE("td",tr);
if(div.className)AC(td,div.className);
tmp=CE("a",td,"dynarch-roll-tab");
label=labels[i]||div._LABEL||div._TITLE||("Pane "+i);
div._LABEL=null;
if(i==sc.current)AC(tmp,"dynarch-tab-current");
this.tabs.push(tmp);
tmp.INDEX=i;
tmp.onclick=function(){if(typeof this.blur=="function"){this.blur();}
if(self.sections.current==this.INDEX&&(is_ie||!self.anim))return false;
// here is to triger the action
self.showSection(this.INDEX); 
if(this.INDEX==0)
   SLIDES.goto_slide(0);
if(this.INDEX==1)
   SLIDES.goto_slide(10);
if(this.INDEX==2)
   SLIDES.goto_slide(20);
if(this.INDEX==3)
   SLIDES.goto_slide(34);
if(this.INDEX==4)
   SLIDES.goto_slide(36);
if(this.INDEX==5)
   SLIDES.goto_slide(40);
if(this.INDEX==6)
   SLIDES.goto_slide(43);
if(self.config.changeLocation)return true;
return false;
}
;
tmp.onmousedown=NOOP;
k=div.getAttribute("accesskey",1);
if(k){div.removeAttribute("accesskey",false);
tmp.accessKey=k;
if(is_ie)tmp.onfocus=tmp.onclick;
if(typeof label=="string")label=label.replace(new RegExp("("+k+")","i"),"<u>$1</u>");
}
tmp.href="#"+this.id+"-pane-"+i;
span=CE("span",tmp);
if(typeof label=="string")
   span.innerHTML=label;
else 
   while(tmp=label.firstChild)
    span.appendChild(tmp);
span.className="dynarch-tab-span";
}
if(pos=="bottom")pos=this.element.nextSibling;
else pos=this.element;
this.element.parentNode.insertBefore(tabbar,pos);
this.addEventListener("onChangeStart",function(prev,curr){var t1=self.tabs[prev],t2=self.tabs[curr];
DC(t1,"dynarch-tab-pending");
if(!self.config.tabColors){DC(t1,"dynarch-tab-current");
AC(t2,"dynarch-tab-pending");
}
}
);
this.addEventListener("onChangeEnd",function(prev,curr){var t1=self.tabs[prev],t2=self.tabs[curr],i;
DC(t1,"dynarch-tab-current");
AC(t2,"dynarch-tab-current","dynarch-tab-pending");
if(self.config.tabColors){t1=t1.style;
t2=t2.style;
for(i in self.config.tabColors){t1[i]="";
t2[i]="";
}
}
}
);
if(this.config.tabColors)this.addEventListener("onAnimation",function(prev,curr,a){var tc=self.config.tabColors,i,ta,ti,R=Math.round,t1=self.tabs[prev].style,t2=self.tabs[curr].style;
for(i in tc){ti=tc[i][0];
ta=tc[i][1];
if(typeof ta=="object"){t1[i]="rgb("+(R(a.comp(ta[0],ti[0]))+","+R(a.comp(ta[1],ti[1]))+","+R(a.comp(ta[2],ti[2]))+")");
t2[i]="rgb("+(R(a.comp(ti[0],ta[0]))+","+R(a.comp(ti[1],ta[1]))+","+R(a.comp(ti[2],ta[2]))+")");
}
else{t1[i]=R(a.comp(ta,ti))+"px";
t2[i]=R(a.comp(ti,ta))+"px";
}
}
}
);
}
;
D.setup=function(rbel,config){return new DynarchRB(rbel,config);
}
;
}
)();
