var display_results_flag = true;
var record_set = new Array();

function CheckKeyCode(e)
{
	var KeyID = (window.event) ? event.keyCode : e.keyCode;
	
	if(KeyID == 13){
		perform_validation();
	}
}

function perform_search(){
	//alert('hello');
	record_set = [];
	display_results_flag = true;
	showModalBox("Searching...");
	
	http('POST','aj_perform_search.php',perform_search_response,document.search_form);
}

function reload_search_results(){
	//alert('hello');
	display_results_flag = true;
	var response = document.getElementById('errorMessageArea');
	response.style.display='none';
	
	http('POST','aj_reload_search_results.php',perform_reload_search_results,document.search_form);
}

//var startDate = new Date();
//var startMinutes = startDate.getMinutes();
//var startSeconds = startDate.getSeconds();
	
function loadurl(dest) {
 

	
	try {
		// Moz supports XMLHttpRequest. IE uses ActiveX.
		// browser detction is bad. object detection works for any browser
		xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e) {
		// browser doesn't support ajax. handle however you want
	}
	 
	// the xmlhttp object triggers an event everytime the status changes
	// triggered() function handles the events
	xmlhttp.onreadystatechange = triggered;
	 
	// open takes in the HTTP method and url.
	xmlhttp.open("GET", dest);
	 
	// send the request. if this is a POST request we would have
	// sent post variables: send("name=aleem&gender=male)
	// Moz is fine with just send(); but
	// IE expects a value here, hence we do send(null);
	xmlhttp.send(null);
	}
	 
	function triggered() {
	// if the readyState code is 4 (Completed)
	// and http status is 200 (OK) we go ahead and get the responseText
	// other readyState codes:
	// 0=Uninitialised 1=Loading 2=Loaded 3=Interactive
	if ((xmlhttp.readyState == 2)) {
		// xmlhttp.responseText object contains the response.
		//var endDate = new Date();
		//var endMinutes = endDate.getMinutes();
		//var endSeconds = endDate.getSeconds();
		
		//alert('time taken:'+(endDate-startDate));
		moveOn();
	}
}

function perform_validation(){
	
	var proceed = true;
	var msg = "";
	
	if(document.search_form.business_name.value == "" && document.search_form.business_number.value == ""){
		proceed = false;
		msg = "Please enter either a Business name or number!";
	}
	
	if(proceed){
		perform_search();
	}else{
		alert(msg);	
	}
}

function checkCountry(){
	if(document.search_form.country.value == 'roi'){
		document.search_form.company_town.disabled = true;
		document.search_form.county.disabled = true;
		document.search_form.telephone_number.disabled = true;
		document.search_form.post_code.disabled = true;
	}else{
		document.search_form.company_town.disabled = false;
		document.search_form.county.disabled = false;
		document.search_form.telephone_number.disabled = false;
		document.search_form.post_code.disabled = false;
	}
}

function backToResults(){
	var response = document.getElementById('searchResults');
	response.style.display='none';
	
	var response = document.getElementById('RightMainLeft');
	response.style.display='block';	
}

function showModalBox(textIn){
	//display modal dialog
	//messageObj.setHtmlContent(textIn);
	messageObj.setHtmlContent('<a href="javascript:;" onclick="cancel_search();"><img src="imgs/mag_glass.jpg" width="400" height="150" border="0" /></a>');
	
	//height is dependant on whats in it so we need to multiply errors by something useful
	messageObj.setSize(400,150);
	
	messageObj.setCssClassMessageBox(false);
	messageObj.setSource(false);	// no html source since we want to use a static message here.
	messageObj.setShadowDivVisible(true);	// Disable shadow for these boxes	
	messageObj.display();
}

function showModalBoxReport(urlIn){
	//display modal dialog
	//messageObj.setHtmlContent(textIn);
	messageObj.setHtmlContent('<a href="'+urlIn+'"><img src="images/ch/cancel_report_animation.gif" width="317" height="223" border="0" /></a>');
	//height is dependant on whats in it so we need to multiply errors by something useful
	messageObj.setSize(317,223);
	
	messageObj.setCssClassMessageBox(false);
	messageObj.setSource(false);	// no html source since we want to use a static message here.
	messageObj.setShadowDivVisible(true);	// Disable shadow for these boxes	
	messageObj.display();
}

function closeModalBox(){
	//close our box
	messageObj.close();
}



function cancel_search(){
	killWait();
	display_results_flag = false;
	closeModalBox();
	backToResults();
}

function perform_validation_response(data)
{
	var myErrors = '';
	
	for (var key in data)
	{
		
		if(data[key]['message']=='okay'){
			perform_search();
		}else if(data[key]['message']=='errorsFound'){
			//errors found with search criterias
			
			for (var key2 in data[key]['myErrors'])
			{
				//alert(data[key]['myErrors'][key2]['div_name']);
				response = document.getElementById(data[key]['myErrors'][key2]['div_name']);
				response.style.display='inline';
				myErrors += data[key]['myErrors'][key2]['error_message'];
				myErrors += '<br>';
			}
			display_error_message(myErrors+'<br>');
		}
	}
}

function perform_reload_search_results(data)
{
	//turn on search results
	
	var myErrors = '';

	for (var key in data)
	{
		if(data[key]['message']=='okay'){
			collate_results(data[key]['businessesFound']);
		}
	}
}

function perform_search_response(data)
{
	//turn on search results
	//alert(String(data));
	
	
	closeModalBox();
	
	var myErrors = '';

	for (var key in data)
	{
		//document.search_form.xml_response.value = String(data[key]['searchTerm']);
		//alert(String(data[key]['message']));
		if(data[key]['message']=='okay'){
			
			collate_results(data[key]['businessesFound']);
			
		}else if(data[key]['message']=='noresults'){
			display_error_message('There are no matches found for \''+data[key]['searchTerm']+'\', please refine your search and try again.');
		}
	}
}

function display_error_message(messageIn)
{
	/*var response = document.getElementById('errorMessageOuterHolder');
	response.style.display='block';
	
	var response = document.getElementById('errorMessageArea');
	response.style.display='block';
	response.innerHTML=messageIn;*/
	alert(messageIn);
}

function collection(number,name,address,status,scoreAvailable,myReportPrice) 
{
	this.number = number;
	this.name = name;
	this.address = address;
	this.status = status;
	this.scoreAvailable = scoreAvailable;
	this.reportPrice = myReportPrice;
}

function collate_results(dataIn)
{
	for (var key2 in dataIn)
	{	
	
		if(dataIn[key2]['number'] != undefined){
			myBusinessnumber = dataIn[key2]['number'];
			myBusinessname = dataIn[key2]['name'];
			myBusinessaddress = dataIn[key2]['address'];
			myBusinessstatus = dataIn[key2]['status'];
			myBusinessscoreAvailable = dataIn[key2]['scoreAvailable'];
			myReportPrice = dataIn[key2]['reportPrice'];
			
			record_set[(record_set.length)] = new collection(myBusinessnumber,myBusinessname,myBusinessaddress,myBusinessstatus,myBusinessscoreAvailable,myReportPrice);
		}
	}
	
	display_results(0);
}

function display_results(start)
{
	//alert(start);
	var response = document.getElementById('not_search_results');
	response.style.display='none';
	
	var response = document.getElementById('search_results');
	response.style.display='block';
	
	var response = document.getElementById('home_from_search_results');
	response.style.display='block';
	
	var record_limit = 10;
	
	if(display_results_flag){
		var mySearchRows = '';
		for (i=start; i<=(start+record_limit); i++)
		{
			if (i < record_set.length)
			{	
				
				myBusinessnumber = record_set[i]['number'];
				myBusinessname = record_set[i]['name'];
				myBusinessaddress = record_set[i]['address'];
				myBusinessstatus = record_set[i]['status'];
				myBusinessscoreAvailable = record_set[i]['scoreAvailable'];
				myReportPrice = record_set[i]['reportPrice'];
				
				mySearchRows += '<div class="cp_search_content">';
                mySearchRows += '<div class="cp_search_main"><span class="purplecopy"><strong>'+myBusinessname+'</strong></span></div>';
                mySearchRows += '<div class="cp_search_main">';
                mySearchRows += ' <div class="cp_search_status"><span class="purplecopy">Status:</span>'+myBusinessstatus+'</div>';
                mySearchRows += '<div class="cp_search_companyno"><span class="purplecopy">Company No:</span>'+myBusinessnumber+'</div>';
                mySearchRows += ' <div class="cp_search_address"><span class="purplecopy">Address:</span>'+myBusinessaddress+'</div>';
                mySearchRows += '</div>';
                mySearchRows += '</div>';
				
			
			}
	
		}
		
		var response = document.getElementById('searchResultRows');
		response.innerHTML=mySearchRows;
	
		
		//do the paging links now we know whats what
		var str = '';
		//alert(start);
		if (start > 0)
			str += '<a href="javascript:;" onclick="display_results(0)">&laquo; First</a>&nbsp;';
		else
			{ 
			//str += '<img src="images/page_first_off.gif" alt="first page" width="18" height="18" align="absmiddle" />&nbsp;'; 
			}
		
		if (start > 0)
			str += '<a href="javascript:;" onclick="display_results('+(start - record_limit)+')">&laquo; Previous</a>';
		else
			{ 
			//str += '<img src="images/page_prev_off.gif" alt="previous page" width="18" height="18" align="absmiddle" />'; 
			}
		
		for (i=0; i<record_set.length; i=i+record_limit)
		{
			if (i != start)
			{
				str += ' <a href="javascript:;" onclick="display_results('+i+')">'+((i/record_limit)+1)+'</a> | ';
				var show_page_last = true;
			}
			else
			{
				if(record_set.length > record_limit){
					str += ' ' + ((i/record_limit)+1) + ' | ';
					var show_page_last = false;
				}
			}
			
			//this last page is the same start number as our go to end button
			var end_fig = i;
		}
		
		str = str.substr(0,(str.length-2));
		
		if ((start+record_limit) < record_set.length)
		{
			var next = record_limit + parseInt(start);
			str += '<a href="javascript:;" onclick="display_results('+next+')">Next &raquo;</a>';
		}
		else
		{
			//str += '<img src="images/page_next_off.gif" alt="Next page" width="18" height="18" border="0" align="absmiddle" />';
		}
		
		if (show_page_last)
		{
			str += '&nbsp;<a href="javascript:;" onclick="display_results('+end_fig+')">Last &raquo;</a>';
		}
		else
		{
			//str += '&nbsp;<img src="images/page_last_off.gif" alt="last page" width="18" height="18" border="0" align="absmiddle" />';
		}
		
		if(str != ''){
			str = '<div class="cp_search_content"><div class="cp_search_main"><div class="cp_search_result">Your search returned <span class="purplecopy">'+record_set.length+' results</span></div><span style="float:right">' + str + '</span></div></div>';
			var response = document.getElementById('SearchResultsPageRight');
			response.style.display='block';	
			var response = document.getElementById('SearchResultsPageRightBottom');
			response.style.display='block';	
			document.getElementById('SearchResultsPageRight').innerHTML=str;
			document.getElementById('SearchResultsPageRightBottom').innerHTML=str;
		}else{
			var response = document.getElementById('SearchResultsPageRight');
			response.style.display='none';	
			var response = document.getElementById('SearchResultsPageRightBottom');
			response.style.display='none';	
			document.getElementById('SearchResultsPageRight').innerHTML=str;
			document.getElementById('SearchResultsPageRightBottom').innerHTML=str;
		}
	}
}

function return_from_search(){
	var response = document.getElementById('not_search_results');
	response.style.display='block';
	
	var response = document.getElementById('search_results');
	response.style.display='none';
	
	var response = document.getElementById('home_from_search_results');
	response.style.display='none';
	
	document.getElementById('SearchResultsPageRight').innerHTML='';
	document.getElementById('SearchResultsPageRightBottom').innerHTML='';
	
	var response = document.getElementById('searchResultRows');
	response.innerHTML='';
}

function open_popup(url)
{
	var newWin = window.open (url, 'newwindow', config='height=190, width=520, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no');
	newWin.focus();
}