
String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}


function app_postback_confirm(target, control, action, subAction, param, confirmTxt) {
	if (confirm(confirmTxt)) {
		app_postback(target, control, action, subAction, param);
	}
}	

function FormSeach() {
	//app_postback('appcontrol','comReservation_btnChangePhase', 'server:btnChangePhase_Clicked',false, 'availability');
	app_postback('appcontrol','comSearchMask_btnSearchAvailability', 'server:btnGetAvailability_Clicked',false, '');
}

function app_postback(target, control, action, subAction, param) {
	
	if (!action.startsWith('server:') && !action.startsWith('server-ajax:')) {
		alert('Action must start with "server:" or Action must start with "server-ajax:"!');
		return;
	}
	
    var ajaxElement = document.getElementById('appAjax');
    ajaxElement.value = '0';
	action = action.substring(7);
	
	form = document.getElementById('appForm');
	if (form == null) {
		alert('The main form "appForm" (id) is missing!');
		return;
	}

	actionControl = document.getElementById('appAction');
	senderControl = document.getElementById('appSender');
	subActionControl = document.getElementById('appSubAction');
	actionParam = document.getElementById('appActionParam');
	actionTarget = document.getElementById('appTarget');

	if (actionControl == null) {
		alert('The hidden input "appAction" (id) is missing!');
		return;
	}

	if (subActionControl == null) {
		alert('The hidden input "appSubAction" (id) is missing!');
		return;
	}

	if (actionParam == null) {
		alert('The hidden input "appActionParam" (id) is missing!');
		return;
	}

	if (senderControl == null) {
		alert('The hidden input "appSender" (id) is missing!');
		return;
	}

	if (actionTarget == null) {
		alert('The hidden input "appTarget" (id) is missing!');
		return;
	}
	
	
	senderControl.value = control;
	actionTarget.value = target;
	actionControl.value = action;
	subActionControl.value = subAction;
	actionParam.value = param;
	

	form.submit();	
	//alert(control);
	setButtonStatusDisabled();
	//document.getElementById('ajaxindicator').display='block';
}

function changePhase(key) {
	app_postback('appcontrol','comSearchMask_btnSearchAvailability', 'server:btnChangePhase_Clicked',false, key);
}

function setStatusDisabled(arrElements) {
   	//iterate over elements:
   	for (var i=0; i<arrElements.length; i++) {
   		//get pointer to current element:
   		var element=arrElements[i];
   		element.disabled='disabled';
   	}
}

function setButtonStatusDisabled() {

    var arrElements = document.getElementsByTagName("input");
    setStatusDisabled(arrElements);
    
    var arrElements = document.getElementsByTagName("select");
    setStatusDisabled(arrElements);
    
    var arrElements = document.getElementsByTagName("textarea");
    setStatusDisabled(arrElements);    
}


function setStatusEnabled(arrElements) {
   	//iterate over elements:
   	for (var i=0; i<arrElements.length; i++) {
   		//get pointer to current element:
   		var element=arrElements[i];
   		element.disabled='false';
   	}
}

function setButtonStatusEnabled() {

    var arrElements = document.getElementsByTagName("input");
    setStatusEnabled(arrElements);
    
    var arrElements = document.getElementsByTagName("select");
    setStatusEnabled(arrElements);
    
    var arrElements = document.getElementsByTagName("textarea");
    setStatusEnabled(arrElements);    
}


