// rok
var COOKIE_EXPIRATION = new Date(365*24*60*60*1000 + new Date().getTime());

function activateArticleRating(iArticleId) {
	var iUserRating = getCookie("ARTICLE_RATING_" + iArticleId);
	if(iUserRating)  {
		var oStar = document.getElementById("ocenaArtykulu" + iUserRating);
		setUserRating(oStar, iUserRating);
	}
	else {
		for(var i=1; i<=5; i++) {
			var oStar = document.getElementById("ocenaArtykulu" + i);
			oStar.iRating = i;
			oStar.iArticleId = iArticleId;
			addEventHandler(oStar, "click", rateArticle);
			addEventHandler(oStar, "click", preventDefaultEvent);			
		}
	}
}


function setUserRating(oSelectedStar, iRating) {
	for(var i=1; i<=5; i++) {
		var oStar = document.getElementById("ocenaArtykulu" + i);
		addEventHandler(oStar, "click", preventDefaultEvent);
		if(i > iRating) {
			oStar.className = "";
		}
		else if(i == iRating)
			oSelectedStar.className = "oceniono" + iRating;
		oStar.style.cursor = "default";
		removeEventHandler(oStar, "click", rateArticle);
	}
//	oSelectedStar.parentNode.parentNode.style.cursor = "default";
}

// wysyła asynchroniczne żądanie protokołem HTTP korzystając z obiektu XMLHttpRequest
function rateArticle(oEvent) {
  
  var oEventSrc = getEventSrc(oEvent);
	
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
  	xmlHttp.open("GET", "articleRate.php?aid=" + oEventSrc.iArticleId + "&rating=" + oEventSrc.iRating, true);  
  	xmlHttp.onreadystatechange = getRatingResults;
  	xmlHttp.send(null);

	// ustaw wyglad gwiazdek
	setUserRating(oEventSrc, oEventSrc.iRating);
	// ustaw ciasteczko
	setCookie("ARTICLE_RATING_" + oEventSrc.iArticleId, oEventSrc.iRating, COOKIE_EXPIRATION);
  }
  else
    // jeśli połączenie jest zajęte, ponawia próbę po 1 sekundzie
    setTimeout('rateArticle(oEvent)', 1000);
}

// wykonywana automatycznie po otrzymaniu odpowiedzi z serwera
function getRatingResults() 
{
  // kontynuuje jedynie jeśli transakcja została zakończona
  if (xmlHttp.readyState == 4)  {
    // status 200 oznacza pomyślne ukończenie transakcji
    if (xmlHttp.status == 200)  {

		var sResponse = xmlHttp.responseText;
	  	if(sResponse.indexOf("ERROR") == -1) {
			oCurrentRating = document.getElementById("ocenaArtykuluAktualna");
			oCurrentRating.innerHTML = sResponse;
		}
	} 
  }
}
