	function setCookie(cookieName,cookieValue,nDays) {
		var today = new Date();
		var expire = new Date();
		if (nDays==null || nDays==0) { nDays=30 };
		expire.setTime(today.getTime() + 3600000*24*nDays);
		document.cookie = cookieName + "=" + escape(cookieValue) + ";expires=" + expire.toGMTString();
	}
	
	function readCookie(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++)
		{
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) {
				return unescape(c.substring(nameEQ.length,c.length));
			}
		}
		return null;
	}
	
	var theQueue = '';
	
	//
	//
	//
	// This is all you should have to customize!
	//
	//
	//
	
	var starBaseImgName = 'star';
	var starBaseImgHeight = '14';
	var starBaseImgWidth = '7';
	
	function isNull(a) {
		return typeof a == 'object' && !a;
	}
	
	function Mid(str, start, len) {
		if (start < 0 || len < 0) {
			return "";
		}
		var iEnd, iLen = String(str).length;
		if (start + len > iLen) {
			iEnd = iLen;
		} else {
			iEnd = start + len;
		}
		return String(str).substring(start,iEnd);
	}
	
	function FindAndsetCookie(set, on) {
		var temp = readCookie("my");
		//alert("before: " + temp);
		//var temp = '|3,0.5,20061007|4,3.5,20061008|';
		var thereg = '\\|'+set+',\\d\.\\d,\\d{8}\\|';
		var re = new RegExp(thereg);
		var explicitaddzero = '';
		if (String(on).length == 1) {
			explicitaddzero = ".0";
		}
		var newStr = '|'+set+','+on+explicitaddzero+',20061008|';
		//alert(newStr);
		if (isNull(temp) == false && temp.match(re)) {
			//alert('MATCH');
			var re2 = new RegExp(thereg, "g");
			temp = temp.replace(re2, newStr);
			setCookie("my", temp, 365);
			//alert(temp);
		} else {
			if (isNull(temp)) {
				setCookie("my", newStr, 365);
			} else {
				setCookie("my", readCookie("my") + Mid(newStr, 1, newStr.length-1), 365);
			}
		}
		//alert(readCookie("my"));
		//alert(set);
	}
	
	function readValueOf(set) {
		var temp = readCookie("my");
		var re = new RegExp('\\|'+set+',\\d\.\\d,\\d{8}\\|');
		var m = re.exec(temp);
		if (m != null) {
			var thisitem = "";
			for (i = 0; i < m.length; i++) {
				thisitem = thisitem + m[i];
			}
			//alert(thisitem);
			var re2 = new RegExp('\\d\\.\\d');
			var m2 = re2.exec(thisitem);
			if (m2 != null) {
				var thevalue = "";
				for (ix = 0; ix < m2.length; ix++) {
					thevalue = thevalue + m2[ix];
				}
				return thevalue;
			}
		}
		return "";
	}
	
	var starsdir = 'images/stars/';
	starsdir = '';

	starleftfull = new Image();
	starleftfull.src = starsdir+starBaseImgName+'leftfull.gif'
	
	starrightfull = new Image();
	starrightfull.src = starsdir+starBaseImgName+'rightfull.gif'
	
	starleftfullred = new Image();
	starleftfullred.src = starsdir+starBaseImgName+'leftfullred.gif'
	
	starrightfullred = new Image();
	starrightfullred.src = starsdir+starBaseImgName+'rightfullred.gif'
	
	starleftempty = new Image();
	starleftempty.src = starsdir+starBaseImgName+'leftempty.gif'
	
	starrightempty = new Image();
	starrightempty.src = starsdir+starBaseImgName+'rightempty.gif'

	var red = '';
	var mysetvalue = '';
	var defaultvalue = 0.5;
	var inside = 0;
	function rollstar(set, on, intheroll, ThisStarsName) {
		inside = 1
		if (intheroll == null) {
			intheroll = 0;
		}
		var myrating = readValueOf(set);
		if (myrating != '' && intheroll == 0) {
			red = 'red';
			mysetvalue = myrating;
			on = myrating;
			if (document.getElementById('myvote'+set)) {
				document.getElementById('myvote'+set).style.color = '#FF0000';
				document.getElementById('myvote'+set).innerHTML = 'My Rating: ' + on;
			}
		//} else if (red == 'red') {
		//	alert('isred');
		} else if (myrating != '') {
			red = 'red';
			if (document.getElementById('myvote'+set)) {
				document.getElementById('myvote'+set).innerHTML = 'Change My Rating';
			}
		} else {
			//on = defaultrating;
			//if (inside == 0) {
			mysetvalue = document.getElementById('defaultrating'+set).value;
			//on = document.getElementById('defaultrating'+set).value;
			//}
		}
		
		for (i=0.5; i<=5; i=i+0.5) {
			var exactitem = i * 2;
			if (Mid(i, 2, 1) == 5) {
				// it's the right side
				if (i <= on) {
					if (red == '') {
						starleftfull.src = starsdir+ThisStarsName+'leftfull.gif';
						document.getElementById('starset'+set+'.'+exactitem).src = starleftfull.src;
					} else {
						starleftfullred.src = starsdir+ThisStarsName+'leftfullred.gif';
						document.getElementById('starset'+set+'.'+exactitem).src = starleftfullred.src;
					}
				} else {
					starleftempty.src = starsdir+ThisStarsName+'leftempty.gif';
					document.getElementById('starset'+set+'.'+exactitem).src = starleftempty.src;
				}
			} else {
				// it's the left side
				if (i <= on) {
					if (red == '') {
						//alert('starset'+set+'.'+exactitem);
						starrightfull.src = starsdir+ThisStarsName+'rightfull.gif';
						document.getElementById('starset'+set+'.'+exactitem).src = starrightfull.src;
					} else {
						starrightfullred.src = starsdir+ThisStarsName+'rightfullred.gif';
						document.getElementById('starset'+set+'.'+exactitem).src = starrightfullred.src;
					}
				} else {
					starrightempty.src = starsdir+ThisStarsName+'rightempty.gif';
					document.getElementById('starset'+set+'.'+exactitem).src = starrightempty.src;
				}
			}
		}
		red = '';
	}
	
	function addToQueue(set) {
		theQueue = theQueue + "," + set;
	}
	
	function setred(set, on, ThisStarsName) {
		red = 'red';
		mysetvalue = on;
		FindAndsetCookie(set, on);
		if (document.getElementById('myvote'+set)) {
			document.getElementById('myvote'+set).style.color = '#FF0000';
			document.getElementById('myvote'+set).innerHTML = 'My Rating: ' + on;
		}
		document.getElementById('defaultrating'+set).value = on;
		rollstar(set, on, 1, ThisStarsName);
	}
	
	function rollstaroff(set) {
		inside = 1;
	}
	
	var setstorefresh = '';
	
	function completelyoff(set) {
		if (Mid(setstorefresh, 0, 1) == ",") {
			setstorefresh = Mid(setstorefresh, 1, setstorefresh.length-1);
		}
		var valueArray = setstorefresh.split(',');
		//alert('here');
		
		if (inside == 1) {
			//alert(setstorefresh);
			//for(var i=0; i<valueArray.length; i++){
			//	rollstar(valueArray[i], document.getElementById('defaultrating'+valueArray[i]).value);
			//}
			var queueArray = theQueue.split(',');
			theQueue = '';
			for (var i=0; i<queueArray.length; i++) {
				if (queueArray[i] != '') {
					rollstar(queueArray[i], document.getElementById('defaultrating'+queueArray[i]).value, 0, starNameAR[queueArray[i]]);
				}
			}
			
		
			if (mysetvalue != '') {
				rollstar(set, mysetvalue, 0, starNameAR[set]);
			} else {
				rollstar(set, document.getElementById('defaultrating'+set).value, 0, starNameAR[set]);
			}
		}
		inside = 0;
	}
	
	function doit() {
		if (isOver == 0 && lastOn != 0) {
			completelyoff(lastOn);
		}
	}
	
	var isOver=0;
	var lastOn=0;
	var Inte = setInterval(doit, 100);
	
	var starNameAR = new Array();
	
	function writeinthestars(starset, defaultrating, starinfoName, starinfoHeight, starinfoWidth, showInfo) {
		
		starNameAR[starset] = starinfoName;
		
		if (starinfoName && starBaseImgName && starBaseImgWidth) {
			starBaseImgName = starinfoName;
			starBaseImgHeight = starinfoHeight;
			starBaseImgWidth = starinfoWidth;
		
			starleftfull.src = starsdir+starBaseImgName+'leftfull.gif';
			starrightfull.src = starsdir+starBaseImgName+'rightfull.gif';
			starleftfullred.src = starsdir+starBaseImgName+'leftfullred.gif';
			starrightfullred.src = starsdir+starBaseImgName+'rightfullred.gif';
			starleftempty.src = starsdir+starBaseImgName+'leftempty.gif';
			starrightempty.src = starsdir+starBaseImgName+'rightempty.gif';
		}
		if (showInfo && showInfo != '0') { } else {
			showInfo = 1;
		}

		setstorefresh = setstorefresh + "," + starset;
		
		document.write('<table cellpadding="0" cellspacing="0" style="margin-top:2px; padding:0;">');
		
		document.write('<tr><td>');
		document.write('<div id="starset'+starset+'" onmouseover="isOver='+starset+'; lastOn='+starset+'; addToQueue('+starset+');" onmouseout="isOver=0;" style="width:'+starBaseImgWidth*10+'px; height:14px; padding:0px;">');
		for (i=0.5; i<=5; i=i+0.5) {
			document.write('<img src="blank.gif" width="'+starBaseImgWidth+'" height="'+starBaseImgHeight+'" alt="" OnMouseOver="rollstar('+starset+','+i+',1,\''+starBaseImgName+'\');" id="starset'+starset+'.'+i*2+'" style="cursor:pointer;" OnClick="setred('+starset+','+i+',\''+starBaseImgName+'\');" class="stars">');
		}
		document.write('</div>');
		document.write('</td><td>');
		if (showInfo == 2) {
			document.write('</tr><tr>');
		}
		if (showInfo >= 1) {
			document.write('<div id="myvote'+starset+'" style="font-size:10px; color:#bb958a; font-family:Tahoma; margin-left:5px; margin-top:4px;">User Rating: '+defaultrating+'</div><input type="hidden" id="defaultrating'+starset+'" value="'+defaultrating+'">');
		}
		if (showInfo == -1) {
			document.write('<input type="hidden" id="defaultrating'+starset+'" value="'+defaultrating+'">');
		}
		document.write('</td></tr>');
		document.write('</table>');
		
		rollstar(starset,defaultrating,0,starinfoName);
	}

