var siteurl = "http://share.buddy4u.com/";
var voteurl = siteurl + "vote.php";
var ma = new Array(); // message array

var min = 10;
var imgBeg = "images/rank";
var imgEnd = ".gif";
var imgBego = "images/rank";
var imgEndo = "o.gif";
ma[-3] = '&nbsp;';
ma[-2] = 'You already voted.';
ma[-1] = 'Thanks for voting!';
ma[0] = '&nbsp;';
ma[1] = 'Poor';
ma[2] = 'Not so good';
ma[3] = 'Average';
ma[4] = 'Pretty good';
ma[5] = 'Perfect';

var da = new Array(); // old array
var va = new Array(); // vote array

var votes = getCookie("votes");
if(votes != null) {
	var temp = votes.split(".");
	for(i = 0; i < temp.length; i++) {
		va[temp[i].substr(1,10)] = -1;
		va[temp[i]] = -1;
	}
}

// check browser versions
var ie4 = (document.all) ? true : false;
var ns4 = (document.layers) ? true : false;
var ns6 = (document.getElementById && !document.all) ? true : false;

// preload the images
var ia = new Array(); // item array
if (document.images) { // let's precache the images
	for(i = 0; i <= 5; i++) {
		ia[i] = new Image();
		ia[i].src = imgBeg + i + imgEnd;
	}
	for(i = 6; i <= 10; i++) {
		ia[i] = new Image();
		ia[i].src = imgBego + (i-5) + imgEndo;
	}
}

function imgOn(imgName, imgNum) {
	if (!va[imgName]) {
		count = 0;
		if (document.images) {
			document[imgName].src = ia[imgNum].src;
		}
		ts(imgName + 't', ma[imgNum]);
	}
}

function imgOff(imgName) {
	if (!va[imgName]) {
		count = 0;
		if (document.images) {
			document[imgName].src = ia[da[imgName]].src;
		}
		ts(imgName + 't', ma[0]);
	}
}

function vote(imgName, val) {
	if (!va[imgName]) {
		count = 0;
		if (document.images) {
			document[imgName].src = ia[val+5].src;
		}
		ts(imgName + 't', ma[-1] + '<img src="' + voteurl + '?id=' + imgName + '&vote=' + val + '" width="1" height="1">');
		myUC(imgName);
		va[imgName] = -1;
	}
}

function ts(where,txt) { // text swap
	if (ie4) {
		document.all[where].innerHTML = txt;
	}
	if (ns4) {
		document[where].document.write(txt);
		document[where].document.close();
	}
	if (ns6) {
		over = document.getElementById([where]);
		range = document.createRange();
		range.setStartBefore(over);
		domfrag = range.createContextualFragment(txt);
		while (over.hasChildNodes()) {
			over.removeChild(over.lastChild);
		}
		over.appendChild(domfrag);
	}
}

function ms(what, initial) { // make selector
	var argv = ms.arguments;
	var argc = ms.arguments.length;
	// unfortunately the only method compatable with all browsers
	da[what] = initial;
	document.write(va[what.substr(1,10)] ? '<table width=215><tr><td align=right><span id="' + what + 't" class="gen">' + ma[-3] + '</span></td><td width=70>' : 
			'<table width=215><tr><td align=right><span id="' + what + 't" class="gen">' + ma[0] + '</span></td><td width=70>');
	if (!va[what.substr(1,10)]) {
		document.write('<map name="i' + what + '">');
		document.write('<area shape=rect coords="0,0,15,15" href="#" alt="1" onMouseOver="imgOn(\'' + what + '\', 1)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 1); return false">');
		document.write('<area shape=rect coords="15,0,29,15" href="#" alt="2" onMouseOver="imgOn(\'' + what + '\', 2)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 2); return false">');
		document.write('<area shape=rect coords="29,0,43,15" href="#" alt="3" onMouseOver="imgOn(\'' + what + '\', 3)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 3); return false">');
		document.write('<area shape=rect coords="43,0,57,15" href="#" alt="4" onMouseOver="imgOn(\'' + what + '\', 4)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 4); return false">');
		document.write('<area shape=rect coords="57,0,70,15" href="#" alt="5" onMouseOver="imgOn(\'' + what + '\', 5)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 5); return false">');
		document.write('</map>');
		document.write('<img src="' + imgBeg + initial + imgEnd + '" ');
	} else {
		document.write('<img src="' + imgBego + initial + imgEndo + '" onMouseOver="ts(\'' + what + 't\', ma[-2]);" onMouseOut="ts(\'' + what + 't\', ma[-3]);" ');
	}
	document.write('border=0 width=70 height=15 name="' + what + '"' + (va[what.substr(1,10)] ? ' alt="' + ma[-2] + '"' : ' ismap usemap="#i' + what) + '">');
	document.write('</td></tr></table>');
	document.close();
}

function fn(what,round) { // format number -- add commas and round number
	var f = what, s = 0;
	if (round == 0) what = f = Math.round(what);
	else {
		what = "" + Math.round(100*what); 
		var dp = what.length - round;
		f = Math.round(what.substring(0, dp));
		s = what.substring(dp, what.length);
	}
	f = f.toString();
	var cycles = Math.floor(f.length/3);
	for (var i = 0; i < cycles; i++)
		f = f.substring(0,f.length-(4*i+3))+','+
			f.substring(f.length-(4*i+3));

	return f + (round == 0 ? "" : "." + s);
}

function myUC(what) {
	if (!va[what]) {
		if (votes != null && votes != '')
			votes = what + "." + votes;
		else
			votes = what;
		votes = votes.substr(0,4000);
		var expdate = new Date();
		// keep the cookie for one year -- WE TRACK WHAT YOU VOTED FOR ONLY
		// TO MAKE IT MORE DIFFICULT TO VOTE MULTIPLE TIMES. THAT'S ALL! :)
		expdate.setTime(expdate.getTime() + (365 * 24 * 60 * 60 * 1000));
		setCookie("votes", votes, expdate, "/");
		va[what] = -1;
	}
}

function setCookie(name, value) {
	var argv = setCookie.arguments;
	var argc = setCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +
		((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
		((path == null) ? "" : ("; path=" + path)) +
		((domain == null) ? "" : ("; domain=" + domain)) +
		((secure == true) ? "; secure" : "");
}

function getCookieVal(offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1) endstr = document.cookie.length;
	return unescape (document.cookie.substring(offset, endstr));
}

function getCookie(name) {
	var arg = name+"=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg) return getCookieVal(j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return null;
}

