var http = createRequestObject();
var displayRating = '';
var currentId = '';
function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else{
        ro = new XMLHttpRequest();
    }
    return ro;    
}
function updateRating(id, rating) {
	var f = eval("document.feedback.fb_"+id);
	f.value = rating;
	changeout(document.getElementById(id+"_10"), rating);
	/*
	var id = obj.title;
	var fullId = obj.id;
	var idName = fullId.substr(0, fullId.indexOf('_'));
	var totalRating = rating;
	currentId = idName;
    http.open('get', 'ajax.php?id='+id+'&idName='+idName);
    http.onreadystatechange = handleResponse;
    http.send(null);
	*/
}
function handleResponse() {
	if(http.readyState == 4){
        var response = http.responseText;
		if (response == 'ERROR'){
			alert("Sorry... Failed to update rating.");
		}
		else {
			//alert("Thanks for your time.");
		}
        displayRating = response.substr(0, 4);
        document.getElementById(currentId+'_showrating').innerHTML = '';
        totalRating = Math.ceil(response);   
        var obj = document.getElementById(currentId+'_'+totalRating);
        changeover(obj, totalRating);
		displayStars(rating, currentId);
    }
}
function changeover(obj, rating) {
	var imageName = obj.src;
	var id = obj.title*2;
	var index = imageName.lastIndexOf('/');
	var filename = imageName.substring(index+1);
	var fullId = obj.id;
	var idName = fullId.substr(0, fullId.indexOf('_'));
	var totalRating = 0;
	var f = eval("document.feedback.fb_"+idName);
	var tempRating = f.value*2;

	if(tempRating > 0){
		var totalRating = tempRating;	
	}
	for(i=0; i<id; i++) {
		var num = i+1;	
		if(i >= totalRating && totalRating <= num) {
			if (num%2 == 0) {
				if(i >= totalRating){
					// increase rating
					window.status='1b: increase rating '+num;
					document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/__even.gif';			
				}
				else {
					// decrease rating
					window.status='2b: decrease rating '+num;
					document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/even.gif';			
				}
			}
			else {
				if(i >= totalRating) {
					// increase rating
					window.status='1a: increase rating '+num;
					document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/__odd.gif';			
				}
				else {
					// decrease rating
					window.status='2a: decrease rating '+num;
					document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/odd.gif';			
				}
			}
		} 
		else if(i <= totalRating && totalRating >= num) {
			if (num%2 == 0) {
				if(i < totalRating){
					// increase rating
					window.status='3b: decrease rating '+num;
					document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/_even.gif';			
				}
				else {
					// decrease rating
					window.status='4b: increase rating '+num;
					document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/even.gif';			
				}
			}
			else {
				if(i < totalRating) {
					// increase rating
					window.status='3a: decrease rating '+num;
					document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/_odd.gif';			
				}
				else {
					// decrease rating
					window.status='4a: increase rating '+num;
					document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/odd.gif';			
				}
			}
		}
	}
}
function changeout(obj, rating) {
	
	var imageName = obj.src;
	var id = obj.title*2;
	var index = imageName.lastIndexOf('/');
	var filename = imageName.substring(index+2);
	var fullId = obj.id;
	var idName = fullId.substr(0, fullId.indexOf('_'));
	var totalRating = 0;
	var f = eval("document.feedback.fb_"+idName);
	var tempRating = f.value*2;
	
	if(tempRating > 0){
		var totalRating = tempRating;	
	}
	
	for(i=0; i<id; i++) {
		var num = i+1;
		if (num%2 == 0) {
			if(i < totalRating) {
				document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/__even.gif';			
			}
			else {
				document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/even.gif';			
			}
		}
		else {
			if(i < totalRating) {
				document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/__odd.gif';			
			}
			else {
				document.getElementById(idName+'_'+num).src = 'http://media.gigoit.org/images/rating/odd.gif';			
			}
		}
	}
	window.status='';
}
function displayStars(rating, idName) {
	for(i=0; i < 10; i++ ) {
		var userRatingTitle = ((i+1)/2);
		if(i%2 ==0) {
			document.write('<img src="http://media.gigoit.org/images/rating/odd.gif" id="'+idName+'_'+(i+1)+'" title="'+userRatingTitle+'" onmouseout="changeout(this, '+rating+')" onmouseover="changeover(this, '+rating+')" onclick="updateRating('+idName+', '+((i+1)/2)+')" />');
		}
		else {
			document.write('<img src="http://media.gigoit.org/images/rating/even.gif" id="'+idName+'_'+(i+1)+'" title="'+userRatingTitle+'" onmouseout="changeout(this, '+rating+')" onmouseover="changeover(this, '+rating+')" onclick="updateRating('+idName+', '+((i+1)/2)+')" />');
		}
	}
	if (displayRating == '') {
		document.write('<br /><div class="ratingText" id="'+idName+'_showrating" >'+displayRating+'</div>');
	}
	else {
		document.write('<br /><div class="ratingText" id="'+idName+'_showrating" >'+totalRating+'</div>');
	}
}
function displayItemStars(rating, idName) {
	for(i=0; i < 10; i++ ) {
		if(i%2 ==0) {
			if(i < rating) {
				document.write('<img src="http://media.gigoit.org/images/rating/__odd1.gif" />');
			}
			else {
				document.write('<img src="http://media.gigoit.org/images/rating/odd1.gif" />');
			}
		}
		else {
			if(i < rating) {
				document.write('<img src="http://media.gigoit.org/images/rating/__even1.gif" />');
			}
			else {
				document.write('<img src="http://media.gigoit.org/images/rating/even1.gif" />');
			}
		}
	}
	if (displayRating == '') {
		document.write('<br /><div class="ratingText" id="'+idName+'_showrating" >'+displayRating+'</div>');
	}
	else {
		document.write('<br /><div class="ratingText" id="'+idName+'_showrating" >'+totalRating+'</div>');
	}
}
