// for front-end
function reqst(loader, method, data, url, result) {
        // Create new JsHttpRequest object.
        var req = new JsHttpRequest();
        // Code automatically called on load finishing.
        req.onreadystatechange = function() {
           if(req.readyState == 4) {
                if (req.responseJS) {
                    // Write result to page element.
                         //alert(document.getElementById(result).innerHTML)
                         if(req.responseJS.tpl!=undefined) {
                              document.getElementById(result + '1').innerHTML = req.responseJS.tpl;
                              document.getElementById(result).style.display = 'block';
		}
                        if(req.responseJS.js!=undefined)
                              eval(req.responseJS.js)
                }
                document.getElementById('loading').style.display = 'none';
	} else {
                document.getElementById('loading').style.display = 'block';
	}
            // Write debug information too.
            //document.getElementById('debug').innerHTML = req.responseText;
        }
        // Allow caching (to avoid different server queries for
        // identical input data). Caching is always disabled if
        // we are uploading a file.
        req.caching = false;
        // Prepare request object.
        req.loader = loader;
        req.open(method, url, true);
        // Send data (random JavaScript hash).
        var data = {
            dt: data
        };
        req.send(data);
}
// sending js and html
function reqstadmin(loader, method, data, url, result) {
        // Create new JsHttpRequest object.
        var req = new JsHttpRequest();
        // Code automatically called on load finishing.
        req.onreadystatechange = function() {
	//alert(req.readyState);
	if(req.readyState == 4) {
		if (req.responseJS) {
			// Write result to page element.
			// alert(req.responseText);
			if(req.responseJS.js!=undefined) eval(req.responseJS.js);
		}
		document.getElementById('loading').style.display = 'none';
	} else {
		document.getElementById('loading').style.display = 'block';
	}
	// Write debug information too.
	//document.getElementById('debug').innerHTML = req.responseText;
        }
        // Allow caching (to avoid different server queries for
        // identical input data). Caching is always disabled if
        // we are uploading a file.
        req.caching = false;
        // Prepare request object.
        req.loader = loader;
        req.open(method, url, true);
        // Send data (random JavaScript hash).
        var data = {
            dt: data
        };
        req.send(data);
}

function show_hide_item(elem)
{
//	if(document.getElementById(elem).style.display == 'block') document.getElementById(elem).style.display = 'none';
//	else document.getElementById(elem).style.display = 'block';

	elem = document.getElementById(elem);

	if (elem.style.display == 'none') {
		Effect.BlindDown(elem, {duration: 0.3});
	} else {
		Effect.BlindUp(elem, {duration: 0.3});
	}

}

function elements_of_listbox(listx)
{
	var ret = new Array();
	for(var i=0; i<listx.length; i++) {
		ret[i] = listx.options[i].value;
	}
	return ret;
}

function submitForm(src_form){
	var ret_arr=new Array();
	for(var i=0; i<src_form.elements.length; i++){
		//if not multiple select
		if (src_form.elements[i].type != 'select-multiple') {
			if (src_form.elements[i].type != 'checkbox' || src_form.elements[i].checked == true)
				ret_arr[src_form.elements[i].name]=src_form.elements[i].value;
		} else {
			for(var j=0;j<src_form.elements[i].options.length;j++) {
				if (src_form.elements[i].options[j].selected == true)
					ret_arr[src_form.elements[i].name+'['+j+']'] = src_form.elements[i].options[j].value;
			}
		}
	}
	return ret_arr;
}

function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function savePosition(name, left, top) {
	var days = 1000;
	var date = new Date();
	date.setTime(date.getTime()+(24*60*60*1000*days));
	setCookie(name+'_l', left, date.toGMTString(), '/admin/');
	setCookie(name+'_t', top, date.toGMTString(), '/admin/');
}

function loadPosition(name) {
	var l = getCookie(name+'_l');
	if(l) document.getElementById(name).style.left = l+'px';

	var t = getCookie(name+'_t');
	if(t) document.getElementById(name).style.top = t+'px';
}
