function ks_$(o){return document.getElementById(o);} // get element
function ks_d(o,v){if(!v)return o.style.display; else o.style.display=v;} // set display
function ks_v(o,v){if(!v)return o.style.visibility; else o.style.visibility=v;} // set visibility
function ks_td(o,v){d(o,(d(o)!='none')?'none':v);} // toggle display
function ks_tv(o){v(o,(v(o)!='hidden')?'hidden':'visible');} // toggle visibility
function ks_mpW(evt){return {x:evt.clientX,y:evt.clientY};} // mouse position on window
function ks_mpS(evt){return{x:evt.screenX,y:evt.screenY};} // mouse position on screen
function ks_mpD(evt){ // mouse position on document
	if(evt.pageX || evt.pageY)return {x:evt.pageX, y:evt.pageY};
	return {x:evt.clientX+document.documentElement.scrollLeft-document.body.clientLeft,y:evt.clientY+document.documentElement.scrollTop-document.body.clientTop};
} 
function ks_mpO(evt,o){return {x:mpW(evt).x-pos(o).x,y:mpW(evt).y-pos(o).y};} // mouse position on object
function ks_scrDim(){return{x:screen.width,y:screen.height};} // screen dimensions
function ks_ascrDim(){return{x:screen.availWidth,y:screen.availHeight};} // available screen dimensions
function ks_wDim(){ // window inner dimensions
	if(typeof(window.innerWidth)=='number'){
	return{x:window.innerWidth-((window.innerHeight<dDim().y)?sbw():0),y:window.innerHeight-((window.innerWidth<dDim().x)?sbw():0)};
  }
  else if(document.documentElement && document.documentElement.clientHeight)return{x:document.documentElement.clientWidth,y:document.documentElement.clientHeight};
  else if(document.body && document.body.clientHeight)return{x:document.body.clientWidth,y:document.body.clientHeight};
} 
function ks_dDim(){return{x:document.documentElement.scrollWidth,y:document.body.offsetHeight};} // document dimensions
function ks_dim(o){return{x:o.offsetWidth,y:o.offsetHeight};} // element dimensions
function ks_maxDim(){ // window inner dim wenn kleiner als document dim, document dim sonst
	return{x:Math.max(wDim().x,dDim().x),y:Math.max(wDim().y,dDim().y)};
}
function ks_sDim(o,dim){sDimXY(o,dim.x,dim.y);} // set dimensions of element o (dim)
function ks_sDimXY(o,xdim,ydim){o.style.width=xdim+"px";o.style.height=ydim+"px";} // set dimensions of element o (x,y)
function ks_sDimPer(o,p){var f=(p==0)?0:p/100;sDimXY(o,Math.ceil(dim(o).x*f),Math.ceil(dim(o).y*f));} // set dimensions of element o (percentage)
function ks_pos(o){ // get position
  var l = t = 0;
  if (o.offsetParent) {
    do {
 			l+=o.offsetLeft;
			t+=o.offsetTop;
    } while (o = o.offsetParent);
  }
  return{x:l,y:t};
}
function ks_sPos(o,p){sPosXY(o,p.x,p.y)} // set position
function ks_sPosXY(o,xp,yp){o.style.position="absolute";o.style.left=xp+"px";o.style.top=yp+"px";} // set position (x,y)
function ks_gC(cn,n){ // get elements by classname
	if(!n)n = document.getElementsByTagName("body")[0];
	var a = [];
	var re = new RegExp('\\b'+cn+'\\b');
	var els = n.getElementsByTagName("*");
	for(var i=0,j=els.length; i<j; i++)if(re.test(els[i].className))a.push(els[i]);
	return a;
}
function ks_gT(tn,n){return n.getElementsByTagName(tn);} // get elements by tagname

