
	/*
		Dit bestand bevat een JQuery Plugin.
		JQuery is een JavaSCript framework dat hier gratis http://www.jquery.com is te downloaden

		De ontwikkelaar van deze plugin is Dennis Laupman in opdracht van 3FM. Als je vragen hebt kun je mailen met dennis@pluxbox.nl
	*/

	$.voting =
	({
			pageNr : 0
		,	pageMax : 0
		,	nomineesData : {}
		,	build : function( args )
			{
				var	pageObj = $(this);
				var	args = args || {};
				
				$.voting.pageNr = (args.pageNumber-1) || -1;
				$.voting.nomineesData =  { "nominees":
				[ 	
						/*
							title: pagina naam0
							vote :  id van het gekozen item
							items : id van item, title van item, plaatje van item
							page : pagina redirect
						*/
						{"title":"stemmen", "vote":0, page:"stemmen" } 
					,	{"title":"band", "vote":"", "items":[ {"id":1, "title":"Bløf", "image":"blof.jpg"},{"id":2, "title":"Kane", "image":"kane.jpg"},{"id":3, "title":"Krezip", "image":"krezip.jpg"},{"id":4, "title":"Racoon", "image":"racoon3.jpg"} ,{"id":5, "title":"Di-rect", "image":"direct.jpg"} ] } 
					,	{"title":"zanger", "vote":"", "items":[ {"id":1, "title":"Alain Clark", "image":"alainclark.jpg"},{"id":2, "title":"Bertolf", "image":"bertolf.jpg"},{"id":3, "title":"Boris", "image":"boris.jpg"},{"id":4, "title":"VanVelzen", "image":"vanvelzen.jpg"} ,{"id":5, "title":"Marco Borsato", "image":"marcoborsato.jpg"} ] } 
					,	{"title":"zangeres", "vote":"", "items":[ {"id":1, "title":"Anouk", "image":"anouk.jpg"},{"id":2, "title":"Ilse DeLange", "image":"ilsedelange2.jpg"},{"id":3, "title":"Jacqueline Govaert (Krezip)", "image":"jacqueline.jpg"},{"id":4, "title":"Nikki", "image":"nikki.jpg"} ,{"id":5, "title":"Sanne Hans (Miss Montreal)", "image":"sannehansmissmontreal.jpg"} ] } 
					,	{"title":"pop", "vote":"", "items":[ {"id":1, "title":"Alain Clark", "image":"alainclark2.jpg"},{"id":2, "title":"Krezip", "image":"krezip2.jpg"},{"id":3, "title":"Ilse DeLange", "image":"ilsedelange3.jpg"},{"id":4, "title":"Racoon", "image":"racoon2.jpg"} ,{"id":5, "title":"VanVelzen", "image":"vanvelzen.jpg"} ] } 
					,	{"title":"rock", "vote":"", "items":[ {"id":1, "title":"Anouk", "image":"anouk2.jpg"},{"id":2, "title":"GEM", "image":"gem.jpg"},{"id":3, "title":"Kane", "image":"kane2.jpg"},{"id":4, "title":"Voicst", "image":"voicst2.jpg"} ,{"id":5, "title":"Within Temptation", "image":"withintemptation.jpg"} ] } 
					,	{"title":"alternative", "vote":"", "items":[ {"id":1, "title":"De Jeugd van Tegenwoordig", "image":"dejeugdvantegenwoordig.jpg"},{"id":2, "title":"GEM", "image":"gem2.jpg"},{"id":3, "title":"Novastar", "image":"novastar.png"},{"id":4, "title":"Pete Philly & Perquisite", "image":"petephillyandperquisite.jpg"} ,{"id":5, "title":"Voicst", "image":"voicst.jpg"} ] } 
					,	{"title":"single", "vote":"", "items":[ {"id":1, "title":"Armin van Buuren featuring Sharon den Adel - In and out of love", "image":"arminvanbuuren.jpg"},{"id":2, "title":"Anouk - Modern world", "image":"anouk3.jpg"},{"id":3, "title":"Dio featuring Sef - Tijdmachine", "image":"dio.jpg"},{"id":4, "title":"Ilse DeLange - So incredible", "image":"ilsedelange4.jpg"} ,{"id":5, "title":"Kraak & Smaak - Squeeze me", "image":"kraakensmaak.jpg"} ] } 
					,	{"title":"album", "vote":"", "items":[ {"id":1, "title":"Bløf - Oktober", "image":"blog.jpg"},{"id":2, "title":"De Jeugd van Tegenwoordig - De Machine", "image":"dejeugdvantegenwoordig.jpg"},{"id":3, "title":"Ilse DeLange - Incredible", "image":"ilsedelange.jpg"},{"id":4, "title":"Novastar - Almost bangor", "image":"novastar.jpg"} ,{"id":5, "title":"Racoon - Before you leave", "image":"racoon.jpg"} ] } 
					,	{"title":"live", "vote":"", "items":[ {"id":1, "title":"Marco Borsato", "image":"marco1.jpg"},{"id":2, "title":"Krezip", "image":"krezip3.jpg"},{"id":3, "title":"Kane", "image":"kane3.jpg"},{"id":4, "title":"Anouk", "image":"anouk4.jpg"} ,{"id":5, "title":"Within Temptation", "image":"withintemptation2.jpg"} ] } 
					,	{"title":"nieuwkomer", "vote":"", "items":[ {"id":1, "title":"Bertolf", "image":"bertolf2.jpg"},{"id":2, "title":"Dio", "image":"dio2.jpg"},{"id":3, "title":"Miss Montreal", "image":"missmontreal2.jpg"},{"id":4, "title":"Nikki", "image":"nikki.jpg"} ,{"id":5, "title":"Sabrina Starke", "image":"sabrinastarke.jpg"} ] } 
					//,	{"title":"NL Top 100", "vote":"", "items":[], page:"nltop100", motivation:"" } 
		
					,	{"title":"Je gegevens", "vote":0, page:"jegegevens" } 
				]};
				
				//Maximum aantal pages 
				$.voting.pageMax = $.voting.nomineesData.nominees.length;

				//Ga naar de functie browse pages
				$.voting.browsePages ( pageObj, true );
				
				//Bind events aan blader knoppen
				$(pageObj).find(".browse-left").bind("mousedown", function(){ return false;});
				$(pageObj).find(".browse-right").bind("mousedown", function(){ return false;});
				$(pageObj).find(".browse-next").bind("mousedown", function(){ return false;});
				$(pageObj).find(".browse-right").bind("click", function(){ $.voting.browsePages( pageObj, true); return false; });
				$(pageObj).find(".browse-next").bind("click", function(){ $.voting.browsePages( pageObj, true); return false; });
				$(pageObj).find(".browse-left").bind("click", function(){ $.voting.browsePages( pageObj, false); return false; });
			}
			
		,	browsePages :  function( pageObj, forward )
			{
				if($.voting.nomineesData.nominees[$.voting.pageNr] && $.voting.nomineesData.nominees[$.voting.pageNr].page == "jegegevens" && forward)
				{
					/*
						deze functie verstuurd de gegevens dmv ajax
					*/
						
					var	newsletter = ($("input#newsletter").attr("checked")) ? 1 : 0;
					var 	postData = 
					{
							action: "submit_comment"
						,	name: $("input[name='name']").val() || ""
						,	street: $("input[name='street']").val() || ""
						,	zipcode: $("input[name='zipcode']").val() || ""
						,	city: $("input[name='city']").val() || ""
						,	telefoon: $("input[name='telefoon']").val() || ""
						,	email: $("input[name='email']").val() || ""
						,	hyves: $("input[name='hyves']").val() || ""
						,	newsletter: newsletter
						,	vip: $("textarea[name='vip-motivation']").val() || ""
						,	band: $("input[name='band']").val() || ""
						,	zanger: $("input[name='zanger']").val() || ""
						,	zangeres: $("input[name='zangeres']").val() || ""
						,	pop: $("input[name='pop']").val() || ""
						,	rock: $("input[name='rock']").val() || ""
						,	alternative: $("input[name='alternative']").val() || ""
						,	single: $("input[name='single']").val() || ""
						,	album: $("input[name='album']").val() || ""
						,	live: $("input[name='live']").val() || ""
						,	nieuwkomer: $("input[name='nieuwkomer']").val() || ""
						,	nltop100: $("input[name='NL Top 100']").val() || ""
						,	motivation: $("input[name='motivation']").val() || ""
						,	captcha_checksum: $("input[name='captcha_checksum']").val() || ""
						,	captcha_time: $("input[name='captcha_time']").val() || ""
						,	captcha_input: $("input[name='captcha_input']").val() || ""
						,	saf_email1: $("input[name='saf_email1']").val() || ""
						,	saf_email2: $("input[name='saf_email2']").val() || ""
						,	saf_email3: $("input[name='saf_email3']").val() || ""	
						,	saf_email4: $("input[name='saf_email4']").val() || ""	
						,	saf_email5: $("input[name='saf_email5']").val() || ""	
						,	saf_email6: $("input[name='saf_email6']").val() || ""	
						,	saf_email7: $("input[name='saf_email7']").val() || ""	
						,	saf_email8: $("input[name='saf_email8']").val() || ""	
						,	saf_email9: $("input[name='saf_email9']").val() || ""	
						,	saf_name1: $("input[name='saf_name1']").val() || ""
						,	saf_name2: $("input[name='saf_name2']").val() || ""
						,	saf_name3: $("input[name='saf_name3']").val() || ""
						,	saf_name4: $("input[name='saf_name4']").val() || ""
						,	saf_name5: $("input[name='saf_name5']").val() || ""
						,	saf_name6: $("input[name='saf_name6']").val() || ""
						,	saf_name7: $("input[name='saf_name7']").val() || ""
						,	saf_name8: $("input[name='saf_name8']").val() || ""
						,	saf_name9: $("input[name='saf_name9']").val() || ""
						,	referer: $("input[name='referer']").val() || ""
					}
					
					//Verstuur informatie naar server
					$.post("/page/aw08_gegevens_post", postData, function(data)
					{
						//Als alles goed is gegeaan krijg je data terug
						if(data.length > 5)
						{
							top.location.href="#posterrors";
							$("ul.postErrors").empty();
							$("ul.postErrors").append(data);
						}
						else
						{
							/*
								Genereer de "bedankt" pagina
							*/
							$("div.stemmen-block-content").removeClass("stemmen-block-content-verstuur");
							$("div.stemmen-block-content").addClass("stemmen-block-content-bedankt");
						
							$(pageObj).empty();
							$(pageObj).append("<table><tr><td class=\"thanksText\"></td></tr></table>");
							
						
							//$("tr td", pageObj).append("<h1 style=\"margin:30px 40px 10px 40px;\">Dank!</h1>");
							//$("tr td", pageObj).append("<p style=\"margin:0px 40px;\">Jouw bijdrage is goed ontvangen. Dank daarvoor! Je krijgt komende weken bericht of je tickets gewonnen hebt, of dat je evt. toch een kaartje moet gaan <a target=\"_self\" href=\"http://awards.3fm.nl/page/aw08_nieuws/257721\">bemachtigen</a>.<p></h1>");
						
							$("table tr td", pageObj).load("/page/aw09_bedanktekst");
						}
					});

					return true;
				}
				
				/*
				Validatie wordt in 2009 niet gebruikt
				
				//ERROR if statement
				if(forward && $.voting.pageNr != -1 && $.voting.nomineesData.nominees[$.voting.pageNr].items && !$.voting.nomineesData.nominees[$.voting.pageNr].vote)
				{
					//show errors
					$("div.nominees-error").show();
					
					//stop uitvoer
					return false;
				}
				*/
				
				//verhoog of verlaag pagina nummer met 1
				if(forward && $.voting.pageNr < ($.voting.pageMax-1))
					$.voting.pageNr++;
				else if($.voting.pageNr > 0 && !forward)
					$.voting.pageNr--;
	
	
				//Verander het header plaatje	
				var	imgName = $.voting.nomineesData.nominees[$.voting.pageNr].page || $.voting.nomineesData.nominees[$.voting.pageNr].title
				
				$("img.pageHeader").attr("src", "http://awards.3fm.nl/static/images/stemmen-category-"+imgName+".jpg");
				
				//blader pagina
				if($.voting.nomineesData.nominees[$.voting.pageNr].page)
					$.voting["page_"+$.voting.nomineesData.nominees[$.voting.pageNr].page]( pageObj );
				else					
					$.voting.createVoteOptions ( pageObj );
			}
			
			//genereer de pagina "stemmen"
		,	page_stemmen :  function( pageObj )
			{
				//zet de huidige pagina "bold" in het crumb path
				$(".navigation ul li").removeClass("active");
				$(".stemmen").addClass("active");

				//Genereer de pgina
				$(pageObj).find(".nominees").empty();
			
				/*
				$(pageObj).find(".nominees").append("<p>De 3FM Awards zijn de jaarlijkse radioprijzen voor de beste Nederlandse popacts en popartiesten, gekozen door jou, de luisteraar van 3FM.</p>");
				$(pageObj).find(".nominees").append("<p>Bepaal nu wie de 3FM Awards in ontvangst gaan nemen. Geef op de volgende pagina’s steeds één keuze door.</p>");
				$(pageObj).find(".nominees").append("<p><span class=\"linkTo\"><a class=\"gotoVote\" href=\"gotoVote\">Ga nu stemmen!</a>&nbsp;&nbsp;&nbsp;</span</p>");
				*/
				
				$(pageObj).find(".nominees").load("/page/aw09_introtext", function ()
				{
					//Als er pp de link wordt geklinkt dan voer onderstaande functie uit
					$("a.gotoVote").bind("click", function()
					{ 
						$.voting.browsePages ( pageObj, true );
						return false;
					});
				});
			}
			
			//genereer de pagina "NL Top 100"
		,	page_nltop100 :  function( pageObj )
			{
				var optionsTitle = $.voting.nomineesData.nominees[$.voting.pageNr].title;

				//zet de huidige pagina "bold" in het crumb path
				$(".navigation ul li").removeClass("active");
				$(".nl_top").addClass("active");
				
				//laad externe HML template
				$(pageObj).find(".nominees").empty();
				$(pageObj).find(".nominees").load("/page/aw08_gegevens", function() 
				{
					/*
					* als externe template geladen is voor ondestaande script uit
					*/
					
					//$("div.stemmen-block-content").removeClass("stemmen-block-content-verstuur");
					
					if($.voting.nomineesData.nominees[$.voting.pageNr].vote)
						$("p.choice").html($(pageObj).find("."+$.voting.nomineesData.nominees[$.voting.pageNr].vote).text());
					
					$("textarea.yourchoice").val($.voting.nomineesData.nominees[$.voting.pageNr].motivation);

					$("ul#selectCharacter li").bind("mousedown", function() 
					{
						$("ul#selectCharacter li").removeClass("item-active");
						$(this).addClass("item-active");
						
						return false;
					});
					
					//Als er op de een van de letters geklikt wordt voer onderstaande script uit
					$("ul#selectCharacter li").bind("click", function()
					{ 
						var	myRegExpText = $(this).text().replace(/^\s+|\s+$/,'');
						var myRegExpVar = (myRegExpText.indexOf("All") != -1) ? "" :  $(this).attr("id") ? $(this).attr("id") : myRegExpText;
						
						//genereer alle lijst opties
						$("ul.list li").each( function(  )
						{
							var	myRegExp = new RegExp("^"+myRegExpVar, "gi");
							
							if (myRegExp.test($(this).attr("title").replace(/^\s+|\s+$/,'')))
							{
							
								$(this).show();
							}
							else
								$(this).hide();
						});
					
						return false; 
					});
					
					//Als er op de zoek button geklikt wordt: voer uit
					$("input[type='text'].searchText").bind("mousedown", function() 
					{
						if($("input[type='text'].searchText").val() == "Zoek artiest of titel")
							$("input[type='text'].searchText").val(""); 
					});
					
					//Als er op de zoek button geklikt wordt: voer uit
					$("input[type='button'].searchButton").bind("click", function() 
					{
						if($("input[type='text'].searchButton").val() == "")
							return false;
						
						
						var	myRegExpText = $("input[type='text'].searchText").val().replace(/^\s+|\s+$/,'');
						var	myRegExp = new RegExp(myRegExpText, "gi");
					
						//genereer alle lijst opties
						$("ul.list li").each( function(  )
						{
							var	myRegExp = new RegExp(myRegExpText, "gi");
							var	value = $(this).text().replace(/^\s+|\s+$/,'');
							
							if (myRegExp.test(value))
								$(this).show();
							else
								$(this).hide();
						});
					});
					
					$("textarea.yourchoice").bind("change", function()
					{ 
						$.voting.nomineesData.nominees[$.voting.pageNr].motivation =$(this).val() 
					});
					
					$("ul.list li").bind("click", function(){ $("p.choice").html($(this).text()); });
					$("ul.list li").bind("mousedown", function() 
					{
						$.voting.nomineesData.nominees[$.voting.pageNr].vote = $(this).text();
					
						$("ul.list li").removeClass("item-active");
						$(this).addClass("item-active");
						
						return false;
					});
				});
			}
		
			//genereer de pagina "je gegevens"
		,	page_jegegevens :  function( pageObj )
			{
				var optionsTitle = $.voting.nomineesData.nominees[$.voting.pageNr].title;
				var optionsMotivation = $.voting.nomineesData.nominees[($.voting.pageNr-1)].motivation;
				
				//zet de huidige pagina "bold" in het crumb path
				$(".navigation ul li").removeClass("active");
				$(".je_gegevens").addClass("active");
				
				$("div.stemmen-block-content").addClass("stemmen-block-content-verstuur");

				$(pageObj).find(".nominees").empty();
				$(pageObj).find(".nominees").load("/static/pages/gegevens.htm", function() 
				{ 
					var categories = $.voting.nomineesData.nominees;
					
					$("img.captcha").attr("src", $("img.captchaImg").attr("src"));
					
					for(itemData in categories)
					{
						$("div#votesBoxes").append("<input name=\""+categories[itemData].title+"\" type=\"hidden\" value=\""+categories[itemData].vote+"\" />");
					}
					
					$("div#votesBoxes").append("<input name=\"motivation\" type=\"hidden\" value=\""+optionsMotivation+"\" />");
				});
			}
			
			//genereer de "stemm pagina's"
		,	createVoteOptions : function( pageObj )
			{
				var optionsTitle = $.voting.nomineesData.nominees[$.voting.pageNr].title;
				var optionsVote = $.voting.nomineesData.nominees[$.voting.pageNr].vote;
				var optionsData = $.voting.nomineesData.nominees[$.voting.pageNr].items;

				//zet de huidige pagina "bold" in het crumb path
				$(".navigation ul li").removeClass("active");
				$("."+optionsTitle.replace(" ", "_").toLowerCase()).addClass("active");

				$(pageObj).find(".nominees").empty();
				$(pageObj).find(".nominees").append("<div class=\"nominees-error\">Je bent verplicht een keuze te maken!</div>");
			
				//genereer stem opties
				for(itemData in optionsData)
				{
					
					//alert("ERROR: "+optionsVote + " : " + optionsData[itemData].title)
					
					if(optionsVote == optionsData[itemData].title)
					{
						//active opties
						var template = "<a id=\""+optionsData[itemData].title+"\" class=\"voteOption active\" href=\""+optionsData[itemData].title+"\">";
							template += "<input type=\"radio\" class=\"radioButton\" name=\"radioButton\" checked=\"checked\" />";
							template += "<img src=\"http://awards.3fm.nl/static/images/votes/"+optionsData[itemData].image+"\" />";
							template += "<span>"+optionsData[itemData].title+"</span>";
							template += "</a>";
					}
					else
					{
						var template = "<a id=\""+optionsData[itemData].title+"\" class=\"voteOption\" href=\""+optionsData[itemData].title+"\">";
							template += "<input type=\"radio\" class=\"radioButton\" name=\"radioButton\" />";
							template += "<img src=\"http://awards.3fm.nl/static/images/votes/"+optionsData[itemData].image+"\" />";
							template += "<span>"+optionsData[itemData].title+"</span>";
							template += "</a>";
					}

					//zet stem opties op de pagina
					$(pageObj).find(".nominees").append(template);
					$(pageObj).find(".nominees").append("<div class=\"nominees-footer\"></div>");
				}
				
				//Hier worden nog wat events aan de lijst gekoppeld
				$(pageObj).find(".voteOption").bind("mouseenter", function(){ $(this).addClass("hover"); });
				$(pageObj).find(".voteOption").bind("mouseleave", function(){ $(this).removeClass("hover"); });
				$(pageObj).find(".radioButton").bind("mousedown", function(){ $(this).attr("checked", "checked"); return false; });
				$(pageObj).find(".voteOption").bind("click", function()
				{
					$(".voteOption").removeClass("active");
					
					$.voting.nomineesData.nominees[$.voting.pageNr].vote = $(this).attr("id");

					$(this).removeClass("hover").addClass("active");
					$("input", this).attr("checked", "checked");
					
					return false;
				});
			}
	 });


	$.fn.extend
	({
		voting : $.voting.build
	});
