var isIE;

isIE = (document.all);
var XMLTransactions = "";
var CountTransaction = 0;
var WaitDlg;
var Transactions = new Array();

var Width0 = BwindowWidth();
var Height0 = BwindowHeight();

var msgGroup_en = "This package is not compatible with the consulate selected";
var msgGroup_ar = "المختارة القنصلية مع متناسبة غير الباكاج هذه";
		
var msg1_en = "The Search did not return any result!";
var msg1_ar = "البحث لم يرجع أي نتيجة";
var msg2_en = "An error has occured, the system failed to search successfully!";
var msg2_ar = "حصلت مشكلة ما, لم نتمكن من إجراء البحث";

var msg3_en = "Invalid date format specified.  Please use: dd/mm/yyyy";
var msg4_en = "Arrival date is invalid!";
var msg5_en = "Departure date is invalid!";
var msg6_en = "Selected Mutamers must have the same package in order to perform this transaction!";

var msg3_ar = "التاريخ المحدد غير صالح";
var msg4_ar = "تاريخ رحلة القدوم ليس صالحا";
var msg5_ar = "تاريخ رحلة المغادرة ليس صالحا";
var msg6_ar = "يجب على المعتمرين المختارين ان يكون لهم نفس البرنامج لكي تتمكن من اتمام هذه الحركة";


var VISA = "VISA";
var CCAM = "CCAM";
var BORD = "BORD"; 
var EDPK = "EDPK";
var EVIS = "EVIS";

var PackageNumber;

function getDay(sdate)
{
	var index = sdate.indexOf("/");
	var day = parseInt(sdate.substring(0, index), 10);
	return day;
}

function getMonth(sdate)
{
	var index0 = sdate.indexOf("/");
	var index1 = sdate.indexOf("/", index0 + 1);
	var month = parseInt(sdate.substring(index0 + 1, index1), 10);
	return month;
}

function getYear(sdate)
{
	var index0 = sdate.indexOf("/");
	var index1 = sdate.indexOf("/", index0 + 1);
	var year = sdate.substring(index1 + 1, sdate.length);
	return year;
}

function validateDate(sdate1)
{
	var date1 = new Date(sdate1);
	if (date1 == "NaN")
	{
		return false;
	}
	else
	{
		var day = getDay(sdate1);
		var month = getMonth(sdate1);
		
		if (day < 1 || day > 31 || month > 12 || month < 1)
		{
			return false;
		}
	}
	
	return true;
}

function compareDates(sdate1, sdate2)
{
	var greater = false;

	var day1 = getDay(sdate1);
	var month1 = getMonth(sdate1);
	var year1 = getYear(sdate1);

	var day2 = getDay(sdate2);
	var month2 = getMonth(sdate2);
	var year2 = getYear(sdate2);

	if (year2 > year1)
	{
		greater = true;
	}
	else if (year2 == year1 && month2 > month1)
	{
		greater = true;
	}
	else if (year2 == year1 && month2 == month1 && day2 > day1)
	{
		greater = true;
	}
	return greater;
}

function equalDates(sdate1, sdate2)
{
	var greater = false;

	var day1 = getDay(sdate1);
	var month1 = getMonth(sdate1);
	var year1 = getYear(sdate1);

	var day2 = getDay(sdate2);
	var month2 = getMonth(sdate2);
	var year2 = getYear(sdate2);

	if (year2 == year1 && month2 == month1 && day2 == day1)
	{
		greater = true;
	}
	
	return greater;
}

function custom_bord()
{
	var arrival = Field("EVENT_DATE1").value;
	var departure = Field("EVENT_DATE2").value;
	var beginYear = Field("HBeginYear").value;
	var endYear = Field("HEndYear").value;

	var isValid = true;
	if (arrival != "" && departure != "")
	{
		if (!validateDate(arrival) || !validateDate(departure))
		{
			alert(Translate("msg3"));
			isValid = false;
		}
		else if (!compareDates(beginYear, arrival) || !compareDates(arrival, endYear))
		{
			alert(Translate("msg4"));
			isValid = false;
		}
		else if (!compareDates(beginYear, departure) || !compareDates(departure, endYear) || !compareDates(arrival, departure))
		{
			alert(Translate("msg5"));
			isValid = false;
		}
	}
	return isValid;
}


function recal()
{
	if (Width0 != BwindowWidth() || Height0 != BwindowHeight())
		window.history.go(0);
}

function BwindowWidth()
{
	if (window.innerWidth) return window.innerWidth;
	else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
	else return 0;
}

function BwindowHeight()
{
	if (window.innerHeight) return window.innerHeight;
	else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
	else return 0;
}

function AddField(fldName)
{
	var ret = "";
	var fld;
	fld = Field(fldName);
	if (fld == null)
	{
		fld = Field("SearchHajj1_" + fldName);
	}
	
	if (fld != null)
	{
		if (fld.value != "")
		{
			ret = "<" + fldName + ">" + fld.value + "</" + fldName + ">";
		}
	}
	return ret;
}

function LoadMutamers()
{
	ShowWait();
	var doc = GetDomDocument();
	xml = "<root session='1'";
	if (XMLTransactions == "")
	{
		xml+= " trans='1'";
	}
	xml+= " culture='" + Field("culture").value + "'";
	xml+= ">";
	xml+= "</root>";
	try
	{
		doc.loadXML(xml); 
		var xmlResponse = Post2Server(doc, "SearchResponse.aspx");
		var dom = GetDomDocument();
		dom.loadXML(xmlResponse.xml);
		GetTransactions(dom);
		FillMuatamers(dom);
	}
	catch(e)
	{
	}
	
	HideWait();
}

function SearchMutamer()
{	
	
		ShowWait();
		var doc = GetDomDocument();
		xml = "<root";
		if (XMLTransactions == "")
		{
			xml+= " trans='1'";
		}
		xml+= " culture='" + Field("culture").value + "'";
		xml+= ">";
		xml+= AddField("TxtFirst");
		xml+= AddField("TxtSecond");
		xml+= AddField("TxtGrandFather");
		xml+= AddField("TxtLast");		
		xml+= AddField("TxtIQamaNumber");
		
		
		var brlst = Field("SearchHajj1_DdlBRCode");		
		var brval = brlst.options[brlst.selectedIndex].value;		
		xml+= "<DdlBRCode>" + brval + "</DdlBRCode>";
		
		
		
		var lst = Field("SearchHajj1_DdlPackage");
		var val = lst.options[lst.selectedIndex].value;
		xml+= "<DdlPackage>" + val + "</DdlPackage>";
		
		
		//xml+= AddField("TxtPackageNumber");
		
		//var lst = Field("SearchHajj1_LstStatus");
		//var val = lst.options[lst.selectedIndex].value;
		//xml+= "<GotStatus>" + val + "</GotStatus>";
		
		xml+= "</root>";		
		
		try
		{
			doc.loadXML(xml); 
			var xmlResponse = Post2Server(doc, "SearchResponse.aspx");
			var dom = GetDomDocument();
			dom.loadXML(xmlResponse.xml);
			GetTransactions(dom);
			FillMuatamers(dom);
		}
		catch(e)
		{
			alert(Translate("msg2"));
		}
		
		HideWait();
	
}

function ClearTransactions()
{
	var Tbl = Field("TblTransactions");
	var rowIndex = 0;
	var cellIndex = 0;
	for (var i = 0; i < CountTransaction; i++)
	{
		cellIndex = i % 3;
		rowIndex = i/3;
		Tbl.rows[rowIndex].cells[cellIndex].innerHTML = "";
	}
	XMLTransactions = "";
}

function GetTransactions(dom)
{
	var root = dom.documentElement; 
	var Tbl = Field("TblTransactions");
	if (XMLTransactions == "")
	{
		var node = root.selectSingleNode("./ts");
		if (node != null)
		{
			Transactions = new Array();
			XMLTransactions = node.xml;
			var nodes = node.selectNodes("./t");
			var transNode;
			var rowIndex = 0;
			var cellIndex = 0;
			CountTransaction = 0;
			for (var i = 0; i < nodes.length; i++)
			{
				transNode = nodes[i];
				var alt = transNode.attributes.getNamedItem("desc").value;
				var text = transNode.attributes.getNamedItem("display").value;
				var name = transNode.attributes.getNamedItem("name").value;
				Transactions[i] = name;
				cellIndex = i % 3;
				rowIndex = i/3;
				Tbl.rows[rowIndex].cells[cellIndex].innerHTML = "<a id='TransLnk" + i + "' class='off' href='javascript:LaunchTransaction(" + i + ")'><img id='TransImg" + i + "' src='images/trans_off.jpg' alt='" + alt + "'>&nbsp;" + alt + "</a>";
				CountTransaction++;
			}
		}
		
	}
}

function doNothing()
{
}

function ValidateSamePackage(index)
{
	var bValid = true;
	var tbl = Field("TblResults");
	var count = tbl.rows.length;
	var chk;
	var i = 0;
	var initialPackage = "";	
	var currentPackage = "";
	if (Transactions[index] == EDPK || Transactions[index] == EVIS)
	{
		ShowWait();
		// let us validate that selected mutamers have same package
		for(i = count - 1; i >= 1 ; i--)
		{
			chk = Field("Chk" + tbl.rows(i).key);
			if (chk != null && chk.checked)
			{
				if (initialPackage == "")
				{
					initialPackage = tbl.rows(i).cells(7).innerHTML;
					PackageNumber = initialPackage;
				}
				else
				{
					currentPackage = tbl.rows(i).cells(7).innerHTML;
					if (initialPackage != currentPackage)
					{
						bValid = false;
						break;
					}
				}
			}
		}
		HideWait();
		
	}
	
	return bValid;
}

function LaunchTransaction(index)
{
	if (Field("TransLnk" + index).className == "on")
	{
		var tbl = Field("TblResults");
		var count = tbl.rows.length;
		var chk;
		var i = 0;
		var doc = GetDomDocument();
		PackageNumber = "";
		if (!ValidateSamePackage(index))
		{
			alert(Translate("msg6"));
			return;
		}

		ShowWait();
		xml = "<transaction name='";
		xml+= Transactions[index] + "'";

		xml+= ">";
		
		for(i = count - 1; i >= 1 ; i--)
		{
			chk = Field("Chk" + tbl.rows(i).key);
			if (chk != null && chk.checked)
			{
				xml+= "<m i='" + tbl.rows(i).key + "'/>";
			}
		}

		xml+= "</transaction>";
		doc.loadXML(xml); 
		var xmlResponse = Post2Server(doc, "SessionMutamers.aspx");
		HideWait();
		window.location.href = "Transaction.aspx?trans=" + Transactions[index];
	}
}

function FillMuatamers(dom)
{
	var root = dom.documentElement; 
	var node = null;
	var itemNode = null;
	var arr = new Array();

	nodes = root.selectNodes("h");
	if (nodes.length == 0)
	{
		alert(Translate("msg1"));
	}
	
	for (var i = 0; i < nodes.length; i++)
	{
		itemNode = nodes[i];
		// id_ContractID
		node = itemNode.attributes.getNamedItem("c");
		var key = node.value;
		node = itemNode.attributes.getNamedItem("i");
		var ContractID = node.value;
		node = itemNode.attributes.getNamedItem("p");
		var packageNumber = node.value;
		// Last Transaction
		node = itemNode.attributes.getNamedItem("n");
		var iqamaNumber = node.value;
		var name = "";
		node = itemNode.attributes.getNamedItem("sel");
		var checked = "";
		var UpdateIsNeeded = false;
		if (node != null && node.value == "1")
		{
			checked = "checked";
			UpdateIsNeeded = true;
		}
			
		if (Field("culture").value == "en")
		{
			// Name
			node = itemNode.selectSingleNode("f0");
			if (node != null)
			{
				name = node.text;
			}
			if (name == "")
			{
				node = itemNode.selectSingleNode("f0_AR");
				if (node != null)
				{
					name = node.text;
				}
			}
		}
		else // Arabic name
		{
			node = itemNode.selectSingleNode("f0_AR");
			if (node != null)
			{
				name = node.text;
			}
			if (name == "")
			{
				node = itemNode.selectSingleNode("f0");
				if (node != null)
				{
					name = node.text;
				}
			}		
		}
		
		// Passport number
		var passportNumber = "";
		node = itemNode.selectSingleNode("f1");
		if (node != null)
		{
			passportNumber= node.text;
		}
		
		// Package number
		var packageNumber = "";
		node = itemNode.selectSingleNode("PG_NO");
		if (node != null)
		{
			packageNumber = node.text;
		}
				
		// Arrival date (From - To)
		node = itemNode.selectSingleNode("f2");
		var arrival = "";
		if (node != null)
		{
			arrival = node.text;
		}

		if (!ExistMutamer(key))
		{
			AddMutamer(ContractID, key, packageNumber, name, passportNumber, arrival, iqamaNumber, packageNumber, checked);
		}
		if (UpdateIsNeeded)
		{
			UpdateTransactions();
		}
	}
}
 
function Field(name)
{
	if (isIE)
	{
		var fld = document.all(name);
		return fld;
	}
	else
	{
		return null;
	}
}

function GetDomDocument()
{
	var dom = new ActiveXObject("Microsoft.XMLDOM"); 
	return dom;
}

function Post2Server(xmlDoc, url)
{
	var xmlhttp = new ActiveXObject ("Microsoft.XMLHTTP"); 
	xmlhttp.Open("POST", url, false); 
	xmlhttp.Send(xmlDoc); 
	return xmlhttp.responseXML;
}

function ConfirmContinue()
{
	var fld = Field("Culture");
	var cul = "ar";
	if (fld == null)
	{
		fld = Field("CurrentCulture");
	}	
	
	if (fld != null)
	{
		cul = fld.value;
	}	
	var ret = window.showModalDialog('../Confirm_' + cul + '.html',['Question','Do you want to continue?','Yes','No'],'dialogWidth:245px;dialogHeight:120px;status:no;');
	if (ret == 1)
	{
		return true;
	}
	else
	{
		return false;
	}
}
function ConfirmMsg(msg)
{
	var ret = window.showModalDialog('../msg.htm',['Info',msg,'Cancel'],'dialogWidth:245px;dialogHeight:120px;status:no;');
	if (ret == 1)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function ExistMutamer(key)
{
	var tbl = Field("TblResults");
	var count = tbl.rows.length;
	var i = 0;

	for(i = count - 1; i >= 1 ; i--)
	{
		if (tbl.rows(i).key == key)
		{
			return true;
		}
	}
	return false;
}

function ClearMutamers()
{
	var tbl = Field("TblResults");
	var count = tbl.rows.length;
	var i = 0;
	if (count >= 1)
	{
		if (ConfirmContinue())
		{	
			var doc = GetDomDocument();
			var xml = "<root/>";
			doc.loadXML(xml); 
			var xmlResponse = Post2Server(doc, "ClearMutamers.aspx");

			for(i = count - 1; i >= 1 ; i--)
			{
				tbl.deleteRow(i);
			}
			ClearTransactions();
		}
	}
}

function ShowWait()	
{
	if (WaitDlg != null)
	{
		HideWait();
	}
	var waitMsg = "";
	var cult = Field("culture").value;
	if (cult == "ar")
	{
		waitMsg = "المعالجة ...";
	}
	else
	{
		waitMsg = "Processing...";
	}
	
    WaitDlg = window.open("","","toolbar=no,locationbar=no,width=220,height=50,screenX=300,screenY=400")
	WaitDlg.document.write("<img src='../images/connect.gif'><B><font color='red' face='Arial'>" + waitMsg + "</font><B>");
}

function HideWait()
{
	WaitDlg.close();
}

function checkBrowser()
{
	if (navigator.appName == "Microsoft Internet Explorer"
		&& parseInt(navigator.appVersion) >= 4)
	{
		isIE = true;
		return true;
	}
	// For some reason, appVersion returns 5 for Netscape 6.2 ...
	else if (navigator.appName == "Netscape"
		&& navigator.appVersion.indexOf("5.") >= 0)
	{
		isIE = false;
		return true;
	}
	else
	{
		return false;
	}
}

function AddItemToList(text, value, lst)
{
	lst.options[lst.options.length] = new Option(text, value);
}

function AddMutamer(ContractID, key, packageNumber, name, passportNumber, arrival, iqamaNumber, packageNumber, checked)
{
	var newRow = Field('TblResults').insertRow();
	
	/*var img = "";
	if (lastTrans == "MOFA")
	{
		img = "mofa.gif";	
	}
	else if (lastTrans == "VISA")
	{
		img = "visa.gif";
	}
	else if (lastTrans == "BORD")
	{
		img = "bord.gif";
	}
	else if (lastTrans == "EXIT" || lastTrans == "BURY" || lastTrans == "LOCM" || lastTrans=="DETH" || lastTrans=="CCAM")
	{
		img = "exit.gif";
	}
	// TMOI or else.
	else if (lastTrans != "")
	{
		img = "tmoi.gif";
	}*/
	
	// CheckBox		
	var cell1 = newRow.insertCell();
	// Icon
	var cell2 = newRow.insertCell();

	/*if (lastTrans != "")
	{
		cell1.innerHTML = "<input onClick='javascript:UpdateTransactions()' id='Chk" + key + "' name='" + key + "' type='checkbox' " + checked + ">";
		cell2.innerHTML = "<img src='images/" + img + "'>";
	}*/
	cell1.innerHTML = iqamaNumber;
	cell2.innerHTML = "";
	// Mutamer Number
	var cell3 = newRow.insertCell();
	cell3.innerHTML = packageNumber;
	// Mutamer Name
	var cell4 = newRow.insertCell();
	cell4.innerHTML = name;
	// Mutamer Passport
	var cell5 = newRow.insertCell();
	cell5.innerHTML = iqamaNumber;
	// Expected Arrival-Departure
	var cell6 = newRow.insertCell();
	cell6.innerHTML = "";// arrival;
	// Mutamer Last Transaction
	var cell7 = newRow.insertCell();
	cell7.innerHTML = "";//lastTrans;
	// Package Number
	var cell8 = newRow.insertCell();
	cell8.innerHTML = packageNumber;	
	
	var nnm = newRow.attributes;
	var namedItem = document.createAttribute("key");
	namedItem.value = key;
	nnm.setNamedItem(namedItem);

	var namedItem = document.createAttribute("status");
	namedItem.value = ContractID;
	nnm.setNamedItem(namedItem);
}

function moveSelectedOptions(from0, to0)
{
	var from = Field(from0);
	var to = Field(to0);
	var itemsFound = new Array();
	// Move them over
	for (var i=0; i<from.options.length; i++)
	{
		var o = from.options[i];
		itemsFound[i] = true;
		if (o.selected)
		{
			if (SearchOptions(to, o.text) == -1)
			{
				itemsFound[i] = false;
				to.options[to.options.length] = new Option( o.text, o.value, false, false);
			}
		}
	}
	// Delete them from original
	for (var i=(from.options.length-1); i>=0; i--)
	{
		var o = from.options[i];
		if (o.selected)
		{
			if (!itemsFound[i])
			{
				from.options[i] = null;
			}
		}
	}
	from.selectedIndex = -1;
	to.selectedIndex = -1;
}
	
function moveAllOptions(from0, to0)
{
	var from = Field(from0);
	var to = Field(to0);
	selectAllOptions(from);
	moveSelectedOptions(from0, to0);
}

function selectAllOptions(obj)
{
	for (var i=0; i<obj.options.length; i++)
	{
		obj.options[i].selected = true;
	}
}

function SearchOptions(OptionList, value)
{
	var o;
	for (var i = 0; i < OptionList.options.length; i++)
	{
		o = OptionList.options[i];
		if (o.text == value)
		{
			return i;
		}
	}
	return -1;
}	

function ClearOptions(OptionList)
{
	// Always clear an option list from the last entry to the first
	for (var x = OptionList.length; x >= 0; x--)
	{
		OptionList[x] = null;
	}
}	

function Translate(key)
{
	return eval(key + "_" + Field("Culture").value);
}

function SelectUnSelectAll(obj)
{
	var tbl = Field("TblResults");
	var count = tbl.rows.length;
	var i = 0;
	var chk;

	if (count > 0)
	{
		for(i = count - 1; i >= 1 ; i--)
		{
			chk = Field("Chk" + tbl.rows(i).key);
			if (chk != null)
			{
				chk.checked = obj.checked;
			}
		}
		UpdateTransactions();
	}
}

function UpdateTransactions()
{
	ShowWait();
	var o;
	var status = parseInt("1111111111111111111111", 2);
	var tbl = Field("TblResults");
	var temp;
	
	var count = tbl.rows.length;
	var i = 0;
	var chk;
	var CountChecked = 0;

	for(i = count - 1; i >= 1 ; i--)
	{
		chk = Field("Chk" + tbl.rows(i).key);
		if (chk != null && chk.checked)
		{
			temp = tbl.rows(i).status;
			CountChecked++;
			status = status & parseInt(temp, 2);
		}
	}
	
	for (var k = 0; k < CountTransaction; k++)
	{
		Field("TransLnk" + k).className = "off";
		Field("TransImg" + k).src = "images/trans_off.jpg";
	}
	
	if (CountChecked > 0)
	{
		var status1 = status.toString(2);
		var c;
		var counter = 0;
		var eaCode = Field("EACode").value;
		var lightOn = true;
			
		for (var j = status1.length - 1; j >=0; j--)
		{
			lightOn = true;
			c = status1.charAt(j);
			// We need to check for EA
			// EA can only run BORD, VISA and CCAM transactions
			if (eaCode != "-1")
			{
				lightOn = (Transactions[counter] == BORD || Transactions[counter] == VISA || Transactions[counter] == CCAM);
			}
			
			if (c == '1' && lightOn)
			{
				Field("TransLnk" + counter).className = "on";
				Field("TransImg" + counter).src = "images/trans_on.jpg";
			}

			counter++;
		}
	}
	HideWait();
	
}

function SearchList(lstID, txtID)
{
	var lst = Field(lstID);
	var txt = Field(txtID);
	var o;
	var lstVal = "";
	var lstTxt = "";
	var txtVal = txt.value;
	if (txtVal != "")
	{
		txtVal = txtVal.toLowerCase();
		var index = -1;
		for (var i = 0; i < lst.options.length; i++)
		{
			o = lst.options[i];
			lstVal = o.value.toLowerCase();
			lstTxt = o.text.toLowerCase();
			
			if (lstVal == txtVal || lstTxt == txtVal)
			{
				index = i;
				break;
			}
		}
		if (index == -1)
		{		
			for (var i = 0; i < lst.options.length; i++)
			{
				o = lst.options[i];
				lstVal = o.value.toLowerCase();
				lstTxt = o.text.toLowerCase();
				
				if (lstVal.indexOf(txtVal) != -1 || lstTxt.indexOf(txtVal) != -1)
				{
					index = i;
					break;
				}
			}
		}
		if (index != -1)
		{
			lst.selectedIndex = index;	
		}
		else
		{
			lst.selectedIndex = 0;	
		}
		
	}
	
}
function GetPackageDetails()
{

	var lstPackage = document.EditGroup.LstPackage;
	var temp = lstPackage.options[lstPackage.selectedIndex].value;
	var arrValues = temp.split(',');

	var packageID = arrValues[0];
	var packageEntryType = arrValues[6];
	if (packageID > 0)
	{
		Field("TblPackages").rows[1].cells[0].innerHTML = "<a id='PackageIDLink" + "' class='off' href='../Package/EditPackage.aspx?id=" + packageID + "'>" + packageID + "</a>";
		
		var packageName = arrValues[1];
		Field("TblPackages").rows[1].cells[1].innerHTML = packageName;
		
		var packagePrice = arrValues[2];
		Field("TblPackages").rows[1].cells[2].innerHTML = packagePrice;
		
		var StartingDate = arrValues[3];
		Field("TblPackages").rows[1].cells[3].innerHTML = StartingDate;
		
		var EndDate = arrValues[4];
		Field("TblPackages").rows[1].cells[4].innerHTML = EndDate;
		
		var Duration = arrValues[5];
		Field("TblPackages").rows[1].cells[5].innerHTML = Duration;
	}
	else
	{
		for(var i=0;i<Field("TblPackages").rows[1].cells.length;i++)
		{
			Field("TblPackages").rows[1].cells[i].innerHTML = "";
		}
	}

}

function UpdateHasMuhram()
{
	if (document.EditGroup.ChkOsbatNisaa.checked)
	{
		document.all('ChkHasMuhram').disabled = false;
	}
	else
		document.EditGroup.ChkHasMuhram.disabled = true;
}

function ValidateStartEndDates(TxtFrom,TxtTo)
{	
	var DateFrom = document.all(TxtFrom).value;
	var DateTo = document.all(TxtTo).value;
	
	if (!validate(DateFrom))
	{
		window.alert(ClientAlert_InvalidStartDate);
		return false;			
	}
	else if (!validate(DateTo))
	{
		window.alert(ClientAlert_InvalidEndDate);
		return false;			
	}
	else
	{
		return true;
	}
}
function ValidateDateEntry(TxtDate)
{	
	var DateEntry = document.all(TxtDate).value;
	
	if (!validate(DateEntry))
	{
		window.alert(ClientAlert_InvalidDate);
		return false;			
	}
	else
	{
		return true;
	}
}
function ValidateArrDepDates(TxtArrivalFrom,TxtArrivalTo,TxtDepartureFrom,TxtDepartureTo)
{
	var ArrivalFrom = Field(TxtArrivalFrom).value;
	var ArrivalTo = Field(TxtArrivalTo).value;
	var DepartureFrom = Field(TxtDepartureFrom).value;
	var DepartureTo = Field(TxtDepartureTo).value;
	
	if (!validate(ArrivalFrom))
	{
		window.alert(ClientAlert_InvalidArrivalFrom);
		return false;			
	}
	else if (!validate(ArrivalTo))
	{
		window.alert(ClientAlert_InvalidArrivalTo);
		return false;			
	}
	else if (!validate(DepartureFrom)) 
	{
		window.alert(ClientAlert_InvalidDepartureFrom);
		return false;			
	}
	else if (!validate(DepartureTo)) 
	{
		window.alert(ClientAlert_InvalidDepartureTo);
		return false;			
	}
		
	else
	{
		return true;
	}
}

function validate(sdate1)
{
	if (sdate1 == "")
	{
		return true;
	}
	var date1 = new Date(sdate1);
	if (date1 == "NaN")
	{
		return false;
	}
	else
	{
		var day = getDay(sdate1);
		var month = getMonth(sdate1);
		
		if (day < 1 || day > 31 || month > 12 || month < 1 )
		{
			
			return false;
		}
	}
	return true;
}
function BtnSubmit_OnClick(func)
{
	var btn = document.all('BtnSubmit');
	if (btn != null)
	{
		var initialBtnClick = btn.onclick.toString();
		var initialBtnClickBody = initialBtnClick.substring(initialBtnClick.indexOf('{')+1,initialBtnClick.lastIndexOf('}')-1);
		var newBtnClickBody = "if(!" + func + "()){return false;} else{" + initialBtnClickBody + "}";
		var newBtnClickHandler = new Function(newBtnClickBody);
		btn.onclick = newBtnClickHandler;
	}
}

function BtnSend_OnClick(func,param1)
{
	var btn = document.all('BtnSend');
	if (btn != null)
	{
		var initialBtnClick = btn.onclick.toString();
		var initialBtnClickBody = initialBtnClick.substring(initialBtnClick.indexOf('{')+1,initialBtnClick.lastIndexOf('}')-1);
		var newBtnClickBody = "if(!" + func + "('" +param1+"')" +"){return false;} else{" + initialBtnClickBody + "}";
		var newBtnClickHandler = new Function(newBtnClickBody);
		btn.onclick = newBtnClickHandler;
	}
}
function BtnSearch_OnClick(func,param1,param2)
{
	var btn = document.all('BtnSearch');
	if (btn != null)
	{
		var initialBtnClick = btn.onclick.toString();
		var initialBtnClickBody = initialBtnClick.substring(initialBtnClick.indexOf('{')+1,initialBtnClick.lastIndexOf('}')-1);
		var newBtnClickBody = "if(!" + func + "('" +param1+"','"+param2+"')" +"){return false;} else{" + initialBtnClickBody + "}";
		var newBtnClickHandler = new Function(newBtnClickBody);
		btn.onclick = newBtnClickHandler;
	}
}
