var siteurl = "/";
var voteurl = siteurl + "vote.php";
var ma = new Array(); // message array

if (typeof mode != 'undefined' && mode == 1) {
	var min = 99999999;
	var imgBeg = "images/tstar";
	var imgEnd = ".gif";
	var imgBego = "images/tstar";
	var imgEndo = "o.gif";
	var imgBigBeg = "images/tstarbig";
	var imgBigEnd = ".gif";
	var imgBigBego = "images/tstarbig";
	var imgBigEndo = ".gif";
	ma[-2] = '';
	ma[-1] = '';
	ma[0] = '';
	ma[1] = '';
	ma[2] = '';
	ma[3] = '';
	ma[4] = '';
	ma[5] = '';
} else {
	mode = 0;
	var min = 10;
	var imgBeg = "images/tstar";
	var imgEnd = ".gif";
	var imgBego = "images/tstar";
	var imgEndo = ".gif";
	var imgBigBeg = "images/tstarbig";
	var imgBigEnd = ".gif";
	var imgBigBego = "images/tstarbig";
	var imgBigEndo = ".gif";
	ma[-2] = '';
	ma[-1] = '';
	ma[0] = '';
	ma[1] = '';
	ma[2] = '';
	ma[3] = '';
	ma[4] = '';
	ma[5] = '';
}

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]] = -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
var iaBig = 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;
		iaBig[i] = new Image();
		iaBig[i].src = imgBigBeg + i + imgBigEnd;
	}
	for(i = 6; i <= 10; i++) {
		ia[i] = new Image();
		ia[i].src = imgBego + (i-5) + imgEndo;
		iaBig[i] = new Image();
		iaBig[i].src = imgBigBego + (i-5) + imgBigEndo;
	}
}

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 imgOn(imgName, imgNum) {
	if (!va[imgName]) {
		count = 0;
		if (document.images) {
			for(i in document.images) { if (i == imgName) document.getElementById(imgName).src = ia[imgNum].src; count++; }
			document[imgName].src = ia[imgNum].src;
		}
		ts(imgName + 't', ma[imgNum]);
	}
}

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

function imgBigOn(imgName, imgNum) {
	if (!va[imgName]) {
		count = 0;
		if (document.images) {
			for(i in document.images) { if (i == imgName) document.getElementById(imgName).src = iaBig[imgNum].src; count++; }
			document[imgName].src = iaBig[imgNum].src;
		}
		ts(imgName + 't', ma[imgNum]);
	}
}

function imgBigOff(imgName) {
	if (!va[imgName]) {
		count = 0;
		if (document.images) {
			for(i in document.images) { if (i == imgName) document.getElementById(imgName).src = iaBig[da[imgName]].src; count++; }
			document[imgName].src = iaBig[da[imgName]].src;
		}
		ts(imgName + 't', ma[0]);
	}
}

function vote(imgName, val, type) {
	if (!va[imgName]) {
		count = 0;
		if (document.images) {
			for(i in document.images) { if (i == imgName) document.getElementById(imgName).src = ia[val+5].src; count++; }
			document[imgName].src = ia[val+5].src;
		}
		ts(imgName + 't', ma[-1] + '<img src="' + voteurl + '?id=' + imgName + '&vote=' + val + '&type=' + type + '" width="1" height="1">');
		myUC(imgName);
		va[imgName] = -1;
		if (window.location.href.match(/index.php\?tab=&iconid=/gi)) {
			window.location.href='/';
			} else {
			location.reload(true);
			}
	}
}

function voteBig(imgName, val, type) {	// different redirect, used on homepage 'How many Icons can you rate in a day'
	if (!va[imgName]) {
		count = 0;
		if (document.images) {
			for(i in document.images) { if (i == imgName) document.getElementById(imgName).src = iaBig[val+5].src; count++; }
			document[imgName].src = iaBig[val+5].src;
		}
		ts(imgName + 't', ma[-1] + '<img src="' + voteurl + '?id=' + imgName + '&vote=' + val + '&type=' + type + '" width="1" height="1">');
		myUC(imgName);
		va[imgName] = -1;
		window.location.href = 'http://' + location.host + '/index.php?tab=&iconid=' + imgName.substr(4) + '&vote=' + val;
	}
}

function ms(what, type, initial) { // make selector
	var argv = ms.arguments;
	var argc = ms.arguments.length;
	var avg = (argc > 3) ? argv[3] : null;
	var num = (argc > 4) ? argv[4] : null;
	var who = (argc > 5) ? argv[5] : null;
	var id = (argc > 6) ? argv[6] : null;
	var ret = '';
	// unfortunately the only method compatable with all browsers
	da[what] = initial;
	if (!va[what]) {
		ret += '<map name="i' + what + '">';
		if (mode == 0) {
			ret += '<area shape=rect coords="0,0,12,15" href="#" alt="1" onMouseOver="imgOn(\'' + what + '\', 1)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 1, ' + type + '); return false">';
			ret += '<area shape=rect coords="11,0,24,15" href="#" alt="2" onMouseOver="imgOn(\'' + what + '\', 2)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 2, ' + type + '); return false">';
			ret += '<area shape=rect coords="23,0,34,15" href="#" alt="3" onMouseOver="imgOn(\'' + what + '\', 3)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 3, ' + type + '); return false">';
			ret += '<area shape=rect coords="33,0,47,15" href="#" alt="4" onMouseOver="imgOn(\'' + what + '\', 4)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 4, ' + type + '); return false">';
			ret += '<area shape=rect coords="46,0,59,15" href="#" alt="5" onMouseOver="imgOn(\'' + what + '\', 5)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 5, ' + type + '); return false">';
		} else {
			ret += '<area shape=rect coords="0,0,12,15" href="#" alt="1" onMouseOver="imgOn(\'' + what + '\', 1)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 1, ' + type + '); return false">';
			ret += '<area shape=rect coords="11,0,24,15" href="#" alt="2" onMouseOver="imgOn(\'' + what + '\', 2)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 2, ' + type + '); return false">';
			ret += '<area shape=rect coords="23,0,34,15" href="#" alt="3" onMouseOver="imgOn(\'' + what + '\', 3)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 3, ' + type + '); return false">';
			ret += '<area shape=rect coords="33,0,47,15" href="#" alt="4" onMouseOver="imgOn(\'' + what + '\', 4)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 4, ' + type + '); return false">';
			ret += '<area shape=rect coords="46,0,59,15" href="#" alt="5" onMouseOver="imgOn(\'' + what + '\', 5)" onMouseOut="imgOff(\'' + what + '\')" onClick="vote(\'' + what + '\', 5, ' + type + '); return false">';

		}
		ret += '</map>';
		ret += '<table><tr><td><img id="' + what + '" src="' + imgBeg + initial + imgEnd + '" ';
	} else {
		ret += '<table><tr><td><img id="' + what + '" src="' + imgBego + initial + imgEndo + '" ';
	}
	ret += 'border=0 name="' + what + '"' + (va[what] ? ' alt="' + ma[-2] + '"' : ' ismap usemap="#i' + what) + '">';
	ret += va[what] ? '</td><td><span id="' + what + 't">' + ma[-1] + '</span></td></tr></table>' : 
			'</td><td><span id="' + what + 't">' + ma[0] + '</span></td></tr></table>';
	if ((avg || num && num > min) || who) ret += '<div id="' + what + 'd"><small>';
	if (avg && num > min) ret += "Avg: " + fn(avg,2) + " ";
	if (num && num > min) ret += "Votes: " + fn(num,0) + " ";
	if (who) ret += "Submitted by: " + who + " ";
	ret += "</small></div>";
	
	if (id) document.getElementById(id).innerHTML = ret;
	else {
		document.write(ret);
		document.close();
	}
}

function msBig(what, type, initial) { // make selector
	var argv = msBig.arguments;
	var argc = msBig.arguments.length;
	var avg = (argc > 3) ? argv[3] : null;
	var num = (argc > 4) ? argv[4] : null;
	var who = (argc > 5) ? argv[5] : null;
	var id = (argc > 6) ? argv[6] : null;
	var ret = '';
	// unfortunately the only method compatable with all browsers
	da[what] = initial;
	if (!va[what]) {
		ret += '<map name="i' + what + '">';
		if (mode == 0) {
			ret += '<area shape=rect coords="0,0,37,41" href="#" alt="1" onMouseOver="imgBigOn(\'' + what + '\', 1)" onMouseOut="imgBigOff(\'' + what + '\')" onClick="voteBig(\'' + what + '\', 1, ' + type + '); return false">';
			ret += '<area shape=rect coords="36,0,69,41" href="#" alt="2" onMouseOver="imgBigOn(\'' + what + '\', 2)" onMouseOut="imgBigOff(\'' + what + '\')" onClick="voteBig(\'' + what + '\', 2, ' + type + '); return false">';
			ret += '<area shape=rect coords="68,0,102,41" href="#" alt="3" onMouseOver="imgBigOn(\'' + what + '\', 3)" onMouseOut="imgBigOff(\'' + what + '\')" onClick="voteBig(\'' + what + '\', 3, ' + type + '); return false">';
			ret += '<area shape=rect coords="101,0,136,41" href="#" alt="4" onMouseOver="imgBigOn(\'' + what + '\', 4)" onMouseOut="imgBigOff(\'' + what + '\')" onClick="voteBig(\'' + what + '\', 4, ' + type + '); return false">';
			ret += '<area shape=rect coords="135,0,173,41" href="#" alt="5" onMouseOver="imgBigOn(\'' + what + '\', 5)" onMouseOut="imgBigOff(\'' + what + '\')" onClick="voteBig(\'' + what + '\', 5, ' + type + '); return false">';
		} else {
			ret += '<area shape=rect coords="0,0,37,41" href="#" alt="1" onMouseOver="imgBigOn(\'' + what + '\', 1)" onMouseOut="imgBigOff(\'' + what + '\')" onClick="voteBig(\'' + what + '\', 1, ' + type + '); return false">';
			ret += '<area shape=rect coords="36,0,69,41" href="#" alt="2" onMouseOver="imgBigOn(\'' + what + '\', 2)" onMouseOut="imgBigOff(\'' + what + '\')" onClick="voteBig(\'' + what + '\', 2, ' + type + '); return false">';
			ret += '<area shape=rect coords="68,0,102,41" href="#" alt="3" onMouseOver="imgBigOn(\'' + what + '\', 3)" onMouseOut="imgBigOff(\'' + what + '\')" onClick="voteBig(\'' + what + '\', 3, ' + type + '); return false">';
			ret += '<area shape=rect coords="101,0,136,41" href="#" alt="4" onMouseOver="imgBigOn(\'' + what + '\', 4)" onMouseOut="imgBigOff(\'' + what + '\')" onClick="voteBig(\'' + what + '\', 4, ' + type + '); return false">';
			ret += '<area shape=rect coords="135,0,173,41" href="#" alt="5" onMouseOver="imgBigOn(\'' + what + '\', 5)" onMouseOut="imgBigOff(\'' + what + '\')" onClick="voteBig(\'' + what + '\', 5, ' + type + '); return false">';

		}
		ret += '</map>';
		ret += '<table><tr><td><img id="' + what + '" src="' + imgBigBeg + initial + imgBigEnd + '" ';
	} else {
		ret += '<table><tr><td><img id="' + what + '" src="' + imgBigBego + initial + imgBigEndo + '" ';
	}
	ret += 'border=0 name="' + what + '"' + (va[what] ? ' alt="' + ma[-2] + '"' : ' ismap usemap="#i' + what) + '">';
	ret += va[what] ? '</td><td><span id="' + what + 't">' + ma[-1] + '</span></td></tr></table>' : 
			'</td><td><span id="' + what + 't">' + ma[0] + '</span></td></tr></table>';
	if ((avg || num && num > min) || who) ret += '<div id="' + what + 'd"><small>';
	if (avg && num > min) ret += "Avg: " + fn(avg,2) + " ";
	if (num && num > min) ret += "Votes: " + fn(num,0) + " ";
	if (who) ret += "Submitted by: " + who + " ";
	ret += "</small></div>";

	if (id) document.getElementById(id).innerHTML = ret;
	else {
		document.write(ret);
		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();

	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;
}

