/* ==============================================================================
FUNCTION:	OpenPopupWindow(winURL, winName, winFeatures)
- Opens a new browser window with the parameters passed into the function
============================================================================== */
function OpenPopupWindow(winURL, winName, winFeatures) 
{
	var objWin = window.open(winURL, winName, winFeatures);
	objWin.focus()
}

function SetCheckboxValue(elemName, elemIndex, auxElemName)
{
	document.getElementsByName(auxElemName)[elemIndex].value = (document.getElementsByName(elemName)[elemIndex].checked) ? "D" : "";
}

//PAGE FUNCTIONS
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));
    }    
}

//VALIDATION FUNCTIONS
function Error(id, desc, index)
{
	this.id = id;
	this.desc = desc;
	this.index = index;
	
	return this;
}

function ValidValue(val)
{
	return (val != null && val != "" && val != "undefined");
}

function ValidNumber(val)
{
	return (val != null && val != "" && val != "undefined" && !isNaN(val));
}

function ValidEmail(email)
{
	var reg = /^(\w+(?:(\.|\-)\w+)*)@((?:\w+(?:(\.|\-)\w+)*\.)+)([a-z\d]{2,})$/i;
	return reg.test(email);
}

function ValidTextValueFocusedMsg(elem, msgError, index)
{
	if (!ValidValue(elem.value))
		throw new Error(elem.id, msgError, index);
}

function MultipleValidTextValueFocusedMsg(elemID, msgError, minIndex, maxIndex)
{
	for (var i = minIndex; i <= maxIndex; i++)
		ValidTextValueFocusedMsg(document.getElementsByName(elemID)[i], msgError, i);
}

function MultipleValidDatesFocusedMsg(elemIDDay, elemIDMonth, elemIDYear, msgError, minIndex, maxIndex)
{
	var objDay = document.getElementsByName(elemIDDay);
	var objMonth = document.getElementsByName(elemIDMonth);
	var objYear = document.getElementsByName(elemIDYear);	
	var today = new Date();
	
	for (var i = minIndex + 1; i <= maxIndex; i++)
	{
		var minDate = new Date(objYear[i - 1].value, objMonth[i - 1].value - 1, objDay[i - 1].value);
		var currentDate = new Date(objYear[i].value, objMonth[i].value - 1, objDay[i].value);
		
		if (currentDate <= minDate || currentDate < today)
			throw new Error(objDay[i].id, msgError, i);
	}
}

function SubmitDynamicFormLoading(formId,page)
{

	var aviaoActive = (document.getElementById('inputCheck0') != null && document.getElementById('inputCheck0').value == "true");	
	var hotelActive = (document.getElementById('inputCheck1') != null && document.getElementById('inputCheck1').value == "true");
	
	document.getElementById('url').value = (aviaoActive && hotelActive) ? "/AirHotel/AirHotel_SearchResults.aspx" : page;	
	document.getElementById(formId).action = '/Checkout/loading.aspx';		
	
	if (aviaoActive && hotelActive)
		SubmitAirHotelDynamicFormLoadingValidations(formId);
	else
		document.getElementById(formId).submit();
}

function FistUpperOtherLower(str)
{
	var out = "";
	var str = String(str);
	var currentStr = "";
	var spliter = " ";
	var arr = str.split(spliter);
	
	for (var i = 0; i < arr.length; i++)
	{
		currentStr = String(arr[i]);
		out += ((i > 0) ? " " : "") + currentStr.charAt(0).toUpperCase() + currentStr.substring(1, currentStr.length).toLowerCase();
	}
	return out;
}

function ShowDIVVisibilityDisplay(divID)
{
	try
	{
		var divOBJ = document.getElementById(divID);
		
		divOBJ.style.visibility = (divOBJ.style.visibility == "visible") ? "hidden" : "visible";
		divOBJ.style.display = (divOBJ.style.display == "block") ? "none" : "block";		
	}
	catch(exception)
	{}
}