var yourRate = 0;
var adList = "";
var justRated = false;
function isAdRated(adid) {
	
	//alert( " Cookie being created " );
	var adsRated = new Cookie(document,"RatedAds1", 720);
	if ( adsRated.load() ) {
		//alert( " Cookie has been found " + adid);
	} else {
		return false;
	}
	
	//alert( " The ad list is " + adList );
	var ad = adList.split('|');
	var i;
	//alert( " Searching through the existing list " );
	for ( i=0; i<ad.length; i++ ) {
		if ( ad[i] == adid ) {
			return true;
		}
	}
	return false;
}
function showhide(szDivID, iState) { // 1 visible, 0 hidden 
	
	if (document.getElementById) {
		var obj = document.getElementById(szDivID);
		obj.style.display = iState ? "" : "none";
	}

}
function hideAllAdRateString() {
	showhide("thanksForRecommending",0);
	showhide("alreadyRecommended",0);
	showhide("adRecommendedBy",0);
	showhide("recommendIt",0);
	showhide("adRecommendedByPlusOne",0);
}
function runFieldQuery(rate,adid,url) {
	// Before sending the request to the back-end, make sure to check the
	// cookie to see if this ad was already rated.
	var adsRated = new Cookie(document,"RatedAds1", 720);
	if ( adsRated.load() ) {
	} else {
	}
	
	var ad = adList.split('|');
	var i;
	for ( i=0; i<30; i++ ) {
		adsRated[i] = ad[i];
		if ( ad[i] == adid ) {
			return false;
		}
		if ( ad[i] == null || ad[i] == "" ) {
			//alert( " Found a blank spot at location " + i );
			// add the ad id in
			ad[i]=adid;
			adsRated[i]=adid;
			break;
		}
	}
	if ( i == 30 ) {
		adsRated = new Cookie(document,"RatedAds1", 720)
		// list is full eliminate oldest adid
		//alert( " list is full " );
		for ( var j=1; j<30; j++ ) {
			ad[j-1] = ad[j];
			adsRated[j-1]=ad[j];
		}
		ad[29] = adid;
		adsRated[29]=adid;
	}

	adsRated.store();
	
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	req.onreadystatechange = createProcessSearchResultCallback;
	req.open("GET", url, true);
	req.send(null);
	yourRate = rate;
	justRated = true;
	hideAllAdRateString();
	showhide("thanksForRecommending",1);
	showhide("adRecommendedByPlusOne",1);
	return true;    
} 

function createProcessSearchResultCallback() {
	
	if (req.readyState == 4 && req.status == 200) {
		document.all.innerText=req.responseText;
	}
}

function Cookie(document, name, hours, path, domain, secure) {
	this.$document=document;
	this.$name=name;
	if (hours) {
		this.$expiration=new Date((new Date()).getTime()+hours*3600000);
	} else {
		this.$expiration=null;
	}
	if (path) {
		this.$path=path;
	} else {
		this.$path=null;
	}
	if (domain) {
		this.$domain=domain;
	} else {
		this.$domain=null;
	}
	if (secure) {
		this.$secure=secure;
	} else {
		this.$secure=false;
	}
}

Cookie.prototype.load = function() {
	var allcookies = this.$document.cookie;
	if ( allcookies == "") {
		return false;
	}

	var start = allcookies.indexOf(this.$name +'=');
	if ( start == -1 ) {
		return false;
	}

	start += this.$name.length+1;
	var end = allcookies.indexOf(';',start);
	if ( end == -1 ) {
		end = allcookies.length;
	}

	var cookieval = allcookies.substring(start,end);
	//alert( " cookie being retrieved = " + cookieval );

	var a = cookieval.split('&');
	for ( var i = 0; i<a.length; i++ ) {
		a[i] = a[i].split(':');
	}
	
	adList= "";

	for ( var j=0; j<a.length; j++ ) {
		this[a[j][0]] = unescape(a[j][1]);
		adList +=unescape(a[j][1])+"|";
	}

	//alert ( " ad list 1 = " + adList );
	return true;
}


Cookie.prototype.store = function() {
	var cookieval = "";
	for (var prop in this) {
		if ((prop.charAt(0)=='$') || ((typeof this[prop]) == 'function')) {
			continue;
		}
		if (cookieval != "") {
			cookieval += '&';
		}
		cookieval += prop + ":" + escape(this[prop]);
	}

	var cookie = this.$name + '=' + cookieval;
	if (this.$expiration) {
		cookie += '; expires=' + this.$expiration.toGMTString();
	}
	if (this.$path) {
		cookie += '; path=' + this.$path;
	}
	if (this.$domain) {
		cookie += '; domain=' + this.$domain;
	}
	if (this.$secure) {
		cookie += '; secure';
	}

	//alert( " cookie being stored = " + cookie );
	this.$document.cookie = cookie;
}

