// All part of the Dynamic Star Rating by Jordan Boesch!
// http://creativecommons.org/licenses/by-nc-nd/2.5/ca/
// PRE-LOAD IMAGES -----------------------------


function resetRating(id) {
	document.getElementById('rating_label').innerHTML = 'Rate this template';
	document.getElementById('rating_').innerHTML = '<div id="ratetemp"><img src="images/star_de-active.png" id="img_1" onclick="rate(\'1\',\''+id+'\',\'\',\'\',\'\'); return false;" border="0" style="float: left;"><img src="images/star_de-active.png" id="img_2" onclick="rate(\'2\',\''+id+'\',\'\',\'\',\'\'); return false;" border="0" style="float: left;"><img src="images/star_de-active.png" id="img_3" onclick="rate(\'3\',\''+id+'\',\'\',\'\',\'\'); return false;" border="0" style="float: left;"><img src="images/star_de-active.png" id="img_4" onclick="rate(\'4\',\''+id+'\',\'\',\'\',\'\'); return false;" border="0" style="float: left;"><img src="images/star_de-active.png" id="img_5" onclick="rate(\'5\',\''+id+'\',\'\',\'\',\'\'); return false;" border="0" style="float: left;"></div>&nbsp;&nbsp;<span id="showvotes_'+id+'" class="votesClass"></span><br /><div id="loading_'+id+'"></div>';
}

if (document.images){
  pic1 = new Image(220,19); 
  pic1.src = "images/rating_loading.gif"; 

  pic2 = new Image(25,75); 
  pic2.src = "images/rating_star.gif"; 

  pic3 = new Image(25,75); 
  pic3.src = "images/rating_star_2.gif"; 
  
  pic4 = new Image(16,13); 
  pic4.src = "images/rating_tick.gif";
  
  pic5 = new Image(14,14); 
  pic5.src = "images/rating_warning.gif";
}

// AJAX ----------------------------------------

var xmlHttp

function GetXmlHttpObject(){

var xmlHttp = null;

	try {
	  // Firefox, Opera 8.0+, Safari
	  xmlHttp = new XMLHttpRequest();
	  }
	catch (e) {
	  // Internet Explorer
	  try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
	  catch (e){
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	  }
	  
	return xmlHttp;

}

// Calculate the rating
function rate(rating,id,show5,showPerc,showVotes){
	xmlHttp = GetXmlHttpObject()
	
	if(xmlHttp == null){
		alert ("Your browser does not support AJAX!");
		return;
	  }

	xmlHttp.onreadystatechange = function(){
		
	var loader = document.getElementById('loading_'+id);
	var uldiv = document.getElementById('ul_'+id);
	var rattemid=document.getElementById('ratetemp');
	
		if (xmlHttp.readyState == 4){ 
			
			//loader.style.display = 'none';
			var res = xmlHttp.responseText;
			//alert(res);
			if(res == 'already_voted'){
				
				loader.style.display = 'block';
				loader.innerHTML = '<div class="voted_twice">You already voted!</div>';
				
			} else {
				
								
				//alert(res);
				 var splitted=res.split('^');
				 var res1=parseInt(splitted[0]);
				 var voteval=parseInt(splitted[1]);
				 if(voteval == 1){
						document.getElementById('showvotes_'+id).innerHTML = voteval+' Vote';
					} else {
						document.getElementById('showvotes_'+id).innerHTML = voteval+' Votes';
					}
				
				
						var str='';
					var imgstr='';
					for(var k=1; k<=5;k++)
					{
						 if(res1> 0)
						 {
						  imgstr ='<img src="images/star_active.png" border="0" style="float: left;" />';
						 
						 }
						else
						{
						  imgstr ='<img src="images/star_de-active.png" border="0" style="float: left;" />';
						}
						str=str+imgstr;
						res1--;
					}
				
				
				rattemid.innerHTML = str;
				loader.style.display = 'block';
				loader.innerHTML = '<div class="voted">Thanks for voting!</div>';
				
				
				
				//loader.style.display = 'block';
				

				/*if(show5 == true){
					var out = document.getElementById('outOfFive_'+id);
					var calculate = res/20;
					out.innerHTML = Math.round(calculate*100)/100; // 3.47;
					//out.innerHTML = Math.round((calculate*2),0)/2; // 3.5;
				} 
				
				if(showPerc == true){
					var perc = document.getElementById('percentage_'+id);
					//var newPerc = Math.round(Math.ceil(res/5))*5;
					var newPerc = res;
					perc.innerHTML = newPerc+'%';
				}
				
				else if(showPerc == false){
					var newPerc = res;
				}*/
				
				if(showVotes == true){
					var votediv = document.getElementById('showvotes_'+id).firstChild.nodeValue;
					alert(votediv);
					
					var splitted = votediv.split(' ');
					var newval = parseInt(splitted[0]) + 1;
					if(newval == 1){
						document.getElementById('showvotes_'+id).innerHTML = newval+' Vote';
					} else {
						document.getElementById('showvotes_'+id).innerHTML = newval+' Votes';
					}
				}
				
				var ulRater = document.getElementById('rater_'+id);
				ulRater.className = 'star-rating2';
				
				var all_li = ulRater.getElementsByTagName('li');
				
				// start at 1 because the first li isn't a star
				for(var i=1;i<all_li.length;i++){
					
					all_li[i].getElementsByTagName('a')[0].onclick = 'return false;';
					all_li[i].getElementsByTagName('a')[0].setAttribute('href','#');
					
				}
				
				if(navigator.appName == 'Microsoft Internet Explorer'){
					uldiv.style.setAttribute('width',newPerc+'%'); // IE
				 } else {
					uldiv.setAttribute('style','width:'+newPerc+'%'); // Everyone else
				 }
				
			}
		} else {
			loader.innerHTML = '<img src="images/rating_loading.gif" alt="loading" />';	
		}
	
	}
	var url = "includes/rating_process.php";
	
	var params = "id="+id+"&rating="+rating;
	
	xmlHttp.open("POST",url,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);

} 
