function ValidValue(value)
{
	return value != null && value != "" && value != "undefined";
}
function SetDefaultElems(objID)
{
	if (!objID.selectIndexOnly)
	{
		objID.defaultDay = objID.day;
		objID.defaultMonth = objID.month;
		objID.defaultYear = objID.year;
	}
}

function SetOpenerElems(objID)
{
	if (ValidValue(objID) && Number(objID.type) == 1)
	{
		window.opener.SetFormElem(objID.elemDay, objID.day);
		window.opener.SetFormElem(objID.elemMonth, Number(objID.month) + 1);
		window.opener.SetFormElem(objID.elemYear, objID.year);
		window.opener.SetFormElem(obj2ID.elemDay, obj2ID.day);
		window.opener.SetFormElem(obj2ID.elemMonth, Number(obj2ID.month) + 1);
		window.opener.SetFormElem(obj2ID.elemYear, obj2ID.year);
		window.close();
	}
}


function GetPageCoords(element)
{
     var coords = {x: 0, y: 0};
     while (element)
     {
       coords.x += element.offsetLeft;
       coords.y += element.offsetTop;
       element = element.offsetParent;
     }
     return coords;
}

function GetPageCoordsById(elementId)
{
	/*
	if (document.all)
	{
       return GetPageCoords(document.all[elementId]);
    }
    else if (document.getElementById)
    {
		return GetPageCoords(document.getElementById(elementId));
    }
    */   
    if (document.getElementById)
    {
		return GetPageCoords(document.getElementById(elementId));
    }
    else if (document.all)
	{
       return GetPageCoords(document.all[elementId]);
    }
}


function ShowDiv(objID, refID)
{	
	//if (document.getElementById("ifrMotor")){
	//	ShowDivWithInc(objID, refID, -GetPageCoordsById("motorDiv").x, GetPageCoordsById("motorDiv").y);
	//}else{
		ShowDivWithInc(objID, refID, -1, 90);
	//}
}

function ShowDivWithInc(objID, refID, x, y)
{	
	if (ValidValue(objID.divID))
	{
		document.getElementById(objID.divID).style.display = "block";
		document.getElementById(objID.divID).visible = "visible";
		document.getElementById(objID.divID).style.top = GetPageCoordsById(refID).y - y;
		document.getElementById(objID.divID).style.left = GetPageCoordsById(refID).x + x;

		for (var i = 0; i < objID.hideableElems.length; i++)
		{
			if (ValidValue(document.getElementById(objID.hideableElems[i])))
			{
				document.getElementById(objID.hideableElems[i]).style.visibility = "hidden";
				//document.getElementById(objID.hideableElems[i]).style.display = "none";
			}
		}
	}
	
}

function HideDiv(objID)
{
	if (ValidValue(objID.divID))
	{		
		document.getElementById(objID.divID).style.display = "none";			
		
		for (var i = 0; i < objID.hideableElems.length; i++)
			if (ValidValue(document.getElementById(objID.hideableElems[i])))
			{
				//document.getElementById(objID.hideableElems[i]).style.visibility = "visible";
				document.getElementById(objID.hideableElems[i]).style.display = "block";
			}
	}
}

function OpenWindow(windowLink, windowName, windowFeatures)
{	
	window.open(String(windowLink), String(windowName), String(windowFeatures));
}

function OpenWindowOffset(windowLink, windowName, windowFeatures)
{
	var x = window.event.clientX;
	var y = window.event.clientY - 20;
	var windowFeatures = windowFeatures + "; left=" + x + "; top=" + y;
	OpenWindow(windowLink, windowName, windowFeatures);
}

function GetWindowSize(idElem, incWidth, incHeight)
{
	var width = document.getElementById(idElem).offsetWidth + Number(incWidth);
	var height = document.getElementById(idElem).offsetHeight + Number(incHeight);
	
	resizeTo(width, height);		
}



// HTML Elems Functions 
function ValidFieldValue(value)
{
	return value != null && value != "undefined" && value != "";
}

function ValidFieldValueReplace(value, newValue)
{
	return ValidFieldValue(value) ? value : newValue;
}

function SetElemNewValue(elemObj, newValue)
{
	if (ValidFieldValue(elemObj))
		elemObj.value = newValue;
}

function SetDateFieldsCalendar_single(objID)
{
	
// não funcionava com um unico calendario - motor hotelaria netviagens - restevao - 10/08/2005
/*
	var today = new Date();
	
	var minDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());
	var date = new Date(document.getElementById(objID.elemYear).value, document.getElementById(objID.elemMonth).value - 1, document.getElementById(objID.elemDay).value, "23", "59", "59");
	
	if (date < minDate)
	{
		SetElemNewValue(document.getElementById(objID.elemYear), date.getFullYear() + 1);
		SetElemNewValue(document.getElementById(objID.elemMonth), date.getMonth() + 1);
		
		objID.year = date.getFullYear() + 1;
		objID.month = date.getMonth();
	}	
	else
	{	
		SetElemNewValue(document.getElementById(objID.elemYear), date.getFullYear());
		SetElemNewValue(document.getElementById(objID.elemMonth), date.getMonth() + 1);
		SetElemNewValue(document.getElementById(objID.elemDay), date.getDate());		
	
		objID.year = date.getFullYear();
		objID.month = date.getMonth();
		
	}

	SetNewDate(objID, document.getElementById(objID.elemDay).value);
*/

	var today = new Date();
	
	var minDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());
	var date = new Date(document.getElementById(objID.elemYear).value, document.getElementById(objID.elemMonth).value - 1, document.getElementById(objID.elemDay).value, "23", "59", "59");
	

	if (date < minDate)
	{
		SetElemNewValue(document.getElementById(objID.elemYear), date.getFullYear() + 1);
		SetElemNewValue(document.getElementById(objID.elemMonth), date.getMonth() + 1);
		
		objID.year = date.getFullYear() + 1;
		objID.month = date.getMonth();
	}
	else 
	{	
		SetElemNewValue(document.getElementById(objID.elemYear), date.getFullYear());
		SetElemNewValue(document.getElementById(objID.elemMonth), date.getMonth() + 1);
		SetElemNewValue(document.getElementById(objID.elemDay), date.getDate());		
	
		objID.year = date.getFullYear();
		objID.month = date.getMonth();
	}

	SetNewDate(objID, objID, document.getElementById(objID.elemDay).value);
}

function SetDateFieldsCalendarMYFirst(mes, ano, mes_ano, objID, obj2ID, control)
{	
	var aux = String(document.getElementsByName(mes_ano)[0].value);
	aux = aux.split(" ");
	
	
	document.getElementsByName(mes)[0].value = aux[0];
	document.getElementsByName(ano)[0].value = aux[1];
	
	SetDateFieldsCalendarFirst(objID, obj2ID, control);
}

function SetDateFieldsCalendarMY(mes, ano, mes_ano, objID, obj2ID, control)
{	
	var aux = String(document.getElementsByName(mes_ano)[0].value);
	aux = aux.split(" ");
	
	
	document.getElementsByName(mes)[0].value = aux[0];
	document.getElementsByName(ano)[0].value = aux[1];
	
	SetDateFieldsCalendar(objID, obj2ID, control);
}

function SetDateFieldsCalendar_singleMY(mes, ano, mes_ano, objID)
{	
	var aux = String(document.getElementsByName(mes_ano)[0].value);
	aux = aux.split(" ");
	
	document.getElementsByName(mes)[0].value = aux[0];
	document.getElementsByName(ano)[0].value = aux[1];

	SetDateFieldsCalendar_single(objID);
}

function SetDateFieldsCalendar(objID, obj2ID, control)
{
	var today = new Date();
	
	var minDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());
	var date = new Date(document.getElementById(objID.elemYear).value, document.getElementById(objID.elemMonth).value - 1, document.getElementById(objID.elemDay).value, "23", "59", "59");
	var date2 = new Date(document.getElementById(obj2ID.elemYear).value, document.getElementById(obj2ID.elemMonth).value - 1, document.getElementById(obj2ID.elemDay).value, "23", "59", "59");
	
	if (((control == 0) ? date : date2) < minDate)
	{
		//SetElemNewValue(document.getElementById(objID.elemYear), date.getFullYear());
		//SetElemNewValue(document.getElementById(objID.elemMonth), date.getMonth());
		//SetElemNewValue(document.getElementById(objID.elemMonth), date.getMonth() + 1);
		SetElemNewValue(document.getElementById(obj2ID.elemYear), date.getFullYear());
		SetElemNewValue(document.getElementById(obj2ID.elemMonth), date.getMonth() + 2);
		//SetElemNewValue(document.getElementById(obj2ID.elemMonth), date.getMonth() + 1);
		
		//objID.year = date.getFullYear();
		//objID.month = date.getMonth() + 1;
		obj2ID.year = objID.year;
		obj2ID.month = objID.month + 1;
		
		
	}
	else if (date > date2)
	{	
		//SetElemNewValue(document.getElementById(objID.elemDay), (control == 0) ? date.getDate() : date2.getDate());
		SetElemNewValue(document.getElementById(objID.elemMonth), (control == 0) ? date.getMonth() + 1 : date2.getMonth() + 1);
		SetElemNewValue(document.getElementById(objID.elemYear), (control == 0) ? date.getFullYear() : date2.getFullYear());
		SetElemNewValue(document.getElementById(obj2ID.elemDay), (control == 0) ? date.getDate() : date2.getDate());
		SetElemNewValue(document.getElementById(obj2ID.elemMonth), (control == 0) ? date.getMonth() + 2 : date2.getMonth() + 2);
		SetElemNewValue(document.getElementById(obj2ID.elemYear), (control == 0) ? date.getFullYear() : date2.getFullYear());
		
		objID.year = ((control == 0) ? date.getFullYear() : date2.getFullYear());
		objID.month = ((control == 0) ? date.getMonth() : date2.getMonth());
		obj2ID.year = objID.year;
						
		//
		
		var newDate = new Date(document.getElementById(obj2ID.elemYear).value, document.getElementById(obj2ID.elemMonth).value , document.getElementById(obj2ID.elemDay).value, "23", "59", "59");
		if (date < newDate)
			obj2ID.month = objID.month + 1;

		
		
	}
	else
	{	
		
		if (control == 0)
		{
			SetElemNewValue(document.getElementById(objID.elemYear), date.getFullYear());
			SetElemNewValue(document.getElementById(objID.elemMonth), date.getMonth() + 1);
			SetElemNewValue(document.getElementById(objID.elemDay), date.getDate());		
		
			objID.year = date.getFullYear();
			objID.month = date.getMonth();
		}
		else
		{
			SetElemNewValue(document.getElementById(obj2ID.elemYear), date2.getFullYear());
			SetElemNewValue(document.getElementById(obj2ID.elemMonth), date2.getMonth() + 1)
			SetElemNewValue(document.getElementById(obj2ID.elemDay), date2.getDate());
			
			obj2ID.year = date2.getFullYear();
			obj2ID.month = date2.getMonth();
		}
	}
	
	SetNewDate(objID, obj2ID, document.getElementById(objID.elemDay).value);
	SetNewDate(obj2ID, objID, document.getElementById(obj2ID.elemDay).value);
	


}

function SetDateFieldsCalendarFirst(objID, obj2ID, control)
{
	var today = new Date();
	
	var minDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());
	var date = new Date(document.getElementById(objID.elemYear).value, document.getElementById(objID.elemMonth).value - 1, document.getElementById(objID.elemDay).value, "23", "59", "59");
	var date2 = new Date(document.getElementById(obj2ID.elemYear).value, document.getElementById(obj2ID.elemMonth).value - 1, document.getElementById(obj2ID.elemDay).value, "23", "59", "59");
	
	if (((control == 0) ? date : date2) < minDate)
	{
		SetElemNewValue(document.getElementById(objID.elemYear), date.getFullYear() + 1);
		SetElemNewValue(document.getElementById(objID.elemMonth), date.getMonth());
		//SetElemNewValue(document.getElementById(objID.elemMonth), date.getMonth() + 1);
		SetElemNewValue(document.getElementById(obj2ID.elemYear), date.getFullYear() + 1);
		SetElemNewValue(document.getElementById(obj2ID.elemMonth), date.getMonth());
		//SetElemNewValue(document.getElementById(obj2ID.elemMonth), date.getMonth() + 1);
		
		objID.year = date.getFullYear() + 1;
		objID.month = date.getMonth();
		obj2ID.year = objID.year;
		obj2ID.month = objID.month;
	}
	else if (date > date2)
	{	
		//SetElemNewValue(document.getElementById(objID.elemDay), (control == 0) ? date.getDate() : date2.getDate());
		SetElemNewValue(document.getElementById(objID.elemMonth), (control == 0) ? date.getMonth() + 1 : date2.getMonth() + 1);
		SetElemNewValue(document.getElementById(objID.elemYear), (control == 0) ? date.getFullYear() : date2.getFullYear());
		SetElemNewValue(document.getElementById(obj2ID.elemDay), (control == 0) ? date.getDate() : date2.getDate());
		SetElemNewValue(document.getElementById(obj2ID.elemMonth), (control == 0) ? date.getMonth() + 1 : date2.getMonth() + 1);
		SetElemNewValue(document.getElementById(obj2ID.elemYear), (control == 0) ? date.getFullYear() : date2.getFullYear());
		
		objID.year = ((control == 0) ? date.getFullYear() : date2.getFullYear());
		objID.month = ((control == 0) ? date.getMonth() : date2.getMonth());
		obj2ID.year = objID.year;
		obj2ID.month = objID.month;
	}
	else
	{	
		if (control == 0)
		{
			SetElemNewValue(document.getElementById(objID.elemYear), date.getFullYear());
			SetElemNewValue(document.getElementById(objID.elemMonth), date.getMonth() + 1);
			SetElemNewValue(document.getElementById(objID.elemDay), date.getDate());		
		
			objID.year = date.getFullYear();
			objID.month = date.getMonth();
		}
		else
		{
			SetElemNewValue(document.getElementById(obj2ID.elemYear), date2.getFullYear());
			SetElemNewValue(document.getElementById(obj2ID.elemMonth), date2.getMonth() + 1)
			SetElemNewValue(document.getElementById(obj2ID.elemDay), date2.getDate());
			
			obj2ID.year = date2.getFullYear();
			obj2ID.month = date2.getMonth();
		}
	}
	
	SetNewDate(objID, obj2ID, document.getElementById(objID.elemDay).value);
	SetNewDate(obj2ID, objID, document.getElementById(obj2ID.elemDay).value);	

}


function chooseDestino(field, str)
{
	document.getElementsByName(field)[0].value = str;
	hideDivDestinos('dias_Aviao_AH,dias_Aviao2_AH,sel_singles_AH,sel_duplos_AH,sel_triplos_AH,sel_adultos_AH,sel_criancas_AH,sel_bebes_AH,sel_estrelas_AH,TipoPesquisa,sel_MenoresDe2Aviao,sel_MenoresDe11Aviao,dias_Aviao2,mes_Aviao2,YanoMes2,dias_Aviao,mes_Aviao,YanoMes,sel_MaioresDe11Aviao,sel_ClasseAviao','');
}

function hideDivDestinos(show, hide){

	if (document.getElementById("divDestinos") != null)
		document.getElementById("divDestinos").style.display = 'none';
	if (document.getElementById("divDestinosReturn") != null)
		document.getElementById("divDestinosReturn").style.display = 'none';
	if (document.getElementById("divCalendar1_AH") != null)
		document.getElementById("divCalendar1_AH").style.display = 'none';
	if (document.getElementById("divCalendar2_AH") != null)
		document.getElementById("divCalendar2_AH").style.display = 'none';
		if (document.getElementById("divCalendar1") != null)
		document.getElementById("divCalendar1").style.display = 'none';
	if (document.getElementById("divCalendar2") != null)
		document.getElementById("divCalendar2").style.display = 'none';
	
	if (""+show != ""){
		show = show.split(",");	
		var elem;
		if (show.length > 0){
			for (i=0; i < show.length; i++)
			{
				elem = show[i];
				if (document.getElementsByName(elem)[0] != null)
					document.getElementsByName(elem)[0].style.visibility = 'visible';
			}
		}
	}
	
	if (""+hide != ""){
		hide = hide.split(",");	
		var elem;
		if (hide.length > 0){
			for (i=0; i < hide.length; i++){
				elem = hide[i];
				if (document.getElementsByName(elem)[0] != null)
					document.getElementsByName(elem)[0].style.visibility = 'hidden';
			}
		}
	}
}

function MyShowDiv(showDiv, hideDiv, ref, show, hide, xVal, yVal)
{

	document.getElementById(showDiv).style.top = GetPageCoordsById(ref).y - yVal;
	document.getElementById(showDiv).style.left = GetPageCoordsById(ref).x + xVal;	
	document.getElementById(showDiv).style.display = 'block';
	document.getElementById(hideDiv).style.display = 'none';
	
	if (document.getElementById("divCalendar1_AH") != null)
		document.getElementById("divCalendar1_AH").style.display = 'none';
	if (document.getElementById("divCalendar2_AH") != null)
		document.getElementById("divCalendar2_AH").style.display = 'none';
		
	if (document.getElementById("divCalendar1") != null)
		document.getElementById("divCalendar1").style.display = 'none';
	if (document.getElementById("divCalendar2") != null)
		document.getElementById("divCalendar2").style.display = 'none';
	
	if (""+show != ""){
		show = show.split(",");	
		var elem;
		if (show.length > 0){
			for (i=0; i < show.length; i++){
				elem = show[i];
				if (document.getElementsByName(elem)[0] != null)
					document.getElementsByName(elem)[0].style.visibility = 'visible';
			}
		}
	}
	
	if (""+hide != ""){
		hide = hide.split(",");	
		var elem;
		if (hide.length > 0){
			for (i=0; i < hide.length; i++){
				elem = hide[i];
				if (document.getElementsByName(elem)[0] != null)
					document.getElementsByName(elem)[0].style.visibility = 'hidden';
			}
		}
	}
}


function MyShowDivHotel(showDiv, ref, show, hide, xVal, yVal)
{
	
	document.getElementById(showDiv).style.top = GetPageCoordsById(ref).y - yVal;
	document.getElementById(showDiv).style.left = GetPageCoordsById(ref).x + xVal;	
	document.getElementById(showDiv).style.display = 'block';
	
	
	if (document.getElementById("divCalendar1_AH") != null)
		document.getElementById("divCalendar1_AH").style.display = 'none';
	if (document.getElementById("divCalendar2_AH") != null)
		document.getElementById("divCalendar2_AH").style.display = 'none';
		
	if (document.getElementById("divCalendar1") != null)
		document.getElementById("divCalendar1").style.display = 'none';
	if (document.getElementById("divCalendar2") != null)
		document.getElementById("divCalendar2").style.display = 'none';
	
	if (""+show != ""){
		show = show.split(",");	
		var elem;
		if (show.length > 0){
			for (i=0; i < show.length; i++){
				elem = show[i];
				if (document.getElementsByName(elem)[0] != null)
					document.getElementsByName(elem)[0].style.display = 'block';
			}
		}
	}
	
	if (""+hide != ""){
		hide = hide.split(",");	
		var elem;
		if (hide.length > 0){
			for (i=0; i < hide.length; i++){
				elem = hide[i];
				if (document.getElementsByName(elem)[0] != null)
					document.getElementsByName(elem)[0].style.display = 'none';
			}
		}
	}
}


function chooseDestinoHotel(field, str)
{
	document.getElementsByName(field)[0].value = str;
	hideDivDestinosHotel('EndDay,YanoMes2,DivmtrRooms,Nights,mtrRooms,estrelas','');
}

function hideDivDestinosHotel(show, hide)
{
	
	if (document.getElementById("divDestinosHotel") != null)
		document.getElementById("divDestinosHotel").style.display = 'none';
	if (document.getElementById("divCalendar1_AH") != null)
		document.getElementById("divCalendar1_AH").style.display = 'none';
	if (document.getElementById("divCalendar1") != null)
		document.getElementById("divCalendar1").style.display = 'none';
	
	if (""+show != ""){
		show = show.split(",");	
		var elem;
		if (show.length > 0){
			for (i=0; i < show.length; i++)
			{
				elem = show[i];
				if (document.getElementsByName(elem)[0] != null)
					document.getElementsByName(elem)[0].style.display = 'block';
			}
		}
	}
	
	if (""+hide != ""){
		hide = hide.split(",");	
		var elem;
		if (hide.length > 0){
			for (i=0; i < hide.length; i++){
				elem = hide[i];
				if (document.getElementsByName(elem)[0] != null)
					document.getElementsByName(elem)[0].style.display = 'block';
			}
		}
	}
}
