var viewportwidth;
var viewportheight;
// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
if (typeof window.innerWidth != 'undefined')
{
	viewportwidth = window.innerWidth,
	viewportheight = window.innerHeight
}
// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0)
{
	viewportwidth = document.documentElement.clientWidth,
	viewportheight = document.documentElement.clientHeight
}
else // older versions of IE
{
	viewportwidth = document.getElementsByTagName('body')[0].clientWidth;
	viewportheight = document.getElementsByTagName('body')[0].clientHeight;
}

// kludge for stupid ie 6 / 7 / 8 with compat view enabled
document.getElementById=function(str)
{ 
	str=new String(str); 
	var allEls=document.getElementsByTagName("*"),l=allEls.length; 
	for(var i=0;i<l;i++)if(allEls[i].id==str || allEls[i].getAttribute("id")==str)return allEls[i]; 
	return null; 
}

//functions
function ajaxRequest()
{
	var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
	if(window.ActiveXObject)
	{ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
		for(var i=0; i<activexmodes.length; i++)
		{
			try
			{
				return new ActiveXObject(activexmodes[i]);
			}
			catch(e)
			{
				//suppress error
			}
		}
	}
	else if(window.XMLHttpRequest)
	{ // if Mozilla, Safari etc
		return new XMLHttpRequest();
	}
	else
	{
		return false;
	}
}

function clearOverlay()
{
	if(document.getElementById("overlay"))
	{
		document.getElementById("overlay").innerHTML = "";
		document.getElementById("overlay").style.display = "none";
	}
}

function clearPC()
{
	if(document.getElementById("find_postcode").value == "enter your postcode")
	{
		document.getElementById("find_postcode").value = '';
	}
}

function DTclear(elem, defaultText)
{
	if(elem.value == defaultText)
	{
		elem.value = '';
	}
}

function DTreplace(elem, defaultText)
{
	if(elem.value == '')
	{
		elem.value = defaultText;
    }
}

function getAddress(prefix)
{
	if(document.getElementById("find_postcode").value == "enter your postcode" || document.getElementById("find_postcode").value == "enter postcode")
	{
		makeOverlay();
		makeErrBox('Please enter your postcode.');
		return;
	}
	
	var postcode = document.getElementById("find_postcode").value;
	
	if(!valStr(postcode))
	{
		makeOverlay();
		makeErrBox('Please enter your postcode.');
		return;
	}
	
	var uts = Math.round((new Date()).getTime() / 1000);
	var ajax = new ajaxRequest();
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			if(ajax.status==200 || window.location.href.indexOf("http")==-1)
			{
				document.getElementById('choose_address').style.display = 'block';
				document.getElementById("choose_address").innerHTML = ajax.responseText;
			}
		}
	}
	var uRl = "/js/aj/postcode.php?fie="+uts;
	var parameters="postcode="+postcode+"&prefix="+prefix
	ajax.open("POST", uRl, false)
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
	ajax.send(parameters)
}

function giveAddress(prefix,organisation,building,address1,address2,address3,address4,town,county,postcode)
{
	if(prefix == '0')
	{
		var prefix = '';
	}
	if(document.getElementById(prefix+'company'))
	{
		document.getElementById(prefix+'company').value = organisation;
	}
	document.getElementById(prefix+'building').value = building;
	document.getElementById(prefix+'address1').value = address1;
	document.getElementById(prefix+'address2').value = address2;
	document.getElementById(prefix+'address3').value = address3;
	document.getElementById(prefix+'address4').value = address4;
	document.getElementById(prefix+'city').value = town;
	document.getElementById(prefix+'county').value = county;
	document.getElementById(prefix+'postcode').value = postcode;
	// it must be UK address so set that too
	if(document.getElementById(prefix+'country_code'))
	{
		document.getElementById(prefix+'country_code').value = 'GB';
		document.getElementById(prefix+'country_name').value = 'United Kingdom';
		// hide the name field
		document.getElementById(prefix+'country_name').style.display = 'none';
	}
	else
	{
		document.getElementById(prefix+'country').value = 'United Kingdom';
	}
	// hide the address ist
	document.getElementById('choose_address').style.display = 'none';
}

function getImageX(imgID)
{
	var obj = document.getElementById(imgID)
	var x = obj.offsetLeft || 0
	while (obj = obj.offsetParent) x += obj.offsetLeft
	return x
}

function getImageY(imgID)
{
	var obj = document.getElementById(imgID)
	var y = obj.offsetTop || 0
	while (obj = obj.offsetParent) y += obj.offsetTop
	return y
}

function hideAnBox()
{
	document.getElementById("janbox").innerHTML = "";
	document.getElementById("janbox").style.display = "none";
	clearOverlay();
}

function hideErrBox()
{
	document.getElementById("jerrbox").innerHTML = "";
	document.getElementById("jerrbox").style.display = "none";
	clearOverlay();
}

function hideSubmitBox()
{
	document.getElementById("jsulbox").innerHTML = "";
	document.getElementById("jsulbox").style.display = "none";
	clearOverlay();
}

function LogIn()
{
	var mye = document.getElementById("myemail").value;
	if(!valStr(mye) || mye == 'Your Email')
	{
		makeOverlay();
		makeErrBox('Please enter your email address');
		return;
	}
	var myp = document.getElementById("mypass").value;
	if(!valStr(myp) || myp == 'Fake Password')
	{
		makeOverlay();
		makeErrBox('Please enter your password');
		return;
	}
	
	// all good so go on then
	var uts = Math.round((new Date()).getTime() / 1000);
	var ajax = new ajaxRequest();
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			if(ajax.status==200 || window.location.href.indexOf("http")==-1)
			{
				if(ajax.responseText != "Success")
				{
					makeOverlay();
					var err = ajax.responseText;
					makeErrBox(err);
				}
				else
				{
					LogInUserDetails();
					if(document.getElementById("err_action"))
					{
						if(document.getElementById("err_action").value == 'reload')
						{
							window.location.href = window.location.href;
						}
					}
				}
			}
		}
	}
	var uRl = "/js/aj/login.php?fie="+uts;
	var emailV=encodeURIComponent(mye)
	var passV=encodeURIComponent(myp)
	var uts = Math.round((new Date()).getTime() / 1000);
	var parameters="email="+emailV+"&pass="+passV+"&fie="+uts;
	ajax.open("POST", uRl, false)
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
	ajax.send(parameters)
}

function LogInUserDetails()
{
	var uts = Math.round((new Date()).getTime() / 1000);
	var ajax = new ajaxRequest();
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			if(ajax.status==200 || window.location.href.indexOf("http")==-1)
			{
				res = ajax.responseText;
				if(res != 'fail')
				{
					var rbits = res.split(":!:");
					document.getElementById("khlogindet").innerHTML = rbits[0];
					document.getElementById("mykeeley").innerHTML = rbits[1];
				}
			}
		}
	}
	var uRl = "/js/aj/login_userdetails.php?fie="+uts;
	ajax.open("GET", uRl, true);
	ajax.send(null);
}

function LogOut()
{
	var uts = Math.round((new Date()).getTime() / 1000);
	var ajax = new ajaxRequest();
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			if(ajax.status==200 || window.location.href.indexOf("http")==-1)
			{
				res = ajax.responseText;
				if(res == 'win')
				{
					cHost = window.location.hostname;
					window.location.href = "http://"+cHost;
				}
			}
		}
	}
	var uRl = "/js/aj/logout.php?fie="+uts;
	ajax.open("GET", uRl, true);
	ajax.send(null);
}

function makeAnBox(an)
{
	if(!document.getElementById("janbox"))
	{
		var div = document.createElement("div");
		div.id = "janbox";
		document.body.appendChild(div);
	}
	var div = document.getElementById("janbox");
	div.style.display = "block";
	div.style.top = (viewportheight/2 - 100) + "px";
	div.style.left = (viewportwidth/2 - 230) + "px";
	div.innerHTML = '';
		
	var tdiv = document.createElement("div");
	tdiv.style.fontSize = "14px";
	tdiv.style.fontWeight = "bold";
	tdiv.style.textAlign = "center";
	tdiv.innerHTML = "Success";
	div.appendChild(tdiv);
	
	var adiv = document.createElement("div");
	adiv.style.margin = "10px 0px";
	adiv.style.textAlign = "center";
	adiv.innerHTML = an;
	div.appendChild(adiv);
	
	var cdiv = document.createElement("div");
	cdiv.style.textAlign = "right";
	cdiv.innerHTML = "<span class=\"nicebutt\" id=\"anok\" onclick=\"hideAnBox();\">OK</span>";
	div.appendChild(cdiv);
}

function makeLConBub(del)
{
	if(!document.getElementById("confirml"))
	{
		var div = document.createElement("div");
		div.id = "confirml";
		document.body.appendChild(div);
	}
	var div = document.getElementById("confirml");
	div.innerHTML = '';
	
	var wdiv = document.createElement("div");
	wdiv.id = "wanna";
	wdiv.innerHTML = 'Do you really want to remove this '+del+'?';
	div.appendChild(wdiv);
	
	var bdiv = document.createElement("div");
	bdiv.id = "conbuts";
	bdiv.innerHTML = '<span class="nicebutt" id="yesButton">YES</span><span class="nicebutt" id="noButton">NO</span>';
	div.appendChild(bdiv);
}

function makeRConBub(del)
{
	if(!document.getElementById("confirmr"))
	{
		var div = document.createElement("div");
		div.id = "confirmr";
		document.body.appendChild(div);
	}
	var div = document.getElementById("confirmr");
	div.innerHTML = '';
	
	var wdiv = document.createElement("div");
	wdiv.id = "wanna";
	wdiv.innerHTML = 'Do you really want to remove this '+del+'?';
	div.appendChild(wdiv);
	
	var bdiv = document.createElement("div");
	bdiv.id = "conbuts";
	bdiv.innerHTML = '<span class="nicebutt" id="yesButton">YES</span><span class="nicebutt" id="noButton">NO</span>';
	div.appendChild(bdiv);
}

function makeErrBox(err)
{
	if(!document.getElementById("jerrbox"))
	{
		var div = document.createElement("div");
		div.id = "jerrbox";
		document.body.appendChild(div);
	}
	var div = document.getElementById("jerrbox");
	div.style.display = "block";
	div.style.top = (viewportheight/2 - 100) + "px";
	div.style.left = (viewportwidth/2 - 230) + "px";
	div.innerHTML = '';
		
	var tdiv = document.createElement("div");
	tdiv.style.fontSize = "14px";
	tdiv.style.fontWeight = "bold";
	tdiv.style.textAlign = "center";
	tdiv.innerHTML = "Error";
	div.appendChild(tdiv);
	
	var ediv = document.createElement("div");
	ediv.style.margin = "10px 0px";
	ediv.style.textAlign = "center";
	ediv.innerHTML = err;
	div.appendChild(ediv);
	
	var cdiv = document.createElement("div");
	cdiv.style.textAlign = "right";
	cdiv.innerHTML = "<span class=\"nicebutt\" id=\"errok\" onclick=\"hideErrBox();\">OK</span>";
	div.appendChild(cdiv);
}

function makeLoading(target)
{
	var tar = document.getElementById(target);
	var ldg = document.createElement("div");
	ldg.id = "lowDing";
	ldg.style.textAlign = "center";
	ldg.style.color = "#981616";
	ldg.style.fontSize = "14px";
	ldg.innerHTML = 'Loading <img src="/style/img/ajhldg.gif" align="absmiddle">';
	tar.appendChild(ldg);
}

function makeOverlay()
{
	if(!document.getElementById("overlay"))
	{
		var div = document.createElement("div");
		div.id = "overlay";
		document.body.appendChild(div);
	}
	var overlay = document.getElementById("overlay");
	overlay.style.display = "block";
	if(!document.getElementById("sie"))
	{
		var sie = document.createElement("img");
		sie.id = "sie";
		sie.src = "/style/img/spacer.gif";
		overlay.appendChild(sie);
	}
	var sie = document.getElementById("sie");
	sie.style.width = viewportwidth + "px";
	sie.style.height = viewportheight + "px";	
}

function makeSubBox()
{
	if(!document.getElementById("janbox"))
	{
		var div = document.createElement("div");
		div.id = "janbox";
		document.body.appendChild(div);
	}
	var div = document.getElementById("janbox");
	div.style.display = "block";
	div.style.top = (viewportheight/2 - 100) + "px";
	div.style.left = (viewportwidth/2 - 230) + "px";
	div.innerHTML = '';
		
	var tdiv = document.createElement("div");
	tdiv.style.fontSize = "14px";
	tdiv.style.fontWeight = "bold";
	tdiv.style.textAlign = "center";
	tdiv.innerHTML = "Submitting";
	div.appendChild(tdiv);
	
	var adiv = document.createElement("div");
	adiv.style.margin = "10px 0px";
	adiv.style.textAlign = "center";
	adiv.innerHTML = '<img src="/style/img/ajhldg.gif" alt="">';
	div.appendChild(adiv);
}

function makeSubmitBox()
{
	if(!document.getElementById("jsulbox"))
	{
		var div = document.createElement("div");
		div.id = "jsulbox";
		document.body.appendChild(div);
	}
	var div = document.getElementById("jsulbox");
	div.style.display = "block";
	div.style.top = (viewportheight/2 - 100) + "px";
	div.style.left = (viewportwidth/2 - 53) + "px";
	div.innerHTML = '<img src="/style/img/loader.gif" alt="">';
}

function myListAdd(iref)
{
	if(valNum(iref))
	{
		makeOverlay();
		makeSubmitBox();
		
		var uts = Math.round((new Date()).getTime() / 1000);
		var ajax = new ajaxRequest();
		ajax.onreadystatechange = function()
		{
			if(ajax.readyState == 4)
			{
				if(ajax.status==200 || window.location.href.indexOf("http")==-1)
				{
					res = ajax.responseText;
					
					hideSubmitBox();
					
					var resbits = res.split("~");
					var itotal = resbits[0];
					document.getElementById("mylisttotal").innerHTML = '('+itotal+' items)';
					if(parseInt(itotal) == 1)
					{
						document.getElementById("mylisttotal").innerHTML = '('+itotal+' item)';
					}
					var ilist = resbits[1];
					myListOption(ilist);
				}
			}
		}
		var uRl = "/js/aj/mylist_add.php?id="+iref+"&fie="+uts;
		ajax.open("GET", uRl, true);
		ajax.send(null);
	}
}

function myListEmpty()
{
	myListHide();
		
	makeOverlay();
	makeSubmitBox();
		
	var uts = Math.round((new Date()).getTime() / 1000);
	var ajax = new ajaxRequest();
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			if(ajax.status==200 || window.location.href.indexOf("http")==-1)
			{
				res = ajax.responseText;
					
				hideSubmitBox();
				
				var resbits = res.split("~");
				var itotal = resbits[0];
				document.getElementById("mylisttotal").innerHTML = '('+itotal+' items)';
				var ilist = resbits[1];
				myListOption(ilist);
			}
		}
	}
	var uRl = "/js/aj/mylist_empty.php?fie="+uts;
	ajax.open("GET", uRl, true);
	ajax.send(null);
}

function myListEnquire()
{
	cHost = window.location.hostname;
	window.location.href = "http://"+cHost+"/make_enquiry.php";
}

function myListHide()
{
	document.getElementById("jmlbox").innerHTML = "";
	document.getElementById("jmlbox").style.display = "none";
	clearOverlay();
}

function myListOption(iList)
{
	makeOverlay();
	
	if(!document.getElementById("jmlbox"))
	{
		var div = document.createElement("div");
		div.id = "jmlbox";
		document.body.appendChild(div);
	}
	var div = document.getElementById("jmlbox");
	div.style.display = "block";
	div.style.top = (viewportheight/2 - 100) + "px";
	div.style.left = (viewportwidth/2 - 208) + "px";
	div.innerHTML = iList;
}

function myListRemove(iref)
{
	if(valNum(iref))
	{
		myListHide();
		
		makeOverlay();
		makeSubmitBox();
		
		var uts = Math.round((new Date()).getTime() / 1000);
		var ajax = new ajaxRequest();
		ajax.onreadystatechange = function()
		{
			if(ajax.readyState == 4)
			{
				if(ajax.status==200 || window.location.href.indexOf("http")==-1)
				{
					res = ajax.responseText;
					
					hideSubmitBox();
					
					var resbits = res.split("~");
					var itotal = resbits[0];
					document.getElementById("mylisttotal").innerHTML = '('+itotal+' items)';
					if(parseInt(itotal) == 1)
					{
						document.getElementById("mylisttotal").innerHTML = '('+itotal+' item)';
					}
					var ilist = resbits[1];
					myListOption(ilist);
				}
			}
		}
		var uRl = "/js/aj/mylist_remove.php?id="+iref+"&fie="+uts;
		ajax.open("GET", uRl, true);
		ajax.send(null);
	}
}

function myListUpdate()
{
	var uts = Math.round((new Date()).getTime() / 1000);
	var ajax = new ajaxRequest();
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			if(ajax.status==200 || window.location.href.indexOf("http")==-1)
			{
				res = ajax.responseText;
				if(res != 'fail')
				{
					var resbits = res.split("~");
					var itotal = resbits[0];
					document.getElementById("mylisttotal").innerHTML = '('+itotal+' items)';
					if(parseInt(itotal) == 1)
					{
						document.getElementById("mylisttotal").innerHTML = '('+itotal+' item)';
					}
				}
			}
		}
	}
	var uRl = "/js/aj/mylist_update_page.php?fie="+uts;
	ajax.open("GET", uRl, true);
	ajax.send(null);
}

function myListUpdatePlus()
{
	makeOverlay();
	makeSubmitBox();
		
	var uts = Math.round((new Date()).getTime() / 1000);
	var ajax = new ajaxRequest();
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			if(ajax.status==200 || window.location.href.indexOf("http")==-1)
			{
				res = ajax.responseText;
				
				hideSubmitBox();
					
				var resbits = res.split("~");
				var itotal = resbits[0];
				document.getElementById("mylisttotal").innerHTML = '('+itotal+' items)';
				if(parseInt(itotal) == 1)
				{
					document.getElementById("mylisttotal").innerHTML = '('+itotal+' item)';
				}
				var ilist = resbits[1];
				myListOption(ilist);
			}
		}
	}
	var uRl = "/js/aj/mylist_update_page.php?fie="+uts;
	ajax.open("GET", uRl, true);
	ajax.send(null);
}

function noDelL()
{
	var div = document.getElementById("confirml");
	div.innerHTML = '';
	div.style.display = 'none';
	clearOverlay();
}

function noDelR()
{
	var div = document.getElementById("confirmr");
	div.innerHTML = '';
	div.style.display = 'none';
	clearOverlay();
}

var onHashChange = function(event)
{
	//get hash function
	var getHashValue = function()
	{
		var arr = window.location.hash.split("#");
		var hasValue = arr[1];
		//sets default
		if (typeof hasValue == "undefined")
		{
			return false;
		}
		
		var hashLen = hasValue.indexOf("?");
		if(hashLen>0)
		{
			hasValue = hasValue.substring(0,hashLen);
		}
		return hasValue;
	}
	//last hash
	var lastHash = getHashValue();
	
	//checker
	(function watchHash(){
        var hash = getHashValue();

        if (hash !== lastHash) {
            event();
            lastHash = hash;
        }

        var t = setTimeout(watchHash, 100);

    })();
}

function quickSearch()
{
	var qstext = document.getElementById("qstext").value;
	if(valStr(qstext) && qstext != 'Enter keywords or Ref.#')
	{	
		cHost = window.location.hostname;
		if(valNum(qstext))
		{
			window.location.href = "http://"+cHost+"/search.php?keywords=&reference="+qstext+"&category=-1";
		}
		else
		{
			window.location.href = "http://"+cHost+"/search.php?keywords="+qstext+"&reference=&category=-1";
		}
	}
	return;
}

function setHash(dir)
{
	window.location.hash = dir;
}

function makeThrobber()
{
	if(!document.getElementById("jsulbox"))
	{
		var div = document.createElement("div");
		div.id = "jsulbox";
		document.body.appendChild(div);
	}
	var div = document.getElementById("jsulbox");
	div.style.display = "block";
	div.style.top = (viewportheight/2 - 100) + "px";
	div.style.left = (viewportwidth/2 - 53) + "px";
	div.innerHTML = '<img src="/style/img/loader.gif" alt="">';
}

function hideThrobber()
{
	if(document.getElementById("jsulbox"))
	{
		document.getElementById("jsulbox").innerHTML = "";
		document.getElementById("jsulbox").style.display = "none";
	}
	clearOverlay();
}

function valNum(obj)
{
	var chk = /^\d+$/.test(obj);
 	if (!chk)
	{
		return false;
	}
	return true;
}

function valPhone(obj)
{
	if(obj.length > 0)
	{
		if(obj.replace(/\s/g,"") == "")
		{
			return false;
		}
		
		var nospace = obj.replace(/\s/g,"");
		if(!valNum(nospace))
		{
			return false;
		}
		
		return true;
	}	
	return false;
}

function valStr(obj) // test for empty string
{
	if(obj.length > 0)
	{
		if(obj.replace(/\s/g,"") == "")
		{
			return false;
		}		
		return true;
	}	
	return false;
}


// call any function we need to run auto
DomReady.ready(function() {
			myListUpdate();
		});
