﻿document.appendCss=function(url){var c=document.createElement('link');c.type='text/css';c.rel='stylesheet';c.href=''+url;document.getElementsByTagName('head')[0].appendChild(c);}
Array.prototype.removeAt=function(from,c){var to=c?(from+c-1):null;var rest=this.slice((to||from)+1||this.length);this.length=from<0?this.length+from:from;return this.push.apply(this,rest);}
Array.prototype.remove = function(e){for(var i=0;i<this.length;i++)if(this[i]==e)return this.removeAt(i,1);}
window.Ka=function(){};
Ka.$=function(e){if(typeof e == 'string')return document.getElementById(e);return e;};
Ka.$register=function()
{
	var l=document.getElementsByTagName('SCRIPT');
	for(var i=0;i<l.length;i++)
	{
		var s=(''+l[i].src);
		var j=s.indexOf('/Ka.js?l=');
		if(j!=-1)
		{
			var r=s.substr(0, j+1);
			var l=s.substr(j+9,s.length);
			l=l.split(/,/g);
			for(i=0;i<l.length;i++)
			{
				var c=document.createElement('SCRIPT'),m=unescape(l[i]).trim();
				c.type='text/javascript';
				c.src=r+m+'/'+m+'.js';
				document.getElementsByTagName('head')[0].appendChild(c);
			}
			Ka.$register=function(){};
			return;
		}
	}
}
Ka.$select=function(e){e=Ka.$(e);try{e.focus();e.select();}catch(ex){}};
Ka.$deselect=function(e){e=Ka.$(e);if(!e||e._ka_dsl_a6547bc6hfd7schn7)return false;try{e.style.MozUserSelect='none';}catch(ex){};try{e.style.KhtmlUserSelect='none';}catch(ex){};e.unselectable='on';e.onselectstart=function(){return false;};return e._ka_dsl_a6547bc6hfd7schn7=true;};
Ka.$attach=function(e,evname,func) {e=Ka.$(e);if(e.attachEvent)e.attachEvent('on'+evname,func);else if(e.addEventListener)e.addEventListener(evname,func,true);else e['on'+evname]=func;}
Ka.Key = {LEFT:37,UP:38,RIGHT:39,DOWN:40,ESC:27,ENTER:13,
	special: function(e)
	{			
		var evt = window.event || e;
		if (!evt) return {};
		
		var ctrlPressed = 0;
		var altPressed = 0;
		var shiftPressed = 0;
		
		if (Ka.Browser.Browser=='Netscape'&&Ka.Browser.Version<=4)
		{
			var mString = (e.modifiers+32).toString(2).substring(3,6);
			shiftPressed = (mString.charAt(0)=='1');
			ctrlPressed = (mString.charAt(1)=='1');
			altPressed  = (mString.charAt(2)=='1');
		}
		else
		{
			shiftPressed = evt.shiftKey;
			altPressed  = evt.altKey;
			ctrlPressed = evt.ctrlKey;
		}
		
		return { 'ctrl':ctrlPressed,'alt':altPressed,'shift':shiftPressed };
	}
}
Ka.Img = {
	Instances: [],
	preload: function(url)
	{
		if (typeof url == typeof [])
		{
			for(var i=0;i<url.length;i++)
				this.preload(url[i]);
			return;
		}
		for(var i=0;i<Ka.Img.Instances.length;i++)
		{
			if(Ka.Img.Instances[i].src==url)
				return Ka.Img.Instances[i];
		}
		var img = new Image();
		img.src = url;
		Ka.Img.Instances[Ka.Img.Instances.length] = img;
		return img;
	}
}
Ka.Browser = {
	init: function()
	{
		var _db=function(s,ss,i,v,p){return{string:s,subString:ss,identity:i,versionSearch:v,prop:p}}
		var dataBrowser = [
			_db(navigator.userAgent,'Chrome','Chrome'),
			_db(navigator.userAgent,'OmniWeb','OmniWeb','OmniWeb/'),
			_db(navigator.vendor,'Apple','Safari','Version'),
			_db(null,null,'Opera',null,window.opera),
			_db(navigator.vendor,'iCab','iCab'),
			_db(navigator.vendor,'KDE','Konqueror'),
			_db(navigator.userAgent,'Firefox','Firefox'),
			_db(navigator.vendor,'Camino','Camino'),
			_db(navigator.userAgent,'Netscape','Netscape'),
			_db(navigator.userAgent,'MSIE','Explorer','MSIE'),
			_db(navigator.userAgent,'Gecko','Mozilla','rv'),
			_db(navigator.userAgent,'Mozilla','Netscape','Mozilla')
		];
		var _do=function(s,ss,i){return{string:s,subString:ss,identity:i}}
		var dataOS = [_do(navigator.platform,'Win','Windows'),_do(navigator.platform,'Mac','Mac'),_do(navigator.platform,'iPhone','iPhone/iPod'),_do(navigator.platform,'Linux','Linux')];
		var _ss = function (data)
		{
			for (var i=0;i<data.length;i++)
			{
				var s = data[i].string;
				var p = data[i].prop;
				var v = data[i].versionSearch || data[i].identity;
				if (s)
				{
					if (s.indexOf(data[i].subString) != -1)
						return {'i':data[i].identity,'v':v};
				}
				else if (p)
					return {'i':data[i].identity,'v':v};
			}
		}
		var _sv = function (data,v)
		{
			var index = data.indexOf(v);
			if (index == -1) return;
			return parseFloat(data.substring(index + v.length + 1));
		}		
		var b = _ss(dataBrowser);
		this.Browser = b.i || 'unknown browser';
		this.Version = _sv(navigator.userAgent, b.v) || _sv(navigator.appVersion, b.v);
		if(this.Version)this.Version=parseInt(this.Version);
		this.OS = _ss(dataOS).i || 'unknown OS';
	}
};
Ka.Browser.init();
Ka.$popup=function(e,html,params)
{
	if (!Ka.$popup.handler)
	{
		Ka.$popup.handler = true;
		Ka.$popup.Instances=[];
		Ka.$popup._ie6fix=function(c)
		{
			// overlay selects
			if (Ka.Browser.Browser=='Explorer'&&Ka.Browser.Version<=6)
			{
				var f=''+c.innerHTML;
				if(f.substr(0, 7).toUpperCase()!='<IFRAME')
					c._innerHTMLie6frame=f;
				f='<iframe style="position:absolute;z-index:-1;filter:mask();border:0;margin:0;padding:0;top:0;left:0;width:'+c.style.width+';height:'+c.style.height+';overflow:hidden;"></iframe>';
				c.innerHTML=c._innerHTMLie6frame+f;
			}
		}
		Ka.$attach((document.all?document:window),'mouseup',function(ev){
			var evt = ev?ev:event;
			var elm = evt.srcElement?evt.srcElement:evt.target;
			var eParent = elm;
			while(eParent!=null)
			{
				if(eParent.KaPopupParent!=null||eParent.KaPopupDiscard) return;
				eParent=eParent.parentNode;
			}
			for(var i=Ka.$popup.Instances.length-1;i>=0;i--)
			{
				var c=Ka.$popup.Instances[i];
				if (c&&c.params&&c.params.clickHide)
					c.hide();
			}
		});
	}

	if (!params) params = {};
	var k, def = {pos:0,shadow:1,zIndex:12093,maxWidth:0,maxHeight:0,clickHide:1,align:0,minWidth:0};
	for (k in def)
	{
		if (typeof(params[k]) != typeof(def[k]))
			params[k] = def[k];
	}

	e=Ka.$(e);
	if (!e.KaPopupContainer)
	{
		var c = document.createElement('DIV');
		c.style.position = 'absolute';
		c.style.overflow = 'hidden';
		c.style.display = 'none';
		c.style.left = '-4000px';
		c.style.top = '-4000px';
		c.style.width = '1px';
		c.style.height = '1px';
		c.style.backgroundColor = '#fff';
		Ka.$deselect(c);
		c.KaPopupParent = e;
		c.hide = function(){if(this.style.display=='none')return false;this.scrollTop=0;this.style.display='none';if(this.sc)this.sc.style.display='none';return true;};
		c.show = function(){Ka.$popup(this.paramsE,null,this.params);};
		c.setHTML=function(html){this.innerHTML=html;Ka.$popup._ie6fix(this);};
		e.KaPopupContainer = c;
		document.body.insertBefore(c, document.body.firstChild);				
		Ka.$popup.Instances[Ka.$popup.Instances.length]=c;
	}
	
	var c = e.KaPopupContainer;	
	if(html!=null||c.paramsE==null)
	{
		c.scrollTop = 0;
		c.style.visibility = 'hidden';
		c.style.left = '-4000px';
		c.style.top = '-4000px';
		c.style.zIndex = 0;
		c.style.width = '1px';
		c.style.height = '1px';
		c.innerHTML = html;
		c.params = params;
		c.paramsE = e;
	}
	else
	{	
		c.style.visibility = 'hidden';
		c.style.left = '-4000px';
		c.style.top = '-4000px';
	}
	if(params.minWidth>0)
		c.style.width=params.minWidth+'px';
	c.style.display = 'block';	
	
	var p_dim = function(e,wh)
	{
		var d = (wh?e.offsetWidth:e.offsetHeight);
		if (e.childNodes&&e.childNodes.length>0)
		{
			e=e.childNodes[0];
			var d2 = (wh?e.offsetWidth:e.offsetHeight);
			if (d2>d) d=d2;
		}
		return d;
	}
		
	var cx=p_dim(c.childNodes[0],1);
	if(cx<params.minWidth)cx=params.minWidth;
	c.style.height = p_dim(c.childNodes[0],0)+'px';	
	c.style.width = cx+'px';
	var bAutoWidth = false;
	
	// adjust height
	if (params.maxHeight==-1)
	{
		var minHeight = e.offsetHeight;
		if (c.childNodes[0].offsetHeight<minHeight)
			c.style.height = minHeight+'px';
	}
	else if (params.maxHeight>0&&params.maxHeight<c.childNodes[0].offsetHeight)
	{
		c.style.overflowY = 'scroll';
		c.style.height = params.maxHeight+'px';
		c.style.width = 'auto';
		bAutoWidth = true;
	}
	else
		c.style.overflowY = '';
		
	// adjust width
	if (params.maxWidth==-1&&!bAutoWidth)
	{
		var minWidth = e.offsetWidth;
		if (c.childNodes[0].offsetWidth<minWidth)
			c.style.width = minWidth+'px';
	}
		
	// implement shadow for Firefox 3+, MSIE 7+, Opera 9+
	// use some div below the existing one with the table with shadow borders
	// supported versions only
	if ((Ka.Browser.Browser!='Explorer'||Ka.Browser.Version>=7)&&!c.sc)
	{
		var sc = document.createElement('DIV');
		sc.style.position = 'absolute';
		sc.style.overflow = 'hidden';
		sc.style.display = 'none';
		sc.style.left = '-4000px';
		sc.style.top = '-4000px';
		sc.style.width = '1px';
		sc.style.height = '1px';
		sc.innerHTML = '<table border="0" cellpadding="0" cellspacing="0" style="empty-cells:show"><tr><td colspan="2" rowspan="2"><div></div></td>'
			+ '<td style="width:4px;height:4px;background:url('+Ka.$popup.s.tr+') no-repeat"><div style="height:4px;width:4px"></div></td></tr>'
			+ '<tr><td style="width:4px;background:url('+Ka.$popup.s.r+') repeat-y"><div style="height:120px;width:4px"></div></td></tr>'
			+ '<tr><td style="width:15px;height:4px;background:url('+Ka.$popup.s.bl+') no-repeat"><div style="height:4px;width:15px"></div></td>'
			+ '<td style="height:4px;background:url('+Ka.$popup.s.b+') repeat-x"><div style="height:4px;width:4px"></div></td>'
			+ '<td style="width:4px;height:4px;background:url('+Ka.$popup.s.br+') no-repeat"><div style="height:4px;width:4px"></div></td></tr>'
			+ '</table>';
		sc.KaPopupDiv = c;
		c.sc = sc;
		document.body.insertBefore(sc, document.body.firstChild);
	}
	
	// params.pos: 0-auto(below or above based on the scroll pos),1-below,2-above,4-left,8-right,15-overlay)
	var x = 0, y = 0, ep = e;
	while (ep!=null)
	{
		x += ep.offsetLeft;
		y += ep.offsetTop;
		ep = ep.offsetParent;
	}
	
	// overlay
	if (params.pos==15)
	{
		// get the scroll pos
		var scroll=Ka.$popup.sp();
				
		// align at center
		y = scroll.y + (scroll.cy - c.offsetHeight) / 2;
		x = scroll.x + (scroll.cx - c.offsetWidth) / 2;
		y-=24;if(y<0)y=0;if(x<0)x=0;	
	}
	else if (params.pos!=0)
	{
		if ((params.pos&1)==1) y += e.offsetHeight;
		if ((params.pos&8)==8) x += e.offsetWidth;
	}	
	else
	{	
		y += e.offsetHeight;
		var scroll=Ka.$popup.sp();

		var cy = e.offsetHeight;
		if (y + c.offsetHeight > scroll.y + scroll.cy)
		{
			var ny = y - (cy + c.offsetHeight);
			if (params.align==1)ny+=e.offsetHeight;
			if (ny >= 0) y = ny;
			else if (params.align==1)y-=e.offsetHeight;
		}
		else if (params.align==1)y-=e.offsetHeight
		if (params.align==1)
			x += e.offsetWidth + 4;
	}
	
	// 101 bottom but rtl
	if (params.align==101)
	{
		x-=(c.offsetWidth-e.offsetWidth-2);
	}
	
	if (c.sc)
	{
		var scd = c.sc.childNodes[0].rows[0].cells[0].childNodes[0];
		scd.style.width = ''+c.style.width;
		scd.style.height = ''+c.style.height;	
		scd.style.overflow = 'hidden';
		c.sc.childNodes[0].rows[1].cells[0].childNodes[0].style.height=(c.offsetHeight-4)+'px';
		c.sc.childNodes[0].rows[2].cells[1].childNodes[0].style.width=(c.offsetWidth-15)+'px';
		c.sc.style.zIndex = params.zIndex - 1;
		c.sc.style.left = x+'px';
		c.sc.style.top = y+'px';
		c.sc.style.width = (c.offsetWidth+3)+'px';
		c.sc.style.height = (c.offsetHeight+3)+'px';
		c.sc.style.display = 'block';	
		c.sc.style.visibility = 'visible';
	}
	
	// overlay activeX in IE6
	Ka.$popup._ie6fix(c);
	
	c.style.zIndex = params.zIndex;
	c.style.left = x+'px';
	c.style.top = y+'px';
	c.style.display = 'block';	
	c.style.visibility = 'visible';	
	
	return c;
}
Ka.$popup.s = {
	b:Ka.Img.preload('js/Ka-shadow-b.png').src,
	bl:Ka.Img.preload('js/Ka-shadow-bl.png').src,
	br:Ka.Img.preload('js/Ka-shadow-br.png').src,
	tr:Ka.Img.preload('js/Ka-shadow-tr.png').src,
	r:Ka.Img.preload('js/Ka-shadow-r.png').src
};
Ka.$popup.sp = function() {
	var scroll_cy = 0;
	if (self.innerHeight) scroll_cy = self.innerHeight;
	else if (document.documentElement&&document.documentElement.clientHeight) scroll_cy = document.documentElement.clientHeight;
	else if (document.body) scroll_cy = document.body.scrollHeight;

	var scroll_y = 0;
	if (window.pageYOffset) scroll_y = window.pageYOffset;
	else if (document.documentElement&&document.documentElement.scrollTop) scroll_y = document.documentElement.scrollTop;
	else if (document.body) scroll_y = document.body.scrollTop;
	else if (window.scrollTop) scroll_y = window.scrollTop;
	
	var scroll_cx = 0;
	if (self.innerWidth) scroll_cx = self.innerWidth;
	else if (document.documentElement&&document.documentElement.clientWidth) scroll_cx = document.documentElement.clientWidth;
	else if (document.body) scroll_cx = document.body.scrollWidth;

	var scroll_x = 0;
	if (window.pageXOffset) scroll_x = window.pageXOffset;
	else if (document.documentElement&&document.documentElement.scrollLeft) scroll_x = document.documentElement.scrollLeft;
	else if (document.body) scroll_x = document.body.scrollLeft;
	
	return {cx:scroll_cx,cy:scroll_cy,x:scroll_x,y:scroll_y};
}
Ka.Drag={
	_dragObject:null,
	_mpos:function(e){e=e||window.event;if(e.pageX||e.pageY)return{x:e.pageX,y:e.pageY};else return{x:e.clientX+document.body.scrollLeft-document.body.clientLeft,y:e.clientY+document.body.scrollTop-document.body.clientTop};},
	_init:function()
	{
		Ka.$attach(document,'mousemove',function(e){
			if(Ka.Drag._dragObject&&typeof Ka.Drag._dragObject._dragTo=='function')
				Ka.Drag._dragObject._dragTo(Ka.Drag._dragObject,Ka.Drag._mpos(e));
		});
		Ka.$attach(document,'mouseup',function(e){
			try
			{
				if(Ka.Drag._dragObject&&typeof Ka.Drag._dragObject._dragEnd=='function')
					Ka.Drag._dragObject._dragEnd(Ka.Drag._dragObject,Ka.Drag._mpos(e));
			}
			finally { Ka.Drag._dragObject=null; }
		});
	},
	Add:function(e,dragInit,dragTo,dragEnd)
	{
		e=Ka.$(e);
		if(e._dragCk==1)return;
		if(Ka.Drag._init!=null)
		{
			Ka.Drag._init();
			Ka.Drag._init=null;
		}
		e._dragInit=dragInit;
		e._dragTo=dragTo;
		e._dragEnd=dragEnd;
		e._dragCk=1;
		Ka.$deselect(e);
		Ka.$attach(e,'mousedown',function(e) {
			e=e||window.event;
			if (e.target&&e.target.nodeType==3)e.target=e.target.parentNode;
			else if (e.srcElement)e.target=e.srcElement;
			
			var ep = e.target;
			while(ep&&!ep._dragCk)ep=ep.parentNode;
			if(!ep) return;
					
			Ka.Drag._dragObject=ep;
			if(typeof ep._dragInit=='function')
				if(!ep._dragInit(ep,Ka.Drag._mpos(e)))
					Ka.Drag._dragObject=null;
		});
	}
};
String.prototype.trim=function(){return this.replace(/^[\s]+|[\s]+$/g,'');}
String.prototype.normalize=function(){var bs='áâãäåāăąǎǻćĉċčďđèéêëēĕėęěĝğġģħìíîïĩīĭįıǐĵĺļľŀłñńņňŉŋòóôõöøōŏőǒŕŗřśŝşšţťŧùúûüũūŭůűųǔǖǘǚǜŵýÿŷźżžÁÂÃÄÅĀĂĄǍǻĆĈĊČĎĐÈÉÊËĒĔĖĘĚĜĞĠĢĦÌÍÎÏĨĪĬĮIǏĴĹĻĽĿŁÑŃŅŇŉŊÒÓÔÕÖØŌŎŐǑŔŖŘŚŜŞŠŢŤŦÙÚÛÜŨŪŬŮŰŲǓǕǗǙǛŴÝŸŶŹŻŽ';var br='aaaaaaaaaaccccddeeeeeeeeegggghiiiiiiiiiijlllllnnnnnnoooooooooorrrsssstttuuuuuuuuuuuuuuuwyyyzzzAAAAAAAAAaCCCCDDEEEEEEEEEGGGGHIIIIIIIIIIJLLLLLNNNNNNOOOOOOOOOORRRSSSSTTTUUUUUUUUUUUUUUUWYYYZZZ';var s='';for(var i=0;i<this.length;i++){var j=bs.indexOf(this.charAt(i));s+=(j!=-1?br.charAt(j):this.charAt(i));}return s;}
String.prototype.htmlEscape=function(){return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');}
String.prototype.htmlAttributeEscape=function(){return this.htmlEscape().replace(/"/g,'&quot;').replace(/'/g,'&#039;');}
String.prototype.jsEscape=function()
{
	var s = '';
	for(var i=0;i<this.length;i++)
	{
		var c=this.charAt(i);
		switch (c)
		{
			case '"':s+='\\x22';break;
			case '&':s+='\\x26';break;
			case '\'':s+='\\x27';break;
			case '-':s+='\\x2d';break;
			case '<':s+='\\x3c';break;
			case '>':s+='\\x3e';break;
			case '\t':s+='\\t';break;
			case '\r':s+='\\r';break;
			case '\n':s+='\\n';break;
			case '\\':s+='\\\\';break;
			default:s+=c;break;
		}
	}
	return s;
}
String.prototype.mark=function(p,cs,cn)
{
	var b=this.normalize();
	p=p.normalize();
	if (!cs)
	{
		b=b.toLowerCase();
		p=p.toLowerCase();
	}
	var i = b.indexOf(p);
	if(i==-1)return this.htmlEscape();
	return this.substr(0,i).htmlEscape()
		+'<b'+(cn?' class="'+cn+'"':'')+'>'
		+this.substr(i,p.length).htmlEscape()
		+'</b>'
		+this.substr(i+p.length,this.length).htmlEscape();
}

// register
Ka.$register();