var historyData = new Array();
var ajaxRequestStarted = false;
function loadPage(pageName, cID, shortLink)
{
	if(ajaxRequestStarted == true) return;
	if(typeof cID == "undefined") cID = "content";
	ajaxRequestStarted = true;
	showPleaseWait();
	currentID = cID;
	
	var url = "commands_ajax.php?cmd=loadPage&page="+pageName;

	var tt = new AjaxRequest(url, GET_METHOD, loadPageHandler, null);

	var curHist = detectPageHistory();

	setHistory(curHist);
	tt.send();
	
	//if(typeof shortLink != "undefined") changeLocation("#" + shortLink);
	changeLocation("#" + pageName);
}

function loadPageHandler(resp)
{
	hidePleaseWait();
	ajaxRequestStarted = false;
	get_obj(currentID).innerHTML = resp.responseText;
	init();
}

var checkReturn = false;
function submitAjaxForm(fid, checkRet)
{
	if(typeof checkRet == "boolean") {
		checkReturn = checkRet; 
	} else {
		checkReturn = false;
	}
	
	if(ajaxRequestStarted == true) {alert("Please wait, until ajax form submit will finished.");return false;}
	ajaxRequestStarted = true;
	showPleaseWait();
	if(typeof fid == "undefined") {
		alert("Invalid form");
		return false;
	}
	
	var frm = get_obj(fid);
	if(frm == null) {
		alert("Invalid form.");
		return false;
	}
//	if(!validateForm()) return false;
	retrieved = false;
	var txt = "";
	var req = new Array();
	var elem = frm.elements;//alert("elem.length" + elem.length);
	var k = -1;
	var enter = false;
	for(var i=0;i<elem.length;i++) 
	{
		var el = elem[i];
		var elemType = el.type;
		var elemName = el.name;
		var elemID = el.id;
		var elemVal  = el.value;
		var elemText = el.text;//alert("elemVal" + elemVal + ";" + "elemText" + elemText );
//		if(elemID != "" && elemName != "" && elemID != elemName) {
//			alert("Invalid element : " + elemID + " : " + elemName);
//		}

		if(elemName == "") continue;
		
		if(el.disabled == true) continue;
		
		data = "";
		if((elemType == "checkbox" || elemType == "radio") && el.checked)
		{
		  enter = true; 
			data = elemVal;
		}
		if((elemType == "select-one") && enter){		
		data = elemVal; 
		enter = false;	
		//lst = getSelectedOptionObj(el.id, true);
		//data = lst.join(","); 
		}
		if(elemType == "select-multiple"){
			lst = getSelectedOptionObj(el.id, true);
			if(lst == null || lst.length == 0) continue;
			data = lst.join(",");
		}
		if(elemType == "text" && el.style.visibility=="visible") {
		data = elemVal; 
		} 
		if(elemType == "text"  || elemType == "password" || elemType == "hidden") {
			data = elemVal;
			if(elemName == "pcs[]"  &&  el.style.visibility=="hidden")
			{
				data = "";
			}
		}	
		if(elemType == "textarea") {
			data = elemVal;	
		}
		//alert(elemName + " : " + elemType);
		if(data == "") continue;
		txt += elemName + " [ " + elemType + " ]  :::  " + data + "\n";
		req[++k] = elemName + "=" + encodeURIComponent(data); //alert(req);
	}
	
	reqStr = req.join("&");
	//alert(frm.action);return;
	//reqUrl = frm.action;
	//if(reqUrl=="") 
	reqUrl = "commands_ajax.php";
	request = new AjaxRequest(reqUrl, "POST", saveHandler, false, reqStr);
    // alert(reqStr);
//	headerNames = ["Content-type", "Content-length", "Connection"];
//	headerValues = ["application/x-www-form-urlencoded", reqStr.length, "close"];
	headerNames = ["Content-Type", "Content-Length", "Connection"];
	headerValues = ["application/x-www-form-urlencoded", reqStr.length, "close"];
	request.setHeaders(headerNames, headerValues);
//alert(reqStr);
	request.send();
	
}
// es funckcian hetevum a ete submiti ardiunqum patasxan a galis responseText-um error message object, urem@ da
// artapatkervum a ekranin u return false
function saveHandler(request) 
{
	ajaxRequestStarted = false;
	hidePleaseWait();

	if(checkReturn) {
		if(request.responseText != 1) {
			alert(request.responseText);
			return;
		}
	}
	if(nextCallFunction != null) {
		eval(nextCallFunction);
		nextCallFunction = null;
	}
}

function setHistory(nm){
	if(nm.length == 0) return;
	historyData.push(nm);
}

function getHistory()
{
	if(historyData.length == 0) return "services";
	return historyData.pop()
}