// JavaScript Document
var dom = YAHOO.util.Dom;
var event = YAHOO.util.Event;
var connect = YAHOO.util.Connect;

YAHOO.util.Event.onDOMReady(function() {
	elRating = YAHOO.util.Dom.getElementsByClassName('ratingcontainer');
	for (var z = 0, len = elRating.length; z < len; ++z) 
	{
		event.addListener(elRating[z], 'mouseover', rollover);
		event.addListener(elRating[z], 'click', setDefault);
	}
	
	event.addListener("ratingcontainer", 'mouseout', restoreDefault);
	event.addListener("btnStem", 'click', saveVote);
	
	//Heeft een element de class clickableblock-container dan moet hierop de link gezet worden van clickableblock-source
	elClickable = YAHOO.util.Dom.getElementsByClassName('clickableblock-container');
	for (var z=0; z < elClickable.length; z++) 
	{
		elLink = YAHOO.util.Dom.getElementsByClassName("clickableblock-source", "a", elClickable[z]); 
		//Als er een link is dan 3 dingen doen
		// Bij click doorsturen naar deze link
		// Bij mouseover hover class erop zetten
		// Bij mouseover hover class verwijderen
		if(elLink[0].href != '') {
			YAHOO.util.Dom.addClass(elClickable[z],"active");
			event.addListener(elClickable[z], 'click', function() { 
				myLink = YAHOO.util.Dom.getElementsByClassName("clickableblock-source", "a", this);
				location.href = myLink[0].href; 
			});
			event.addListener(elClickable[z], 'mouseover', function() { YAHOO.util.Dom.addClass(this,"hover"); });
			event.addListener(elClickable[z], 'mouseout', function() { YAHOO.util.Dom.removeClass(this,"hover"); });
		}
	}
	
	
});


/* stem sterren rollover*/
function rollover () {
	var aID = this.id.split('_');
	for (i=5; i>0; i--) {
		if(i > aID[1]) document.getElementById('wfi_rating_label_'+i).className = "";
		else document.getElementById('wfi_rating_label_'+i).className = "star";
	};
}

function restoreDefault() {
	var defaultValue = document.getElementById('userVote').value;
	for (i=5; i>0; i--) {
		if(i > defaultValue) document.getElementById('wfi_rating_label_'+i).className = "";
		else document.getElementById('wfi_rating_label_'+i).className = "star";
	};
}

function setDefault() {
	var aID = this.id.split('_');
	document.getElementById('userVote').value = aID[1];
}

function saveVote() {
	var vote = document.getElementById('userVote').value;
	var contestantID = document.getElementById('contestantID').value;
	
	var callback =
	{
	  cache: false,	
	  success: voteSubmitted, //verwijzing naar functie
	  failure:function() {alert(getPageLabelJS('error'))}, //todo: wat te doen bij een error
	  argument: { } //beschikbaar in de success en failure functie
	};

	//Vul de reportTemplate select
	connect.asyncRequest('GET', urlBase + '?event=ajaxSaveVote&vote='+vote+'&contestantID='+contestantID, callback);
		
}

function voteSubmitted(o) {
	var messages = '<dl class="success"><dt>Uw stem is met succes verwerkt</dt><dd>Na het vernieuwen van het scherm merkt u hoeveel invloed uw stem heeft op deze foto.</dd></dl>';
	document.getElementById('messageSucces').innerHTML = messages;
	//alert("Uw stem is verwerkt");
}

//Is de ajax call gestart en de image nog niet geplaatst dan niks doen
var inProgress = false;

function getImage(url, action, current, collectionID) {
	if(!inProgress) {
		var callback =
		{
		  cache: false,	
		  success: createImg, //verwijzing naar functie
		  failure:function() {alert(getPageLabelJS('error'))}, //todo: wat te doen bij een error
		  argument: { url: url, action: action, current: current, collectionID: collectionID } //beschikbaar in de success en failure functie
		};

		var oBrowser = document.getElementById('imgbrowser');
		var elLi = dom.getChildren(oBrowser);
		if(action == 'next') {
			var oLaatste = elLi[elLi.length-2];
			var id = oLaatste.id;
		}
		else if(action == 'previous') {
			var oEerste = elLi[1];
			var id = oEerste.id;
		}
	
		if(id != '') {
			//Ophalen product details
			inProgress = true;
			if(collectionID  != '' && collectionID != undefined)
				connect.asyncRequest('GET', urlBase + '?event=ajaxGetPreviousOrNextProduct&productID='+id+'&collectionID='+ collectionID + '&action='+action, callback);		
			else {
				connect.asyncRequest('GET', urlBase + '?event=ajaxGetPreviousOrNext&contestantID='+id+'&action='+action, callback);
			}
		}
	}
}

function createImg(o){
	var data = YAHOO.lang.JSON.parse(o.responseText);
	var url = o.argument.url + 'id/' + data.IDENTIFIER + '/';

	//Is er wel een productID, anders zitten we helemaal aan het begin of eind
	if((o.argument.collectionID == '' && data.CONTESTANTID != '') || (o.argument.collectionID != '' && data.PRODUCTID != '')) {
		var objListItem = document.createElement('li');
		if(data.CONTESTANTID != undefined) {
			objListItem.id = data.CONTESTANTID;
			if(data.CONTESTANTID == o.argument.current) objListItem.className = 'current ' + data.PRODUCTFORMAT;
			else  objListItem.className = data.PRODUCTFORMAT;
		}
		else {
			objListItem.id = data.PRODUCTID;
			if(data.PRODUCTID == o.argument.current) objListItem.className = 'current ' + data.PRODUCTFORMAT;
			else  objListItem.className = data.PRODUCTFORMAT;
		}
		
		var objLink = document.createElement('a');
		objLink.href = url;
		objLink.title = data.NAME;
		
		var objImg = document.createElement('img');
		objImg.src = domain + 'product/'+ organisationID +'/thumb/' + data.PRODUCTID + '.jpg';
		objImg.alt = data.NAME;

		objLink.appendChild(objImg);
		objListItem.appendChild(objLink);
		
		var oBrowser = document.getElementById('imgbrowser');
		
		if(o.argument.action == 'next') {
			//1e Image verwijderen
			elLi = dom.getChildren(oBrowser);
			oBrowser.removeChild(elLi[1]);
			//image voor de laatste toevoegen 
			var oLastChild = dom.getLastChild(oBrowser);
			dom.insertBefore(objListItem,oLastChild);
		}
		else if(o.argument.action == 'previous') {
			//laatste image verwijderen
			elLi = dom.getChildren(oBrowser);
			oBrowser.removeChild(elLi[elLi.length-2]);
			//image voor de laatste toevoegen 
			var oFirstChild = dom.getFirstChild(oBrowser);
			dom.insertAfter(objListItem,oFirstChild);
		}
	}
	inProgress = false;
}	

function showTab(el) {
	theParent = YAHOO.util.Dom.getAncestorByClassName(el, 'tabcontainer');
	theParent = new YAHOO.util.Element(theParent);
	/* disable all tabs */
	tabs = YAHOO.util.Dom.getElementsByClassName('tab','div',theParent);
	for (i=0; i<tabs.length; i++) 
	{
		YAHOO.util.Dom.removeClass(tabs[i],'active');
	}
	tablinks = theParent.getElementsByTagName('li');
	for (i=0; i<tablinks.length; i++) 
	{
		YAHOO.util.Dom.removeClass(tablinks[i],'active');
	}
	/* enable the right tab */
	YAHOO.util.Dom.addClass(YAHOO.util.Dom.getAncestorByTagName(el, 'li'),'active');
	YAHOO.util.Dom.addClass(document.getElementById(el.href.split('#')[1]),'active');
}

