var GRADING_BAR_TOTAL_WIDTH = 175;
var GRADING_BAR_CENTER_WIDTH = 9;
var GRADING_BAR_MIN_WIDTH = 11;
var nPositiveBarSize = 0;
var nNegativeBarSize = 0;

// create HTML code for a graphic diagram demonstrating the distribution of the votes 
// parameters:
// nPositivePer - percentage of positive votes
// sType - type of style: "gnr" - generic style (gray), "vid" - video gallery style (black)
function setDiagram( objThis, nPositivePer , sType) {
	var nPositiveBarSize = nPositivePer * (GRADING_BAR_TOTAL_WIDTH - GRADING_BAR_CENTER_WIDTH) / 100;
	var bAllPositive = (nPositivePer == 100);
	var bAllNegative = (nPositivePer == 0);
	var nCenterWidth = (bAllPositive || bAllNegative) ? 0 : GRADING_BAR_CENTER_WIDTH;

	nPositiveBarSize = Math.round(Math.min(Math.max(nPositiveBarSize, GRADING_BAR_MIN_WIDTH), GRADING_BAR_TOTAL_WIDTH - nCenterWidth - GRADING_BAR_MIN_WIDTH));
	nNegativeBarSize = GRADING_BAR_TOTAL_WIDTH - nCenterWidth - nPositiveBarSize;

	
	var sHTML = 
	"<table class=\"gnr_grading_table\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">" +
		"<tr>" +
			"<td class=\"gnr_grading_text\">תודה שהצבעת!</td>" +
			"<td class=\"gnr_grading_results_text_pos\">" + nPositivePer + "%</td>" +
			"<td class=\"gnr_grading_diagram\">" +
				"<table class=\"gnr_grading_result_diagram_table\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">" +
					"<tr>" +
					
						((bAllPositive) ?
						"<td><div class=\"gnr_grading_positive_fill\"><div class=\"gnr_grading_positive_right\"><div class=\"gnr_grading_positive_left\">&nbsp;</div></div></div></td>"

						: (bAllNegative) ? // else
						"<td><div class=\"gnr_grading_negative_fill\"><div class=\"gnr_grading_negative_right\"><div class=\"gnr_grading_negative_left\">&nbsp;</div></div></div></td>"
						
						: // else
						"<td width=\"" + nPositiveBarSize + "\"><div class=\"gnr_grading_positive_fill\"><div class=\"gnr_grading_positive_right\">&nbsp;</div></div></td>" +
						"<td class=\"gnr_grading_center_piece\"></td>" +
						"<td><div class=\"gnr_grading_negative_fill\"><div class=\"gnr_grading_negative_left\">&nbsp;</div></div></td>") +
						
					"</tr>" +
				"</table>" +
			"</td>" +
			"<td class=\"gnr_grading_results_text_neg\">" + (100 - nPositivePer) +"%</td>" +
		"</tr>" +
	"</table>";

	if (sType == "video")
		while (sHTML.search("\"gnr_") != -1)
			sHTML = sHTML.replace("\"gnr_", "\"vid_");

	// set HTML to DIV
	objThis.innerHTML = sHTML;
}

function IsNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}
   
   
function sendVoteRequest(likeVal, formName){
	document.forms[formName].likeVote.value = likeVal;
	new VignettePortal.AJAXClient().sendForm(document.forms[formName], callBackRank);
}
	
function callBackRank(resp){
	var response = resp.responseText;
	/*-- doesn't work because vignette adds empty strings to 
	  -- the response document 
	
	if (window.ActiveXObject){
		var doc=new ActiveXObject('Microsoft.XMLDOM');
		doc.async='false';
		doc.loadXML(response);
	}
	else{
		var parser=new DOMParser();
		var doc=parser.parseFromString(response,'text/xml');
		}
	
	var forVote = doc.getElementsByTagName('for')[0].childNodes[0].nodeValue;
	--*/
	
	var params = new Array();
	params[0]="for";
	params[1]="contentId";
	
	for(i=0; i<params.length; i++){
		var start = response.indexOf("<" + params[i] + ">", 0);
		var end = response.indexOf("</" + params[i] + ">", 0);
		params[i] = response.substring(start + params[i].length+2, end);
	}
	
	if(IsNumeric(params[0])){
		setDiagram( document.getElementById('rank_' + params[1]),
			 params[0], document.forms['ranking_'+params[1]].renderType.value);
		}
	else{
		alert(response + "is not valid");
		}			
}  