﻿	
//COMBOBOX

var fly_combobox=null;
var basectrl='';
var ws;
var requeststring;
var startPortSearchTimer=null;

function getPorts(bc) {
	basectrl=bc;
	clearTimeout(startPortSearchTimer);
	startPortSearchTimer=setTimeout("getPorts_Start()", 300);
}

function getPorts_Start() {
	var txt=Control_Text();
	requeststring=txt.value;
	if (txt.value.length<3) {hideFlyComboBox(); return;}
	CreateWebServiceEngine();
	ws.abortRequest();
	ws.setPagePath("ws_portsearch.asp");
	ws.setRequestData("txt="+escape(txt.value));
	//alert(txt.value);
	ws.onRequestComplete=getPorts_End;
	showLoadingMessageInFlyComboBox(txt);
	ws.startRequest();
}

function CreateWebServiceEngine() {
	if (ws==null) ws=new AjaxGear.Ajax();
}

function Control_Text() {return document.getElementById(basectrl+"_Text");}
function Control_Id() {return document.getElementById(basectrl+"_Id");}

function getPorts_End() {
	if (ws.getResponseXml().childNodes.length<1) return;
	var root=ws.getResponseXml().childNodes[0];
	var ports=root.childNodes[0];
	
	var txt=Control_Text();
	showPortsInFlyComboBox(ports, txt);	
	if (ports.childNodes.length==1) {
		var prt=ports.childNodes[0];
		assignPort(prt.getAttribute("id"), prt.getAttribute("locname"));
	}
	
}

function testFlyComboBox() {
	getPorts();
}

function showLoadingMessageInFlyComboBox(control) {
	var dv=document.createElement("div");
	dv.innerHTML="Loading";
	showFlyComboBox(dv, control);
}

function showPortsInFlyComboBox(xmlPorts, control) {
	var dv=document.createElement("div");
	var row;
	if (xmlPorts.childNodes.length>0) {
		for(var i=0; i<xmlPorts.childNodes.length; i++) {
			row=xmlPorts.childNodes[i];		
			dv.appendChild(createComboBoxItem(row));
		}	
	} else {
		dv.innerHTML="Result not found";
	}
	showFlyComboBox(dv, control);
}

function showFlyComboBox(content, control) {
	var ct=getFly_ComboBox();
	if (ct.nodeParent==null) {
		var bd=document.getElementsByTagName("body")[0];
		bd.appendChild(ct);
	}	
	var container=document.getElementById("flycombobox_container");
	while (container.childNodes.length>0) container.removeChild(container.childNodes[0]);
	container.appendChild(content);
	var svn=document.getElementsByTagName("SELECT");
	for (a=0;a<svn.length;a++) svn[a].style.visibility="hidden";
	shared.showObj1UnderObj2(ct, control);
}

function hideFlyComboBox() {
	var ct=getFly_ComboBox();
	shared.hideObject(ct);
	var svn=document.getElementsByTagName("SELECT");
	for (a=0;a<svn.length;a++) svn[a].style.visibility="visible";
}


function createComboBoxItem(row) {
	var dv=document.createElement("div");
	var a=document.createElement("a");
	a.href="javascript: assignPort('"+row.getAttribute("id")+"', '"+row.getAttribute("locname")+"')";
	a.innerHTML=row.getAttribute("locname");
	dv.appendChild(a);
	return dv;
}

function assignPort(value, text) {
	var txt=Control_Text();
	var vl=Control_Id();
	txt.value=text;
	vl.value=value;
	hideFlyComboBox();
}

 
function getFly_ComboBox() {
	if (fly_combobox==null) {
		fly_combobox=document.createElement("div");
		fly_combobox.className="flycombobox";
		var container=document.createElement("div");
		container.className="flycombobox_container";
		container.id="flycombobox_container";
		fly_combobox.appendChild(container);
		var closebutton=document.createElement("div");
		closebutton.className="flycombobox_closebutton";
		closebutton.innerHTML="<a href='javascript: hideFlyComboBox();'>Close</a>";
		fly_combobox.appendChild(closebutton);
	}
	return fly_combobox;
}





//---VALIDATION---//

function validform() {
	var rs=true;
	var flds=new Array();
	addFldsToArray(flds);
	
	for(var i=0; i<flds.length; i++) {unMarkControl(flds[i]);}
	rs=validateFlds(flds);
	
	return rs;
}

function addFldsToArray(fld){
	//fld.push(['reqDepPort_Text', 'isNotEmpty', msg_Dep, 'reqDepPort_Text']);
	fld.push(['reqDepPort_Id', 'isNotZero', msg_DepId, 'reqDepPort_Text']);
	//fld.push(['reqArrPort_Text', 'isNotEmpty', msg_Arr, 'reqArrPort_Text']);
	fld.push(['reqArrPort_Id', 'isNotZero', msg_ArrId, 'reqArrPort_Text']);
	fld.push(['reqDate', 'isNotEmpty', msg_DepDT, 'reqDate']);
	fld.push(['reqDate', 'checkDate', msg_DepDT1, 'reqDate', 'DD/MM/YYYY']);
	fld.push(['reqPassengers', 'ComboSelection', msg_Passengers, 'reqPassengers']);
	//fld.push(['reqCompanyID', 'ComboSelection', msg_Company, 'reqCompanyID']);
	if (isRoundTrip()){
		fld.push(['reqRetDate', 'isNotEmpty', msg_RetDT, 'reqRetDate']);
		fld.push(['reqRetDate', 'checkDate', msg_RetDT1, 'reqRetDate', 'DD/MM/YYYY']);
		fld.push(['reqRetDate', 'isLaterDate', msg_RetDT2, 'reqRetDate', 'reqDate']);
	}
}

function isRoundTrip() {
	var rb=RadioButtonSelection(document.Form1.reqRoundTrip);
	return (rb=="yes");
}

function validateFlds(flds) {
	var fld;
	var str;
	var msg='';
	for(var i=0; i<flds.length; i++) {
		fld=flds[i];
		str=fld[1]+"(fld)";
		if (!eval(str)) {
			msg+=fld[2]+'\n\r';
			markControl(fld);
		}
	}
	if (msg!='') {alert(msg); return false;} else {return true;}
}

function isLaterDate(fld){
	var obj=document.getElementById(fld[0]);
	var obj1=document.getElementById(fld[4]);
	var obj_d=ConvertStringToDate(obj.value);
	var obj1_d=ConvertStringToDate(obj1.value);
	if (obj_d>=obj1_d){return true;} else {return false;}
}

function ConvertStringToDate(str) {
	var ar=str.split("/");
	return new Date(ar[2], ar[1]-1, ar[0], 0,0,0);
}

function isNotEmpty(fld) {
	var obj=document.getElementById(fld[0]);
	var vl = obj.value;
	var re = /.+/;
    if(!vl.match(re)) {return false;} else {return true;}
}

function isNotZero(fld){
	var obj=document.getElementById(fld[0]);
	var vl = obj.value;
	return (vl!="0");
}

function RadioButtonSelection(frm) {
	if (frm.length) {
	for(var i=0; i<frm.length; i++) {
		if (frm[i].checked) return frm[i].value;}
	return "";
	}
	if (frm.checked) return frm.value; else return "";
}

function ComboSelection(ctrl) {
	var obj=document.getElementById(ctrl[0]);
	var vl=obj.options[obj.selectedIndex].value;
	if (vl==0) {return false;} else {return true;}
}

function checkDate(ctrl) {
	
	var obj=document.getElementById(ctrl[0]);
	vl = obj.value; 
	return isDate(vl, ctrl[4]);
	
	



	
	
}

/*
var current_d = new Date();
if (isDate(vl, ctrl[4])){	
		if (ctrl[4]!=''){
			var t_d=ConvertStringToDate(ctrl[4]);
			var vl_d=ConvertStringToDate(vl);
			if (t_d>=vl_d && vl_d>=current_d){
				if (t_d.getYear()==vl_d.getYear() && 
					t_d.getMonth()==vl_d.getMonth() && 
					t_d.getDay()==vl_d.getDay()) { 
					return confirm(warning);
				}
				return true;
			} else {return false;}
		}
	}	
*/

function ConvertStringToDate(str) {
	var ar=str.split("/");
	return new Date(ar[2], ar[1]-1, ar[0], 23,59,59);
}
	
function markControl(ctrl) {
	var obj=document.getElementById(ctrl[3]);
	//if (obj==null){obj=document.Form1.reqCompanyID}
	obj.className = "input_ctrl_error";
	//obj.style.borderColor="red";
}

function unMarkControl(ctrl){
	var obj=document.getElementById(ctrl[3]);
	obj.className = "input_ctrl";
	//obj.style.borderColor="white";
}

function HelpBooking(page){
	var op=window.open('helpBooking.asp?p='+page, 'helpBooking', 'width=400,height=320,scrollbars=auto,location=bo,resizable=no');
	op.focus();
}


