/*deleteCache-description:*/
/*deleteCache-minimizeJS:false*/
/* global variables */
var openedAlertBox = false;
var undefined;
var timeoutDelay = 500; 
var timeoutId = false;
var newWin = 0;
var alertsEnabled = true;
var http = createRequestObject();
var httpNews = createRequestObject();
var prevCity1 = "";
var prevCity2 = "";
if(typeof(initMail)=='undefined')
	var initMail = "Enter your e-mail address";
if(typeof(coap)=='coap')
	var coap = "city or airport code"; //city or Airport code
var searchSys = "def";
//var nrAdvertisers = 8;
var nrAjaxAdvertisers = 0;

var errorMsg, depCityError, arrCityError, dateError, negDateError, mailError, chAgeError;
var ajaxFile='/merchantCars.php';
var linkCounter = 'http://www.travelgrove.com/cgi-bin/cars/link_counter.cgi';
var nrSelMer=0;
var fButton1 = new Image();
var fButton2 = new Image();
var chBoxChecked = new Image();
var chBoxUnchecked = new Image();
var emptyImg = new Image();
var selectedMerchants = new Array();
var selectedMerchantsUrls = new Array();
var newWinX = 20;
var newWinY = 20;
var cmpInProcess = false;
var wasValidated = false;
/* end of global variables */
mAjax.url='/ajax/merchants/cars.json.php';
var compareAlreadyRun = false;

function createRequestObject() {
	var xmlHttp;
	try { xmlHttp=new XMLHttpRequest();
	} catch (e) {	try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {	try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
					} catch (e) { return false; }
		}
	}
	return xmlHttp;
}

function validateAndRefresh(city1, city2, cityOrAirport, searchSystem) {
	var dF = document.forms.ExpressBkFltonly;
	if(!dF) return false;
	if(document.grovezine && document.grovezine.email)
		var mailAddress = document.grovezine.email.value;
	else
		var mailAddress = initMail;


	var tmp = convertDate(dF["dep_cal"].value);
	var d1 = tmp.d;
	var m1 = tmp.m;
	var y1 = tmp.y;
	var tmp = convertDate(dF["arr_cal"].value);
	var d2 = tmp.d;
	var m2 = tmp.m;
	var y2 = tmp.y;

	var depDate = new Date();
	depDate.setFullYear(y1, m1, d1);
	var arrDate = new Date();
	arrDate.setFullYear(y2, m2, d2);
	var today = new Date();
	
	if(mailAddress!=initMail && !(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(mailAddress))) {
		if(alertsEnabled) alert(mailError); //invalid mail address
	} else if(mailAddress!=initMail) {
		httpNews.onreadystatechange=function() {
			if(httpNews.readyState == 4) {
				var response ="";
				response=httpNews.responseText;
				var myDiv = (document.getElementById('newsLetterDiv')) ? document.getElementById('newsLetterDiv') : document.getElementById('newsText');
				if(myDiv && response) {
					if(response=="reactivate") {
						if(confirm("This email address was already unsubscrubed.\n Do you wish to reactivate it?")==true) {
							httpNews.open('get', '/ajax/subscribe.php?reactivate=yes&source=FARE&deal=car&city='+city1.value+'&email='+mailAddress+'&searchsystem='+searchSystem, true);
							httpNews.send(null);
							myDiv.innerHTML = "Thank you for registering.";
						}
					}
					else
						myDiv.innerHTML = response;
				} //if myDiv && response
			} //readt state = 4
		} // on ready state change
		httpNews.open('get', '/ajax/subscribe.php?source=FARE&deal=car&city='+city1.value+'&email='+mailAddress+'&searchsystem='+searchSystem+'&idReferral='+idReferral+'&adid='+adId, true);
		httpNews.send(null);
		var exdate=new Date();
		exdate.setDate(exdate.getDate()+100);
		document.cookie="news=" +escape("yes")+";expires="+exdate;
		var myWin = window;
	} //if valid mailAddress
	
	if(city1.value==cityOrAirport || city1.value=="" || depDate>arrDate || depDate<today || $(".as_crr_fromAir").length || $(".as_crr_toAir").length)
	{
		var tmpErrorMsg = errorMsg + '\n';
		if(city1.value==cityOrAirport || city1.value=="" || $(".as_crr_fromAir").length) tmpErrorMsg += depCityError + '\n';
		if($(".as_crr_toAir").length) tmpErrorMsg += arrCityError + '\n';
		if(depDate<today) tmpErrorMsg += negDateError + '\n';
		if(depDate>arrDate) tmpErrorMsg += dateError + '\n';
		if(alertsEnabled) alert(tmpErrorMsg);
		return false;
	}
	if(document.images["step1"])
		document.images["step1"].src = "../images/main/general/deselect1.gif";
	if(document.images["step2"])
		document.images["step2"].src = "../images/main/general/select2.gif";
	if(document.getElementById('shadowDiv'))
		document.getElementById('shadowDiv').style.display='none';
	refreshMerchants(searchSystem, cityOrAirport, '');
// 	if(versionNr==9)
// 		slideDivs(3);
} //end function

function jump(id, merchant) {
	var myWinWidth = screen.width * 0.8;
	var myWinHeight = screen.height * 0.8;
	var myWinCoord = "left="+newWinX+",top="+newWinY+",width="+myWinWidth+",height="+myWinHeight+",resizable = yes,scrollbars=yes, toolbar=yes, location=yes";
	var where = document.ExpressBkFltonly.inp_dep_arp_cd_1.value;
	var whereDrop = document.ExpressBkFltonly.inp_arr_arp_cd_1.value;
	if(where==coap || whereDrop==coap || where=="" || whereDrop=="") {
		alert(cityOrCodeError);
		return false;
	}
	var whereCity = '';
	var whereDropCity = '';
	var idx = where.indexOf("(");
	if(idx >= 0) {
		whereCity = where.substring(0,idx-1);
		where = where.substring(idx+1, where.length-1);
	}
	idx = whereDrop.indexOf("(");
	if(idx >= 0) {
		whereDropCity = whereDrop.substring(0,idx-1);
		whereDrop = whereDrop.substring(idx+1, whereDrop.length-1);
	}
	//alert('whereDrop:'+whereDrop+'where:'+where);
	var tmp = convertDate(document.ExpressBkFltonly["dep_cal"].value);
	var day1 = tmp.d;
	var month1 = tmp.m;
	var year1 = tmp.y;
	var tmp = convertDate(document.ExpressBkFltonly["arr_cal"].value);
	var day2 = tmp.d;
	var month2 = tmp.m;
	var year2 = tmp.y;
	var date1 = new Date();
	date1.setFullYear(year1,month1,day1);
	var date2 = new Date();
	date2.setFullYear(year2,month2,day2);
	//alert('leavedate, returndate');
	if(date1>date2) {
		alert(dateError);
		return false;
	}
	var times = (typeof(document.ExpressBkFltonly.pickupTime)!='undefined') ?
			"&pickupTime="+document.ExpressBkFltonly.pickupTime.value+"&dropoffTime="+document.ExpressBkFltonly.dropoffTime.value : "";
	var link = linkCounter+'?merchant='+merchant+'&logo=fd'+'&where='+escape(where)+'&whereName='+escape(whereCity)+'&where_drop='+escape(whereDrop)+'&whereDropName='+escape(whereDropCity)+'&day1='+day1+'&month1='+month1+'&year1='+year1+'&day2='+day2+'&month2='+month2+'&year2='+year2+'&intitem='+id+'&idReferral='+idReferral+'&adid='+adId+'&querycode='+queryCode+'&subID='+subID+'&searchsystem='+searchSys+times;
	//alert(link);
//	newWin = window.open(link,"_blank",myWinCoord);	
	newWin = window.open(link,"_blank",myWinCoord);
}

function submitMail(city1, city2, searchSystem) {
	var httpNewsLetter = new createRequestObject();
	if(document.grovezine && document.grovezine.email)
		var mailAddress = document.grovezine.email.value;
	else
		return false;

	if(mailAddress.indexOf(".")!=-1 && mailAddress.indexOf("@")!=-1 && mailAddress!=initMail)
	{
		httpNewsLetter.open('get', '/ajax/subscribe.php?source=FARE&deal=car&city='+city1.value+'&email='+mailAddress+'&searchsystem='+searchSystem);
		httpNewsLetter.send(null);
		httpNewsLetter.onreadystatechange=function()
		{
			if(httpNewsLetter.readyState == 4){
				var response ="";
				response=httpNewsLetter.responseText;
				var myDiv = (document.getElementById('newsLetterDiv')) ? document.getElementById('newsLetterDiv') : document.getElementById('newsText');
				if(myDiv && response)
				{
					if(response=="reactivate")
					{
						if(confirm("This email address was already unsubscrubed.\n Do you wish to reactivate it?")==true)
						{
							httpNewsLetter.open('get', '/ajax/subscribe.php?reactivate=yes&source=FARE&deal=car&city='+city1.value+'&email='+mailAddress+'&searchsystem='+searchSystem, true);
							httpNewsLetter.send(null);
							myDiv.innerHTML = "Thank you for registering.";
						}
					}
					else
						myDiv.innerHTML = response;
				} //if myDiv && response
			} //readt state = 4
		} // on ready state change
		var exdate=new Date();
		exdate.setDate(exdate.getDate()+100);
		document.cookie="news=yes;expires="+exdate;
	} else {
		alert(mailError);
	}
	//if mailAddress
	delete httpNewsLetter;
}

function selectBoxWithImg(advNr)
{
	var chBox = document.getElementById("selectBox"+advNr);
	if(!chBox.checked && nrSelMer>=40)
	{
		showMaxAlert();
		return false;
	}
	chBox.checked = !chBox.checked;
	var chBoxImg = document.getElementById('imgChBox'+advNr);
	if(chBoxImg)
	{
		if(chBox.checked)
			chBoxImg.src = chBoxChecked.src;
		else
			chBoxImg.src = chBoxUnchecked.src;
	}
	return chBox.onclick();
}

function compare(alertMsg,filterMerchants) {
	if(cmpInProcess) return;
	if(versionNr==7 || versionNr==8)
		showRedirectBox();
	cmpInProcess = true;
	if(!wasValidated && versionNr!=7 && versionNr!=8)
			document.getElementById('go').onclick();
	newWinX = 20;
	newWinY = 20;
	if(nrSelMer == 0) {
		cmpInProcess = false;
		alert(alertMsg);
		return false;
	}
	dx = 30;
	dy = 30;
	var n = selectedMerchants.length;
	var prevOpenedMerName = "";
	setTimeout("cmpInProcess = false;",2000);

	var merCnt = 0;
	for(var merId=n-1; merId>=0; merId--) if(selectedMerchants[merId]) merCnt++;
/*
	if (!filterMerchants && !compareAlreadyRun && $("#mCont div").length>3 && merCnt<3) {
		alert("Please select at least 3 merchants");
		return false;
	};
	taken out on 13rd of July, 2009 by Lori
*/
	if (!filterMerchants) compareAlreadyRun = true;

	for(var merId=n-1; merId>=0; merId--)
		if(selectedMerchants[merId]) {
			var params = selectedMerchants[merId];
			var delim = params.indexOf("_");
			var mId = params.substring(0, delim);
			var mName = params.substring(delim+1);
			if (!filterMerchants || (filterMerchants && filterMerchants==mId)) {
				jump(mId, mName);
				newWinX += dx;
				newWinY += dy;
				if(newWin == null || typeof(newWin) == 'undefined') {
					window.focus();
					//deselectFirstIfBlocked(prevOpenedMerName);
					if(versionNr==7 || versionNr==8)
						hideAlert();
					showBlDiv();
					return false;
				}
				prevOpenedMerName = mName;
			}
		}

	if(versionNr==7 || versionNr==8) {
		this.backStep(3);
		this.setTimeout('hideAlert()', 6000);
	}
	return true;
}

function compareVer4(alertMsg)
{
	return compare(alertMsg);
}
function compareVer5(alertMsg)
{
	return compare(alertMsg);
}

function addMerchant(advNr)
{
	var chBox = document.getElementById("selectBox"+advNr);
	if(chBox.checked) return;
	if(!chBox.checked && nrSelMer>=4) return false;
	chBox.checked = !chBox.checked;
	var chBoxImg = document.getElementById('imgChBox'+advNr);
	if(chBoxImg)
	{
		//if(chBox.checked)
			chBoxImg.src = chBoxChecked.src;
		//else
			//chBoxImg.src = chBoxUnchecked.src;
	}
	return chBox.onclick();
}

function closeBlDiv() {
	if(versionNr==9) {
		$('#slideCont').slideDown(400, function() {
			document.getElementById('ppDiv').style.display = "none";
		});
		return;
	}
	var ppDiv = (document.getElementById('popupTable')) ? document.getElementById('popupTable') : document.getElementById('blockerDiv');
	if(!ppDiv) return false;
	ppDiv.style.visibility = "hidden";	
	if(document.all) {//IE
		var sbForm = document.forms.ExpressBkFltonly;
		if(!sbForm) return false;
		if(sbForm.leave_day) sbForm.leave_day.style.visibility = 'visible';
		if(sbForm.leave_year) sbForm.leave_year.style.visibility = 'visible';
		if(sbForm.return_day) sbForm.return_day.style.visibility = 'visible';
		if(sbForm.return_year) sbForm.return_year.style.visibility = 'visible';
		if(sbForm.inp_child_pax_cnt) sbForm.inp_child_pax_cnt.style.visibility = 'visible';
		if(sbForm.star_rating) sbForm.star_rating.style.visibility = 'visible';
		if(sbForm.no_rooms) sbForm.no_rooms.style.visibility = 'visible';
		if(sbForm.cruiseline)
		{
			sbForm.cruiseline.style.visibility = 'visible';
			sbForm.destination.style.visibility = 'visible';
			sbForm.length_of_stay.style.visibility = 'visible';
			sbForm.month_year.style.visibility = 'visible';
		}
	}
}

function hideMaxAlert() {
	setTimeout("document.body.onclick = null;", 100);
	var alertTable = (document.getElementById('alertTable')) ? document.getElementById('alertTable') : document.getElementById('maxAlert');
	if(!alertTable)
		return false;
	alertTable.style.visibility = 'hidden';
	return;
}

function hideAlert() {
	if(!openedAlertBox) return;
	var pt = (document.getElementById('popupTable')) ? document.getElementById('popupTable') : document.getElementById('blockerDiv');
	var at = (document.getElementById('alertTable')) ? document.getElementById('alertTable') : document.getElementById('maxAlert');
	var rb = document.getElementById('redirectDiv'); //redirect Box
	if(at && at.style.visibility == 'visible') {
		at.style.visibility = 'hidden';
	}
	if(pt && pt.style.visibility == 'visible') {
		pt.style.visibility = 'hidden';
	}
	if(rb && rb.style.visibility == 'visible') {
		rb.style.visibility = 'hidden';
	}
	if(versionNr==7 || versionNr==8) showFieldsV7();
	openedAlertBox = false;
	setTimeout("openedAlertBox = false;", 10);
	document.body.onclick = null;
	return;
}

function preventEventToPropagate(ev) {
	if(document.all) {
		ev.returnValue=false;
		ev.cancelBubble = true;
	} else {
		ev.preventDefault();
		ev.stopPropagation();
	}
}

function popSelMer(mId, mName) {
	var n = selectedMerchants.length;
	for(var i=0; i<n; i++) {
		if(selectedMerchants[i] == mId+"_"+mName) {
			selectedMerchants[i] = undefined;
			return true;
		}
	}
}

function pushSelMer(mId, mName) {
	var n = selectedMerchants.length;
	selectedMerchants[n] = mId+"_"+mName;
}

function pushMerchantImg(chBox) {
	var merImgId = "img" + chBox.id.replace("selectBox","");
	var imgId = "selMer"+nrSelMer;
	var merImgSmall = new Image();
	//merImgSmall.src = document.images[merImgId].src;
	merImgSmall.src = document.images[merImgId].src.replace("merchants","merchants_small");
	document.images[imgId].src = merImgSmall.src;
	return true;
}

function popMerchantImg(chBox) {
	var merImgId = "img" + chBox.id.replace("selectBox","");
	var tr = document.getElementById("selMerTr");
	var n = tr.cells.length;
	var i=0;
	for(; i<n; i++)
	{
		logoSmallSrc = tr.cells[i].firstChild.src;
		logoSmallSrc = logoSmallSrc.replace("merchants_small", "merchants");
		selMerImgSrc = document.images[merImgId].src;
		if(logoSmallSrc == selMerImgSrc)
		{
			tr.deleteCell(i);
			tr.insertCell(n-1);
			tr.cells[n-1].innerHTML = '<img src="'+emptyImg.src+'" id="selMer" name="selMer" alt="">';
			for(var j=i; j<n; j++)
			{
				tr.cells[j].firstChild.id = "selMer"+(j+1);
				tr.cells[j].firstChild.name = "selMer"+(j+1);
			}
		}
	}
}

function setCheckboxImgs() {
	for(var i=1; i< advIdx+1; i++)
	{
		if(document.images["imgChBox"+i])
			document.images["imgChBox"+i].src = chBoxUnchecked.src;
		document.getElementById("selectBox"+i).checked = false;
	}
}

function pushMerchantImgVer6(chBox) {
	var merImgId = "img" + chBox.id.replace("selectBox","");
	var imgId = "selMer"+nrSelMer;
	var merImg = new Image();
	merImg.src = document.images[merImgId].src;
	if(document.images[imgId])
		document.images[imgId].src = merImg.src;
	//else alert("ImgId:"+imgId);
	return true;
}

function popMerchantImgVer6(chBox) {
	var merImgId = "img" + chBox.id.replace("selectBox","");
	selMerImgSrc = document.images[merImgId].src; // the clicked image
	var tbl = document.getElementById("selMerTable");
	var n = tbl.rows.length;
	var imgChildIdx = 0;
	//var s = selMerImgSrc+", \n";
	for(var i=0; i<n; i++)
	{
		tc = tbl.rows[i].cells[0];
		logoSmallSrc = "";
		for(imgChildIdx=0; imgChildIdx<tc.childNodes.length; imgChildIdx++)
			if(tc.childNodes[imgChildIdx].src)
				break;
		//finding the picture node in the node list of a table cell
		logoSmall = tc.childNodes[imgChildIdx];
		if(logoSmall.src == selMerImgSrc)
		{
			for(var j=i; j<n-1; j++)
			{
				var imgTd1 =  tbl.rows[j].cells[0].childNodes[imgChildIdx];
				var imgTd2 =  tbl.rows[j+1].cells[0].childNodes[imgChildIdx];
				imgTd1.src = imgTd2.src;
			} //moving all images after the deleted image upper with one position
			tbl.rows[j].cells[0].childNodes[imgChildIdx].src = emptyImg.src;
			break;
		} //if found
	} //finding the deselected merchant in the compare table
	//for
}

// function refreshMerchants(searchSystem, cityOrAirport, suggestionBoxId) {
// 	if(suggestionBoxId && document.getElementById(suggestionBoxId) && document.getElementById(suggestionBoxId).style.visibility=="visible") return(1);
// 
// 	var myDiv = document.getElementById('advertisersConditioned');
// 	var specRow = document.getElementById('specificRow');
// 	var myForm = document.forms.ExpressBkFltonly;
// 	var city1 = myForm["fromAir"].value;
// 	var city2 = myForm["toAir"].value;
// 	if(!city1 || !city2 || city1==cityOrAirport || city2 == cityOrAirport || (city1==prevCity1 && city2==prevCity2 && versionNr!=7 && versionNr!=8))
// 		return(1);
// 
// 	var tmp = convertDate(myForm["dep_cal"].value);
// 	var day1 = tmp.d;
// 	var month1 = tmp.m;
// 	var year1 = tmp.y;
// 	var tmp = convertDate(myForm["arr_cal"].value);
// 	var day2 = tmp.d;
// 	var month2 = tmp.m;
// 	var year2 = tmp.y;
// 
// 	var d = new Date();
// 	var params = 'inp_dep_arp_cd_1='+escape(city1)+'&inp_arr_arp_cd_1='+escape(city2)+'&leave_day='+day1+'&leave_month='+month1+'&leave_year='+year1+
// 	'&return_day='+day2+'&return_month='+month2+'&return_year='+year2+'&idReferral=556&secondary=0&adid=&searchsystem='+searchSystem;
// 	var vn = 0;
// 	if(typeof(versionNr)!='undefined') vn = versionNr; //for those users who disabled the cookie
// 	if(http.readyState!=0) {
// 		http.abort(); //if another request is in progress
// 	}
// 	http.open('get', ajaxFile+ '?'+params+'&nrAdvertisers='+nrAdvertisers+'&rand='+Math.round(Math.random()*10000)+'&impId='+queryCode);
// 	http.onreadystatechange=function() {
// 		if(http.readyState == 4) {
// 			trackPxlUrl='';
// 			var response ="";
// 			response=http.responseText;
// 			for(i=nrAdvertisers; i>nrAdvertisers-nrAjaxAdvertisers; i--)
// 				if(document.getElementById('selectBox'+i) && document.getElementById('selectBox'+i).checked)
// 					selectBoxWithImg(i);
// 			var AdvDivContent = "";
// 			nrAjaxAdvertisers = nrAdvertisers;
// 			try {
// 				eval(response);
// 			} catch(err) {
// 				//error
// 			}
// 			nrAjaxAdvertisers = nrAdvertisers - nrAjaxAdvertisers ;
// 			if(trackPxlUrl) {
// 				var d = new Date();
// 				trPxl = trackPxlUrl+"&"+d.getTime();
// 				$('#mCont input').each(function() { trPxl += "&m[]="+this.className; });
// 				$.ajax({url:trPxl, type:"HEAD"});
// 			}
// 			if(myDiv)
// 				myDiv.innerHTML = AdvDivContent;
// 			if(specRow && versionNr!=7 && versionNr!=8 && (specRow.style.display!="table-row" || specRow.style.display!="inline")) {
// 				try {
// 					specRow.style.display = "table-row"; //for Mozilla and Firefox
// 				} catch(err) {
// 					specRow.style.display = "inline"; //for IE
// 				}
// 			} else if(specRow && (versionNr==7 || versionNr==8))
// 					specRow.style.display = "block";
// 			if(AdvDivContent.length!=0) { //if the response is not null
// 				if(!wasValidated) {//if the ajax is called the first time
// 					if(versionNr==7 || versionNr==8) {
// 						myDiv.style.display = 'block';
// 					} else
// 						$('#advertisersConditioned').slideDown(800, 'myDiv.style.height = "0px";');
// 				}
// 				wasValidated = true;
// 			} else {//it the response is null-->hiding the `specific` row
// 				specRow.style.display = "none";
// 				if(myDiv && versionNr!=7 && versionNr!=8) {
// 					myDiv.style.height = "0px";
// 				}
// 			}
// 			prevCity1 = city1;
// 			prevCity2 = city2;
// 			updTzoo(tzO, tzD);
// 		} //readt state = 4
// 	} // on ready state change
// 	http.send(null);
// 	//alert("sent");
// 	//return 10;
// 	if(document.getElementById("bottom"))
// 	{
// 		var str = document.location.href;
// 		str = str.replace("#bottom","");
// 		str += "#bottom";
// 		document.location.href = str;
// 	}
// 	if(versionNr==7 || versionNr==8) {
// 		changeBlursAndButtons(0,1, 0);
// 	}
// } // function refreshMerchants;
