var option1 = new Array();
var option2 = new Array();
var option3 = new Array();
var option4 = new Array();
var option5 = new Array();
var option6 = new Array();
var option7 = new Array();
var option8 = new Array();
var option9 = new Array();
var option10 = new Array();
var option11 = new Array();
var option12 = new Array();

var categories		= new Array();
var descriptions	= new Array();


function prepareEmail () {
	//alert("got your data, start processing!");
	var msg = '';
	var sEmail		= document.getElementById("sEmail").value;
	var sName		= document.getElementById("sName").value;
	var sReferer	= document.getElementById("sReferer").options[document.getElementById("sReferer").selectedIndex].value;
	var sAccept		= document.getElementById("sAccept").checked;
	if (sEmail.lastIndexOf (".")==-1 || sEmail.lastIndexOf (".") > (sEmail.length-3) || sEmail.indexOf ("@") < 1 || sEmail=="")
						{ msg += "Please enter a valid email address.\n"; }
	if(sName=="")		{ msg += "Please enter a name.\n"; }
	if(sReferer=="Please choose ->")
						{ msg += "Please choose where you hear about the Taste Of Kent Awards.\n"; }
	if(!sAccept)		{ msg += "You must accept!\n"; }
	if (msg == '') {
		setTimeout ("saveEmail()", 1500);
	}
	else { alert(msg); }
}

function saveEmail () {
	//alert("your data are correct, sending to the server!")
	var sEmail		= document.getElementById("sEmail").value;
	var sName		= document.getElementById("sName").value;
	var sReferer	= document.getElementById("sReferer").options[document.getElementById("sReferer").selectedIndex].value;
	var sURL		= "../cgi-local/getthemvoted.cgi";
	var sQS			= "e=" + encodeURIComponent(sEmail)+"&n=" + encodeURIComponent(sName)+"&r=" + encodeURIComponent(sReferer) + "&do=1";
	var sHandler = handleSaveEmail;
	request (sURL, sQS, sHandler);
}

function handleSaveEmail () {
	if (myrequest.readyState == 4) {
		//alert("status="+myrequest.status);
		if (myrequest.status == 200) {
			var oXML = myrequest.responseXML;
			//alert("first");
			var oError = oXML.getElementsByTagName("e").item(0);
			if (oError) {
				//alert("error");
				document.getElementById("categories").style.display='none';
				document.getElementById("errorc").innerHTML = oError.getAttribute("m");
				document.getElementById("error").style.display='block';
			}
			else {
				//alert("noerror");
				document.getElementById("vpid").value =  oXML.getElementsByTagName("o").item(0).getAttribute("i");
				//alert(document.getElementById("option1").value);
				var oOptions = oXML.getElementsByTagName("o");
				for(var x=0; x<oOptions.length; x++)
				{
					document.getElementById("option"+(x+1)).value =  oOptions.item(x).getAttribute("v");
				}

				document.getElementById("content").style.width='658px';
				document.getElementById("right_column").style.display='none';
				document.getElementById("email_form").style.display='none';
				document.getElementById("categories").style.display='block';
				document.getElementById("vLabel").style.display='block';
				document.getElementById("startLabel").style.display='block';
			}
		}
	}
}
function getCat (num, cattype) {
	if(cattype=="Product")
	{
		document.getElementById("mProduct").style.display="inline";
		document.getElementById("please").innerHTML="Enter your nominees product, name & Town/Village in the fields below...";
	}
	else 
	{
		document.getElementById("mProduct").style.display="none";
		document.getElementById("please").innerHTML="Enter your nominess name & Town/Village in the fields below...";		
	}
	//color link	
	for(var l=1;l<13;l++)
	{
		document.getElementById('catlink'+l).style.color="000000";
	}
	document.getElementById('catlink'+num).style.color="#516307";
	// Fill in the options
	if(document.getElementById("option"+num).value=="") // If not already chosen for this cat
	{
		document.getElementById("catid").value=num;
		document.getElementById("cattype").value=cattype;
		if(eval("option"+num).length==0) // If the array of options for this cat isn't populated yet
		{
			var sURL = "../cgi-local/getthemvoted.cgi";
			var sQS = "catnum=" + encodeURIComponent(num)+"&do=2";
			var sHandler = handleGetList;
			//setTimeout ("request (sURL, sQS, sHandler)", 1500);
			request (sURL, sQS, sHandler);	
		}
		else
		{
			//alert(eval("option"+num).length);
			var arrOptions = document.getElementById('listof').childNodes;
			for(m=(arrOptions.length-1); m>0; m--)
			{
				//alert(document.getElementById(arrOptions[m].id).innerHTML);
				document.getElementById('listof').removeChild(document.getElementById(arrOptions[m].id));
			}
			for(n=0; n<eval("option"+num).length; n++)
			{
				var atts = eval("option"+num+"["+n+"]").split("|");
				//alert("1="+atts[0]+" 2="+atts[1]);
				var newopt = document.getElementById('listof_0').cloneNode(false);
				newopt.id = "listof__" +n;
				document.getElementById('listof').appendChild(newopt);
				newopt.value = atts[0];
				newopt.innerHTML = atts[1];
			}
			document.getElementById("catname").innerHTML=categories[num];
			document.getElementById("catinfo").innerHTML=descriptions[num];
			document.getElementById("startLabel").style.display='none';
			document.getElementById("doneLabel").style.display='none';
			document.getElementById("voteLabel").style.display='block';
			document.getElementById("sorryLabel").style.display='none';
		}
	}
	else
	{
		document.getElementById("startLabel").style.display='none';
		document.getElementById("doneLabel").style.display='none';
		document.getElementById("voteLabel").style.display='none';
		document.getElementById("sorryLabel").style.display='block';
	}
}
function handleGetList () {
	// retrieve the list of options for one category
	//alert("state="+myrequest.readyState);
	if (myrequest.readyState == 4) {
		//alert("status="+myrequest.status);
		if (myrequest.status == 200) {
			var oXML = myrequest.responseXML;
			var oError = oXML.getElementsByTagName ("e").item(0);
			if (oError) {
				document.getElementById("errorc").innerHTML = oError.getAttribute ("m");
				document.getElementById("error").style.display='block';
			} else {
				var oOptions		= oXML.getElementsByTagName("opt");
				var name			= oXML.getElementsByTagName("cat").item(0).getAttribute("n");
				var description		= oXML.getElementsByTagName("cat").item(0).getAttribute("d");
				var voters			= oXML.getElementsByTagName("cat").item(0).getAttribute("v");
				var finaldecision	= oXML.getElementsByTagName("cat").item(0).getAttribute("fd");	
				//alert("got options: "+oOptions.length);
				var arrOptions = document.getElementById('listof').childNodes;
				for(m=(arrOptions.length-1); m>0; m--)
				{
					document.getElementById('listof').removeChild(document.getElementById(arrOptions[m].id));
				}
				var catid = '';
				for(var it=0; it<oOptions.length; it++)
				// build the Array for this option (the 12 arrays delcared at the top) and
				// populate it with elements consisting of the format: optionID | optionName 
				{
					var newopt = document.getElementById('listof_0').cloneNode(false);
					newopt.id = "listof__" + it;
					document.getElementById('listof').appendChild(newopt);
					catid = oOptions.item(it).getAttribute("c");
					var oid = oOptions.item(it).getAttribute("i");
					var oname = oOptions.item(it).getAttribute("v");
					newopt.value = oid;
					// bit of a cludge to unescape single quotes
					newopt.innerHTML = oname.replace("\\\'", "\'");
					eval("option"+catid+"["+it+"]='"+oid+"|"+oname+"';");
					//alert(eval("option"+catid+"["+i+"]"));

				}
				//alert(eval("option"+catid).length);
				categories[catid] = name;
				descriptions[catid] = description+"<br /><b>Voting:</b> "+voters+"<br /><b>Final Decision:</b> " + finaldecision;
				document.getElementById("catname").innerHTML=categories[catid];
				document.getElementById("catinfo").innerHTML=descriptions[catid];
				document.getElementById("mSupplyer").value =  "New Nominee";
				document.getElementById("mTown").value =  "Town\\Village";
				document.getElementById("mProduct").value = "Product";
				document.getElementById("startLabel").style.display='none';
				document.getElementById("doneLabel").style.display='none';
				document.getElementById("voteLabel").style.display='block';
				document.getElementById("sorryLabel").style.display='none';
			}
		}
	}
}

function SaveVote (act) {
	//alert("checking data! act="+act);
	if(act==2)
	{
		//alert("act="+act);
		var mSupplyer = document.getElementById("mSupplyer").value;
		var mTown = document.getElementById("mTown").value;
		var mProduct = document.getElementById("mProduct").value;
		var catid = document.getElementById("catid").value;
		var cattype = document.getElementById("cattype").value;
		if(mSupplyer=="New Nominee" || mSupplyer=="")
		{
			alert("Enter your Nominee Name!");
		}
		else if(mTown=="Town\\Village" || mTown=="")
		{
			alert("Enter Town\\Village!");
		}
		else if((cattype=="Product") && (mProduct=="Product" || mProduct==""))
		{
			alert("Enter Product!");
		}
		else
		{
			var vpid = document.getElementById("vpid").value;
			var sURL = "../cgi-local/getthemvoted.cgi";
			var sQS = "s=" + encodeURIComponent(mSupplyer)+"&t=" + encodeURIComponent(mTown);
			sQS = sQS+"&c=" + encodeURIComponent(catid)+"&ip=" + encodeURIComponent(vpid);
			if(cattype=="Product") {sQS = sQS+"&p=" + encodeURIComponent(mProduct); }
			sQS = sQS+"&do=4";
			//alert("sQS="+sQS);
			var sHandler = handleSaveVote;
			request (sURL, sQS, sHandler);
		}
	}
	else
	{
		var arrOptions = document.getElementById('listof').childNodes;
		for(m=0; m<arrOptions.length; m++)
		{
			if(arrOptions[m].selected)
			{
				var oid = arrOptions[m].value;
				break;
			}
		}
		var vpid = document.getElementById("vpid").value;
		var catid = document.getElementById("catid").value;
		var sURL = "../cgi-local/getthemvoted.cgi";
		var sQS = "io=" + encodeURIComponent(oid)+"&ip=" + encodeURIComponent(vpid);
		sQS = sQS + "&c=" + encodeURIComponent(catid)+"&do=3";
		//alert("sQS="+sQS);
		var sHandler = handleSaveVote;
		request (sURL, sQS, sHandler);
	}
}
function handleSaveVote () {
	//alert("your data are correct, sending to the server!");
	if (myrequest.readyState == 4) {
		//alert("status="+myrequest.status);
		if (myrequest.status == 200) {
			var oXML = myrequest.responseXML;
			//alert("first");
			var oError = oXML.getElementsByTagName ("e").item(0);
			if (oError) {
				//alert("error");
				document.getElementById("categories").style.display='none';
				document.getElementById("errorc").innerHTML = oError.getAttribute ("m");
				document.getElementById("error").style.display='block';
			}
			else {
				//alert("noerror");
				//alert(document.getElementById("option1").value);
				var catid = oXML.getElementsByTagName("c").item(0).getAttribute("n");
				var oid = oXML.getElementsByTagName("c").item(0).getAttribute("o");
				document.getElementById("option"+catid).value =  oid;
				//alert(document.getElementById("option"+catid).value);
				document.getElementById("mSupplyer").value = "New Nominee";
				document.getElementById("mProduct").value = "Product";
				document.getElementById("mTown").value =  "Town\\Village";
				document.getElementById("email_form").style.display='none';
				document.getElementById("categories").style.display='block';
				document.getElementById("vLabel").style.display='block';
				document.getElementById("startLabel").style.display='none';
				document.getElementById("doneLabel").style.display='block';
				document.getElementById("voteLabel").style.display='none';
				document.getElementById("sorryLabel").style.display='none';
			}
		}
	}
}
function request(sURL, sQS, sHandler)
{
	//alert("start requesting");
	if (window.XMLHttpRequest) {
		myrequest = new XMLHttpRequest();
		//alert("XMLHttpRequest case");
	} else if (window.ActiveXObject) {
		myrequest=new ActiveXObject("Msxml2.XMLHTTP");
		//alert("XMLHTTP dthcbb 2 case");
		if (!myrequest) {
			myrequest=new ActiveXObject("Microsoft.XMLHTTP");
			//alert("XMLHTTP dthcbb 1 case");
		}
	} else {
		alert("XMLHttpRequest/XMLHTTP obj was not created");
	}
	var url = sURL+"?"+sQS;
	myrequest.onreadystatechange = sHandler;
	myrequest.open("GET", url, true);
	myrequest.send(null);

}
