// JavaScript Document
var xmlHttpObj, LayerID, lastProp;
var mineStr = "",dtNo, StartCnt=1;
var links='', dealCount=0;


// request custom query
function MatrixRequest(f,dat,returnDiv) {

	document.getElementById("dealspace").innerHTML="";
    // get form values
	getFormValues();
	// post details 
	ajaxOptions('f='+f+'&dat='+dat+mineStr,returnDiv,'matrix-functs.asp');
}
function changeRequest() {
	// need to set this differentiate between tabs and call appropriate deals
	MatrixRequest('1','','mDeals');
	return false;
}

function setFormForDefaultDeals (dt) {
	lastProp=dt;
	document.getElementById('tblHead').innerHTML=lastProp+" deals";
	document.getElementById("profile").innerHTML=document.getElementById(lastProp+"Profile").innerHTML;
	document.getElementById('col2').innerHTML = "Airport";
	document.getElementById('col5').innerHTML = "Board Basis";
	document.getElementById('controls').innerHTML="";
	switch (dt) {
		case "flight":
			document.getElementById('AirFilt').options['15'].selected = true;
			document.getElementById('DestFilt').options['0'].selected = true;
			document.getElementById('NightFilt').options['4'].selected = true;
			document.getElementById('MonthFilt').options['2'].selected = true;
//			document.getElementById('controls').innerHTML="<span class='fontP7em'>Show <select id='ShowPerPage' onchange='loadDeals()'><option selected='true' value='30'>30</option><option value='60'>60</option><option value='90'>90</option></select> deals per page</span><span class='fontP8em' id='links'></span>";
			document.getElementById('col5').innerHTML = "Airline";
			dtNo=3;
			break;
		case "snow":
			document.getElementById('MonthFilt').options['0'].selected = true;
			document.getElementById('AirFilt').options['0'].selected = true;
			document.getElementById('DestFilt').options['6'].selected = true;
			document.getElementById('BoardFilt').options['6'].selected = true;
			document.getElementById('NightFilt').options['1'].selected = true;
			dtNo=4;
			break;
		case "holiday":
			document.getElementById('MonthFilt').options['1'].selected = true;
			document.getElementById('AirFilt').options['0'].selected = true;
			document.getElementById('DestFilt').options['2'].selected = true;
			document.getElementById('BoardFilt').options['6'].selected = true;
			document.getElementById('NightFilt').options['3'].selected = true;
			dtNo=2;
			break;
		case "cruise":
			document.getElementById('MonthFilt').options['2'].selected = true;
			document.getElementById('col2').innerHTML = "Cruise Line";
			document.getElementById('col5').innerHTML = "Cruise Liner";
			document.getElementById('tblHead').innerHTML=lastProp+" deals    - <span class='smallText'>Call 0800 169 4557 for more details</span>";
			dtNo=5;
			break;
		default:		// default to lates
			lastProp="late"
			document.getElementById('AirFilt').options['0'].selected = true;
			document.getElementById('DestFilt').options['2'].selected = true;
			document.getElementById('BoardFilt').options['6'].selected = true;
			document.getElementById('NightFilt').options['3'].selected = true;
			dtNo=1;
			break;
	}

	
	//document.getElementById('headDealType').innerHTML=lastProp+" deals";
}

// on tab click load the deals
function loadDeals () {
    
	document.getElementById('dealResultInfo').innerHTML = " "; //setting defaults
	//alert("innerhtml = "+document.getElementById('dealResultInfo').innerHTML);
    dealCount =0; //setting defaults
    
	loadingDisplay="<td colspan='6'><div class='dealsLoading'><img src='/images/siteElements/polling.gif'/><img src='/images/siteElements/polling2.gif' alt='Hunting for the best deals available' /></div></td>";
	try {
		document.getElementById('dealspace').innerHTML=loadingDisplay;
	} catch (err) {
		var tblStart="<table class='dealsTbl' summary='Our best holiday deals - with one level of column headers' border='0' cellpadding='0' cellspacing='0'><caption><span class='bckgrd'><span class='lftrnd floatleft'></span><span id='tblHead' class='tblHeading floatleft'>"+lastProp+" Deals</span><span class='rghtrnd floatright'></span><span class='srcRes floatright'><span id='dealResultInfo'></span></span></span></caption><thead> <tr><th scope='col'>Departure Date</th><th id='col2' scope='col'>Airport</th><th scope='col'>Destination</th> <th scope='col'>Nights</th><th id='col5' scope='col'>Board Basis</th> <th scope='col'>Price</th> </tr></thead><tbody id='dealspace'>";
		var toReplace=tblStart+loadingDisplay+"</tbody></table>";
		document.getElementById('dealsTblCont').innerHTML=toReplace;

		document.getElementById('col2').innerHTML = "Airport";
		document.getElementById('col5').innerHTML = "Board Basis";

		switch (lastProp) {
			case "flight":
				document.getElementById('col5').innerHTML = "Airline";
				break
			case "cruise":
				document.getElementById('col2').innerHTML = "Cruise Line";
				document.getElementById('col5').innerHTML = "Cruise Liner";
				document.getElementById('tblHead').innerHTML=lastProp+" deals    - <span class='smallText'>Call 0800 169 4557 for more details</span>";
				break
			default:		// default to lates
				break
		}
	}
	
	if (this.id) {
		if (this.id == "snow" || this.id == "faraway" || this.id=="late" || this.id=="cruise" || this.id=="holiday"|| this.id=="hotel" || this.id=="flight" ) {
			setFormForDefaultDeals(this.id);
		}
	}




	// get the form values
	getFormValues();
	// sort out the range links at the bottom for flights	
//	if (dtNo==3) {
//		var RangeCnt=document.getElementById("ShowPerPage").value;
//		mineStr=mineStr+"&RangeCnt="+RangeCnt; 
//		mineStr=mineStr+"&StartCnt="+StartCnt;
//	}

	if ( mineStr!="" ) {	
		ajaxOptions('DealType='+dtNo+mineStr,'dealspace','/common/dealRequests.jsp');
	} else {
		alert("An error has occurred - Please Reselect your options and try again"); 
	}
    dealCount =0; //resetting the count to zero
	return false;
}

// build ajax request
function ajaxOptions(strArgs,divID,page){
	LayerID=divID;
	if (xmlHttpObj) {
		xmlHttpObj.abort();
		loadingDisplay="<td colspan='6'><div class='dealsLoading'><img src='/images/siteElements/polling.gif'/><img src='/images/siteElements/polling2.gif' alt='Hunting for the best deals available' /></div></td>";
		try {
			document.getElementById('dealspace').innerHTML=loadingDisplay;
		} catch (err) {
			var tblStart="<table class='dealsTbl' summary='Our best holiday deals - with one level of column headers' border='0' cellpadding='0' cellspacing='0'><caption><span class='bckgrd'><span class='lftrnd floatleft'></span><span id='tblHead' class='tblHeading floatleft'>"+lastProp+" Deals</span><span class='rghtrnd floatright'></span><span class='srcRes floatright'><span id='dealResultInfo'></span></span></span></caption><thead> <tr><th scope='col'>Departure Date</th><th id='col2' scope='col'>Airport</th><th scope='col'>Destination</th> <th scope='col'>Nights</th><th id='col5' scope='col'>Board Basis</th> <th scope='col'>Price</th> </tr></thead><tbody id='dealspace'>";
			var toReplace=tblStart+loadingDisplay+"</tbody></table>";
			document.getElementById('dealsTblCont').innerHTML=toReplace;
			document.getElementById('col2').innerHTML = "Airport";
			document.getElementById('col5').innerHTML = "Board Basis";
	
			switch (lastProp) {
				case "flight":
					document.getElementById('col5').innerHTML = "Airline";
					break
				case "cruise":
					document.getElementById('col2').innerHTML = "Cruise Line";
					document.getElementById('col5').innerHTML = "Cruise Liner";
					document.getElementById('tblHead').innerHTML=lastProp+" deals    - <span class='smallText'>Call 0800 169 4557 for more details/span>";
					break
				default:		// default to lates
					break
			}
		}
	}
	xmlHttpObj=BindXmlHttp();
	if (xmlHttpObj==null){ document.getElementById(LayerID).innerHTML="Ajax is not supported"; return; }
	
	var asURL=page;
	asURL=asURL+"?rnd="+Math.random();
	xmlHttpObj.onreadystatechange=checkState;
	xmlHttpObj.open("POST",asURL,true);
	xmlHttpObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttpObj.send(strArgs);
}
 
// check ajax request state
function checkState() {
	var countInfoInnerHTML ="";
	if (xmlHttpObj.readyState==4){ 
		var response = xmlHttpObj.responseText;
		if ( response.indexOf(":COUNT") > -1) {
			var count=response.substr(0,response.indexOf(":COUNT"));
			response=response.substring(response.indexOf(":COUNT")+6);			
			//document.getElementById('dealcount').innerHTML=count+" ";
			dealCount=removeWhiteSpace(count);
			countInfoInnerHTML ="We have found <STRONG>"+dealCount+"</STRONG> "+lastProp+" deals";
		}
		if ( response.indexOf("COUNT:") > -1) {
			if (response.indexOf("COUNT:0") > -1 ) {
				var count="0";
				response=response.substring(response.indexOf("COUNT:0")+7);			
			} else {
				var count=response.substr(response.indexOf("COUNT:")+6,response.length);
				response=response.substring(0,response.indexOf("COUNT:"));
			}			
			//document.getElementById('dealcount').innerHTML=count+" ";
			dealCount=removeWhiteSpace(count);
			countInfoInnerHTML="We have found <STRONG>"+dealCount+"</STRONG> "+lastProp+" deals";
		}

		try {
			 document.getElementById('dealspace').innerHTML=response;
			 document.getElementById('dealResultInfo').innerHTML = countInfoInnerHTML;
			if(dealCount > 0){
				//alert("Firefox")
				document.getElementById('dealResultInfo').innerHTML = countInfoInnerHTML;
			}
		} catch (err) {
			var tblStart="<table class='dealsTbl' summary='Our best holiday deals - with one level of column headers' border='0' cellpadding='0' cellspacing='0'><caption><span class='bckgrd'><span class='lftrnd floatleft'></span><span id='tblHead' class='tblHeading floatleft'>"+lastProp+" Deals</span><span class='rghtrnd floatright'></span><span class='srcRes floatright'><span id='dealResultInfo'></span></span></span></caption><thead> <tr><th scope='col'>Departure Date</th><th id='col2' scope='col'>Airport</th><th scope='col'>Destination</th> <th scope='col'>Nights</th><th id='col5' scope='col'>Board Basis</th> <th scope='col'>Price</th> </tr></thead><tbody id='dealspace'>";
			var toReplace=tblStart+response+"</tbody></table>";
			document.getElementById('dealsTblCont').innerHTML=toReplace;
			document.getElementById('col2').innerHTML = "Airport";
			document.getElementById('col5').innerHTML = "Board Basis";
	
			switch (lastProp) {
				case "flight":
					document.getElementById('col5').innerHTML = "Airline";
					break
				case "cruise":
					document.getElementById('col2').innerHTML = "Cruise Line";
					document.getElementById('col5').innerHTML = "Cruise Liner";
					document.getElementById('tblHead').innerHTML=lastProp+" deals    - <span class='smallText'>Call 0800 169 4557 for more details</span>";
					break
				default:		// default to lates
					break
			}
			if(dealCount > 0){
				//alert("IE")
				document.getElementById('dealResultInfo').innerHTML = countInfoInnerHTML;
			}
		}
				
		xmlHttpObj=null;
	}
}

// create httprequest object
function BindXmlHttp(){
	var xmlHttpObj=null;
	try{
		xmlHttpObj=new XMLHttpRequest();
	} catch (err) {
		try{
			xmlHttpObj=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (err){
			xmlHttpObj=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttpObj;
}
function getFormValues () {
	mineStr=""
	var x=document.getElementById("DealMiner");
	for (var i=0;i<x.length;i++) {
		if ( x.elements[i].name == "Destinations" || x.elements[i].name == "Airports" ||x.elements[i].name == "Months" ||x.elements[i].name == "Nights" ||x.elements[i].name == "BoardBasis" ||x.elements[i].name == "CruiseLine" ||x.elements[i].name == "CruiseLiner" ||x.elements[i].name == "Airline" ) {
			mineStr += "&"+x.elements[i].name+"="+escape(x.elements[i].value);
		}
	}	
}

function setupPage () {
//<-may become deprecated
	// load specified dealtype
	var ss = window.location.search.substring(1);
	var dtpos = ss.search('dt=');
	var dt = pageType;
	var dealtypes = new Array();
	switch (dt) {
		case "holiday-deals": dt = "holiday"; dtNo=2; break;
		case "flight-deals": dt = "flight"; dtNo=3; break;		
		case "snow-deals": dt = "snow"; dtNo=4; break;
		case "cruise-deals": dt = "cruise"; dtNo=5; break;
		default: dt = "late"; dtNo=1; break;
	}
//-> 
	setFormForDefaultDeals(dt);
	

	loadDeals();
}

addLoadEvent(setupPage);

function removeWhiteSpace(str){
	return str.replace(/^\s*([\S\s]*)\b\s*$/, '$1');
}


