if(!Array.prototype.push)Array.prototype.push=function(){var t=this,a=arguments,i=0,L=a.length;for(;i<L;++i)t[t.length]=a[i];return t.length;}
if(!document.getElementsByClassName&&Array.prototype.concat&&String.prototype.split)document.getElementsByClassName=function _getElementsByClassName(clslst){
	clslst=clslst.toLowerCase().split(" ");
	function r(t,lst){
		var i=0,c=t.childNodes,a=new Array(),x;
		for(;c&&i<c.length;++i){
			if((x=c[i].className)&&(x=x.toLowerCase().split(" ")))for(var j=0,k;j<clslst.length;++j)for(k=0;k<x.length;++x)if(clslst[j]==x[k])a.push(c[i]);
			if((x=r(c[i])).length)a=a.concat(x);
		}
		return a;
	}
	var ec=r(this,clslst);
	return ec?ec:null;
};



function DOMaddEventListener(e,type,func,cap){
	if(e.attachEvent){e.attachEvent("on"+type,func);return 1;}/*Opera 9.27 needs attachEvent first*/
	else if(e.addEventListener){e.addEventListener(type,func,cap?cap:true);return 1;}
}
function DOMremoveEventListener(e,type,func,cap){
	if(e.detachEvent)e.detachEvent("on"+type,func);
	else if(e.removeEventListener)e.removeEventListener(type,func,cap?cap:true)
}
function StopEvent(e){if(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;e.cancelBubble=true;}return 0;}

var _DOMHlprSetOpacity;function DOMHlprSetOpacity(e,o){
	if(e){
		if(_DOMHlprSetOpacity==undefined)_DOMHlprSetOpacity=e.sourceIndex&&"\v"=="v";
		if(_DOMHlprSetOpacity)e.style["filter"]="alpha(opacity="+o+")";
		e.style["opacity"]=o/100;
	}
}
function DOMHlprSetVis(e,v){e.style.visibility=v?"visible":"hidden";}
function DOMHlprSetStyles(e,s){if(e&&e.style&&(s=s.split(";")))for(var p,i=0;i<s.length;++i)if(s[i].length){p=s[i].split(":");e.style[p[0]]=p[1];}}

function DOMHlprGetPageScroll(){
	var w=self,d=document,obj,pp="scroll",pn=new Array("Left","Top"),ps="";
	if(w.pageYOffset||w.pageXOffset){obj=w;pp="page";ps="Offset";pn=new Array("X","Y");}
	/*IE:6:Strict*/else if((obj=d.documentElement)&&obj.scrollTop){}
	/*IE*/else obj=d.body;
	return new Array(obj[pp+pn[0]+ps]||0,obj[pp+pn[1]+ps]||0);
}
function DOMHlprGetSize(){
	var w=self,d=document,de=d.documentElement,db=d.body,dw,dh,ww,wh,x
	IEq="\v"=="v"&&(d.compatMode=="BackCompat"||d.documentMode==5);
	if(de){
		dw=de.scrollWidth;dh=de.scrollHeight;
		ww=de.clientWidth;wh=de.clientHeight;
	}
	if(!dw||!dh||(x=db.scrollWidth)>dw||(x=db.scrollHeight)>dh||(IEq&&db.scrollHeight)){
		dw=db.scrollWidth;dh=db.scrollHeight;
	}
	if(w.opera/*&&wh<dh*/&&w.opera.version&&parseFloat(w.opera.version())<9.60){//Opera 9.27
		wh=(x=w.innerHeight)<dh?x:dh;
	}
	if(!ww&&!wh){
		ww=db.clientWidth;wh=db.clientHeight;
	}
	return new Array(ww>dw?ww:dw,wh>dh?wh:dh,ww,wh,dw,dh);//max,wnd,doc
}

var ImgLightbox=new Object();
function ImgLightbox_Show(url){
	var t=ImgLightbox,func=arguments.callee,doc=document,e=url,opa=85,img;
	if(e&&e.clientX)StopEvent(e);
	if(!t.IMG&&doc.createElement&&doc.body&&func&&(t.IP=doc.createElement("DIV"))){
		var n,commonstyle="border:0;padding:0;margin:0;position:absolute;top:0;left:0;width:100%;height:100%;textAlign:center;display:none";
		t.OL=doc.createElement("DIV");
		DOMHlprSetStyles(doc.body.appendChild(t.OL),commonstyle+";zIndex:9998;backgroundColor:#444444;overflow:hidden;");
		t.IP.appendChild(t.IMG=doc.createElement("IMG"));
		DOMHlprSetStyles(t.IMG,"padding:9px;margin:0;marginLeft:auto;marginRight:auto;border:1px solid gray;backgroundColor:white;marginTop:2em;");
		DOMHlprSetStyles(doc.body.appendChild(t.IP),commonstyle+";zIndex:9999;overflow:auto;");
		if(!DOMaddEventListener(t.IP,"click",func))return 0;
		/*n=doc.createElement("A");DOMHlprSetVis(n);t.IP.appendChild(n);n.onclick=func;n.href="#";n.appendChild(doc.createTextNode("X"));
		DOMHlprSetStyles(n,"padding:4px;margin:0;border:1px solid gray;position:absolute;top:-1px;left:-1px;backgroundColor:white;fontWeight:bold;fontSize:9pt;color:black;textDecoration:none;");
		setTimeout((function(e){return function(){DOMHlprSetVis(e,1)}})(n),2222);*/
	}
	if(img=t.IMG){
		var d,opaL=20,show=t.OL.style["display"].toLowerCase()=="none",now=(new Date()).getTime();
		if(now-t.Last<55)return 1;t.Last=now;
		(show?DOMaddEventListener:DOMremoveEventListener)(document,"keypress",func);
		img.src="images/ImgLightboxLoad.gif";
		if(show){
			var ps=DOMHlprGetPageScroll(),pd=DOMHlprGetSize();
			(d=new Image()).onload=(function(t,i){return function(){t.IMG.src=i.src}})(t,d);
			d.src=url;
			DOMHlprSetOpacity(t.OL,opaL);
			DOMHlprSetStyles(img,"marginTop:"+(ps[1]+20)+"px");
			if(!t.OnSize){
				t.OnSize=function(t){
					var pd=DOMHlprGetSize(),e=[t.OL,t.IP],i;
					for(i=0;i<e.length;++i)DOMHlprSetStyles(e[i],"width:"+pd[2]+"px;height:"+pd[3]+"px");
					for(pd=DOMHlprGetSize(),i=0;i<e.length;++i)DOMHlprSetStyles(e[i],"width:"+pd[0]+"px;height:"+pd[1]+"px");
				};
				DOMaddEventListener(window,"resize",(function(t,i){return function(){t.OnSize(t)}})(t));
			}
			t.OnSize(t);
			(function(e,pos,end,step,speed){
				speed=speed||10;step=step||5;var func=arguments.callee;
				DOMHlprSetOpacity(e,pos);
				if(pos!=end){
					pos+=step;if(pos>end)pos=end;
					setTimeout(function(){func(e,pos,end,step,speed);e=null;},speed);
				}else e=null;
			})(t.OL,opaL,opa,20,10);
		}
		t.IP.style[d="display"]=t.OL.style[d]=show?"block":"none";
		return 1;
	}
}
function ImgLightbox_InitForElmClass(cls){
	var ec,i,d=document;
	if(d.getElementsByClassName){
		if(ec=d.getElementsByClassName(cls))
			for(i=0;i<ec.length;++i)
				DOMaddEventListener(ec[i],"click",function(e){
					var n=e?(e.target||e.srcElement):0;
					if(e.button<1&&n&&ImgLightbox_Show(n.href))return StopEvent(e);
				});//TODO: only hook document.onclick and check for "data-MyAttr" in event handler 
	}
}

function CryptShft(s,e,o){o=o||1;var r="",i;for(i=0;i<s.length;++i)r+=String.fromCharCode(s.charCodeAt(i)+(e?+o:-o));return r;}
function ImgPreload(d,imgs){if(d)d=d+"/";for(var a=imgs,i=0;i<a.length;++i)if(a[i])(new Image).src=d+a[i];}

