// Generic Ajax object definition

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
	}
}


var Req = getXmlHttpRequestObject();

// search suggest functions

function searchSuggest() {
		if (Req.readyState == 4 || Req.readyState == 0) {
		var str = escape(document.getElementById('findme').value);
		Req.open("GET", 'search_suggest.php?search=' + str, true);
		Req.onreadystatechange = handleSearchSuggest; 
		Req.send(null);
	}		
}

function handleSearchSuggest() {
	if (Req.readyState == 4) {
		var ss = document.getElementById('search_suggest')
		ss.innerHTML = '';
		var str = Req.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
	}
}

function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}
function setSearch(value) {
	document.getElementById('findme').value = value;
	document.getElementById('search_suggest').innerHTML = '';
}

// Postcode searcher 

var pcReq = getXmlHttpRequestObject();

function get_address() {
	if (pcReq.readyState == 4 || Req.readyState == 0) {
		var str = document.getElementById('postcodeA').value;
		pcReq.open("GET", 'ajax_postcode.php?pc=' + str, true);
		pcReq.onreadystatechange = handlePcLookup; 
		pcReq.send(null);
	}
}

function handlePcLookup() {
	if (pcReq.readyState == 4) {
		var as = document.getElementById('address_suggest')
		as.innerHTML = '';
		var str = pcReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			var aid = str[i].split("|");
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setAddress(' + aid[0] + ');" ';
			suggest += 'class="suggest_link">' + aid[1] + '</div>';
			as.innerHTML += suggest;
		}
	}
}

function setAddress(value) {
	if (Req.readyState == 4 || Req.readyState == 0) {
		Req.open("GET", 'ajax_postcode.php?id=' + value, true);
		Req.onreadystatechange = handleSetAddress;
		document.getElementById('address_suggest').innerHTML = ''; 
		Req.send(null)
	}
}
function handleSetAddress() {
	if (Req.readyState == 4) {
		var str = Req.responseText.split("\n");
		if (str[7] != '' || str[8] != ''){
			var add1 = str[4] + str[5];
			if (str[8] != ''){
				var add2 = str[6] + str[7];
				var add3 = str[8];
			}else{
				var add2 = str[6];
				var add3 = str[7];
			}
		}else{
			var add1 = str[4];
			var add2 = str[5];
			var add3 = str[6];
		}
		var town = str[9];
		var county = str[10];
		document.getElementById('address1').value = add1;
		document.getElementById('address2').value = add2;
		document.getElementById('address3').value = add3;
		document.getElementById('town').value = town;
		document.getElementById('county').value = county;
	}
}

// Drop down ajax funtions

function GetXmlHttpObject(handler)
{
    var objXMLHttp=null
    if (window.XMLHttpRequest)
    {
        objXMLHttp=new XMLHttpRequest()
    }
    else if (window.ActiveXObject)
    {
        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
    }
    return objXMLHttp
}

function stateChanged()
{
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    {
            document.getElementById("ajax_select").innerHTML= xmlHttp.responseText;
    }
    else {
            //alert(xmlHttp.status);
    }
}


function htmlData(url, qStr)
{
    if (url.length==0)
    {
        document.getElementById("ajax_select").innerHTML=""; 
        return;
    }
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
        alert ("Browser does not support HTTP Request");
        return;
    }

    url=url+"?"+qStr; 
    url=url+"&sid="+Math.random();
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true) ;
    xmlHttp.send(null);
}

// Tab switcher 

function change_tab(tab, prodid) {
	if (Req.readyState == 4 || Req.readyState == 0) {
		Req.open("GET", tab + '?prod_id=' + prodid + '&' + Date(), true);
		Req.onreadystatechange = handleTab; 
		Req.send(null);	
	}
}
function handleTab() {
	if (Req.readyState == 4) {
		var div = document.getElementById('prodmenu')
		div.innerHTML = '';
		div.innerHTML = Req.responseText;
	}
}

// Voucher functions

function check_voucher() {
	var voucher_code = document.getElementById('voucher_code').value;
	if (Req.readyState == 4 || Req.readyState == 0) {
		Req.open("GET", '/check_code.php?voucher_code=' + voucher_code + "&" + Math.random(), true);
		Req.onreadystatechange = handleVoucherCode; 
		Req.send(null);
	}
}

function handleVoucherCode() {
	if (Req.readyState == 4) {
		var ss = document.getElementById('voucher_details')
		ss.innerHTML = '';
		if (Req.responseText=='1'){
			window.location='basket.htm';
		}else{
			ss.innerHTML = Req.responseText;
		}
	}
}


function emailpass(){
	var email = document.getElementById('forgotpassinput').value;
	if (Req.readyState == 4 || Req.readyState == 0) {
		Req.open("GET", 'emailpass.php?email=' + email + "&" + Math.random(), true);
		Req.onreadystatechange = handleEmailPass; 
		Req.send(null);
	}
}

function handleEmailPass(){
	if (Req.readyState == 4) {
		var ss = document.getElementById('myaccounthelp')
		ss.innerHTML = '';
		var str = Req.responseText;
		ss.innerHTML = str;
	}
}
var origcont;

function staf(prod_id){
	var sender_email = document.getElementById('sender_email').value;
	var friend_email = document.getElementById('friend_email').value;
	
	if (!origcont){
		document.getElementById('sender_email').value='';
		document.getElementById('friend_email').value='';
		origcont=document.getElementById('staf_box').innerHTML;
	}
	if (Req.readyState == 4 || Req.readyState == 0) {
		Req.open("GET", '/staf.php?prod_id=' + prod_id + '&sender_email=' + sender_email + '&friend_email=' + friend_email + '&' + Math.random(), true);
		Req.onreadystatechange = handleStaf; 
		Req.send(null);
	}
}

function handleStaf(){
	if (Req.readyState == 4) {
		var div = document.getElementById('staf_box')
		var str = Req.responseText;
		div.innerHTML = str + origcont;
	}
}

function add_to_basket(prod_id){
		if (Req.readyState == 4 || Req.readyState == 0) {
		Req.open("GET", 'basket.php?action=add&id=' + prod_id + "&" + Math.random(), true);
		Req.send(null);
	}
}