var page = {locked: false};
function vote(form, id, n, poll) { 
   /* check if we have not voted recently - */
   var vc = getcookie('voted'+poll);
   if(vc.length > 0) {
	   alert('You have already voted! Thank you');
	   return;
   }
   if(page.locked) { return; }
   var cr = 0;
   var answer = form.answer, ai=0;
   for(var i=0; i<answer.length; i++) {
	   if(answer[i].checked) {
		   ai = answer[i].value;
		   cr = i;
		   break;
	   }
   }
   if(ai==0) {
	   document.getElementById(n).innerHTML = '<span style="color: #FF0000; font-size: 11px">Please select an option to vote</span>';
	   setTimeout("document.getElementById('"+n+"').innerHTML=''", 4000);	
	   return;
   }
   var url = 'action.php?action=vote&ai='+ai+'&t='+(new Date().getTime()); 
   wait('Submiting vote. Please wait', id);
   form.vbtn.disabled = true;
   form.rbtn.disabled = true;
   var r = createHttpRequest();
   r.open('GET', url, true);
   r.onreadystatechange = function() {
	   if(r.readyState==4) {
		   //alert(r.responseText);
		   hidewait(id);
		   answer[cr].checked = false;
           form.vbtn.disabled = false;
           form.rbtn.disabled = false;		   
		   document.getElementById(n).innerHTML = 'Your poll has been submitted. Thank you';
		   setTimeout("document.getElementById('"+n+"').innerHTML=''", 4000);	
		   results(form, id);
		   setcookie('voted'+poll, 'voted!', 1);
	   }
   }
   r.send(null);
}

function results(form, id) { 
   var poll = form.poll.value;
   var url = 'action.php?action=results&lid='+id+'&poll='+poll+'&t='+(new Date().getTime()); //alert(url); return;
   wait('Getting Poll results. Please wait', id);
   form.vbtn.disabled = true;
   form.rbtn.disabled = true;
   var r = createHttpRequest();
   r.open('GET', url, true);
   r.onreadystatechange = function() {
	   if(r.readyState==4) {
		   //alert(r.responseText);
		   //hidewait(id);
           form.vbtn.disabled = false;
           form.rbtn.disabled = false;		   
		   with(document.getElementById(id).style) {
			   position = 'absolute';
			   width = '300px';
			   height = '170px';
		   }
		   document.getElementById(id).innerHTML = r.responseText;
		   //document.getElementById(n).innerHTML = 'Your poll has been submitted. Thank you';
		   //setTimeout("document.getElementById('"+n+"').innerHTML=''", 4000);		   
	   }
   }
   r.send(null);
}

function wait(msg, id) {
	with(document.getElementById(id).style) {
		position = 'absolute';
		width = '250px';
		height = '50px';
		backgroundColor = '#FFFFFF';
		border = 'solid #EEB7C6 2px';
		padding = '20px';
		margin = '4px 0px 0px 0px';
	}
	var html = '<table border="0" align="center">\
	<tr><td colspan="2" height="10"></tr>\
	<tr>\
	  <td><img src="images/loading.gif" /></td>\
	  <td style="font-family: verdana; font-size: 11px">'+msg+'..</td>\
	</tr>\
   </table>';
   document.getElementById(id).innerHTML = html;
   lockpage();
};

function hidewait(id) {
	with(document.getElementById(id).style) {
		position = 'relative';
		width = '0px';
		height = '0px';
		backgroundColor = '#FFFFFF';
		border = 'none';
		padding = '0px';
		//top = '400px';
		//left = '450px';
	}
   document.getElementById(id).innerHTML = '';   
   unlockpage();
};

function lockpage() {
	page.locked = true;
};

function unlockpage() {
	page.locked = false;
};

function createHttpRequest(){
  var request;
  try{request = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch(e){
   try{request = new ActiveXObject("Microsoft.XMLHTTP");}
   catch(e){request = new XMLHttpRequest(); }
 }
 return request; 
};

function setcookie(c_name,value,hours){
  var expdate = new Date();
  var now = expdate.getTime();
  var expiry = now + hours*3600*1000;
  expdate.setTime(expiry);
  document.cookie=c_name+ "=" +escape(value) + ";expires="+expdate.toGMTString();
}
function getcookie(c_name){
if (document.cookie.length>0) {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1) { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
  return "";
}
