var http_request;

function vote(vote) 
{		
	http_request = createRequest();
	
	var pollForm = document.getElementById("pollForm");
	var pollFormDiv = document.getElementById("pollFormDiv");
	
	if(vote == 1) {
		if(readCookie("upmunc-musicPoll") != "true") {
			createCookie("upmunc-musicPoll","true",30);
		}
		else {
			alert("You've already voted!");
			return;
		}
		
		var h = document.getElementById("form_hipHop").checked;
		var e = document.getElementById("form_electro").checked;
		var p = document.getElementById("form_pop").checked;
		var r = document.getElementById("form_rock").checked;
		var u = document.getElementById("form_upmunc").checked;
		var requestURL = "scripts/vote.php?h=" + escape(h) + "&e=" + escape(e) + "&p=" + escape(p) + "&r=" + escape(r) + "&u=" + escape(u) + "&t=" + new Date().getTime();
	}
	else
		var requestURL = "scripts/vote.php?t=" + new Date().getTime();
	
    http_request.open('GET', requestURL, true);
	
    http_request.onreadystatechange = function() 
	{ 
		pollForm.style.display = "none";
		pollFormDiv.innerHTML = "<i>Pulling up form results...</i>";
		if (http_request.readyState == 4) 
		{
			if (http_request.status == 200)	//successful request 
			{
				//parse the XML data into array
				xmlResults = http_request.responseXML.documentElement;
				if(xmlResults == null)
				{
					pollFormDiv.innerHTML = "<span>There was an error getting vote results...</span>";
					return;
				}
				//get info from XML file
				var h = xmlResults.getElementsByTagName("hipHop");
				h = h[0].firstChild.nodeValue;
				var e = xmlResults.getElementsByTagName("electro");
				e = e[0].firstChild.nodeValue;
				var p = xmlResults.getElementsByTagName("pop");
				p = p[0].firstChild.nodeValue;
				var r = xmlResults.getElementsByTagName("rock");
				r = r[0].firstChild.nodeValue;
				var u = xmlResults.getElementsByTagName("upmunc");
				u = u[0].firstChild.nodeValue;
				var totalCount = xmlResults.getElementsByTagName("totalCount");
				totalCount = totalCount[0].firstChild.nodeValue;
				
				var html = "<table><tr><td><span>hip hop / rap</span></td><td><span>" + h + "&nbsp;&nbsp;(" + Math.round(h / totalCount * 100) + "%)</span></td></tr><tr><td><span>electronic / techno</span></td><td><span>" + e + "&nbsp;&nbsp;(" + Math.round(e / totalCount * 100) + "%)</span></td></tr><tr><td><span>pop</span></td><td><span>" + p + "&nbsp;&nbsp;(" + Math.round(p / totalCount * 100) + "%)</span></td></tr><tr><td><span>rock</span></td><td><span>" + r + "&nbsp;&nbsp;(" + Math.round(r / totalCount * 100) + "%)</span></td></tr><tr><td><span>the UPMUNC song, on loop&nbsp;&nbsp;&nbsp;</span></td><td><span>" + u + "&nbsp;&nbsp;(" + Math.round(u / totalCount * 100) + "%)</span></td></tr></table>";
				pollFormDiv.innerHTML = html;
			} 
			else 
			{
            	pollFormDiv.innerHTML = "<span>There was an error getting vote results...</span>";
        	}
    	}
	};

    http_request.send(null);
}

/*
 * Create an HTTP Request
 * no parameters
 * outcome: an HTTP request
 */
function createRequest()
{
	var request = false;
	if (window.XMLHttpRequest) 
	{ 
		// Mozilla, Safari, ...
        request = new XMLHttpRequest();
        if (request.overrideMimeType) 
		{
            request.overrideMimeType('text/xml');
            // See note below about this line
        }
    } 
	else if (window.ActiveXObject) 
	{ 
		// IE
        try 
		{
            request = new ActiveXObject("Msxml2.XMLHTTP");
        } 
		catch (e) 
		{
            try 
			{
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } 
			catch (e) 
			{
				alert(e.description);
			}
        }
    }

    if (!request) 
	{
        alert('Giving up - Cannot create an XMLHTTP instance');
        return false;
    }
	return request;
}

function confirmRegistration() {
	//get form data
	var form_schoolName = document.getElementById("form_schoolName").value;
	var form_clubName = document.getElementById("form_clubName").value;
	var form_contactName = document.getElementById("form_contactName").value;
	var form_address1 = document.getElementById("form_address1").value;
	var form_city = document.getElementById("form_city").value;
	var form_country = document.getElementById("form_country").value;
	var form_phone = document.getElementById("form_phone").value;
	var form_email = document.getElementById("form_email").value;
	var form_userName = document.getElementById("form_userName").value;
	var form_password = document.getElementById("form_password").value;
	var form_password2 = document.getElementById("form_password2").value;
	var form_expectedDel = document.getElementById("form_expectedDel").value;
	
	if(form_schoolName == "") {
		alert("You did not enter a school name.");
		return false;
	}
	else if(form_clubName == "") {
		alert("You did not enter a club name.");
		return false;
	}
	else if(form_contactName == "") {
		alert("You did not enter a contact person.");
		return false;
	}
	else if(form_address1 == "") {
		alert("You did not enter a contact address.");
		return false;
	}
	else if(form_city == "") {
		alert("You did not enter a city.");
		return false;
	}
	else if(form_country == "") {
		alert("You did not enter a country.");
		return false;
	}
	else if(form_phone == "") {
		alert("You did not enter a phone number.");
		return false;
	}
	else if(form_email == "") {
		alert("You did not enter an email address.");
		return false;
	}
	else if(form_userName == "") {
		alert("You did not enter a user name.");
		return false;
	}
	else if(form_password == "") {
		alert("You did not enter a password.");
		return false;
	}
	else if(form_password2 == "") {
		alert("You did not confirm your password.");
		return false;
	}
	else if(form_password2 != form_password) {
		alert("The passwords you entered do not match.");
		return false;
	}
	else if(form_expectedDel == "") {
		alert("You did not enter an expected delegation size.");
		return false;
	}
	else {
		document.getElementById("schoolRegistrationForm").submit();
		return true;
	}
}

/*
 * cookie management functions
 */
function createCookie(name,value,days) 
{
	if (days) 
	{
		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		var expires = "; expires=" + date.toGMTString();
	}
	else var expires = "";
	
	document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) 
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) 
	{
		var c = ca[i];
		while (c.charAt(0)==' ') 
			c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) 
			return c.substring(nameEQ.length,c.length);
	}
	return null;
}
