function $(div) {
    return document.getElementById(div);
}

function showObj(div) {
    var divId = $(div);
    
    divId.style.visibility = "visible";
    divId.style.display = "block";
}

function hideObj(div) {
    var divId = $(div);
    
    divId.style.visibility = "hidden";
    divId.style.display = "none";
}

function showHideObj(div) {
    var divId = $(div);
    
    if(divId.style.visibility == 'hidden' || divId.style.visibility == '')
        showObj(div);
    else
        hideObj(div);
}

// работи като is_number в PHP
function is_number(a_string) {
	tc = a_string.charAt(0);
	
	if(tc == "0" || tc == "1" || tc == "2" || tc == "3" ||	tc == "4" || tc == "5" || tc == "6" || tc == "7" || tc == "8" || tc == "9")
		return true;
	else
		return false;
}

// намира позицията на обекта
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while(obj == obj.offsetParent) {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return [curleft,curtop];
}

// намира колко е скролиращото отместване - хоризонтално и вертикално
function getScrolledPosition() {
    var scrolledX = 0, scrolledY = 0;
    if(self.pageYOffset) {
        scrolledX = self.pageXOffset;
        scrolledY = self.pageYOffset;
    } else if(document.documentElement && document.documentElement.scrollTop) {
        scrolledX = document.documentElement.scrollLeft;
        scrolledY = document.documentElement.scrollTop;
    } else if(document.body) {
        scrolledX = document.body.scrollLeft;
        scrolledY = document.body.scrollTop;
    }
    
    return Array(scrolledX, scrolledY);
}

//////////////////////////////////////////////////////////////////
// AJAX
//////////////////////////////////////////////////////////////////
// v1.02 дата: 07.06.2009
// добавена е възможност за изпълнение на функцията при условия, че тя не трябва да връща резултат
function insert_code(script, div, ok_func, err_func) {
	var oXmlHttp = zXmlHttp.createRequest();
	oXmlHttp.open("get", script, true);
	oXmlHttp.onreadystatechange = function () {
		if(oXmlHttp.readyState == 4){
			if(oXmlHttp.status == 200){
				var result = oXmlHttp.responseText;
                if(div != null && div != '') {
                    var divId = document.getElementById(div);
					if(divId != null)
						divId.innerHTML = result;
					
					if(result.indexOf('<script') > 0) {
						var scripts = divId.getElementsByTagName("script");
						var i = scripts.length;
						for(var x = 0;x < i;x++){
							var newScript = document.createElement('script');
							newScript.type = "text/javascript";
							newScript.text = scripts[x].text;
							divId.appendChild(newScript);
						}
					}
                }
                
                if(ok_func != '')
                    eval(ok_func);
			}
		}
	}
	oXmlHttp.send(null);
}

function getRequestBody(oForm) {
    var aParams = new Array();
    
    for(var i = 0; i < oForm.elements.length; i++){
        var sParam = encodeURIComponent(oForm.elements[i].name);
        sParam += "=";
        sParam += encodeURIComponent(oForm.elements[i].value);
        aParams.push(sParam);
    }
    return aParams.join("&");
}

// v1.03 дата: 05.11.2009
// v1.02: добавена е възможност за изпълнение на функцията при условия, че тя не трябва да връща резултат
// v1.03: добавена е възможност функцията да връща резултат в value-то на подаденото id или в innerHTML-а, което се определя от 4-тия параметър - value
//		  добавена е възможността поради горната функционалност да се подаден празен стринг за ok_func, което ще предотврати опита за изпълнението й
function sendRequest(oForm, div, ok_func, value) {
    //var oForm = document.getElementById(form);
    var sBody = getRequestBody(oForm);
    
    var oXmlHttp = zXmlHttp.createRequest();
    oXmlHttp.open("post", oForm.action, true);
    oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    
    oXmlHttp.onreadystatechange = function () {
        if(oXmlHttp.readyState == 4){
            if(oXmlHttp.status == 200){
				if(div != null && div != '') {
					var result = oXmlHttp.responseText;
					var divId = document.getElementById(div);
					
					if(divId != null) {
						if(value)
							divId.value = result;
						else
							divId.innerHTML = result;
					}
					
					if(result.indexOf('<script') > 0) {
						var scripts = divId.getElementsByTagName("script");
						var i = scripts.length;
						for(var x = 0;x < i;x++){
							var newScript = document.createElement('script');
							newScript.type = "text/javascript";
							newScript.text = scripts[x].text;
							divId.appendChild(newScript);
						}
					}
				}
                
                if(typeof(ok_func) != 'undefined' && ok_func != '')
                    eval(ok_func);
            }
        }
    }
    oXmlHttp.send(sBody);
}

function showLoading(div) {
    $(div).innerHTML = "<span class='loading'>Зарежда се, моля изчакайте...</span>";//"Loading, please wait..."
}
