//////////////////////////////////////////////////
//AJAX CODE, LOAD XMLHTTPREQUEST
function getHTTPObject() {
    if (typeof XMLHttpRequest != 'undefined') {
        return new XMLHttpRequest();
    }
    try {
        return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
    }
    return false;
}

var http = getHTTPObject();					//Generate HTTP Object

//END AJAX INIT

/////////////////////////////////////////////////

//CREATE OBJECT
function lookupText()
{
	//FIRST, GET ELEMENTS NOT DESELECTED
	var elementsUsed = new Array();
	var elementsSend = new Array();
	var arguments = '';
	for(var i = 0; i < elementList.length; i++)
	{
		thisElement = document.getElementById(elementList[i]);
		if(!thisElement.disabled){
			elementsUsed.push(encodeURIComponent(thisElement.id));	//Add to the USED arg.
		}else{
			elementsSend.push(encodeURIComponent(thisElement.id));	//Add to the SEND arg.
			arguments = arguments + '&' + encodeURIComponent(thisElement.id) + '=' + encodeURIComponent(thisElement.value);
		}
	}
	
	var used = elementsUsed.join(',');	//Concatenate the USED arg into a string.
	var send = elementsSend.join(',');	//Concatenate the SEND arg into a string.
	
	arguments = '?used=' + used + '&send=' + send + arguments;

	http.open("POST", "chris_tryout.php"+arguments, true);		//Query
	http.onreadystatechange = responseHandler;			//Function to call on response
	http.send(null);
}


/////////////////////////////////////////////////
//RESPONSE HANDLER///////////////////////////////


function responseHandler() {
	if (http.readyState < 4) {
		document.getElementById('cdenyer-container-load').style.backgroundPosition = "center center";
		document.getElementById('cdenyer-container-main').style.visibility = "hidden";
	}

	if (http.readyState == 4) {
		document.getElementById('cdenyer-container-load').style.backgroundPosition = "-1000px center";
		document.getElementById('cdenyer-container-main').style.visibility = "visible";
		var response = http.responseText;	//Get response text
		var lines = new Array();		//Init a new array
		lines = response.split('<br />');	//Split response
							// into lines
		//ERASE LAST LINE IF BLANK
		if(lines[lines.length-1] == ''){
			lines.splice(lines.length-1, 1);
		}
		
		//PARSE THE LINES
		parseFields(lines);			//Load it into the fields
	}
}

function parseFields(data) {
	//SCAN EACH LINE
	var fieldLine;
	var fieldId;

	for(i = 0; i < data.length; i++) {

		//IS A FIELD HEADING
		if(data[i].substr(0,6) == 'FIELD:') {
			fieldId = data[i].substr(7, data[i].length-7);	//Get the name of this field
			
			//delete all options:

			var select = document.getElementById(fieldId);
			while(select.hasChildNodes()){
				select.removeChild(select.childNodes[0]);
			}
			
			//Insert the 'ALL' option:

			var obj = new Option('All', '');
			var count = select.options.length;
			select.options[count] = obj;
			
			continue;					//Skip on
		}

		//IS DATA
		var select = document.getElementById(fieldId);
		displayData = data[i];					//Data for display ("Blah (2)")
		insideData = data[i].substr(0, data[i].lastIndexOf(' '));	//Internal data ("Blah")
		
		//Exception - for Minimum Price
		if(fieldId == 'price-min') {
			insideData = displayData;
			displayData = 'From £' + displayData;
		}
		//Exception - for Maximum Price
		if(fieldId == 'price-max') {
			insideData = displayData;
			displayData = 'To £' + displayData;
		}

		var obj = new Option(displayData, insideData);
		var count = select.options.length;
		select.options[count] = obj;

	}
}


/////////////////////////////////////////////////

function lock( object )
{
	object.disabled = true;
	var target;
	target = object.id + "-change";
	document.getElementById(target).style.visibility = "visible";
	
	lookupText();
}

function unlock( object )
{
	len_string = String(object.id).length-7;
	name = String(object.id).substring(0,len_string);
	document.getElementById(name).disabled = false;
	object.style.visibility = "hidden";
	document.getElementById(name).selectedIndex = 0;
	document.getElementById(name).focus();

	lookupText();
}



///////////////////////////////////////////////
// FIND ALL SELECT ELEMENTS USED BY THIS PAGE//
///////////////////////////////////////////////

var elementList = new Array();

function getElementList(){
	
	try {
		
		selects = document.getElementById('cdenyer-search').getElementsByTagName('select'); 			//Find all selects
		numSelects = selects.length;				//Find how many there are
	
		for(var i=0; i < numSelects; i++)
		{
			elementList.push(selects[i].id);
		}
		
		lookupText();
	} catch (e) {
		
	}
}

window.onload = getElementList;		//Do it on start


////////////////////////////////////////////////
// RE-ENABLE ELEMENTS BEFORE GETTING          //
////////////////////////////////////////////////

function enableSelects(){
	//Pick all selects and the form
	var form = document.getElementById('cdenyer-search');		//Form
	var selects = form.getElementsByTagName('select');		//Selects
	
	for(x in selects) {
		//For each one, make sure it's enabled
		selects[x].disabled = false;
	}
	
	//Submit the form
	form.submit();	
}
