// JavaScript Document
//rates things updateRate, readRateCookies, getNewRate
<!--

function updateRateDisplayOver(img){
	var overImage = new Image();
	overImage.src="./images/rate_star_over.gif";
	var outImage = new Image();
	outImage.src="./images/rate_star_out.gif";

	var currentNum = parseInt(img.getAttribute("alt"));
	var parentTd = img.parentNode;
	var parentTr = parentTd.parentNode;

	for(var i=1;i<parentTr.cells.length;i++){
		var currentTd = parentTr.cells[i];
		var currentImage = currentTd.childNodes[0];
		if(i<=currentNum){
			currentImage.src=overImage.src;
		}else{
			currentImage.src=outImage.src;
		}
	}
}
/**
 *
 * @access public
 * @return void
 **/
function updateRateDisplayOut(img){
	var parentTd = img.parentNode;
	var parentTr = parentTd.parentNode;

	for(var i=1;i<parentTr.cells.length;i++){
		var currentTd = parentTr.cells[i];
		var currentImage = currentTd.childNodes[0];
		var currentSrc = currentImage.getAttribute("previousImage");
		currentImage.src=currentSrc;
	}
}

/**
 *
 * @access public
 * @return void
 **/
 /**
  *
  * @access public
  * @return void
  **/
 function readRateCookieExists(ci){
	var ca = document.cookie.split(";");
	for( var i=0;i<ca.length;i++){
		var currentCookieA = ca[i].split("=");
		var name=currentCookieA[0];
		var value=currentCookieA[1];

		if(name.charAt(0)==" "){
			name = name.substring(1);
		}
		if(name=="rc"){

			var valuesArray = value.split(",");
			for(var k=0;k<valuesArray.length-1;k++){
				var curCI = valuesArray[k];
				if(curCI == ci){
					alert("Already Rated!!!");
					return true;
				}
			}
		}
	}
	return false;
 }
 function createRateCookie(ci){
	var curDate = new Date();
	curDate.setDate(curDate.getDate()+120);
	var ca=document.cookie.split(";");
	for( var i=0;i<ca.length;i++){
		var currentCookieA = ca[i].split("=");
		var name=currentCookieA[0];
		if(name.charAt(0)==" "){
			name = name.substring(1);
		}
		var value=currentCookieA[1];
		if(name=="rc"){
			document.cookie="rc="+value+ci+",; expires="+curDate.toGMTString()+"; path=/";
		}
	}
	document.cookie="rc="+ci+",; expires="+curDate.toGMTString()+"; path=/";
 }
 //loader image
 var loaderRate = new Image();
	loaderRate.src='./images/rate_loader.gif';
	loaderRate.width='25px';
	loaderRate.height='25px';
function updateRate(img){

	//if car already rated from user return and dont let vote
	if(readRateCookieExists($('ci').value)){
		return;
	}
	//new td to hold loader image and message
	var newTd = document.createElement("td");
	newTd.setAttribute("align","center");
	newTd.colSpan=5;
	newTd.style.fontWeight='bold';
	//message to show to user
	var message = document.createTextNode("Rating...");
	//append image and message to the new td
	newTd.appendChild(loaderRate);
	newTd.appendChild(message);

	//get parent td
	var parentTd = img.parentNode;
	//get parent tr
	var parentTr = parentTd.parentNode;
	//array to hold the kids cells temporarily
	var kidsArray = new Array();
	//function to remove kids cells
	var removeKids = function(tr){
		var curLength = tr.cells.length;
		for(var i=0;i<curLength;i++){
			kidsArray[i]=tr.childNodes[0];
			tr.removeChild(tr.childNodes[0]);
		}
	};
	//function to append kids cells
	var appendKids = function(tr){
		//alert(kidsArray);
		tr.removeChild(tr.childNodes[0]);
		for(var i=0;i<kidsArray.length;i++){
			//alert(kidsArray[i]);
			tr.appendChild(kidsArray[i]);
		}
	};
	//function to update kids if rate change
	var updateKids = function(tr,rate){
		for(var i=1;i<tr.cells.length;i++){
			var curCell = tr.cells[i];
			var curImage = curCell.childNodes[0];
			if(i<=rate){
				curImage.src='./images/rate_star_over.gif';
				curImage.setAttribute('previousImage','./images/rate_star_over.gif');
			}else{
				curImage.src='./images/rate_star_out.gif';
				curImage.setAttribute('previousImage','./images/rate_star_out.gif');
			}
		}
	};
	var oldRate = $('cr').value;

	var curRate = $("cr").value;
	var curId = $("ci").value;

	var rate = parseInt(img.getAttribute("alt"));

	var optionsRate = {
		method:'get',
		parameters:"ci="+curId+"&r="+rate,
		onCreate:function(){
			removeKids(parentTr);
			parentTr.appendChild(newTd);
		},
		onSuccess:function(transport){
			createRateCookie(curId);
			var answer = transport.responseText.split(":");

			if(answer[0]=="true"){
				appendKids(parentTr);
				var newRate = parseInt(answer[1]);
				if(newRate!=oldRate){
					$('cr').value=newRate;
					updateKids(parentTr,newRate);
				}
			}else if(answer[0]=="false"){
				appendKids(parentTr);
				alert(answer[1]);
			}else{
				appendKids(parentTr);
			}
		},
		onFailure:function(){
			appendKids(parentTr);
		}
	};
	var ajaxRate = new Ajax.Request("http://www.moto-trader.gr/updateRC.php",optionsRate);
}
//-->
