///////////////////////////////////////////////////////////////////////
////                                                              /////
//// operazioni su oggetti form                                   /////
////                                                              /////
///////////////////////////////////////////////////////////////////////

function cancellationConfirmation(){
	var answer = confirm("Sei sicuro di voler cancellare questa prenotazione? /n Cliccando su 'OK' non sarà più possibile recuperarla")
	if (answer){
		assignValue('act',5);
		formSubmit();
	}
	else{
		return;
	}
}

function dropCurrent(){
	dropValue('stato');	
	dropValue('act');	
}

function formSubmit(){
	document.main.setAttribute("target", "_self");
	document.main.action = "#";
	document.main.submit();
}

function formSubmitBM(BM){
	document.main.setAttribute("target", "_self");
	document.main.action = "#"+BM;
	document.main.submit();
}

function formSubmitNew(act){
	document.main.setAttribute("target", "_blank");
	document.main.action = act;
	document.main.submit();
}

function checkvalues(checkString){
	var error = 0;
	ARRCHK = checkString.split('*');
	for(CHKK = 0; CHKK < ARRCHK.length; CHKK++ ){
		if(ARRCHK[CHKK] != ""){
			result = eval(ARRCHK[CHKK]);
			if(result == false){
				error = 1;
				break;
			}
		}
	}
	if(error == 0)formSubmit();
}

///////////////////////////////////////////////////////////////////////
//// funzione di autocompletamento (early booking)                /////
///////////////////////////////////////////////////////////////////////

function AutoComplete(objId,rng){
	var objOldValue = "";
	var range = (rng+1);
	for(o = 1; o < range; o++){
		obj_Id = objId+o;
		obj    = document.getElementById(obj_Id);
		if(obj.value == "" && objOldValue != ""){
			obj.value = objOldValue;
		}
		objOldValue = obj.value;			
	}
}


///////////////////////////////////////////////////////////////////////
//// campi con messaggi interi (booking)                          /////
///////////////////////////////////////////////////////////////////////

function _checkEmail(objId,message) {
	var obj = document.getElementById(objId);
	var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(obj.value)){
		alert(message);
		obj.value = "";
		obj.focus();
		obj.select();
		return false;
	}else{
		return true;
	}
}

function _isNotEmptyField(objId,message){
	var obj = document.getElementById(objId);
	var objValue = obj.value;
	if(objValue == ""){
		alert(message);
		obj.value = "";
		obj.focus();
		obj.select();
		return false;
	}else{
		return true;
	}
}

function _isNumberNotEmpty(objId,message){
	obj = document.getElementById(objId);
	if(isNaN(obj.value) || obj.value == ''){
		alert(message);
		obj.value = "";
		obj.focus();
		obj.select();
		return false;
	}else{
		return true;
	}
}


function _isNumberNotEmptyIfEnabled(objId,message){
	obj = document.getElementById(objId);
	if(obj.disabled == false && (isNaN(obj.value) || obj.value == '')){
		alert(message);
		obj.value = "";
		obj.focus();
		obj.select();
		return false;
	}else{
		return true;
	}
}



function _isChecked(objId,message){
	obj = document.getElementById(objId);
	if(obj.checked == false){
		alert(message);
		obj.focus();
		obj.select();
		return false;
	}else{
		return true;
	}
}



///////////////////////////////////////////////////////////////////////
//// campi text                                                   /////
///////////////////////////////////////////////////////////////////////

function assignValue(objId,val){
	var obj = document.getElementById(objId);
	if(obj)obj.value = val;
}

function swapValue(objId1,objId2){
	var obj1 = document.getElementById(objId1);
	var obj2 = document.getElementById(objId2);
	if(obj1)obj2.value = obj1.value;
}


function dropValue(objId){
	if(document.getElementById(objId))document.getElementById(objId).value ='';
}

function incrementValue(objId,val){
	var obj = document.getElementById(objId);
	objVal = obj.value;
	if(objVal.indexOf(val) == '-1') obj.value = objVal + val;
}

function removeValue(objId,val){
	var obj = document.getElementById(objId);
	objVal = obj.value;
	obj.value = objVal.replace(val,'');
}


function isNotEmptyField(objId,field){
	var objValue = document.getElementById(objId).value;
	if(objValue == ""){
		alert("attenzione, il campo "+field+" non può essere vuoto");
		document.getElementById(objId).value = "";
		document.getElementById(objId).focus();
		document.getElementById(objId).select();
		return false;
	}else{
		return true;
	}
}

function checkEmail(objId,field) {
	var obj = document.getElementById(objId);
	var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(obj.value)){
		alert('Attenzione, il campo '+field+' non è valido come e-mail');
		obj.value = "";
		obj.focus();
		obj.select();
		return false;
	}else{
		return true;
	}
}

/**************************************
**** controlli su valori numerici *****
**************************************/

function isNumberNotEmpty(objId,field){
	obj = document.getElementById(objId);
	if(isNaN(obj.value) || obj.value == ''){
		alert('attenzione, il campo '+field+' accetta solo valori numerici!');
		obj.value = "";
		obj.focus();
		obj.select();
		return false;
	}else{
		return true;
	}
}

function isNumberOrEmpty(objId,field){
	obj = document.getElementById(objId);	
	if(obj.value != "" && isNaN(obj.value)){
		alert('attenzione, il campo '+field+' accetta solo valori numerici!');
		obj.value.value = "";
		obj.value.focus();
		obj.value.select();
		return false;
	}else{
		return true;
	}
}

function isNumber(objId,field){
	if(isNaN(document.getElementById(objId).value)){
		alert('attenzione, il campo '+field+' accetta solo valori numerici!');
		document.getElementById(objId).value = "";
		document.getElementById(objId).focus();
		document.getElementById(objId).select();
		return false;
	}else{
		return true;
	}
}


function ifIsNumberGreaterZero(objId,field){
	var objValue = document.getElementById(objId).value;
	if(objValue != "" && (isNaN(objValue)) || objValue < 1){
		alert('attenzione, il campo '+field+' accetta solo valori numerici maggiori di zero!');
		document.getElementById(objId).value = "";
		document.getElementById(objId).focus();
		document.getElementById(objId).select();
		return false;
	}else{
		return true;
	}
}

function numberLessThan(objId,val,field){
	if(isNaN(document.getElementById(objId).value) || document.getElementById(objId).value > val){
		alert('attenzione, il campo '+field+' accetta solo valori numerici fino a '+ val +'!');
		document.getElementById(objId).value = "";
		document.getElementById(objId).focus();
		document.getElementById(objId).select(); 
		return false;
	}else{
		return true;
	}
}

function isNumberLessThan(objId,field){
	if(isNaN(document.getElementById(objId).value) || document.getElementById(objId).value == "" || document.getElementById(objId).value > 9999.99){
		alert('attenzione, il campo '+field+' accetta solo valori numerici fino a 9999.99!');
		document.getElementById(objId).value = "";
		document.getElementById(objId).focus();
		document.getElementById(objId).select();
		return false;
	}else{
		return true;
	}
}

///////////////////////////////////////////////////////////////////////
//// campi checkbox                                               /////
///////////////////////////////////////////////////////////////////////

function isOneCheckedAtLeast(objIds,txt){
	var chk = 0;
	arrObjs = objIds.split('^');
	for(id = 0; id < arrObjs.length; id++){
		obj = document.getElementById(arrObjs[id]);
		if(obj.checked == true){
			chk = 1;
			break;
		}
	}
	if(chk == 1){
		return true;			
	}else{
		alert('attenzione: bisogna selezionare almeno uno dei check '+txt);
		return false;			
	}
	
}


function assignCheck(objId){
	var obj = document.getElementById(objId);
	obj.checked = true;
}

function assignChecks(strArrObjId){
	arrChks = strArrObjId.split("-");
	for(var objId in arrChks){
		//alert(objId);
		document.getElementById(arrChks[objId]).checked = true;
	}
}

function swapCheck(objId){
	obj = document.getElementById(objId)
	if(obj.checked == true){
		obj.checked = false;
	}else{
		obj.checked = true;
	}
}

function ifCheckedExecute(chkId,funct){
	objCHK = document.getElementById(chkId).checked;
	if(objCHK == true){
		if(eval(funct)){
			return true;	
		}else{
			return false;	
		}
	}
}


function ifCheckedMustFill(chkId,objId,cnt,txt){
	var OK = 1;	
	for(chk = 1; chk < cnt; chk++){
		objCHK = document.getElementById(chkId+chk).checked;
		objVAL = document.getElementById(objId+chk).value;
		if(objCHK == true && objVAL == "") OK = 0;
	}
	if(OK == 0){
		alert(txt);
		return false;
	}else{
		return true;
	}
}


function allFieldsChecked(strArrObjId){
	arrChks = strArrObjId.split("-");
	var isAllchecked = 1;	
	for(var objId in arrChks){
		if(document.getElementById(arrChks[objId]).checked == false){
			isAllchecked = 0;
			break;				
		}
	}
	return isAllchecked;
}


///////////////////////////////////////////////////////////////////////
////                                                              /////
//// operazioni specifiche per la selezione di date nella pagina  /////
//// del booking                                                  /////
////                                                              /////
///////////////////////////////////////////////////////////////////////


function setDates(arrivo,mstay,cntSt,cntEn,tcnt,indx){

	NA = document.getElementById("NA").value;        

	var arrDate = arrivo.split("/");

	arrival   = new Date();
	departure = new Date();
	
	range = parseInt(mstay)+parseInt(NA);
	
	arrival.setDate(arrDate[0]); 	
	arrival.setMonth(arrDate[1]-1); 	
	arrival.setFullYear(arrDate[2]); 	

	departure = arrival;  		

	departure.setDate(departure.getDate()+range);

	arrivo    =  arrDate[0]+'/'+arrDate[1]+'/'+arrDate[2];
	partenza  =  departure.getDate()+'/'+(departure.getMonth()+1)+'/'+departure.getFullYear();  

	document.getElementById("arrivo").innerHTML   = arrivo;        
	document.getElementById('dateStart').value    = arrivo;
	document.getElementById("partenza").innerHTML = partenza;       
	document.getElementById('dateEnd').value      = partenza;   

	document.getElementById('prenota').style.display = 'block'


	for(g = 1; g < 1000; g++){
		obj = document.getElementById(indx+'_'+g);
		if(obj){
			document.getElementById(indx+'_'+g).style.background = "";
		}
	}

	cnt = parseInt(parseInt(NA) + parseInt(cntEn));

	for(g = cntSt; g < cnt; g++){
		obj = document.getElementById(indx+'_'+g);
		if(obj){
			document.getElementById(indx+'_'+g).style.background = "#FF0000";
		}
	}

};

function clearCalendar(indx,bound){

	document.getElementById("arrivo").innerHTML   = '';        
	document.getElementById("partenza").innerHTML = '';        
	document.getElementById('prenota').style.display = 'none'

	for(g = 0; g < bound+1; g++){

		obj = document.getElementById(indx+'_'+g);

		//      alert(indx+'_'+g); 

		if(obj){
			document.getElementById(indx+'_'+g).style.background = "";
		}
	}
}


///////////////////////////////////////////////////////////////////////
////                                                              /////
//// operazioni specifiche per il calcolo degli extra nel booking /////
////                                                              /////
////                                                              /////
///////////////////////////////////////////////////////////////////////

function sumSwap(idSum,idChek,id,idSwap){
	objSum  = document.getElementById(idSum);
	objChek = document.getElementById(idChek);
	objVal  = document.getElementById(id);
	objSwap = document.getElementById(idSwap);
	val  = parseFloat(objVal.value);
	Swap = parseFloat(objSwap.value);
	sum = parseFloat(objSum.value);
	sum = (sum - Swap + val);
	document.getElementById(idSum).value = sum.toFixed(2);
}

function resetTot(id){
	tot       = parseFloat(document.getElementById('totalcost').innerHTML);
	objESUM  	= parseFloat(document.getElementById('ESUM'+id).value);
	document.getElementById('totalcost').innerHTML = (tot - ESUM).toFixed(2);
}


function sumItem(idSum,id){

	objSelect = document.getElementById('select_'+id);
	objESUM  	= document.getElementById('ESUM'+id);
	objChek 	= document.getElementById('E'+id);
	objVal  	= document.getElementById('B'+id);

	val 			= parseFloat(objVal.innerHTML);
	tot       = parseFloat(document.getElementById(idSum).innerHTML);

	if(objSelect){
		objESUM.value =  (objSelect.value * val).toFixed(2);
	}   

	ESUM = parseFloat(objESUM.value);
	
	if(objChek.checked == true){
		sum = (tot + ESUM);
	}else{
		sum = (tot - ESUM);
	}
	document.getElementById(idSum).innerHTML = sum.toFixed(2);
}



///////////////////////////////////////////////////////////////////////
//// abilita / disabilita un elemento                             /////
///////////////////////////////////////////////////////////////////////

function swapEnable(objId){
	obj = document.getElementById(objId)
	if(obj.disabled == true){
		obj.disabled = false;
	}else{
		obj.disabled = true;
	}
}

function disable(objId){
	obj = document.getElementById(objId)
	obj.disabled = true;
}

function enable(objId){
	obj = document.getElementById(objId)
	obj.disabled = false;
}


///////////////////////////////////////////////////////////////////////
//// campi radio                                                  /////
///////////////////////////////////////////////////////////////////////

function disableGroup(formName, groupName) {
	for (var i=0; i<formName.elements.length; i++) {
		if (formName.elements[i].name == groupName) {
			if(formName.elements[i].disabled == true){
				formName.elements[i].disabled = false;
			}else{
				formName.elements[i].disabled = true;
			}
		}
	}
}


///////////////////////////////////////////////////////////////////////
//// campi select                                                 /////
///////////////////////////////////////////////////////////////////////

function populateOptions(minV,maxV,objId){
	var obj_select = document.getElementById(objId);
	//spopola la combo
	while (obj_select.options.length > 0) {
		obj_select.options[0] = null;
	}
	//alert(minV+' '+maxV);
	//ripopola la combo
	for(cnt=minV; cnt < maxV; cnt++){
		//obj_select.appendChild(new Option(cnt,cnt));
		obj_select[obj_select.length] = new Option(cnt,cnt);
	}
}

function selectByValue(val,objId){
	var obj_select = document.getElementById(objId);
	for(cnt=0; cnt < obj_select.length; cnt++){
		if(obj_select.options[cnt].value == val){
			obj_select.options[cnt].selected = true;
		}
	}
}


///////////////////////////////////////////////////////////////////////
////                                                              /////
//// operazioni su oggetti div                                    /////
////                                                              /////
///////////////////////////////////////////////////////////////////////

function fillDiv(objId,fill){
	var obj = document.getElementById(objId);
	obj.innerHTML = fill;
}


function hideDiv(objId){
	var obj = document.getElementById(objId);
	obj.style.display = 'none';
}

function setDisplay(objId){
	var obj = document.getElementById(objId);
	obj.style.display = 'block';
}

function setDisplayStyle(objId,style){
	var obj = document.getElementById(objId);
	obj.style.display = style;
}


function swapDisplay(objId){
	var obj = document.getElementById(objId);
	if(obj.style.display == 'none'){
		obj.style.display = 'block';
	}else{
		obj.style.display = 'none';
	}
}

function swapDisplayTable(objId){
	var obj = document.getElementById(objId);
	if(obj.style.display == 'none'){
		obj.style.display = 'table';
	}else{
		obj.style.display = 'none';
	}
}


function swapDisplayStyle(objId,style){
	var obj = document.getElementById(objId);
	if(obj.style.display == 'none'){
		obj.style.display = style;
	}else{
		obj.style.display = 'none';
	}
}


function swapDivVisibility(objId){
	var obj = document.getElementById(objId);
	if(obj.style.visibility == 'hidden'){
		obj.style.visibility = 'visible';
	}else{
		obj.style.visibility = 'hidden';
	}
}

function showDiv(objId,isSelected){
	var obj = document.getElementById(objId);
	if(isSelected == 'true'){
		obj.style.visibility = 'visible';
	}else{
		obj.style.visibility = 'hidden';
	}
}

function swapBgcolor(id,objIndex,color){
	defaultColor = "#000000";
	for(i = 1; i < 6; i++ ){
		objId = id+i;
		var obj = document.getElementById(objId);
		if(obj)obj.style.borderColor = defaultColor;		
	}
	objId = id+objIndex;
	var obj = document.getElementById(objId);
	if(obj){
		obj.style.borderColor = color;		
	}
}

function assignBG(objId,color){
	var obj = document.getElementById(objId);
	if(obj)obj.style.background = color;		
}


function switchTabs(objId,strArrTabs){
	var tabColor = "#FFFFFF" ;
	var tabActiveColor = "#fe6000" ;
	arrTabs = strArrTabs.split("-");
	for(var idTab in arrTabs){
		if(document.getElementById('text_'+arrTabs[idTab])) document.getElementById('text_'+arrTabs[idTab]).style.display = 'none';
		if(document.getElementById('tab_'+arrTabs[idTab])) document.getElementById('tab_'+arrTabs[idTab]).style.background = tabColor;
	}
	document.getElementById('text_'+objId).style.display = 'block';
	document.getElementById('tab_'+objId).style.background = tabActiveColor;
}


function switchPanels(objName,objCount,Count){
	for(a = 0; a < Count+1; a++){
		if(document.getElementById(objName+'_'+a))document.getElementById(objName+'_'+a).style.display = 'none';
	}
	document.getElementById(objName+'_'+objCount).style.display = 'block';
}

function resetPanels(objName,Count){
	for(a = 0; a < Count+1; a++){
		if(document.getElementById(objName+'_'+a))document.getElementById(objName+'_'+a).style.display = 'block';
	}
}



///////////////////////////////////////////////////////////////////////
//// proprietà style                                              /////
///////////////////////////////////////////////////////////////////////

//variabili stile

//colore del background quando il mouse passa sopra
var BGcolorHover = '#fe6000';

//colore del testo quando il mouse passa sopra
var colorHover = '#FFFFFF';

function displayObj(objId,val){
	var obj = document.getElementById(objId);
	if(val == 1){
		obj.style.visibility = "visible";
	}else{
		obj.style.visibility = "hidden";
	}
}




///////////////////////////////////////////////////////////////////////
////                                                              /////
//// operazioni specifiche per gli inserimenti giornalieri e      /////
//// periodici                                                    /////
////                                                              /////
///////////////////////////////////////////////////////////////////////

function highlightObj(event,objId,isSelected){
	if(document.getElementById('act').value != 1){
		var	selectedObj = document.getElementById(objId);
		if(isSelected == 'true' && selectedObj){
			selectedObj.style.background = BGcolorHover;
			selectedObj.style.color = colorHover;
		}else{
			selectedObj.style.background = '';
			selectedObj.style.color = '';
		}
	}
}

function highlightObjs(event,pivot,endValue,isSelected,orientation){
	for(var a=1;a<endValue;a++){
		if(orientation == 'v'){
			assignCoords(event,a,pivot,isSelected)
		}else{
			assignCoords(event,pivot,a,isSelected)
		}
	}
}


function assignValues(event,pivot,endValue,isSelected,orientation){
	for(var a=1;a<endValue;a++){
		if(orientation == 'v'){
			assignCoords(event,a,pivot,isSelected)
		}else{
			assignCoords(event,pivot,a,isSelected)
		}
	}
	if(event.shiftKey){
		assignValue('act',1),
		formSubmit();
	}
}


function chooseValue(val,event){
	if(event.ctrlKey){
		removeValue('selectedCoords',val);
	}else{
		incrementValue('selectedCoords',val);
	}
}

function assignCoords(event,y,x,isSelected){
	var pStatus = document.getElementById('act').value;
	var val     = "["+y+"_"+x+"]";
	var tdId    = "td_"+y+"_"+x;
	var rowId   = "row_"+y;
	var colTdId = "colTd_"+x;
	var rowTdId = "rowTd_"+y;
	if(pStatus != 1 && document.getElementById(tdId)){
		if(isSelected == 'true' || (isSelected == 'false' && event.shiftKey)){
			if(event.shiftKey){
				incrementValue('selectedCoords',val);
			}else{
				removeValue('selectedCoords',val);
			}
			highlightObj(event,tdId,'true');
			highlightObj(event,colTdId,'true');
			highlightObj(event,rowTdId,'true');
		}else{
			removeValue('selectedCoords',val);
			highlightObj(event,tdId,'false');
			highlightObj(event,colTdId,'false');
			highlightObj(event,rowTdId,'false');
		}
	}
}

function reset_coords(){
	dropValue('act');
	dropValue('selectedCoords');
	formSubmit();
}


///////////////////////////////////////////////////////////////////////
////                                                              /////
//// FUNZIONI GENERALI ADMINISTRATOR                              /////
////                                                              /////
///////////////////////////////////////////////////////////////////////


/* This script and many more are available free online at
The JavaScript Source :: http://javascript.internet.com
Updated by: Mike Weiner :: http://www.wearebent.com 
Original author: Eric King (eric_andrew_king@hotmail.com)
Last Updated: May 2006 */

function newWindow(a_str_windowURL, a_str_windowName, a_int_windowWidth, a_int_windowHeight, a_bool_scrollbars, a_bool_resizable, a_bool_menubar, a_bool_toolbar, a_bool_addressbar, a_bool_statusbar, a_bool_fullscreen) {
	var int_windowLeft = (screen.width - a_int_windowWidth) / 2;
	var int_windowTop = (screen.height - a_int_windowHeight) / 2;
	var str_windowProperties = 'height=' + a_int_windowHeight + ',width=' + a_int_windowWidth + ',top=' + int_windowTop + ',left=' + int_windowLeft + ',scrollbars=' + a_bool_scrollbars + ',resizable=' + a_bool_resizable + ',menubar=' + a_bool_menubar + ',toolbar=' + a_bool_toolbar + ',location=' + a_bool_addressbar + ',statusbar=' + a_bool_statusbar + ',fullscreen=' + a_bool_fullscreen + '';
	var obj_window = window.open(a_str_windowURL, a_str_windowName, str_windowProperties)
	if (parseInt(navigator.appVersion) >= 4) {
		obj_window.window.focus();
	}
}
