
/* 	***************************************************************************
	EMI RATING
	*************************************************************************** */

	onLoadFunctionList = new Array();
	function performOnLoadFunctions(){
		for (var i in onLoadFunctionList){
			onLoadFunctionList[i]();
		}
	}
	
	function replaceDivContents(xmlHttpRequest, dstDivId){
		var dstDiv = document.getElementById(dstDivId);
		dstDiv.innerHTML = xmlHttpRequest.responseText;
	}
		
	var UT_RATING_IMG = 'img_style/icon_ratingstar_full.gif';
	var UT_RATING_IMG_HOVER = 'img_style/icon_ratingstar_full.gif';
	var UT_RATING_IMG_HALF = 'img_style/icon_ratingstar_half.gif';
	var UT_RATING_IMG_BG = 'img_style/icon_ratingstar_empty.gif';
	var UT_RATING_IMG_REMOVED = 'img_style/icon_ratingstar_empty.gif';
	
	function Rating(ratingElementId, maxStars, objectName, formName, ratingMessageId, componentSuffix, messages, asset,url)
	{
		this.constructor = Rating;
		this.ratingElementId = ratingElementId;
		this.maxStars = maxStars;
		this.objectName = objectName;
		this.formName = formName;
		this.ratingMessageId = ratingMessageId;
		this.componentSuffix = componentSuffix;
		this.messages = messages;
		this.asset = asset;
		this.url = url;
		this.messages = [this.asset+" bewerten:", "Erb&auml;rmlich", "Nichts besonderes", "Empfehlenswert", "Super!", "Gro&szlig;artig!!!"];
	
		this.starTimer = null;
		this.starCount = 0;
	
		// pre-fetch image
		(new Image()).src = UT_RATING_IMG;
		(new Image()).src = UT_RATING_IMG_HALF;
	
		function showStars(starNum,blogID, skipMessageUpdate,flag) {
			if(flag) {
			//clearStarTimer();
			//greyStars(blogID);
			colorStars(starNum,blogID,flag);
			if(!skipMessageUpdate)
				setMessage(starNum,blogID, messages);
		
			}
			else {
			this.clearStarTimer();
			this.greyStars(blogID);
			this.colorStars(starNum,blogID);
			if(!skipMessageUpdate)
				this.setMessage(starNum,blogID, messages);
			}
			

		}
	
		function setMessage(starNum,blogID) {
			//document.getElementById(this.ratingMessageId).innerHTML = this.messages[starNum];
			document.getElementById('ratemess_'+this.componentSuffix).innerHTML = this.messages[starNum];
		}

		function colorStars(starNum,blogID,flag) {
			if (!flag) { var starNr=this.componentSuffix;}
			else starNr=blogID;
			var count=Math.round(starNum);

			//for (var i=0; i < starNum; i++) {
			for (var i=0; i < count; i++) {
				var half=i+1.5;
				if(half==starNum) { 
				document.getElementById('star_'  + starNr + "_" + (i+1)).src = UT_RATING_IMG;
				document.getElementById('star_'  + starNr + "_" + (i+2)).src = UT_RATING_IMG_HALF;
				break; 
				}
				else {
				document.getElementById('star_'  + starNr + "_" + (i+1)).src = UT_RATING_IMG;
				//document.getElementById('star_'  + blogID+ "_" + (i+1)).src = UT_RATING_IMG;
				}
			}
			
		}

		function greyStars(blogID) {
			for (var i=0; i < this.maxStars; i++)
				if (i <= this.starCount) {
					document.getElementById('star_' + this.componentSuffix + "_"  + (i+1)).src = UT_RATING_IMG_BG;
				}
				else
				{
					document.getElementById('star_' + this.componentSuffix + "_"  + (i+1)).src = UT_RATING_IMG_BG;
				}
		}

		function setStars(starNum, contentId,userId) {
			this.starCount = starNum;
			this.drawStars(starNum);
			var obj=this.objectName;
			this.voteAjax(this.url+'artikel_vote.php?func=rateContent&starNum='+starNum+'&blogID='+contentId+'&UserId='+userId+'',contentId,obj);
		}


		function drawStars(starNum,blogID,skipMessageUpdate,flag) {
			this.starCount=starNum;
			
			if(flag) showStars(starNum,blogID,skipMessageUpdate,flag);
			else this.showStars(starNum,blogID,skipMessageUpdate);
		}

		function clearStars(blogID) {
			this.starTimer = setTimeout(this.objectName + ".resetStars("+blogID+")", 50);
		}

		function resetStars(blogID) {
			this.clearStarTimer();
			if (this.starCount)
				this.drawStars(this.starCount);
			else
				this.greyStars(blogID);
			this.setMessage(0);
		}
	
		function clearStarTimer() {
			if (this.starTimer) {
				clearTimeout(this.starTimer);
				this.starTimer = null;
			}
		}

		//VOTING BLOG SYSTEM
		function voteAjax(url,bloggId,obj) {
		
				//
				// CONTENT RATING
				//
				//this.starsRes;
				
				xmlhttp = getxmlhttp ();
				xmlhttp.open("GET", url);
				xmlhttp.onreadystatechange =function () {
					if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
						//document.getElementById(obj).innerHTML = xmlhttp.responseText;

				
				
				
					var xmlDocument = xmlhttp.responseXML;
					
					var bewertungen = xmlDocument.getElementsByTagName("bewertungen")[0].childNodes[0].nodeValue;
					var stars = xmlDocument.getElementsByTagName("stars")[0].childNodes[0].nodeValue;

					var result = '<span id="ratemess_'+bloggId+'">Inhalt bewertet!</span>';
							for(i=1; i<=5; i++){
								result += '<img src="img_style/icon_ratingstar_empty.gif" alt="" width="21" height="21" id="star_'+bloggId+'_'+i+'" />';
							}
					result += ' ';
					result += bewertungen+' Bewertungen<br />';
					document.getElementById('rateblock_'+bloggId).innerHTML = result;
					

					//document.getElementById('resStars_36').value = stars;
					//var hinweis = 'Vielen Dank f&uuml;r Ihre Mitwirkung!<br />';
					//document.getElementById("ratenote").innerHTML = hinweis;
					drawStars(stars,bloggId,true,true);

					
					}
					
					
				}
				xmlhttp.send(null);

				
				
				
		}


				
		this.voteAjax = voteAjax;
		this.clearStars = clearStars;
		this.clearStarTimer = clearStarTimer;
		this.greyStars = greyStars;
		this.colorStars = colorStars;
		this.resetStars = resetStars;
		this.setStars = setStars;
		this.drawStars = drawStars;
		this.showStars = showStars;
		this.setMessage = setMessage;
		
		
		
		
	}
