var editMode = false;
var addMode = false;
var debugMode = false;
var PageSize = 10;
var ratedFlag = 0;
var locale = "";


var qsParm = new Array();


function init() {
        var commentingForm = document.forms["commenting"];
        if(commentingForm != null){
		makeGetCommentsRequest();
	}
}


function debug(message){
    if(debugMode == true) {
        alert(message);
    }
}
		
function createxml(str) {

	var xmlString = str;
	var xmlDoc;
	try { //Internet Explorer
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(xmlString);
		return xmlDoc;
		} catch(e) {
		try { //Firefox, Mozilla, Opera, etc.
			parser=new DOMParser();
			xmlDoc=parser.parseFromString(xmlString,"text/xml");
			return xmlDoc;	
		} catch(e) {
			alert(e.message);
			return;
		}
	}
}


			
function updateCommentCount(num) {

	if (locale=="en_CA") {
		if (num==null || num=='' || num==0) {
			document.getElementById('commentNum').innerHTML = '<a class="comments-posted" href="#news-post-comment">0 comment posted</a>';
		}
		else if (num==1) {
			document.getElementById('commentNum').innerHTML = '<a class="comments-posted" href="#news-post-comment">1 comment posted</a>';
		}
		else {
			document.getElementById('commentNum').innerHTML = '<a class="comments-posted" href="#news-post-comment">' + num + ' comments posted</a>';
		}
	}
	else {
		if (num==null || num=='' || num==0) {
			document.getElementById('commentNum').innerHTML = '<a class="comments-posted" href="#news-post-comment">0 commentaire envoy&#233;</a>';
		}
		else if (num==1) {
			document.getElementById('commentNum').innerHTML = '<a class="comments-posted" href="#news-post-comment">1 commentaire envoy&#233;</a>';
		}
		else {
			document.getElementById('commentNum').innerHTML = '<a class="comments-posted" href="#news-post-comment">' + num + ' commentaires envoy&#233;s</a>';
		}
	}
}


var handleCommentSuccess = function(o){
    //debug('commentsuccess');
    debug(o.responseText);

    var averageRating = 0;
    var totalVotes = 0;
    
    	var xmlDoc = o.responseXML;

    	if (xmlDoc.getElementsByTagName('ReturnCode')[0].childNodes[0].nodeValue==0) {
    		
    		locale = xmlDoc.getElementsByTagName('Locale')[0].childNodes[0].nodeValue;
    		if (document.getElementById('commentNum')!=null) {
	    		updateCommentCount(xmlDoc.getElementsByTagName('CommentCount')[0].childNodes[0].nodeValue);
	    	}
	    	if (xmlDoc.getElementsByTagName('RateValue')[0].childNodes[0].nodeValue!=0) {
	    		averageRating = xmlDoc.getElementsByTagName('RateValue')[0].childNodes[0].nodeValue/100;
	    	}
	    	
			totalVotes = xmlDoc.getElementsByTagName('VoteCount')[0].childNodes[0].nodeValue;
			
			if (document.getElementById('FullCommentContainer')!=null) {
				if (xmlDoc.getElementsByTagName('RendererType')[0].childNodes[0].nodeValue=='HTML') {	
					document.getElementById('FullCommentContainer').innerHTML = xmlDoc.getElementsByTagName('Comments')[0].childNodes[0].childNodes[0].nodeValue;
				}
				else {
					document.getElementById('FullCommentContainer').innerHTML = o.responseText;
				}	
			}
			if (document.getElementById('ratings')!=null) {
				var innerHTMLString;
				
				if (averageRating < 1) {
					innerHTMLString = '<span class="stars rating0of5">';
				}
				else if (averageRating >0 && averageRating <2) {
					innerHTMLString = '<span class="stars rating1of5">';
				}
				else if (averageRating >=2 && averageRating <3) {
					innerHTMLString = '<span class="stars rating2of5">';
				}
				else if (averageRating >=3 && averageRating <4) {
					innerHTMLString = '<span class="stars rating3of5">';
				}
				else if (averageRating >=4 && averageRating <5) {
					innerHTMLString = '<span class="stars rating4of5">';
				}
				else if (averageRating >=5 && averageRating <6) {
					innerHTMLString = '<span class="stars rating5of5">';
				}
			
				if (ratedFlag==0) {
					if (locale=="en_CA") {
						document.getElementById('ratings').innerHTML = 'Rate this article: Rating: ' + averageRating + '/5 (' + totalVotes + ' votes)';
						innerHTMLString = innerHTMLString + '<a class="star1" href="javascript:makeUpdateRatingRequest(1);" title="Rate this article 1 out of 5 stars.">*</a>' +
						'<a class="star2" href="javascript:makeUpdateRatingRequest(2);" title="Rate this article 2 out of 5 stars.">*</a>' +
						'<a class="star3" href="javascript:makeUpdateRatingRequest(3);" title="Rate this article 3 out of 5 stars.">*</a>' +
						'<a class="star4" href="javascript:makeUpdateRatingRequest(4);" title="Rate this article 4 out of 5 stars.">*</a>' +
						'<a class="star5" href="javascript:makeUpdateRatingRequest(5);" title="Rate this article 5 out of 5 stars.">*</a>';	
					}
					else {
						document.getElementById('ratings').innerHTML = '&#201;valuez cet article : Note : ' + averageRating + '/5 (' + totalVotes + ' vote)';	
						innerHTMLString = innerHTMLString + '<a class="star1" href="javascript:makeUpdateRatingRequest(1);" title="Donnez &#224 cet article une appr&#233ciation de 1 &#233toile sur 5.">*</a>' +
						'<a class="star2" href="javascript:makeUpdateRatingRequest(2);" title="Donnez &#224 cet article une appr&#233ciation de 2 &#233toile sur 5.">*</a>' +
						'<a class="star3" href="javascript:makeUpdateRatingRequest(3);" title="Donnez &#224 cet article une appr&#233ciation de 3 &#233toile sur 5.">*</a>' +
						'<a class="star4" href="javascript:makeUpdateRatingRequest(4);" title="Donnez &#224 cet article une appr&#233ciation de 4 &#233toile sur 5.">*</a>' +
						'<a class="star5" href="javascript:makeUpdateRatingRequest(5);" title="Donnez &#224 cet article une appr&#233ciation de 5 &#233toile sur 5.">*</a>';		
					}
					
				}
				else {
					if (locale=="en_CA") {
						document.getElementById('ratings').innerHTML = 'Thank you for rating! Rating: ' + averageRating + '/5 (' + totalVotes + ' votes)';	
					}
					else {
						document.getElementById('ratings').innerHTML = 'Merci pour votre &#233valuation! Note : ' + averageRating + '/5 (' + totalVotes + ' votes)';	
					}
				}
			
				innerHTMLString = innerHTMLString + '</span>';	
				document.getElementById('showStars').innerHTML = innerHTMLString;
			}
		
		}
	
	debug('commentsuccess DONE!');
}

var handleUpdateRatingSuccess = function(o) {

	ratedFlag=1;
	makeGetCommentsRequest();

}

var handleFailure = function(o){
	// do YAHOO.log here?
	debug('');
}

var commentcallback =
{
  success: handleCommentSuccess,
  failure: handleFailure,
  timeout: 1500
};


var ratingupdatecallback = {
  success: handleUpdateRatingSuccess,
  failure: handleFailure,
  timeout: 1500

};


function makeUpdateRatingRequest(rating) {
	var postData = "";
	var obj1 = YAHOO.util.Connect.asyncRequest('POST', '/socialmedia/comments/UpdateRating.do?vgnextoid=' + document.commenting.vgnextoid.value + '&vgnLocale=' + document.commenting.vgnLocale.value + '&siteName=' + document.commenting.siteName.value + '&newRating='+rating, ratingupdatecallback, postData);
	
}

function makeGetCommentsRequest(pageId){
    var postData = "";
    if (pageId=='' || pageId==null) pageId=1;
	var obj1 = YAHOO.util.Connect.asyncRequest('POST', '/socialmedia/comments/Commenting.do?vgnextoid=' + document.commenting.vgnextoid.value + '&vgnLocale=' + document.commenting.vgnLocale.value + '&siteName=' + document.commenting.siteName.value + '&rendererType=' + document.commenting.rendererType.value + '&pageId=' + pageId, commentcallback, postData);

}

function limitText(limitField, limitNum) {
    if(limitField.value.length > limitNum) {
	limitField.value=limitField.value.substring(0, limitNum);
    }
}