var loaded = false;
var PK_D = document, PK_N = navigator, PK_W = window, PK_UD = 'undefined', PK_UA = PK_N.userAgent.toLowerCase();
PK_B = (PK_D.compatMode && PK_D.compatMode != "BackCompat")? PK_D.documentElement : PK_D.body? PK_D.body : null;
var curX = curY = curViewX = curViewY = 0;
var winOffsetWidth = winOffsetHeight = winWidth = winHeight = winViewWidth = winViewHeight = 0;
var aniAll = false;
_Str = String.prototype;
_Num = Number.prototype;
_Str.empty = function(){return isEmp(this);};
_Str.getNum = function(){return isNaN(i = parseFloat(this))? 0 : i;};
_Str.isNum = function(){for(var i=0;i<this.length;i++){var c=PK_N.charAt(i); if((c<'0' || c>'9') && (c!='.'))return false;}return true;};
_Str.remove = function(sExp, sOpt){return this.replace(new RegExp(sExp, sOpt ? sOpt : 'g'), '');};
_Str.trim = function(bRmWhiteSpace){return (bRmWhiteSpace ? removeWhiteSpace(this) : trim(this));};
_Str.test = function(sExp, sOpt){return new RegExp(sExp, sOpt ? sOpt : 'g').test(this);};
_Num.isInRange = function(minX, maxX){return isInRange(this, minX, maxX);};
PK_W.onload = function(){
	PK_D.isLoaded = true;
	PK_B = (PK_D.compatMode && PK_D.compatMode != "BackCompat")? PK_D.documentElement : PK_D.body? PK_D.body : null;
	browser = new Browser();
	PK_W.defaultStatus = '';
	if(typeof(onLoadHandler) == 'function')onLoadHandler();
};/* Execute on document load */
PK_W.onunload = function(){
	if(typeof(onUnLoadHandler) == 'function')onUnLoadHandler();	
};/* Execute on document unload */
Browser = function(){
	this.isDom = PK_D.getElementById;
	this.isIE = PK_UA.indexOf('msie') != -1 && PK_D.all && PK_B && !this.isOpera;
	this.isIE6 = this.isIE && parseFloat(PK_N.appVersion.substring(PK_N.appVersion.indexOf('MSIE')+5)) >= 5.5;
	this.isIEWin = this.isIE && PK_UA.indexOf('win') != -1;
	this.isIEMac = this.isIE && PK_UA.indexOf('mac') != -1;
	this.isNN4 = PK_D.layers && typeof(PK_D.classes) != 'undefined';
	this.isNN6 = !this.Opera && PK_D.defaultView && typeof(PK_D.defaultView.getComputedStyle) != PK_UD;
	this.isOpera = PK_W.opera && PK_D.getElementById;
	this.isOpera6 = this.isOpera && !PK_D.defaultView;
	this.isOpera7 = this.isOpera && !this.isOpera6;
	this.isGecko = (PK_UA.indexOf('Gecko/200') != -1);
	this.isSafari = (PK_UA.indexOf('Safari') != -1);
};var browser = new Browser(); /* Create an instance of Browser() */
Window = function(wn){
	_w = Window.prototype;_w.PK_W = wn || PK_W;
	_w.PK_W.win = this;
	_w.s = new Object();_w.s.timeout = 25;
	_w.isIE = !browser.isOpera && PK_B;

	_w.scrRes = getScreenResoultion();
	_w.getOffset = function(){o=getWindowOffset(_w.PK_W);_w.offX=o[0];_w.offY=o[1];};
	_w.getSize = function(){s=getWindowSize(_w.PK_W);_w.width=s[0];_w.height=s[1];};
	_w.getViewSize = function(){o=getWindowOffset(_w.PK_W);s=getWindowSize(_w.PK_W);_w.viewWidth=o[0]+s[0];_w.viewHeight=o[1]+s[1];};
	_w.scrollTo = function(x, y){
		if (!_w.s.timeout) _w.s.timeout = 25;
		_w.getOffset();_w.s.sX = _w.offX;_w.s.sY = _w.offY;_w.s.eX = x;_w.s.eY = y;
		if(!_w.s.isScrolling){
			_w.s.dX = _w.s.dY = 16;
			_w.s.isScrolling = true;
			_w._scrollTo();
		}
	}
	_w._scrollTo = function(){
		sX = Math.round((_w.s.eX - _w.s.sX)/_w.s.dX);
		sY = Math.round((_w.s.eY - _w.s.sY)/_w.s.dY);
		if(Math.abs(sX) == 1 && _w.s.dX > 1)_w.s.dX /= 2;
		if(Math.abs(sY) == 1 && _w.s.dY > 1)_w.s.dY /= 2;
		if (_w.stop) { _w.s.isScrolling = false; }
		else if(sX != 0 || sY != 0){
			_w.s.sX += sX;
			_w.s.sY += sY;
			_w.PK_W.scrollTo(_w.s.sX, _w.s.sY);
			setTimeout("_w._scrollTo()", _w.s.timeout);
		}else{
			_w.PK_W.scrollTo(_w.s.eX, _w.s.eY);
			_w.s.isScrolling = false;
		}  
	}
};var win = new Window(PK_W);
Evt = function(evt){
	_e = this;_e.e = evt || PK_W.event;
	_e.button = _e.e.which || _e.e.button || 0;
	_e.button = (_e.e.type == 'mousedown') ? _e.button : ((_e.e && _e.e.button) ? _e.e.button : 0);
	_e.src = _e.e.srcElement || _e.e.target || _e.e.currentTarget || null;
	_e.x = _e.e.pageX || _e.e.clientX || 0;
	_e.y = _e.e.pageY || _e.e.clientY || 0;
	if(browser.isIE){_e.x += win.offX - (browser.isIEWin)*1;_e.y += win.offY - (browser.isIEWin)*1;}
	if(_e.e.modifiers){_e.alt = Event.ALT_MASK;_e.ctrl = Event.CONTROL_MASK;_e.shift = Event.SHIFT_MASK}
	else{_e.alt = _e.e.altKey || false;_e.ctrl = _e.e.ctrlKey || false;_e.shift = _e.e.shiftKey || false;}
};
function Event(evt){
	this.button=(this.e=evt||PK_W.event).which||this.e.button||0;
	this.src=this.e.srcElement||this.e.target||this.e.currentTarget||null;
	this.src.tag=(''+(this.src.tagName || this.src)).toLowerCase();
	this.type = this.e.type;
	pos=getCursorViewPos(evt);
	this.x=pos[0];this.y=pos[1];
	this.shiftKey = this.e.modifiers? this.e.modifiers&Event.SHIFT_MASK : (this.e.shiftKey || false);
	this.ctrlKey = this.e.modifiers? this.e.modifiers&Event.CONTROL_MASK : (this.e.ctrlKey || false);
	this.altKey = this.e.modifiers? this.e.modifiers&Event.ALT_MASK : (this.e.altKey || false);
	return this;
}
function addEvent(el, evt, handler, scope){
	var r = r1 = true, e = 'on' + evt, i = '_' + e, li = el[i] = el[i] || (el[e] ? [[el[e], el]] : []);
	li[li.length] = [handler,scope||el];
	el[e] = function(e){e = getEvent(e);for(var i in li){handler = li[i][0];el = li[i][1];if(handler.call)r1 = handler.call(el, e);else {el._call = handler; r1 = el._call(e);el._call = null;}r &= r1;}e = null;return r;};
}
function removeEvent(el,evt,handler,scope){var l,li=el['_on'+evt]||[];for(var i in li)if(li[i][0]==handler&&(!scope||li[i][1]==(scope||el)))return delete li[i];return false;}
function preventDefault(evt){e = getEvent(evt);if(e.preventDefault)e.preventDefault();else e.returnValue = false;}
function stopPropagation(evt){e = getEvent(evt);if(e.stopPropagation)e.stopPropagation();else e.cancelBubble = true;}
function stopEvent(evt){stopPropagation(evt);preventDefault(evt);return false;}
function getEvent(evt){return evt?evt:PK_W.event;}
function getEventElement(evt){evt = getEvent(evt);return evt.srcElement?evt.srcElement:evt.target||evt.currentTarget;}
function getCursorPos(evt){curX=browser.isIE?event.clientX:evt.clientX;curY=browser.isIE?event.clientY:evt.clientY;return Array(curX,curY);}
function getCursorViewPos(evt){offset=getWindowOffset();curViewX=browser.isIE?(offset[0]+evt.clientX):evt.pageX;curViewY=browser.isIE?(offset[1]+evt.clientY):evt.pageY;return Array(curViewX,curViewY);}
function getScreenResoultion(){/*s1=(self.java)?(java.awt.Toolkit.getDefaultToolkit()).getScreenSize():screen;return s1?(s1.width+'x'+s1.height):(0+'x'+0);*/}
function getWindowOffset(wn){
	wn = wn||PK_W;
	winOffsetX = ((PK_B && PK_B.scrollLeft) && !browser.isOpera) ? PK_B.scrollLeft : (wn.pageXOffset||0);
	winOffsetY = ((PK_B && PK_B.scrollTop) && !browser.isOpera) ? PK_B.scrollTop : (wn.pageYOffset||0);
	return [winOffsetX, winOffsetY];
}
function getWindowSize(wn){
	var iw=ih=0,wn=(wn||PK_W);
	winWidth = (PK_B && PK_B.clientWidth && !browser.isOpera6) ? PK_B.clientWidth : (iw = window.innerWidth) ? (!browser.isOpera6 && PK_D.height>window.innerHeight) ? iw-=16 : iw : 0;
	winHeight = (PK_B && PK_B.clientHeight && !browser.isOpera6) ? PK_B.clientHeight : (ih = window.innerHeight) ? (!browser.isOpera6 && PK_D.width>window.innerWidth) ? ih-=16 : ih : 0;
	return [winWidth, winHeight];
}
function getWindowViewSize(wn){
	wn = wn||PK_W;
	winViewWidth = browser.isIE ? PK_D.body.scrollLeft + PK_D.body.clientWidth : wn.pageXOffset + wn.innerWidth;
	winViewHeight = browser.isIE ? PK_D.body.scrollTop + PK_D.body.clientHeight : wn.pageYOffset + wn.innerHeight;
	return [winViewWidth, winViewHeight];
}
function getElementsByCondition(condition, d) {
	if(!d)d = PK_D;
	allElems = d.all||d.getElementsByTagName('*');
	arrElems = new Array();
	allElemsLen = allElems.length;
	for(var i = 0; i < allElemsLen; i++) {
		elem = allElems[i];
		if(condition(elem, i))arrElems[arrElems.length] = elem;
	}return arrElems;
}
function getElementsByClass(className, tagName, exactMatch) {
	allElems = getElementsByTagName(tagName, PK_D);
	allElemsLen = allElems.length;
	arrElems = new Array();
	for(curElem in allElems){
		isMatch = curElem.className && (exactMatch ? curElem.className == className : curElem.className.indexOf(className) != -1);
		if(isMatch) {
			arrElems[arrElems.length] = curElem;
		}
	}return arrElems;
}
function getElementsByTagName(tagName, el){
	el = el||PK_D;	allElems = null;
	if(!tagName)allElems=(el.all)?el.all:(el.getElementsByTagName('*').length)?el.getElementsByTagName('*'):null;
	else{tagName = tagName.toUpperCase();allElems = (el.all)?el.all.tags(tagName):el.getElementsByTagName(tagName);}
	return allElems;
}
function getParentById(el, id, exactMatch) {
	elemParent = null;
	pNode = el;
	while(pNode && !elemParent) {
		isParent = pNode.id && (exactMatch ? pNode.id == id : pNode.id.indexOf(id) != -1);
		if(isParent){
			elemParent = pNode;
		}else{
			pNode = pNode.parentNode ? pNode.parentNode : pNode.parentElement;
		}
	}return elemParent;
}
function getObject(id, pNode){
	Obj = null;
	if(isObj(id))Obj = id;
	else{
		if(!isObj(pNode))pNode=PK_D;
		if(pNode.getElementById)Obj = pNode.getElementById(id);
		else if(pNode.all)Obj = pNode.all[id];
		else if(pNode.layers){
			Obj = getLayer(id, pNode);
		}else if(PK_D.forms){
			for(var i=0; i<PK_D.forms.length; i++)if(PK_D.forms[i][id])Obj = PK_D.forms[i][id];
		}
	}
	if(Obj && !Obj.style)Obj.style = Obj;
	return Obj;
}
function getLayer(id, pNode){
	for(i=0; i<pNode.PK_D.layers.length; i++){
		cLayer = pNode.PK_D.layers[i];
		if(cLayer.id == id)return cLayer;
		if(cLayer.PK_D.layers.length)layer = getLayer(id, cLayer);
		if(layer)return layer;
	}return null;
}
function clip(el,t,r,b,l){
	if(!(el=getObject(el)))return false;
	if(el.style) {
		if(isNum(l))el.style.clip='rect('+t+'px, '+r+'px, '+b+'px, '+l+'px)';
		else{
			el.style.clip='rect(0px, '+t+'px, '+ r+'px, 0px)';
		}
	}
}
/*function setVisibility(el, visibility){if(!(el=getObject(el)))return false;setObjectVisibility(el,visibility);}*/
function setVisibility(el, v){
	if(!(el=getObject(el)))return false;
	el.style.display = v ? 'block' : 'none';
	if(!browser.isNN4)el.style.visibility = v ? '' : 'hidden';
	else el.visibility = v ? 'show' : 'hide';
}
/*function setContent(id, text){elem=getObject(id);setObjectContent(elem,text);}*/
function setContent(el, c, append){
	if(!(el=getObject(el)))return false;
	if(typeof el.innerHTML != PK_UD){p=append?el.innerHTML:'';el.innerHTML ='';el.innerHTML=p+c+'';}
	else if(PK_D.layers){c1 = '<p class='+el.id+'>'+c+'</p>';el.PK_D.open();el.PK_D.write(c1);el.PK_D.close();}
	else {el.PK_D.open();el.PK_D.write(c);el.PK_D.close();}
}
function createElement(tagName, parent, id, className, style){
	if(!parent || parent == PK_D)parent = PK_B;
	else parent = getObject(parent);
	if(parent.appendChild){
		elem = PK_D.createElement(tagName);
		elem.id = id;
		elem.className = className;
		parent.appendChild(elem);
	}else if(parent.innerHTML){
		curCode = parent.innerHTML ? parent.innerHTML : '';
		parent.innerHTML = curCode + '<'+tagName+'" id ="'+id+' class ="'+className+'" ></'+tagName+'>';
	}else{
		if(!cls)cls = id;
		parent.writeln('<layer id="'+id+'" class="'+cls+'">'+text+'</layer>');
	}
	elem = getObject(id);
	if(elem)for(s in style){elem.style[s] = style[s];}
}
function getObjectPos(el){
	x=y=0;
	if(el.offsetParent)while(el.offsetParent){x+=el.offsetLeft;y+=el.offsetTop;el=el.offsetParent;}
	else if(el.x&&el.y){x+=el.x;y+=el.y;}
	return Array(x, y);
	if(!(el = getObject(el)))return false;
	var p = null, x = 0, y = 0, box, winOffset;
	winOffset = getWindowOffset();
	if(el.getBoundingClientRect){
		box = el.getBoundingClientRect();
		return [box.left + winOffset[0], box.top + winOffset[1]];
	}else if(PK_D.getBoxObjectFor){
		box = PK_D.getBoxObjectFor(el);
		borderLeft = parseInt(getStyle(el, 'border-left-width'));
		borderTop = parseInt(getStyle(el, 'border-top-width'));
		x = box.x - borderLeft;y = box.y - borderTop;
	}else{
		x = el.offsetLeft;y = el.offsetTop;p = el.offsetParent;
		if(el != p)while(p){x+=p.offsetLeft;y+=p.offsetTop;p=p.offsetParent;}
		if(browser.isOpera||(browser.isSafari&&getStyle(el,'position')=='absolute')){x-=winOffset[0];y-=winOffset[1];} 
	}
	p = (el.parentNode)?el.parentNode:null;
	while(p && p.tagName != 'BODY' && p.tagName != 'HTML'){x-= p.scrollLeft;y -= p.scrollTop;p=(p.parentNode)?p.parentNode:null;}
	return [x, y];
}
function setObjectPos(el, x, y){
	var sPos = getStyle(el, 'position');
	if(sPos == 'static'){setStyle(el, 'position', 'relative');sPos = 'relative';}
	var pos = getObjectPos(el);
	var dX = Int(getStyle(el, 'left')), dY = Int(getStyle(el, 'top'));
	if(isNaN(dX))dX = (sPos == 'relative') ? 0 : el.offsetLeft;
	if(isNaN(dY))dY = (sPos == 'relative') ? 0 : el.offsetTop;
	if(x)el.style.left = x - pos[0] + dX;
	if(y)el.style.top = y - pos[1] + dY;
}
function getObjectSize(el){
	width=browser.isNN4?el.clip.width:(el.offsetWidth||el.style.pixelWidth||0);
	height=browser.isNN4?el.clip.height:(el.offsetHeight||el.style.pixelHeight||0);
	return [width, height];
}
function getStyle(el, cssProp){
	var style, p = PK_UD, arElems = [];
	var a = [5, 6]
	if(isArr(cssProp)){
		if(isArr(el))for(var i = 0; i < cssProp.length; i++)arElems.push(getStyle(el[i], cssProp[i]));
		else for(var i = 0; i < cssProp.length; i++)arElems.push(getStyle(el, cssProp[i]));
		return arElems;
	}
	if(cssProp == 'opacity')return getOpacity(el);
	if(!(el = getObject(el)))return p;
	else if(browser.isNN6){
		p = PK_D.defaultView.getComputedStyle(el, null).getPropertyValue(cssProp);
	}else if(browser.isNN4 || (s = (el.currentStyle || el.style))){
		op = cssProp;
		if(browser.isNN4){
			ar1 = ['border-width', 'margin', 'padding', 'background-color'];
			ar2 = ['borderWidths', 'margins', 'paddings', 'bgColor'];
			arLen = ar1.length;
			for(i = 0; i< arLen; i++){if(cssProp == ar1[i]){cssProp = ar2[i];break;}}
			if(op != cssProp)p = Str(eval('el.'+cssProp));
		}
		if(op == cssProp){
			a = cssProp.split('-');
			cssProp = a[0];
			for(i=1;i<a.length;i++){c=a[i].charAt(0);cssProp+=a[i].replace(c,c.toUpperCase());}
			p = (el.currentStyle) ? el.currentStyle[cssProp] : el.style[cssProp];
		}
	}return p;
}
function setStyle(el, cssProp, v){
	var style, p = PK_UD, arElems=[];
	if(isArr(cssProp)){
		if(isArr(el))for(var i = 0; i < cssProp.length; i++)arElems.push(setStyle(el[i], cssProp[i], v[i]));
		else for(var i = 0; i < cssProp.length; i++)arElems.push(setStyle(el, cssProp[i], v[i]));
		return arElems;
	}
	if(cssProp == 'opacity')return setOpacity(el, v);
	if(!(el = getObject(el)))return p;
	op = cssProp;
	if(browser.isNN4){
		ar1 = ['border-width', 'margin', 'padding', 'background-color'];
		ar2 = ['borderWidths', 'margins', 'paddings', 'bgColor'];
		arLen = ar1.length;
		for(var i = 0; i< arLen; i++){if(cssProp == ar1[i]){cssProp = ar2[i];break;}}
		if(op != cssProp)p = eval('el.'+cssProp+' = "'+v+'"');
	}
	if(op == cssProp){
		a = cssProp.split('-');
		cssProp = a[0];
		for(var i=1;i<a.length;i++){c=a[i].charAt(0);cssProp+=a[i].replace(c,c.toUpperCase());}
		p = !!(typeof el.style[cssProp] != PK_UD && (el.style[cssProp] = v));
	}return p;	
}
function getOpacity(el){
	v = 1;
	if(browser.isIE){
		try{v = el.filters.item('DXImageTransform.Microsoft.Alpha').opacity / 100;}catch(e){
			try{v = el.filters.item('alpha').opacity / 100;}catch(e){}
		}
	}else{s = el.style;v = s.opacity ? s.opacity : s.MozOpacity ? s.MozOpacity : s.KhtmlOpacity;}
	return v;
}
function setOpacity(el, v){
	if(!(el = getObject(el)))return false;
    if(browser.isIE && isStr(el.style.filter))el.style.filter = 'alpha(opacity='+v*100+')';
	else{
		if(v == 1)v = 0.9999;
		el.style.opacity = v;
		setStyle(el, '-moz-opacity', v);
		setStyle(el, '-khtml-opacity', v);
	}
}
function enableSelection(el){
	if(!(el = getObject(el)))return false;
	if(typeof el.onselectstart != PK_UD)el.onselectstart = null;
	else{
		setStyle(el, 'user-select', '');
		setStyle(el, '-moz-user-select', '');
		setStyle(el, '-khtml-user-select', '');
		removeEvent(el, 'mousedown', el.enSel);
	}
	setStyle(el, 'cursor', 'auto');
}
function disableSelection(el){
	if(!(el = getObject(el)))return false;
	if(typeof el.onselectstart != PK_UD)el.onselectstart = new Function("return false;");
	else{
		setStyle(el, 'user-select', 'none');
		setStyle(el, '-moz-user-select', 'none');
		setStyle(el, '-khtml-user-select', 'none');
		el.enSel = function(evt){preventDefault(evt);};
		addEvent(el, 'mousedown', el.enSel);
	}
	setStyle(el, 'cursor', 'default');
}
function clearTimer(timer){clearTimeout(timer);timer = null;}
function Int(n){return isNaN(n = parseInt(n, 10))? 0 : n;}
function Str(s){return (!s) ? '' : '' + str;}
function setCookie(n, v, e, p){PK_D.cookie = n+'='+escape(v)+((!e)?'':('; expires='+e.toGMTString()))+'; path='+((!p)?'/':p);}
function delCookie(n, p){if(getCookie(n)){PK_D.cookie = n+'=; path='+((!p)?'/':p)+'; expires='+new Date(0).toGMTString();}}
function getCookie(n){
v = null, n = n + '=';
	if(PK_D.cookie.length > 0){
		sPos = PK_D.cookie.indexOf(n);
		if(sPos != -1){
			sPos += n.length;
			ePos = PK_D.cookie.indexOf(';', sPos);
			if(ePos == -1)ePos = PK_D.cookie.length;
			v = unescape(PK_D.cookie.substring(sPos, ePos));
		}
	}
	return v;
}
function getDays(Year, Month){monthDays = [31, (isLeap(Year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];return isDef(Month) ? (isInRange(Month, 0, 11) ? monthDays[Month] : null) : monthDays;}
function isLeap(Year){return ((Year % 4 == 0 && Year % 100 != 0) || (Year % 400 == 0));}
function isArr(varX){return (isObj(varX) && varX.length);}
function isDef(varX){return (typeof(varX) !== 'undefined');}
function isEmp(varX){return (isDef(varX) && (varX == '' || varX == null));}
function isFun(funX){return (typeof(funX) == 'function');}
function isNum(varX){return !(isNaN(varX) || typeof(varX)!='number');}
function isStr(varX){return typeof(varX) =='string';}
function isObj(objX){return typeof(objX) == 'object';}
function isInRange(varX, minX, maxX){return (varX >= minX && varX <= maxX);}
function trim(Str){return (Str == null) ? null : Str.replace(/^[ \s]+|[ \s]+$/g, '');}
function removeWhiteSpace(Str){return (Str == null) ? null : trim(Str.replace(/\s+/g, ' '));}
function randomNumber(max){return Math.round(Math.random() * max);}
function $(){
	var arElems=[];
	if(arguments.length == 1 && isStr(arguments[0]))return getObject(arguments[0]);
	for(var i = 0; i < arguments.length; i++){
		var el = arguments[i];
		if(isStr(id))el = getObject(id);
		arElems.push(el);
	}
	return arElems;
}