var xmlHttp;
var myid =0;
var id = 0;
var rating = 0;
var allStarImages = new Array();
var starImages = new Array("/imgs/rating/0star.gif",
"/imgs/rating/1star.gif",
"/imgs/rating/2star.gif",
"/imgs/rating/3star.gif",
"/imgs/rating/4star.gif",
"/imgs/rating/5star.gif");
var starMessages = new Array("",
"Poor",
"Fair",
"Good",
"Very Good",
"Excellent");
var starMap = new Array('0,0,0,17',
'1,0,14,17',
'15,0,28,17',
'29,0,42,17',
'43,0,56,17',
'57,0,70,17');

var savedRatings = new Array();
var changedRatings = new Array();
var starTwinkler = new Array();
var isRatingsBarChanged = false;
var delayTime = 500;

//fsavedRatings[id] = rating;

function preloadStarImages(imageArray)
{
	for (i=0; i < imageArray.length ;i++)
	{
		allStarImages[i] = new Image();
		allStarImages[i].src = imageArray[i];
	}
}
preloadStarImages(starImages);

function edit() 
{
	var readonly = new Array();
	var edit = new Array();
	readonly[0] = "name";
	readonly[1] = "button-edit1";
	readonly[2] = "button-edit2";
	readonly[3] = "country";
	readonly[4] = "home";
	readonly[5] = "rates";
	readonly[6] = "email";
	readonly[7] = "supportNumber";
	readonly[8] = "features";
	readonly[9] = "sipProxy";
	readonly[10] = "callbackStatus";
	readonly[11] = "port";
	readonly[12] = "codecs";
	readonly[13] = "logo";
	edit[0] = "name-text";
	edit[1] = "button-save1";
	edit[2] = "button-save2";
	edit[3] = "country-select";
	edit[4] = "home-text";
	edit[5] = "rates-text";
	edit[6] = "email-text";
	edit[7] = "supportNumber-text";
	edit[8] = "features-text";
	edit[9] = "sipProxy-text";
	edit[10] = "callbackStatus-select";
	edit[11] = "port-text";
	edit[12] = "codecs-edit";
	edit[13] = "logo-text";
	
	for (var i = 0; i < readonly.length; i++ ) {
		var obj = returnObjById(readonly[i]);
		
		if (obj != null) {
			var style2 = obj.style;
			style2.display = "none";
		}
	}

	for (var i = 0; i < edit.length; i++ ) {
		var obj = returnObjById(edit[i]);
		
		if (obj != null) {
			var style2 = obj.style;
			style2.display = "";
		}
	}
}

function createXMLHttpRequest() 
{
    if (window.ActiveXObject) 
    {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else if (window.XMLHttpRequest) 
    {
        xmlHttp = new XMLHttpRequest();
    }
}

function SaveRatingAjax(id, ratingType, ratingValue)
{
	rating = ratingValue;
	var submitURL = ''
	+ '/action/globalProvider?task=rate'
	+ '&ratingId=' + id
	+ '&rating=' + ratingValue ;
	
	myid = id;
	isRatingsBarChanged = true;
		createXMLHttpRequest();
		xmlHttp.onreadystatechange = handleStateChange;
		xmlHttp.open("GET", submitURL, true);
		xmlHttp.send(null);
}
function handleStateChange() 
{
	if(xmlHttp.readyState == 4) 
	{
		if(xmlHttp.status == 200) 
		{
			var overallRating = xmlHttp.responseText.substring(0, xmlHttp.responseText.indexOf(','));
			var newRating = xmlHttp.responseText.substring(xmlHttp.responseText.indexOf(',')+1);

			document.getElementById("mytrating" + myid).innerHTML  = '<img src=/imgs/rating/stars' + newRating + '.gif>';
			document.getElementById("ltlstars" + myid).innerHTML  = '<img src=/imgs/rating/' + rating + 'star.gif>';

			document.getElementById("mytrating-overall").innerHTML  = '<img src=/imgs/rating/stars' + overallRating + '.gif>';
		}
		else
		{
			alert("Error in AJAX");
		}
	}
}

function SwapStars(id, rating)
{
	if (rating == undefined)
	{
		rating = 0;
	}
	document.images["stars." + id].src = starImages[rating];
}

function SaveStarsAjax(id, rating)
{
	if ((rating==1)||(rating==2)||(rating==3)||(rating==4)||(rating==5))
	{
		savedRatings[id] = rating;
		changedRatings[id] = 1;
		SaveRatingAjax(id, 'onetofive', rating);
	}
	else
	{
		alert("Rating Value out of the bound, Values can only be 1/2/3/4/5. Current rating value: " + rating);
	}
}

function StarMouseOver(id, rating)
{
//alert("StarMouseOver:" + id + ":" + rating);

	if (starTwinkler[id] != 0)
	{
		window.clearTimeout(starTwinkler[id]);
		starTwinkler[id] = 0;
	}
	SwapStars(id, rating);
	document.getElementById("rankMessage").innerHTML = starMessages[rating];
}

function StarMouseOut(id)
{
//alert("StarMouseOut:" + id);

	starTwinkler[id] = window.setTimeout("SwapStars('"+id+"')", delayTime);
	document.getElementById("rankMessage").innerHTML = starMessages[0];
}

function DisplayStarsAjax (id, rating)
{
//alert("DisplayStarsAjax:" + id);

	var starID = "stars." + id;
	starTwinkler[id] = 0;
	document.write("<map name='starmap" + id +"'>");
	var i = 0;
	for (i = 1; i < 6; i++) 
	{
	document.write("<area shape=rect " + 
	"coords='" + starMap[i] + "' " +
	"onMouseOver=\"StarMouseOver('" + id + "'," + i + ");\" " +
	"onMouseOut=\"StarMouseOut('" + id + "');\" " +
	"onClick=\"SaveStarsAjax('" + id + "'," + i + ");" +
	"\" >");
	}
	
	document.write("</map>");
	document.write("<img title='Rate Provider' src='" + starImages[rating] + "'");
	document.write(" border=0 usemap='#starmap" + id);
	document.write("' id='" + starID + "'>");
}

