
var msgcolor = "black";
var selectedstar = "redstar.gif";
var normalstar = "greystar.gif";
var context = "";
var sectionid="";
var contentid="";
var rt = "";
//dynamically creates the no of stars as per requiered count (out of 5 OR out of 10)
function generateRatingDiv(context,sectionid,contentid){
	this.context = context;
	this.sectionid = sectionid;
	this.contentid = contentid;

	normalstar = context+"/images/"+normalstar;
	selectedstar = context+"/images/"+selectedstar;
	
	var _msg1 = '<span id="msg1" style="display:none;color:'+msgcolor+'">Ehh..</span>';
	var _msg2 = '<span id="msg2" style="display:none;color:'+msgcolor+'">Not Bad</span>';
	var _msg3 = '<span id="msg3" style="display:none;color:'+msgcolor+'">Pretty Good</span>';
	var _msg4 = '<span id="msg4" style="display:none;color:'+msgcolor+'">Out Standing</span>';
	var _msg5 = '<span id="msg5" style="display:none;color:'+msgcolor+'">Freakin\' Owesome</span>';
	var messages = _msg1+_msg2+_msg3+_msg4+_msg5;
	
	var msgdivobj = document.getElementById("msgdiv");
	if(msgdivobj){
		msgdivobj.innerHTML=messages;
	}

	var str = "";
	for(i=1;i<=5;i++){
		str =  str + '<img id="rt_img'+i+'" src="'+normalstar+'" border="0"  onmouseover="showratedstar('+i+')" onmouseout="shownormalstar('+i+')" onclick="rateArticle('+i+')"/>'	
	}
	var rtimgdivobj = document.getElementById("rtimgdiv");
	if(rtimgdivobj){
		rtimgdivobj.innerHTML=str;
	}
}
//This method select stars with message on basis of strars you want to provide to that article
function showratedstar(rt_val){
	var msgobj1 = document.getElementById("msg"+rt_val);
	msgobj1.style.display="block";
	var rt_int = parseInt(rt_val);
	for(j=1;j<=rt_int;j++){
		var rtimgobj1 = document.getElementById("rt_img"+j);
		rtimgobj1.src = selectedstar;
	}
}
//This methos deselect stars and message onmouseout
function shownormalstar(){
	for(j=1;j<=5;j++){
		var msgobj2 = document.getElementById("msg"+j);
		msgobj2.style.display="none";

		var rtimgobj2 = document.getElementById("rt_img"+j);
		rtimgobj2.src = normalstar;
	}
}

/****************************************************************************
							Add rating functionality starts  
			*****************************************************************************/

//This function invoke the actual processing to add rating and also selected the rated star with message and also disable the rating process
function rateArticle(rtval){
	this.rt = rtval; 
	var rate_article = context+"/faces/jsp/smecomponents/index/addRatings.jsp?secid="+this.sectionid+"&artid="+this.contentid+"&rtval="+rtval;
	invokeAddRating(rate_article,"ratingresponse");
}
//Ajax call for addRating
function invokeAddRating()
{
	if(!arguments[0])
	return;

	if(!arguments[1])
	return;
		var ajax = new ajaxObject();
	ajax.url(arguments[0]+"&div_id="+arguments[1])
	ajax.callbackHandler("callbackForAddRating")
	ajax.execute();
}
//Handles the response get for the addRating request
function callbackForAddRating(res,headers)
{
	res = unescape(res);
	 var headerObj = ajax.responseHeader(headers);
	 var div_id = headerObj.get("div_id");
		if(!div_id)
		{
			div_id = headerObj.get("Div_id");
		}
	try
	{
	     div_id =  cleanString(div_id);
	     var divobject= document.getElementById(div_id);
		 if( divobject != null ){
			  divobject.innerHTML = res;
			  showRatingGiven();
		 }
	}
	catch(Exception)
	{
		alert(Exception);
	}
}
//call this function after getting response from ajax to generate stars rated by that user
function showRatingGiven(){
	var int_rt = parseInt(this.rt);
	for(j=1;j<=5;j++){
		if(j==int_rt){
			var msgobj = document.getElementById("msg"+j);
			msgobj.style.display="block";			
		}else{
			var msgobj = document.getElementById("msg"+j);
			msgobj.style.display="none";
		}
		if(j<=int_rt){
			var rtimgobj = document.getElementById("rt_img"+j);
			rtimgobj.src = selectedstar;
			rtimgobj.onclick="";
			rtimgobj.onmouseover="";
			rtimgobj.onmouseout="";
		}else{
			var rtimgobj = document.getElementById("rt_img"+j);
			rtimgobj.src = normalstar;
			rtimgobj.onclick="";
			rtimgobj.onmouseover="";
			rtimgobj.onmouseout="";
		}
	}
	//to update average rating after user rated
	getAverageRating(this.contentid,this.sectionid);
}

/****************************************************************************
							Add rating functionality ends  
			*****************************************************************************/
	
/****************************************************************************
							Get average rating functionality starts  
			*****************************************************************************/

//function to call getRating.jsp thruoght Ajax
function getAverageRating(artid,sectid){
	var callstr = "/timessme/faces/jsp/smecomponents/index/getRatings.jsp?sectionId="+sectid+"&articleId="+artid+"&rndid="+Math.random();
	invokeGetRating(callstr,"nodiv");
}
//Ajax call for addRating
function invokeGetRating()
{
	if(!arguments[0])
	return;

	if(!arguments[1])
	return;
		var ajax = new ajaxObject();
	ajax.url(arguments[0]+"&div_id="+arguments[1])
	ajax.callbackHandler("callbackForGetRating")
	ajax.execute();
}
//Handles the response get for the addRating request
function callbackForGetRating(res,headers)
{
	res = unescape(res);
	showAverageRating(res);
}

//function generate the stars according to the average rating of article
function showAverageRating(avgrt){
	var ctx = "/timessme"
	var normal_star = ctx+"/images/greystar.gif";
	var selected_star = ctx+"/images/redstar.gif";
	var int_avgrt = parseInt(avgrt);
	var str = "";
	for(i=1;i<=5;i++){
		if(i<=int_avgrt){
			str =  str + '<img src="'+selected_star+'" border="0" />';	
		}else{
			str =  str + '<img src="'+normal_star+'" border="0" />';	
		}
	}
	var ratingoutputobj = document.getElementById("ratingoutput");
	ratingoutputobj.innerHTML = str ;
}

/****************************************************************************
							Get average rating functionality ends  
			*****************************************************************************/

//function to print article
function printArticle(){
	var infoobj = document.getElementById("articleinfo");
	var targetDiv = document.getElementById("articleinfotarget");
	var ptintimg = '<table width=100%><tr><td><img src="/timessme/images/printthisarticle.jpg" border="0" /> <a href=javascript:printme("articleinfo"); >Print</a></td><td align=right><a href=javascript:hideDivarticle("articleinfotarget","myFrame"); >Close</td></tr></table>'
	if(targetDiv){
		targetDiv.innerHTML = ptintimg + infoobj.innerHTML;
	}
	showDivarticle('articleinfotarget','myFrame');
}

//actual print command
function printme(divid,contextpath){
	var prtContent = document.getElementById(divid);
	var WinPrint = window.open('printme.jsp','','toolbar=0,status=0,scrollbars=1');
	var start = '<html><head><title>Print Article</title>';
	start = start + '<link href="'+contextpath+'/css/SME_index.css" rel="stylesheet" type="text/css" />';
	start = start + '<script src="'+contextpath+'/js/article.js" type="text/javascript" language="javascript"></script></head><body style="background:#FFFFFF;">';
	var end = '</body></html>';
	WinPrint.document.write(start + prtContent.innerHTML + end);
	//WinPrint.document.write(prtContent.innerHTML);
	WinPrint.document.close();
	WinPrint.print();
	WinPrint.focus();
	WinPrint.close();
}

//email article info page
function openEmailInfoDiv(){
	var title = document.getElementById("arttitle").innerHTML;
	var fmremailobj = document.getElementById("fmremail");
	if(fmremailobj){
		fmremailobj.src="/timessme/faces/jsp/smecomponents/index/sendArticleInfo.jsp";
		parent.document.getElementById("_urlart").value = window.location +"";
		parent.document.getElementById("_title").value = title;
	}
	var emailinfoobj = document.getElementById("emailinfo");
	if(emailinfoobj){
		emailinfoobj.style.display="block";
		emailinfoobj.style.visibility="visible";
	}
	closePostCommentDiv();
	closeViewCommentDiv();
}

//to show status message after email sent
function emailMessage(message){
	closeDivemail();
	var ratingresponseobj = parent.document.getElementById("ratingresponse");
	ratingresponseobj.innerHTML = message;
	//var emailinfoobj = parent.document.getElementById("emailinfo");
	//emailinfoobj.style.height = "30px";
	//emailinfoobj.innerHTML="<span style='color:#FF0000;font-family:verdana;font-size:11px;'>"+message+"</span>";
}

//to show post comment popup
function openPostCommentDiv(){
	var postcommentdivobj = document.getElementById("postcommentdiv");
	postcommentdivobj.style.display = "block";
	postcommentdivobj.style.visibility = "visible";
	closeDivemail();
	closeViewCommentDiv();
}

//to close post comment div
function closePostCommentDiv(){
	var postcommentdivobj = document.getElementById("postcommentdiv");
	postcommentdivobj.style.display = "none";
	postcommentdivobj.style.visibility = "hidden";
}

//to show view comment popup
function openViewCommentDiv(){
	var postcommentdivobj = document.getElementById("viewcommentdiv");
	postcommentdivobj.style.display = "block";
	postcommentdivobj.style.visibility = "visible";
	closeDivemail();
	closePostCommentDiv();
}

//to close view comment div
function closeViewCommentDiv(){
	var postcommentdivobj = document.getElementById("viewcommentdiv");
	postcommentdivobj.style.display = "none";
	postcommentdivobj.style.visibility = "hidden";
}

//to close email div
function closeDivemail(){	
	var divemail = parent.document.getElementById("emailinfo");
	divemail.style.visibility = "hidden";
	divemail.style.display = "none";
}

//To show article in popup div and disable other window except div
function showDivarticle(articleDivId,iframeId){
	var divarticle = document.getElementById(articleDivId);
	var showIframe = document.getElementById(iframeId);
	divarticle.style.visibility = "visible";
	divarticle.style.display = "block";
	showIframe.style.visibility = "visible";
	showIframe.style.display = "block";
	showIframe.style.height = document.body.scrollHeight;
	showIframe.style.width = document.body.scrollWidth;
}

//To hide article popup div and enable other window
function hideDivarticle(articleDivId,iframeId){
	var divarticle = parent.document.getElementById(articleDivId);
	var showIframe = parent.document.getElementById(iframeId);
	divarticle.style.visibility = "hidden";
	divarticle.style.display = "none";
	showIframe.style.visibility = "hidden";
	showIframe.style.display = "none";
}
