/*<![CDATA[*/
// Slide Panels (04-May-2009)
// by: Vic Phillips http://www.vicsjavascripts.org.uk

// ****** Functional Code(3.11K) - N0 NEED to Change.

function zxcSlidePanel(mde,obj,cls,inn,out,ms,sc,srtfin){
 obj=typeof(obj)=='string'?document.getElementById(obj):obj;
 if (obj){
  var panel=zxcSPClassName(cls,obj)[0];
  if (panel){
   var oop=new zxcSPOOP(mde,obj,panel,inn,out,ms,sc,srtfin);
   return oop;
  }
 }
}

function zxcSPSlide(oop,ud,ms){
 if (oop&&oop.slide){
  if (typeof(ud)=='boolean') oop['slide'+(ud?'in':'out')](false,ms);
  else oop.slideclick(false,ms);
 }
}

function zxcSPOOP(mde,obj,panel,inn,out,ms,sc,srtfin){
 this.obj=obj;
 this.panel=panel;
 this.sincos=sc&&sc.charAt?sc.toLowerCase():false;
 this.ms=ms||1000;
 mde=mde.charAt(0).toUpperCase();
 this.mde=mde=='L'||mde=='R'?['left','width']:['top','height'];
 this.mm=mde=='L'||mde=='T'?[0,-zxcSPWH(this.panel,this.mde[1])-5]:[zxcSPWH(this.obj,this.mde[1])-zxcSPWH(this.panel,this.mde[1]),zxcSPWH(this.obj,this.mde[1])+5];
 if (srtfin) this.mm=srtfin;
 this.panel.style.display='block';
 this.oop=zxcBAnimator(this.mde[0],this.panel,this.mm[0],this.mm[1],10);
 this.io=false;
 if (inn=='click'){
  this.addevt(this.obj,inn,'slideclick');
 }
 else if (inn){
  this.addevt(this.obj,inn,'slidein');
  if (out) this.addevt(this.obj,out,'slideout');
 }
}

zxcSPOOP.prototype.slideclick=function(e,ms){
 if (!e||this.ckevt(e,this.panel)) this.slide(this.mm[this.io?1:0],ms);
}

zxcSPOOP.prototype.slidein=function(e,ms){
 if (!e||this.ckevt(e,this.obj)) this.slide(this.mm[0],ms);
}

zxcSPOOP.prototype.slideout=function(e,ms){
 if (!e||this.ckevt(e,this.obj)) this.slide(this.mm[1],ms);
}

zxcSPOOP.prototype.slide=function(fin,ms){
 ms=ms||this.ms;
 this.oop.update([this.oop.data[0],fin],ms,this.mm,this.sincos);
 this.io=!this.io;
 this.panel.style.display='block';
}


zxcSPOOP.prototype.ckevt=function(e,p){
 var eobj;
 if (!e) var e=window.event;
 e.cancelBubble=true;
 if (e.stopPropagation) e.stopPropagation();
 if (e.target) eobj=e.target;
 else if (e.srcElement) eobj=e.srcElement;
 if (eobj.nodeType==3) eobj=eobj.parentNode;
 if (e.type!='click') eobj=(e.relatedTarget)?e.relatedTarget:(e.type=='mouseout')?e.toElement:e.fromElement;
 if (!eobj||eobj==p||e.type=='click'&&eobj.zxc) return false;
 while (eobj.parentNode){
  if (eobj==p||e.type=='click'&&eobj.zxc) return false;
  eobj=eobj.parentNode;
 }
 return true;
}

zxcSPOOP.prototype.addevt=function(o,t,f){
 var oop=this;
 if (o.addEventListener) o.addEventListener(t,function(e){ return oop[f](e);}, false);
 else if (o.attachEvent) o.attachEvent('on'+t,function(e){ return oop[f](e); });
 else {
  var prev=o['on'+t];
  if (prev) o['on'+t]=function(e){ prev(e); oop[f](e); };
  else o['on'+t]=o[f];
 }
}

function zxcSPClassName(nme,el,tag){
 if (typeof(el)=='string') el=document.getElementById(el);
 el=el||document;
 for (var tag=tag||'*',reg=new RegExp('\\b'+nme+'\\b'),els=el.getElementsByTagName(tag),ary=[],z0=0; z0<els.length;z0++){
  if(reg.test(els[z0].className)) ary.push(els[z0]);
 }
 return ary;
}

function zxcSPWH(obj,par){
 if (obj.currentStyle) return parseInt(obj.currentStyle[par]);
 return parseInt(document.defaultView.getComputedStyle(obj,null).getPropertyValue(par));
}
