//clear referrer cookie
Event.observe( window, 'load', function() { 
			var date = new Date();
        		date.setTime(date.getTime() - ( 1 * 60 * 60 * 24 ));
			gsetCookie('vote_referrer', '', 0, "/"); } );

var ajaxHandler = function(t) {

	var reply = (t.responseText).evalJSON();

	if (reply.error) {
		$('mainform').appendChild(buildElement('div',{'id':'feedback'}));
		displayError(reply.error); 
		//return false;
	}
	switch(reply.mode) {
		case 'build':
			break;

 		case 'complete':

          	$('image_' + reply.image_id).className = 'highlightentry';

            $$('div.ratespace').each(function(ElementName) { 
                if (ElementName.style.display == "none") {
                    ElementName.style.display = "block";
                }
            });

			return false;

			break;
		default:
			break;
	}

}

function getServer(mode, serializedform) {
	if (serializedform !== "") serializedform = '&' + serializedform;
	new Ajax.Request('/bin/Rate', {method:'post',parameters:'mode=' + mode + serializedform, onSuccess:ajaxHandler, onFailure:ajaxError});
}

function buildRatePageElements() {

var chosenone = $('chosenone').innerHTML;

chosenone = chosenone.replace(/<b>/, "");
chosenone = chosenone.replace(/<\/b>/, "");


	// set the chosen one
	if(chosenone.length > 0) {
		if ($('rate_' + chosenone)) {
			$('rate_' + chosenone + '__1').innerHTML = "Thanks for voting!";
			$('rate_' +chosenone + '__1').className = "starhovergone";
	 		$('image_' + chosenone).className = 'highlightentry';
	    }
	}

}

function processEvent(elementid, event, type) {

if (($(elementid).innerHTML).match("Thanks")) { // don't processEvent for Thanks for voting message
return false;
} 


var splitForRateId = elementid.split("__");
var rateid = splitForRateId[1];
var splitforImageId = splitForRateId[0].split("_");
var image_id = splitforImageId[1];

if (type == 'mouseover') {
	switch(splitforImageId[0]) {
		case 'rate':

		var user = $('username').innerHTML;
		if  (!user) user = ggetCookie('vote_email');

		$(elementid).style.cursor='pointer';

		if (!user) {
			$(elementid).innerHTML = 'Login';
			$(elementid).className = 'starhoveron';
			
		} else {
			$(elementid).innerHTML = 'Click to Vote';
			$(elementid).className = 'starhoveron';
		} 

		break;
		default:
		break;
	}
} else if (type == 'mouseout') {

		$(elementid).innerHTML = 'Vote Now!';
		$(elementid).className = 'starhoveroff';

} else if (type == 'click') { // click


	var user = $('username').innerHTML;
	if  (!user) user = ggetCookie('vote_email');

	if (user) {
        var categoryid = "rate_category_" + image_id;
        var category = $(categoryid).innerHTML;
		var serializedform = "image_id=" + image_id +  "&" + "rate=" + rateid + "&category=" + category;

		// remove old vote highlight
		  $$('div.highlightentry').each(function(ElementName) { 
                    ElementName.className = 'rateimage';
                    var highlightentryId = (ElementName.id).split("_");
                    var foundId = highlightentryId[1];
        		$('rate_text_' + foundId).innerHTML = "";

                var highlightentryVotes = ($('rate_votes_' + foundId).innerHTML).split("Votes: ");
				
			    $('rate_votes_' + foundId).innerHTML = "Votes: " + (highlightentryVotes[1] - 1);
			    $('rate_' + foundId + '__1').className = "starhoveroff";
			    $('rate_' + foundId + '__1').innerHTML = "Vote Now!";

            });
		
		// add new vote highlight
		$(elementid).innerHTML = "Thanks for voting!";
		$(elementid).className = "starhovergone";
	 	
		var highlightentryVotes = ($('rate_votes_' + image_id).innerHTML).split("Votes: ");
		$('rate_votes_' + image_id).innerHTML = "Votes: " + (highlightentryVotes[1]*1 + 1);
    	$('image_' + image_id).className = 'highlightentry';

		// ajax update database
		getServer('process', serializedform);

	} else { 

    var loginhref = "http://"+window.location.hostname+"/bin/EmailCheck?url=http://"+window.location.hostname+"/bin/Rate?image_id="+image_id;
    window.location.href = loginhref;
		//var new_window = window.open("/bin/EmailLogin","LoginWindow","height=330,width=395px,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes");
	}
	return false;


} else if (type == 'focus') {
} else if (type == 'change') {
}

}

function changeRateText(elementid, image_id, rateid) {

var elementid = "rate_" + image_id + "__" + rate_id;
var message = "";
	switch (rateid) {
	case '1':
	message = "Click to vote";
	break;
	case '2':
	message = "getting better";
	break;
	case '3':
	message  = "average";
	break;
	case '4':
	message  = "looking good";
	break;
	case '5':
	message = "best in show";
	break;
	default:
	message = ""; 
	}

$(elementid).innerHTML = message;

}

function setRating(rate, image_id) {

	var divId = "rate_" + image_id;
	var ul = buildElement('ul');

	ul = buildLink(image_id, '1', ul, rate);
//	ul = buildLink(image_id, '2', ul, rate);
//	ul = buildLink(image_id, '3', ul, rate);
//	ul = buildLink(image_id, '4', ul, rate);
//	ul = buildLink(image_id, '5', ul, rate);
	$(divId).appendChild(ul);

	buildLinkEvents(image_id, '1', ul);
//	buildLinkEvents(image_id, '2', ul);
//	buildLinkEvents(image_id, '3', ul);
//	buildLinkEvents(image_id, '4', ul);
//	buildLinkEvents(image_id, '5', ul);

	buildRateText(image_id, rate);
}

function buildRateText(image_id, rate) {

/*	var votes = $("rate_votes_" + image_id).innerHTML;
	if (votes == 1) {
		$("rate_text_" + image_id).innerHTML = votes + " Vote ";
	} else {
		$("rate_text_" + image_id).innerHTML = votes + " Votes ";
	}
*/
$("rate_text_" + image_id).innerHTML = "&nbsp;";

}

function buildLink(image_id, rate_id, ul, rate) {

	var text = "Vote Now!";
	var elementid = "rate_" + image_id + "__" + rate_id; 
	var li = buildElement('li');
	var starclass = 'starhoveroff';
	if (rate_id <= rate) {
		starclass = 'starhoveroff';
	}

	
	
	li.appendChild(buildElement('a',{'id':elementid,'innerHTML':text,'hrefx':'','className':starclass}));
	ul.appendChild(li);

	return ul;

}

function randomSort() {
var rand = Math.floor(Math.random()*2);
	if (!ggetCookie('search_sort')) {
		if (rand == 0) gsetCookie('search_sort', 'mostvotes', 0, "/");
	}

}

function buildLinkEvents(image_id, rate_id) {
	var elementid = "rate_" + image_id + "__" + rate_id; 
	var watcher = new eventWatcherOnMouse(elementid,'onmouseover');
	watcher = new eventWatcherOnMouse(elementid,'onmouseout');
	watcher = new eventWatcher(elementid); //onclick

}

var eventWatcherOnMouse = Class.create();

eventWatcherOnMouse.prototype = {

   initialize: function(event,type) {
		this.event = $(event);
		this.elementid = $(event).id;

		switch(type) {
		case 'onmouseover':
			this.event.onmouseover = this.formAction.bindAsEventListener(this);
			break;
 		case 'onmouseout':
			this.event.onmouseout = this.formAction.bindAsEventListener(this);
			break;
 		case 'onfocus':
			this.event.onfocus = this.formAction.bindAsEventListener(this);
			break;
 		case 'onblur':
			this.event.onblur = this.formAction.bindAsEventListener(this);
			break;
 		case 'onchange':
			this.event.onchange = this.formAction.bindAsEventListener(this);
			break;
		default:
			break;
		}
	},

    formAction: function(event) {
			processEvent(this.elementid, event, event.type);	
   }
};



