/*
 * Titan Internet Ltd JavaScript
 * Copyright(c) 2010, Gavin Martin.
 */


Ext.ns('Ext.ux');Ext.ux.CFProxy=Ext.extend(Ext.util.Observable,{constructor:function(config){Ext.apply(this,config);this.addEvents('load');if(config.proxy){this.proxy=config.proxy;this.proxy.setCallbackHandler(this.onSuccess.createDelegate(this));this.proxy.setErrorHandler(this.onFailure.createDelegate(this));delete config.proxy;}
Ext.ux.CFProxy.superclass.constructor.call(this);},load:function(url,method,params){this.proxy.call(url,method,params);},onSuccess:function(resp){this.fireEvent('load',this,resp);},onFailure:function(resp){alert("An error occured!\n"+resp.responseText);}});

Ext.ns('Ext.ux');Ext.ux.Tabs=Ext.extend(Ext.util.Observable,{activeTab:0,constructor:function(element,config){Ext.apply(this,config);Ext.ux.Tabs.superclass.constructor.call(this);this.addEvents('beforetabchange','tabchange');this.el=Ext.get(element);this.id=this.el.dom.id;this.activeTab=null;Ext.ux.ComponentMgr.register(this);this.init();},init:function(){var me=this;this.tabStrip=this.el.child('ul');this.tabStrip.on('click',this.onStripClick,this,{delegate:'a'});},onStripClick:function(ev,t){if(t&&t.href&&t.href.indexOf('#')){ev.preventDefault();this.setActiveTab(t.href.split('#')[1]);}},getActiveTab:function(){var tab=this.tabStrip.child('.ti-tab-header-active');},setActiveTab:function(tab){var card;if(Ext.isString(tab)){card=Ext.get(tab);tab=this.tabStrip.child('a[href=#'+tab+']').parent();}
else if(Ext.isNumber(tab)){tab=this.tabs.item(tab);card=Ext.get(tab.first().dom.href.split('#')[1]);}
if(tab&&card&&this.fireEvent('beforetabchange',tab,card)!==false){this.activeTab=tab;card.radioClass('ti-tab-wrap-active');tab.radioClass('ti-tab-header-active');this.fireEvent('tabchange',tab,card);}}});

Ext.ns('Ext.ux','Ext.ux.dom');Ext.ux.Window=Ext.extend(Ext.util.Observable,{baseCls:'x-window',initHidden:undefined,hidden:true,tpl:null,allowDomMove:true,rendered:false,autoEl:'div',constructor:function(config){Ext.apply(this,config);this.addEvents('show','hide','render','afterrender');Ext.ux.Window.superclass.constructor.call(this);if(Ext.isDefined(this.initHidden)){this.hidden=this.initHidden;}
if(this.hidden===false){this.hidden=true;this.show();}},render:function(container,position){if(!this.rendered){if(!container&&this.el){this.el=Ext.get(this.el);container=this.el.dom.parentNode;this.allowDomMove=false;}
this.container=Ext.get(container);this.rendered=true;if(position!==undefined){if(Ext.isNumber(position)){position=this.container.dom.childNodes[position];}else{position=Ext.getDom(position);}}
this.onRender(this.container,position||null);this.el.addClass(this.baseCls);if(this.cls){this.el.addClass(this.cls);delete this.cls;}
this.fireEvent('render',this);var contentTarget=this.el;if(this.contentEl){var ce=Ext.getDom(this.contentEl);Ext.fly(ce).removeClass(['x-hidden','x-hide-display']);contentTarget.appendChild(ce);}
if(this.animateTarget){this.setAnimateTarget(this.animateTarget);}
this.fireEvent('afterrender',this);}},onRender:function(ct,position){if(!this.el&&this.autoEl){if(Ext.isString(this.autoEl)){this.el=document.createElement(this.autoEl);}else{var div=document.createElement('div');Ext.DomHelper.overwrite(div,this.autoEl);this.el=div.firstChild;}
if(!this.el.id){this.el.id=this.getId();}}
if(this.el){this.el=Ext.get(this.el);if(this.allowDomMove!==false){ct.dom.insertBefore(this.el.dom,position);if(div){Ext.removeNode(div);div=null;}}}
this.el.position('absolute',200);if(this.width){this.el.setWidth(this.width);}
if(this.height){this.el.setHeight(this.height);}
this.proxy=this.createProxy('x-window-proxy',this.container);this.proxy.setVisibilityMode(Ext.Element.DISPLAY);if(this.modal){this.mask=this.container.createChild({cls:'x-el-mask'},this.el.dom);this.mask.setVisibilityMode(Ext.Element.DISPLAY);this.mask.hide();}},setAnimateTarget:function(el){el=Ext.get(el);this.animateTarget=el;},getAlignToXY:function(el,o){el=Ext.get(el);if(!el||!el.dom){throw"alignToXY with an element that doesn't exist";}
o=o||[0,0];var me=this.el,d=me.dom,a1,a2;a1=this.getAnchorXY(me,true);a2=this.getAnchorXY(el,false);x=a2[0]-a1[0]+o[0];y=a2[1]-a1[1]+o[1];return[x,y];},getAnchorXY:function(c,local,s){s=s||{};var me=c,vp=me.dom==document.body||me.dom==document,w=s.width||vp?Ext.lib.Dom.getViewWidth():me.getWidth(),h=s.height||vp?Ext.lib.Dom.getViewHeight():me.getHeight(),xy,r=Math.round,o=me.getXY(),scroll=me.getScroll(),extraX=vp?scroll.left:!local?o[0]:0,extraY=vp?scroll.top:!local?o[1]:0;xy=[r(w*0.5),r(h*0.5)];return[xy[0]+extraX,xy[1]+extraY];},show:function(animateTarget,cb,scope){if(!this.rendered){this.render(Ext.getBody());}
if(this.hidden===false){return this;}
if(cb){this.on('show',cb,scope,{single:true});}
this.hidden=false;if(Ext.isDefined(animateTarget)){this.setAnimateTarget(animateTarget);}
this.beforeShow();if(this.animateTarget){this.animShow();}else{this.afterShow();}
return this;},showAt:function(x,y,animateTarget,cb,scope){this.x=x;this.y=y;this.show(animateTarget,cb,scope);},beforeShow:function(){delete this.el.lastXY;delete this.el.lastLT;if(this.x===undefined||this.y===undefined){var xy=this.getAlignToXY(this.container);var pos=this.el.translatePoints(xy[0],xy[1]);this.x=this.x===undefined?pos.left:this.x;this.y=this.y===undefined?pos.top:this.y;}
this.el.setLeft(this.x);this.el.setTop(this.y);if(this.modal){Ext.getBody().addClass('x-body-masked');this.mask.setWidth(Ext.lib.Dom.getViewWidth(true));this.mask.setHeight(Ext.lib.Dom.getViewHeight(true));this.mask.show();}},afterShow:function(isAnim){this.proxy.hide();this.el.setStyle('display','block');this.el.show();if(isAnim&&(Ext.isIE||Ext.isWebKit)){var sz={width:this.el.getWidth(),height:this.el.getHeight()};}
this.onShow();this.fireEvent('show',this);},animShow:function(){this.proxy.dom.style.display='block';this.setBox(this.proxy,this.getBox(this.animateTarget));this.proxy.setOpacity(0);var b=this.getBox(this.el);this.el.setStyle('display','none');this.proxy.shift(Ext.apply(b,{callback:this.afterShow.createDelegate(this,[true],false),scope:this,easing:'easeNone',duration:0.25,opacity:1,useDisplay:true,remove:false}));},hide:function(animateTarget,cb,scope){if(this.hidden){return this;}
if(cb){this.on('hide',cb,scope,{single:true});}
this.hidden=true;if(animateTarget!==undefined){this.setAnimateTarget(animateTarget);}
if(this.modal){this.mask.hide();Ext.getBody().removeClass('x-body-masked');}
if(this.animateTarget){this.animHide();}else{this.el.hide();this.afterHide();}
return this;},afterHide:function(){this.proxy.hide();this.onHide();this.fireEvent('hide',this);},animHide:function(){this.proxy.setOpacity(0.5);this.proxy.dom.style.display='block';var tb=this.getBox(this.el);this.setBox(this.proxy,tb);this.el.hide();this.proxy.shift(Ext.apply(this.getBox(this.animateTarget),{callback:this.afterHide,scope:this,duration:0.5,easing:'easeNone',opacity:0}));},isVisible:function(){return this.rendered&&this.el.isVisible();},getBox:function(el,local){var me=el,xy=me.getXY();if(!local){xy=me.getXY();}else{left=parseInt(me.getStyle("left"),10)||0;top=parseInt(me.getStyle("top"),10)||0;xy=[left,top];}
var el=me.dom,w=el.offsetWidth,h=el.offsetHeight,bx;bx={x:xy[0],y:xy[1],0:xy[0],1:xy[1],width:w,height:h};bx.right=bx.x+bx.width;bx.bottom=bx.y+bx.height;return bx;},setBox:function(el,box,adjust){var me=el,w=box.width,h=box.height;me.setX(box.x);me.setY(box.y);me.setWidth(w);me.setHeight(h);return me;},createProxy:function(config,renderTo){config=(typeof config=='object')?config:{tag:"div",cls:config};var me=this.el,proxy=renderTo?Ext.DomHelper.append(renderTo,config,true):Ext.DomHelper.insertBefore(me.dom,config,true);return proxy;},getId:function(){return this.id||(this.id='x-window-'+(++Ext.ux.Window.AUTO_ID));},onShow:function(){},onHide:function(){}});Ext.ux.Window.AUTO_ID=1000;window.popup=function(url,width,height){if(!width){width=550;}
if(!height){height=600;}
var win=window.open(url,'defaultwin','height='+height+',width='+width+',resizable=yes,scrollbars=yes');if(!win){alert("Could not open window! You may have a popup blocker running."+"/n"+"  Please disable it to view this content.")}
else{if(window.focus){win.focus();}}
return false;}

Ext.ns('Ext.ux');Ext.ux.Lightbox=(function(){var els={},images=[],activeImage,initialized=false,selectors=[];return{overlayOpacity:0.85,animate:true,resizeSpeed:8,borderSize:10,labelImage:"Image",labelOf:"of",init:function(){this.resizeDuration=this.animate?((11-this.resizeSpeed)*0.15):0;this.overlayDuration=this.animate?0.2:0;if(!initialized){Ext.apply(this,Ext.util.Observable.prototype);Ext.util.Observable.constructor.call(this);this.addEvents('open','close');this.initMarkup();this.initEvents();initialized=true;}},initMarkup:function(){els.shim=Ext.DomHelper.append(document.body,{tag:'iframe',id:'ux-lightbox-shim'},true);els.overlay=Ext.DomHelper.append(document.body,{id:'ux-lightbox-overlay'},true);var lightboxTpl=new Ext.Template(this.getTemplate());els.lightbox=lightboxTpl.append(document.body,{},true);var ids=['outerImageContainer','imageContainer','image','hoverNav','navPrev','navNext','loading','loadingLink','outerDataContainer','dataContainer','data','details','caption','imageNumber','bottomNav','navClose'];Ext.each(ids,function(id){els[id]=Ext.get('ux-lightbox-'+id);});Ext.each([els.overlay,els.lightbox,els.shim],function(el){el.setVisibilityMode(Ext.Element.DISPLAY)
el.hide();});var size=(this.animate?250:1)+'px';els.outerImageContainer.setStyle({width:size,height:size});},getTemplate:function(){return['<div id="ux-lightbox">','<div id="ux-lightbox-outerImageContainer">','<div id="ux-lightbox-imageContainer">','<img id="ux-lightbox-image">','<div id="ux-lightbox-hoverNav">','<a href="#" id="ux-lightbox-navPrev"></a>','<a href="#" id="ux-lightbox-navNext"></a>','</div>','<div id="ux-lightbox-loading">','<a id="ux-lightbox-loadingLink"></a>','</div>','</div>','</div>','<div id="ux-lightbox-outerDataContainer">','<div id="ux-lightbox-dataContainer">','<div id="ux-lightbox-data">','<div id="ux-lightbox-details">','<span id="ux-lightbox-caption"></span>','<span id="ux-lightbox-imageNumber"></span>','</div>','<div id="ux-lightbox-bottomNav">','<a href="#" id="ux-lightbox-navClose"></a>','</div>','</div>','</div>','</div>','</div>'];},initEvents:function(){var close=function(ev){ev.preventDefault();this.close();};els.overlay.on('click',close,this);els.loadingLink.on('click',close,this);els.navClose.on('click',close,this);els.lightbox.on('click',function(ev){if(ev.getTarget().id=='ux-lightbox'){this.close();}},this);els.navPrev.on('click',function(ev){ev.preventDefault();this.setImage(activeImage-1);},this);els.navNext.on('click',function(ev){ev.preventDefault();this.setImage(activeImage+1);},this);},register:function(sel,group){if(selectors.indexOf(sel)===-1){selectors.push(sel);Ext.fly(document).on('click',function(ev){var target=ev.getTarget(sel);if(target){ev.preventDefault();this.open(target,sel,group);}},this);}},open:function(image,sel,group){group=group||false;this.setViewSize();els.overlay.fadeIn({duration:this.overlayDuration,endOpacity:this.overlayOpacity,callback:function(){images=[];var index=0;if(!group){images.push([image.href,image.title]);}
else{var setItems=Ext.query(sel);Ext.each(setItems,function(item){if(item.href){images.push([item.href,item.title]);}});while(images[index][0]!=image.href){index++;}}
var pageScroll=Ext.fly(document).getScroll();var lightboxTop=pageScroll.top+(Ext.lib.Dom.getViewportHeight()/10);var lightboxLeft=pageScroll.left;els.lightbox.setStyle({top:lightboxTop+'px',left:lightboxLeft+'px'}).show();this.setImage(index);this.fireEvent('open',images[index]);},scope:this});},setViewSize:function(){var viewSize=this.getViewSize();els.overlay.setStyle({width:viewSize[0]+'px',height:viewSize[1]+'px'});els.shim.setStyle({width:viewSize[0]+'px',height:viewSize[1]+'px'}).show();},setImage:function(index){activeImage=index;this.disableKeyNav();if(this.animate){els.loading.show();}
els.image.hide();els.hoverNav.hide();els.navPrev.hide();els.navNext.hide();els.dataContainer.setOpacity(0.0001);els.imageNumber.hide();var preload=new Image();preload.onload=(function(){els.image.dom.src=images[activeImage][0];this.resizeImage(preload.width,preload.height);}).createDelegate(this);preload.src=images[activeImage][0];},resizeImage:function(w,h){var wCur=els.outerImageContainer.getWidth();var hCur=els.outerImageContainer.getHeight();var wNew=(w+this.borderSize*2);var hNew=(h+this.borderSize*2);var wDiff=wCur-wNew;var hDiff=hCur-hNew;var afterResize=function(){els.hoverNav.setWidth(els.imageContainer.getWidth()+'px');els.navPrev.setHeight(h+'px');els.navNext.setHeight(h+'px');els.outerDataContainer.setWidth(wNew+'px');this.showImage();};if(hDiff!=0||wDiff!=0){els.outerImageContainer.shift({height:hNew,width:wNew,duration:this.resizeDuration,scope:this,callback:afterResize,delay:50});}
else{afterResize.call(this);}},showImage:function(){els.loading.hide();els.image.fadeIn({duration:this.resizeDuration,scope:this,callback:function(){this.updateDetails();}});this.preloadImages();},updateDetails:function(){var detailsWidth=els.data.getWidth(true)-els.navClose.getWidth()-10;els.details.setWidth((detailsWidth>0?detailsWidth:0)+'px');els.caption.update(images[activeImage][1]);els.caption.show();if(images.length>1){els.imageNumber.update(this.labelImage+' '+(activeImage+1)+' '+this.labelOf+'  '+images.length);els.imageNumber.show();}
els.dataContainer.fadeIn({duration:this.resizeDuration/2,scope:this,callback:function(){var viewSize=this.getViewSize();els.overlay.setHeight(viewSize[1]+'px');this.updateNav();}});},updateNav:function(){this.enableKeyNav();els.hoverNav.show();if(activeImage>0)
els.navPrev.show();if(activeImage<(images.length-1))
els.navNext.show();},enableKeyNav:function(){Ext.fly(document).on('keydown',this.keyNavAction,this);},disableKeyNav:function(){Ext.fly(document).un('keydown',this.keyNavAction,this);},keyNavAction:function(ev){var keyCode=ev.getKey();if(keyCode==88||keyCode==67||keyCode==27){this.close();}
else if(keyCode==80||keyCode==37){if(activeImage!=0){this.setImage(activeImage-1);}}
else if(keyCode==78||keyCode==39){if(activeImage!=(images.length-1)){this.setImage(activeImage+1);}}},preloadImages:function(){var next,prev;if(images.length>activeImage+1){next=new Image();next.src=images[activeImage+1][0];}
if(activeImage>0){prev=new Image();prev.src=images[activeImage-1][0];}},close:function(){this.disableKeyNav();els.lightbox.hide();els.overlay.fadeOut({duration:this.overlayDuration});els.shim.hide();this.fireEvent('close',activeImage);},getViewSize:function(){return[Ext.lib.Dom.getViewWidth(),Ext.lib.Dom.getViewHeight()];}}})();Ext.onReady(Ext.ux.Lightbox.init,Ext.ux.Lightbox);

Ext.onReady(function(){Ext.ux.QuickTips.init();var INTERNAL="_tinternal";var dq=Ext.DomQuery;var el;var tps=dq.select('div.ti-tab-panel');Ext.each(tps,function(item,index,len){new Ext.ux.Tabs(item,{});});Ext.ux.form.FormMgr.init();var btns=dq.select('table.x-btn');Ext.each(btns,function(item,index,len){new Ext.ux.Button({applyTo:item});});var loginBtn=Ext.get('hdr-login-btn');var searchBtn=Ext.get('hdr-search-btn');var cartBtn=Ext.get('hdr-cart-btn');var openWin=false;Ext.getBody().on('click',function(e,t){if(loginBtn){if(!e.within('hdr-login-btn',false,true)&&!e.within('login-popup',false,true)&&!e.within('hdr-search-btn',false,true)&&!e.within('search-popup',false,true)){hideAll();}}});var hideAll=function(){if(searchBtn){searchBtn.dom.src='/resources/images/btn-header-search.gif';}
if(searchPopup){searchPopup.hide();}
if(loginBtn){loginBtn.dom.src='/resources/images/btn-header-login.gif';}
if(loginPopup){loginPopup.hide();}
if(cartBtn){cartBtn.dom.src='/resources/images/btn-header-cart.gif';}
if(cartPopup){cartPopup.hide();}
openWin=false;}
if(loginBtn){var loginErrorMsg=Ext.get('login-message');var loginPopup=new Ext.ux.Window({id:'login-win',contentEl:'login-popup',width:246,height:loginErrorMsg==null?180:210,cls:'ti-header-popup'});var showLoginPopup=function(xy){hideAll();loginBtn.dom.src='/resources/images/btn-header-login-open.gif';loginPopup.showAt(xy[0],xy[1],loginBtn.dom);openWin=true;};loginPopup.on('show',function(){if(Ext.fly('un-field')!==null){Ext.get('un-field').focus();}});Ext.get('hdr-login-btn').on('click',function(evt,btn){evt.preventDefault();if(loginPopup.isVisible()){loginPopup.hide();btn.src='/resources/images/btn-header-login.gif';openWin=false;}
else{var b=Ext.get(btn);var bw=b.getWidth();var bx=b.getX();var lx=(bx+bw)-loginPopup.width;var xy=[lx,b.getY()+24];showLoginPopup(xy);}},this);};if(searchBtn){var searchPopup=new Ext.ux.Window({id:'search-win',contentEl:'search-popup',width:247,height:105,cls:'ti-header-popup'});searchPopup.on('show',function(){Ext.fly('qs-field').focus();},this);var showSearchPopup=function(xy){hideAll();searchBtn.dom.src='/resources/images/btn-header-search-open.gif';searchPopup.showAt(xy[0],xy[1],searchBtn.dom);openWin=true;};Ext.get('hdr-search-btn').on('click',function(evt,btn){evt.preventDefault();if(searchPopup.isVisible()){searchPopup.hide();btn.src='/resources/images/btn-header-search.gif';openWin=false;}
else{var b=Ext.get(btn);var bw=b.getWidth();var bx=b.getX();var xy=[bx,b.getY()+24];showSearchPopup(xy);}});};if(cartBtn){var cartPopup=new Ext.ux.Window({id:'cart-win',contentEl:'cart-popup',width:228,height:130,cls:'ti-header-popup'});var showCartPopup=function(xy){hideAll();openWin=true;cartBtn.dom.src='/resources/images/btn-header-cart-open.gif';cartPopup.showAt(xy[0],xy[1],cartBtn.dom);};Ext.get('hdr-cart-btn').on('click',function(evt,btn){evt.preventDefault();if(cartPopup.isVisible()){cartPopup.hide();btn.src='/resources/images/btn-header-cart.gif';openWin=false;}
else{var b=Ext.get(btn);var bw=b.getWidth();var bx=b.getX();var xy=[bx,b.getY()+24];showCartPopup(xy);}});}
if(loginPopup){var loginErrorMsg=Ext.get('login-message');if(loginErrorMsg){var b=loginBtn;var bw=b.getWidth();var bx=b.getX();var lx=(bx+bw)-loginPopup.width;var xy=[lx,b.getY()+24];showLoginPopup(xy);}}});

