/*By Will Bontrager*/
/*from http://www.willmaster.com*/
/*drobnì upraveno (koduje jen znaky s interpunkci - alespon doufam:)*/
function encodeString(s){
	 var ss = new String();
	 var fs;
	 for( i = 0; i < s.length; i++) {
	    fs = s.charCodeAt(i);
	    if(fs>180){
	    	    ss += '&#' + fs + ';';
	    }else{
	    	    ss += s.charAt(i);
	    }
	 }
	 return ss;
}

/*by konForce*/
/*from http://www.gamedev.net/community/forums/topic.asp?topic_id=400585*/
function wrapText(obj, beginTag, endTag){
	if(typeof obj.selectionStart == 'number'){
		// Mozilla, Opera, and other browsers
		var start = obj.selectionStart;
		var end   = obj.selectionEnd;
		
		obj.value = obj.value.substring(0, start) + beginTag + obj.value.substring(start, end) + endTag + obj.value.substring(end, obj.value.length);
	}else if(document.selection){
		// Internet Explorer

		// make sure it's the textarea's selection
		obj.focus();
		var range = document.selection.createRange();
		if(range.parentElement() != obj) return false;

	    if(typeof range.text == 'string')
	        document.selection.createRange().text = beginTag + range.text + endTag;
	}else obj.value += text;
	return 0;
}
/*by Nick Z., Martin Honnen*/
/*http://www.faqts.com/knowledge_base/view.phtml/aid/2147/fid/128*/
function getStyleClass (className) {
	for (var s = 0; s < document.styleSheets.length; s++)
	{
		if(document.styleSheets[s].rules)
		{
			for (var r = 0; r < document.styleSheets[s].rules.length; r++)
			{
				if (document.styleSheets[s].rules[r].selectorText == '.' + className)
				{
					return document.styleSheets[s].rules[r];
				}
			}
		}
		else if(document.styleSheets[s].cssRules)
		{
			for (var r = 0; r < document.styleSheets[s].cssRules.length; r++)
			{
				if (document.styleSheets[s].cssRules[r].selectorText == '.' + className)
					return document.styleSheets[s].cssRules[r];
			}
		}
	}
	
	return null;
}

/*By moje malickost:)*/
var NOTSET=0;
var ERR=-1;
var FALSE=0;
var TRUE=1;

var VISIBLE=2;
var HIDDEN=1;

var BLOCK=2;
var NONE=1;
var INLINE=3;

var doneFc=null;
var innerCnt=0;

function elmById(id){
	return document.getElementById(id);
}
function elmsByTag(id){
	return document.getElementsByTagName(id);
}
function elmsByClass(id){
	return document.getElementsByClassName(id);
}
function visible(elm){
	var ret=NOTSET;

	if(!elm)return ERR;
	if(elm.style.visibility=='hidden')ret=HIDDEN;
	if(elm.style.visibility=='visible')ret=VISIBLE;
    elm.style.visibility='visible';
	return ret;
}
function hidden(elm){
	var ret=NOTSET;

	if(!elm)return ERR;
	if(elm.style.visibility=='hidden')ret=HIDDEN;
	if(elm.style.visibility=='visible')ret=VISIBLE;
    elm.style.visibility='hidden';
	return ret;
}
function visiSwitch(elm){
	var ret=NOTSET;

	if(!elm)return ERR;
	if(elm.style.visibility=='hidden')ret=HIDDEN;
	if(elm.style.visibility=='visible')ret=VISIBLE;
    if(elm.style.visibility=='hidden'){
	elm.style.visibility='visible';
    }else
	elm.style.visibility='hidden';
	return ret;
}
function displSwitch(elm){
	var ret=NOTSET;

	if(!elm)return ERR;
	if(elm.style.display=='none')ret=NONE;
	if(elm.style.display=='block')ret=BLOCK;
	if(elm.style.display=='inline')ret=INLINE;
    if(elm.style.display=='none'){
	elm.style.display='block';
    }else
	elm.style.display='none';
	return ret;
}
function displBlock(elm){
	var ret=NOTSET;

	if(!elm)return ERR;
	if(elm.style.display=='none')ret=NONE;
	if(elm.style.display=='block')ret=BLOCK;
	if(elm.style.display=='inline')ret=INLINE;
	elm.style.display='block';
	return ret;
}
function displNone(elm){
	var ret=NOTSET;

	if(!elm)return ERR;
	if(elm.style.display=='none')ret=NONE;
	if(elm.style.display=='block')ret=BLOCK;
	if(elm.style.display=='inline')ret=INLINE;
	elm.style.display='none';
	return ret;
}
function displInline(elm){
	var ret=NOTSET;

	if(!elm)return ERR;
	if(elm.style.display=='none')ret=NONE;
	if(elm.style.display=='block')ret=BLOCK;
	if(elm.style.display=='inline')ret=INLINE;
	elm.style.display='inline';
	return ret;
}
function isDisplBlock(elm){
	if(elm.style.display=='block')return TRUE;
	return FALSE;
}
function isDisplInline(elm){
	if(elm.style.display=='inline')return TRUE;
	return FALSE;
}
function isDisplNone(elm){
	if(elm.style.display=='none')return TRUE;
	return FALSE;
}

function addEListener(elm, e, fc){
	if(!elm)return ERR;
    if(elm.addEventListener)
	elm.addEventListener(e, fc, false);
    else if(elm.attachEvent)
	elm.attachEvent('on'+e, fc);
	return TRUE;
}
function getETarget(e){
    if(e.currentTarget)
	return e.currentTarget;
    else
	return this;
}
function getKey(e){
    return e.keyCode?e.keyCode:(e.which?e.which:(e.charCode?e.charCode:0));
}

function setVal(obj, val){
	if(!obj)return ERR;
	obj.value=val;
	return TRUE;
}

function done(fc){
	if(fc==0)doneFc();
	else doneFc=fc;
}
function strrcut(str, c){
	return str.substr(str.lastIndexOf(c)+1);
}
function script(path){
	document.write('<scr'+'ipt type="text/javascript" src="'+path+'"></scr'+'ipt>\n');
}

function creElm(type, par){
	var elm;

	elm=document.createElement(type);
	if(par)
		elm=par.appendChild(elm);
	else if(MASTERDEBUG)alert('creElm: otce nemam, nemam ani matku');

	return elm;
}

function cnt(){
    return ++innerCnt;
}
function cntLast(){
    return innerCnt;
}
function cntNext(){
    return innerCnt+1;
}

