var filterfiller = '<div id="gap"></div><div id="yellowbox" style="height:25px"><img src="../images/loading.gif" style="float:right; position:relative;"><font size="2">Please wait, results will load below...</font></div>';
var resultupdate = '<div id="gap"></div><div id="yellowbox" align="center"><font size="2">Updating results...</font><br><img src="../images/loading.gif"></div>';
var errormessage = '<div id="yellowbox" align="center"><font size="2">Please enter a destination</font><br></div>';

var merchants = 0;
var xmlHttpReq = false;
var self = this;

function availabilityengine() {

var form = document.forms['availability'];
var destination = form.destination.value;
var airport = form.airport.value;
var destination_d = form.destination_display.value;

if (destination.length < 1) {
	
	updatepage(errormessage,'errormessage');

} else {

document.getElementById('resultsfilter').innerHTML = filterfiller;
document.getElementById('mainresults').innerHTML = '';
document.getElementById('errormessage').innerHTML = '';
document.getElementById('suppliers').innerHTML = '';
document.getElementById('ancilary').innerHTML = '';
document.getElementById('adblock').innerHTML = '';

search_alpha();
search_venere();
search_affut();
search_hotelclub();

search_buttons();

}

if (airport == 0) {
//updatepage('no airport, no results needed','errormessage');
} else { search_flights(); }

}


function showresults() { 
if (window.XMLHttpRequest) {
   updatepageOBJ = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
   updatepageOBJ = new ActiveXObject("Microsoft.XMLHTTP");
}
    updatepageOBJ.open('POST', '../php/availability/display_results.php', true);
    updatepageOBJ.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    updatepageOBJ.onreadystatechange = function() {
        if (updatepageOBJ.readyState == 4) {
            updatepage(updatepageOBJ.responseText,'mainresults');
			if (merchants == 4) { showfilters(); showsuppliers(); }
        }
}
updatepageOBJ.send(getquerystring()); 
}

function showresults_toggle(DEST_ID,ARRIVAL,NIGHTS,SESSION) { 
if (window.XMLHttpRequest) {
   updatepageOBJ = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
   updatepageOBJ = new ActiveXObject("Microsoft.XMLHTTP");
}
    updatepageOBJ.open('POST', '../php/availability/display_results.php', true);
    updatepageOBJ.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    updatepageOBJ.onreadystatechange = function() {
        if (updatepageOBJ.readyState == 4) {
            updatepage(updatepageOBJ.responseText,'mainresults');
        }
}
updatepageOBJ.send(getquerystring_toggle()); 
}

function getquerystring_toggle() {
var toggle_form     = document.forms['availability'];
var destination = toggle_form.destination.value;
var arival = toggle_form.arival.value;
var nights = toggle_form.nights.value;
var SID = toggle_form.GOHSID.value;

qstr = 'destination=' + destination + '&arival=' + arival + '&nights=' + nights + '&session=' + SID;
return qstr;
}



function showfilters() {
if (window.XMLHttpRequest) {
   filtersOBJ = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
   filtersOBJ = new ActiveXObject("Microsoft.XMLHTTP");
}
    filtersOBJ.open('POST', '../php/availability/display_filters.php', true);
    filtersOBJ.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    filtersOBJ.onreadystatechange = function() {
        if (filtersOBJ.readyState == 4) {
            updatepage(filtersOBJ.responseText,'resultsfilter'); merchants = merchants-4;
        }
}
filtersOBJ.send(getquerystring()); 
}

function showsuppliers() {
if (window.XMLHttpRequest) {
   suppliersOBJ = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
   suppliersOBJ = new ActiveXObject("Microsoft.XMLHTTP");
}
    suppliersOBJ.open('POST', '../php/availability/display_suppliers.php', true);
    suppliersOBJ.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    suppliersOBJ.onreadystatechange = function() {
        if (suppliersOBJ.readyState == 4) {
            updatepage(suppliersOBJ.responseText,'suppliers');
        }
}
suppliersOBJ.send(getquerystring()); 
}


/////// individual supplier requests below

function search_venere() {
if (window.XMLHttpRequest) {
   venereOBJ = new XMLHttpRequest();
}
else if (window.ActiveXObject) { venereOBJ = new ActiveXObject("Microsoft.XMLHTTP"); }
    venereOBJ.open('POST', '../php/availability/venere.php', true);
    venereOBJ.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    venereOBJ.onreadystatechange = function() {
        if (venereOBJ.readyState == 4) { showresults(); merchants = merchants+1; }
}
venereOBJ.send(getquerystring());  }

function search_alpha() {
if (window.XMLHttpRequest) {
   alphaOBJ = new XMLHttpRequest();
}
else if (window.ActiveXObject) { alphaOBJ = new ActiveXObject("Microsoft.XMLHTTP"); }
    alphaOBJ.open('POST', '../php/availability/alpharooms.php', true);
    alphaOBJ.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    alphaOBJ.onreadystatechange = function() {
        if (alphaOBJ.readyState == 4) { showresults(); merchants = merchants+1; }
}
alphaOBJ.send(getquerystring());  }

function search_affut() {
if (window.XMLHttpRequest) {
   affutOBJ = new XMLHttpRequest();
}
else if (window.ActiveXObject) { affutOBJ = new ActiveXObject("Microsoft.XMLHTTP"); }
    affutOBJ.open('POST', '../php/availability/affiliatefuture.php', true);
    affutOBJ.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    affutOBJ.onreadystatechange = function() {
        if (affutOBJ.readyState == 4) { showresults(); merchants = merchants+1; }
}
affutOBJ.send(getquerystring());  }

function search_hotelclub() {
if (window.XMLHttpRequest) {
   hotelclubOBJ = new XMLHttpRequest();
}
else if (window.ActiveXObject) { hotelclubOBJ = new ActiveXObject("Microsoft.XMLHTTP"); }
    hotelclubOBJ.open('POST', '../php/availability/hotelclub.php', true);
    hotelclubOBJ.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    hotelclubOBJ.onreadystatechange = function() {
        if (hotelclubOBJ.readyState == 4) { showresults(); merchants = merchants+1; }
}
hotelclubOBJ.send(getquerystring());  }



/// FILTERS

function filtertype() {
if (window.XMLHttpRequest) {
   filtersOBJ = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
   filtersOBJ = new ActiveXObject("Microsoft.XMLHTTP");
}
    filtersOBJ.open('POST', '../php/availability/display_results.php', true);
    filtersOBJ.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    filtersOBJ.onreadystatechange = function() {
        if (filtersOBJ.readyState == 4) {
            updatemenu(filtersOBJ.responseText,'mainresults');
        } else { document.getElementById('mainresults').innerHTML = resultupdate; }
}
filtersOBJ.send(filtersqry()); 
}

/// show provider buttons

function search_buttons() {
if (window.XMLHttpRequest) {
   buttonsOBJ = new XMLHttpRequest();
}
else if (window.ActiveXObject) { buttonsOBJ = new ActiveXObject("Microsoft.XMLHTTP"); }
    buttonsOBJ.open('POST', '../php/availability/buttons.php', true);
    buttonsOBJ.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    buttonsOBJ.onreadystatechange = function() {
        if (buttonsOBJ.readyState == 4) { updatepage(buttonsOBJ.responseText,'adblock'); }
}
buttonsOBJ.send(getquerystring());  }

///



function filtersqry() {
var resultsform = document.forms['resultfilters'];
var searchtype = resultsform.searchtype.value;
var SID = resultsform.GOHSID.value;
var nights = resultsform.nights.value;
var adults = resultsform.adults.value;
var arival = resultsform.checkin.value;

qstr = 'searchtype=' + searchtype + '&session=' + escape(SID) + '&arival=' + arival + '&nights=' + escape(nights) + '&adults=' + escape(adults);
return qstr;
}

function getquerystring() {
var form     = document.forms['availability'];
var destination = form.destination.value;
var arival = form.arival.value;
var nights = form.nights.value;
var roomtype = form.roomtype.value;
var SID = form.GOHSID.value;

qstr = 'arival=' + arival + '&nights=' + escape(nights) + '&roomtype=' + escape(roomtype) + '&destination=' + escape(destination) + '&session=' + escape(SID);
return qstr;
}



function updatepage(str,div_name){
    document.getElementById(div_name).innerHTML = str;
}

