var pass_till = '';

function select_till(model, source, manu, pid, pname){
	if(model == '')	return;

	if(source == 'edit'){
		document.getElementById('ma_add_till_title').style.display = 'none';
		document.getElementById('ma_edit_till_title').style.display = 'block';		
		document.getElementById('submitselect').value = 'Save Changes To My till';
		document.getElementById('clearedit').style.display = 'block';
		document.getElementById('till_manufacturer').value = manu;
		document.getElementById('till_id').value = pid;
		document.getElementById('till_name').value = pname;
		document.getElementById('edit_till_name').innerHTML = pname;
		document.getElementById('till_action').value = 'edit';

		pass_till = model;
		get_tills(manu);
	} else if(source != 'tills'){
		document.getElementById('till').value = model;
	}

	document.getElementById('searchvalue').value = '';
	document.getElementById('till_results').innerHTML = '<span style="color:#915151; padding:4px;">Please enter till model above to search</span>';
	document.getElementById('till_model').value = model;
	document.getElementById('selected_model').innerHTML = document.getElementById('till_manufacturer').value + ' ' + model;
}

function cancel_edit(){
	document.getElementById('ma_add_till_title').style.display = 'block';
	document.getElementById('ma_edit_till_title').style.display = 'none';		
	document.getElementById('ma_new_till').reset();
	document.getElementById('till_results').innerHTML = '';
	document.getElementById('submitselect').value = 'Add My till';
	document.getElementById('clearedit').style.display = 'none';
}

function search_tills_time(event){
	searchvalue = document.getElementById('searchvalue').value;

	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	var resultdiv = document.getElementById('till_results');
	
	if (keyCode == 9) {
		return false;	
	} else {
		clearTimeout(prntime);
		
		if(searchvalue.length >= 3)	{
			var prntime = setTimeout("search_tills()",1000);
			resultdiv.innerHTML = '<span style="color:#915151; padding:4px;">Searching...</span>';
		}	else {
			resultdiv.innerHTML = '<span style="color:#915151; padding:4px;">Please enter till model above to search</span>';
//		document.getElementById('till_results').style.display='none';
		}
	}	
}

function search_tills(){		
	http_request = null;
	
	resultdiv = document.getElementById('till_results');
	resultdiv.innerHTML = '<span style="color:#915151; padding:4px;">Searching...</span>';
	
	var manufacturer = document.getElementById('till_manufacturer').options[document.getElementById('till_manufacturer').selectedIndex].value;	
	if(!manufacturer){
		alert("Please select a manufacturer to search.");
		return;
	}

	var searchurl = '/member/till_lookup.html?q=' + searchvalue + '&m=' + manufacturer;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {http_request = false;}
		}
	}	else{
		my_do_error('Unsupported Browser<br />Please contact support');
	}

	if (!http_request) {
		my_do_error('Cannot create instance<br />Please contact support');
		return false;
	}
	
	resultdiv.innerHTML = '<span style="color:#915151; padding:4px;">Searching....</span>';
	
	http_request.onreadystatechange = request_statechange;
	http_request.open('GET', searchurl, true);
	http_request.send(null);
}

function request_statechange(){
	resultdiv = document.getElementById('till_results');
	resultdiv.innerHTML = '<span style="color:#915151; padding:4px;">Searching.....</span>';
	
	if (http_request.readyState == 4) {		
		if (http_request.status == 200) {
			eval(http_request.responseText);
	
			var theresulttext = '';			
			theresulttext += '<table class="till_results">';
			
			for(var i=0;i<modelarr.length;i++)
			{
				theresulttext += '<tr id="res_'+ i +'"><td class="till_row_out" onmouseover="this.className=\'till_row_over\'" onmouseout="this.className=\'till_row_out\'" onclick="select_till(\''+ modelarr[i] +'\',\'till_results\');">' + manufacturerarr[i] + ' ' + modelarr[i] + '</td></tr>';	
			}
			
			theresulttext += '</table>';

			resultdiv.innerHTML = theresulttext;
			resultdiv.style.overflowY='auto';
			resultdiv.style.overflowX='hidden';
			resultdiv.style.height='100px';

		} else {
			my_do_error('Unable to parse<br/>Error Code: '+http_request.status+'<br />Please contact support');
		}
	}
}


function my_do_error(the_error) {
	var error_id = document.getElementById('error_display');
	var is_error = true;
	
	alert(the_error);
	//so we can stop the checking
	if(error_id)
	{	
		var browseWidth, browseHeight;
		
		if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
			browseWidth = window.innerWidth;
			browseHeight = window.innerHeight;
		} else if( document.documentElement &&
		( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
			//IE 6+ in 'standards compliant mode' -- IE is such a loozer program
			browseWidth = document.documentElement.clientWidth;
			browseHeight = document.documentElement.clientHeight;
		} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
			//IE 4 compatible
			browseWidth = document.body.clientWidth;
			browseHeight = document.body.clientHeight;
		}
		
		error_id.innerHTML = the_error;
		error_id.style.display='block';				
		error_id.style.top = ((browseHeight/2)-(error_id.offsetHeight*2)) +'px';
		error_id.style.left = ((browseWidth/2)-(error_id.offsetWidth/2)) +'px';    	
		
	}
}


function get_tills(searchvalue){		
	http_request = null;
	
	//document.getElementById('searchvalue').value = '';
	
	var resultselectdiv = document.getElementById('till_select');
	resultselectdiv.innerHTML = '<select><option>Looking up tills...</option></select>';
	resultselectdiv.style.display='block';
	
	//var manufacturer = document.getElementById('manufacturer').options[document.getElementById('manufacturer').selectedIndex].value;
	//searchvalue = document.getElementById('manufacturer').options[document.getElementById('manufacturer').selectedIndex].value;
	var findurl = '/till_lookup2.html?q=' + searchvalue;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {http_request = false;}
		}
	}
	else{
		my_do_error('Unsupported Browser<br />Please contact support');
	}

	if (!http_request) {
		my_do_error('Cannot create instance<br />Please contact support');
		return false;
	}
	resultselectdiv.innerHTML = '<select><option>Waiting...</option></select>';	
	
	http_request.onreadystatechange = get_till_select;
	http_request.open('GET', findurl, true);
	http_request.send(null);		
}


function get_till_select(){
	var resultselectdiv = document.getElementById('till_select');
	
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			
			resultselectdiv.innerHTML = '<select><option>Building List.....</option></select>';
			
			manu = document.getElementById('till_manufacturer');
			resultarr = eval(http_request.responseText);
			var theresulttext = '';			
			//theresulttext += '<select name="till" id="till" onchange="document.getElementById(\'searchvalue\').value = \'\'; document.getElementById(\'till_results\').innerHTML = \'\'; select_till(this.value, \'tills\');"><option value="">Please select model from the list below</option>';
			theresulttext += '<select name="till" id="till" onChange="get_products(manu.value,this.value)"><option value="">Please select model from the list below</option><option value="all">Show me all</option>';
					
			for(var i=0;i<resultarr.length;i++)
			{
				theresulttext += '<option value="' + resultarr[i] + '">' + resultarr[i] + '</option>';	
			}
			theresulttext += '</select>';			
			
			resultselectdiv.innerHTML = theresulttext;
			resultselectdiv.style.display='block';
			//document.getElementById('searchvalue').disabled = false;		

			if(pass_till){
				document.getElementById('till').value = pass_till;
				pass_till = null;
			}

		} else {
			my_do_error('Unable to parse<br/>Error Code: '+http_request.status+'<br />Please contact support');
		}
	}
}

function get_products(manu,model) {
	if (model !='No Matches') {
	window.location.href='/till-list/'+manu+'/'+model+'.html';
	}
}

function handleEnter (field, event)
{
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 13) {
		var i;
		for (i = 0; i < field.form.elements.length; i++)
		if (field == field.form.elements[i])
			break;
		i = (i + 1) % field.form.elements.length;
		field.form.elements[i].focus();
		return false;
	} 	
	else
	{
		if (keyCode == 9) {
			document.getElementById('searchvalue').value = document.getElementById('till_res_0').innerHTML;
			if(document.getElementById('till_res_0'))
			{
				document.getElementById('till_res_0').className = 'till_row_over';	
			}
			return false;
		}
		else
		{
			return true;
		}
	}
} 
