var CONFIG = {};

var objorgslide;
var arrNominations = new Array();

// Cufon
Cufon.replace('ul.list-navigation li a', { fontFamily: 'VAG Rounded Std', hover: true });
Cufon.replace('h2', { fontFamily: 'VAG Rounded Content', hover: true });
Cufon.replace('div.winner h1', { fontFamily: 'VAG Rounded Std', hover: true});

window.addEvent('domready', function()
{	
	// Base HREF
	var baseHref = $(document.head).getElement('base');
	CONFIG.BASE_URL = baseHref.href;
	
	
	if($$('form.form-subscribe')){
		formSubmit();
	}
	
	// On focus clear input
	$$('form.form-subscribe input[type=text]').each(function(elInput)
	{
		elInput.addEvent('focus', function()
		{
			doClear(elInput);
		});
		elInput.addEvent('blur', function()
		{
			resetField(elInput);
		});
	});
	
	//Overlayer
	var objLightbox = new Lightbox('.lightbox');

	// Tooltip
	$$('a.tipz').each(function(element,index) {
		var content = element.get('title').split('::');
		element.store('tip:title', content[0]);
		element.store('tip:text', content[1]);
	});
	
	var tipz = new Tips('.tipz',{
		className: 'tipz',
		fixed: true,
		hideDelay: 50,
		showDelay: 50
	});
	
	
	
	

	if($('orgslide') || $('org-vote'))
	{		
		var arrNominationsCookie = Cookie.read('nominations');
		if(null != arrNominationsCookie)		
		{
			$$('a.stem').tween('opacity', 0.5);
			arrNominations = JSON.decode(arrNominationsCookie);						
			arrNominations.each(function(id)
			{
				
				if($('nominated_'+id))
				{
					var elNominated = $('nominated_'+id);
					
					elNominated.getChildren('a.stem').fade(0.5);
					elNominated.getChildren('a.stem').addClass('voted');	
				}
										 
			});
		
		}
		if($('orgslide')){
			objorgslide = new orgslide($('orgslide'), $('orgslide').getElement('.wrapper'));
		}
		$$('span.hasvoted').fade('hide');
		
		$$('div.emailForm').fade('hide');
			
		$$('a.stem').addEvents(
		{			
			click: function(event)
			{
				event.stop();
				var arrNominationsCookie = Cookie.read('nominations');
				if(null != arrNominationsCookie)
				{
				
					var hasVoted = this.getNext('span.hasvoted');
					hasVoted.set('html', 'u heeft al gestemd!');
					hasVoted.fade(0.7);
					
					return false;
				}
				
				if(this.hasClass('voted'))
				{
					var hasVoted = this.getNext('span.hasvoted');
					hasVoted.set('html', 'u heeft hier al<br />op gestemd!');
					hasVoted.fade(0.7);
				}
				else
				{
					strOrgId = this.getParent().getElement('div.hidden').innerHTML;

					var objRequest = new Request(
					{
						method: 'get',
						url: 'index/vote/',
						onComplete: function()
						{	
							if($('orgslide')){
							objorgslide.intTimer = $clear(objorgslide.intTimer);
							}
							this.fade(0.5);
							this.addClass('voted');
							
							var hasVoted = this.getNext('span.hasvoted');
							hasVoted.set('html', 'U heeft gestemd!<br>&nbsp;');
							hasVoted.fade(0.7);							
							
							if(!Cookie.read('emailvote'))
							{
								// get email form
								
								$('nominations').tween('height','490');
								   
								var emailForm = this.getNext('div.emailForm');
								emailForm.fade(1);
							}
							
							if(!arrNominations.contains(strOrgId))
							{
								arrNominations.push(strOrgId);
							}

							Cookie.write('nominations', JSON.encode(arrNominations), {duration: 40});
						}.bind(this)
					});
					objRequest.send('strOrg='+strOrgId);
				}
			}			
		});
		
		$$('.emailForm form').each(function(contactForm, key)
		{
			var contactResponse = contactForm.getElement('span.error');
			contactForm.set('send',
			{
				onComplete: function(response)
				{
					response = JSON.decode(response);
				
					if(response.valid)
					{
						var hideForm = function() { 
							
							$$('.emailForm').fade('hide');
							$('nominations').tween('height','385');
						
						}					
						
						
						inputFields = contactForm.getElements('input');
						inputFields.setStyle('display', 'none');						
						contactResponse.removeClass('error');
						contactResponse.set('html', 'We hebben uw email adres ontvangen!');
						
						hideForm.delay(5000);
						
						Cookie.write('emailvote', true, {duration: 40})
					}
					else
					{
						contactResponse.set('html', response.message);
					}
					
				/*	(function()
					{
						if (response.length > 0)
						{
							contactResponse.set('html', 'Niet alle velden zijn juist ingevuld / Not all the fields are filled in correctly').addClass('error');
							contactForm.getElements('input, textarea').removeClass('errorField');
							response.errors.each(function(error)
							{
								if (document.id(error))
								{
									document.id(error).addClass('errorField');
								}
							});
						}
						else
						{
							contactResponse.set('html', 'Hartelijk dank voor uw aanmelding / Thank you for your signup').removeClass('error');
							contactForm.getElement('fieldset').setStyle('display', 'none');
						}
					}).delay(500);
					*/
				}
			});
			contactForm.addEvent('submit', function(e)
			{
				e.stop();
			//	contactResponse.set('html', 'Uw gegevens worden gecontroleerd / Your records are being checked');
				contactForm.send();
			});

		});

	}
	
});


// temporary/custom setup for Uitreiking Formulier(fase3)
function formSubmit(){
	var form = $$('form.form-subscribe')[0];
	if (form){
		form.addEvent('submit', function(e){
			e.stop();
			var error = false;
	
			form.getElements('input').each(function(input, i){
				var inputValue = input.get('value');
			
				if (inputValue.length < 1 || 
					inputValue ==  'Voorletters' || 
					inputValue == 'Bedrijfsnaam' || 
					inputValue == 'Functie' || 
					inputValue == 'Voornaam' || 
					inputValue == 'Telefoon' || 
					inputValue == 'Achternaam' || 
					inputValue == 'Adres' || 
					inputValue == 'Postcode' || 
					inputValue == 'Woonplaats' || 
					inputValue == 'E-mail') {
					
					error = true;
					input.addClass('errorField');				
				}
				else { 
					input.removeClass('errorField'); 						
				}
			});
			
			if (error) { 
				return false; 
			} else{
				form.submit();
			}
		});
	}		
}



var orgslide = new Class(
{
	options:
	{
		intDuration: 500,
		intDelay: 5000,
		intStep: 300,
		intPosition: 0,
		intActive: 0,
		intItems: 3,
		objMorph: null
	},
	
	Implements: [Options,Events],
	
	initialize: function(elWrapper,elSlider,Options)
	{
		this.blnAnimating = false;
		this.intTimer = 0;
		
		this.elWrapper = $(elWrapper);
		this.elSlider = $(elSlider);
		
		this.intItems = this.elSlider.getElements('div.nominated').length;
		
		this.options.objMorph = new Fx.Morph(this.elSlider.getElement('div.absolute'),
		{
			link: 'cancel',
			duration: this.options.intDuration,
			transition: Fx.Transitions.Sine.easeOut,
			onStart: function()
			{
				this.blnAnimating = true;
			}.bind(this),
			onComplete: function()
			{
				this.blnAnimating = false;
			}.bind(this)
		});
		
		this.addButtonEvents();
		
		this.setPeriodical();
	},
	
	setPeriodical: function()
	{
		this.intTimer = this.getNext.periodical(this.options.intDelay, this);
	},
	
	addButtonEvents: function()
	{
		this.elWrapper.getElement('.slider-left').addEvents(
		{
			click: function(event)
			{
				event.preventDefault();
				if (this.blnAnimating == false)
				{
					this.intTimer = $clear(this.intTimer);
					this.setPeriodical();
					this.getPrev();
				};
			}.bind(this)
		});
		
		this.elWrapper.getElement('.slider-right').addEvents(
		{
			click: function(event)
			{
				event.preventDefault();
				if (this.blnAnimating == false)
				{
					this.intTimer = $clear(this.intTimer);
					this.setPeriodical();
					this.getNext();
				};
			}.bind(this)
		});
	},
	
	getPrev: function()
	{
		if (this.options.intActive == 0)
		{
			this.options.intPosition -= this.options.intStep;
			this.elSlider.getElement('.absolute').getLast().inject(this.elSlider.getElement('.absolute'), 'top');
			this.elSlider.getElement('.absolute').setStyle('left', this.options.intPosition);
			this.options.intPosition += this.options.intStep;
		}
		else
		{
			this.options.intPosition += this.options.intStep;
			this.options.intActive--;
		}
		this.slide();
	},
	
	getNext: function()
	{
		this.options.intPosition -= this.options.intStep;
		this.options.intActive++;
		if ((this.options.intActive + this.options.intItems) == this.intItems)
		{
			this.elSlider.getElement('.absolute').getFirst().inject(this.elSlider.getElement('.absolute'), 'bottom');
			this.options.intPosition += this.options.intStep * 2;
			this.elSlider.getElement('.absolute').setStyle('left', this.options.intPosition);
			this.options.intPosition -= this.options.intStep;
			this.options.intActive--;
		};
		this.slide();
	},
	
	slide: function()
	{
		this.options.objMorph.start(
		{
			'left': this.options.intPosition
		});
	}
});


function doClear(field) 
{
	if (field.value == field.defaultValue) 
	{
	 	field.value = '';
	}
}
function resetField(field) 
{
	if (field.value == '') 
	{
		field.value = field.defaultValue;
	}
}

var Lightbox = new Class(
{
	strClass: null,
	objMask: null,
	elOverlayer: null,
	elContent: null,
	elBtnClose: null,
	objScroll: null,
	initialize: function(argStrClass)
	{
		this.strClass = argStrClass;
		this.objMask = new Mask();
		this.elOverlayer = $('lightbox');
		
		if(!this.elOverlayer) {
			return false;
		}
		
		this.elContent = $('lightbox-content');
		this.elBtnClose = $('close');
		
		this.objMask.addEvent('click', function(e)
		{
			this.closeBox();
		}.bind(this));
		
		$$(this.strClass).each(function(elAnchor)
		{
			elAnchor.addEvent('click', function(e)
			{
				e.stop();
				
				this.showBox(elAnchor.href, elAnchor.rel);
			}.bind(this));
		}.bind(this));
		
		//close with esc key
		document.addEvent('keydown', function(event)
		{
			if(event.code == 27)
			{
				this.objMask.toggle();
				this.closeBox();
			}
		}.bind(this));
		
		//close button
		this.elBtnClose.addEvent('click', function(e)
		{
			e.stop();
			this.closeBox();
		}.bind(this));
	},
	addEvents: function()
	{
		//
	},
	showBox: function(argStrUrl, argStrRel)
	{
		this.objMask.toggle();
		this.elOverlayer.setStyle('display', 'block');
		
		/*if($('flashcontent'))
		{
			$('flashcontent').destroy();
			new Element('div',
			{
				'id': 'container'
			}).inject(this.elContent);
		}*/
		
		var flashvars = {
			src: argStrUrl,
			poster: argStrRel,
			autoPlay: true,
			wmode: 'transparent',
			playButtonOverlay: false
		};
		var params = {
			wmode: 'opaque',
			allowscriptaccess: 'always',
			allowFullScreen: 'true',
			name: 'StrobeMediaPlayback'
		};
		var attributes = {
			id: 'flashcontent'
		};
		swfobject.embedSWF(
							CONFIG.BASE_URL + 'inc/swf/StrobeMediaPlayback.swf', 
							'container', 
							'640', 
							'360', 
							'10.0.0', 
							false, 
							flashvars, 
							params, 
							attributes
		);
		
		if(isIE6())
		{
			new Fx.Scroll($(document.body)).toTop();	
		}
	},
	closeBox: function()
	{
		swfobject.removeSWF('container');
		this.elContent.innerHTML = '';
		new Element('div', { id: 'container' }).inject(this.elContent);
		
		this.objMask.toggle();
		this.elOverlayer.setStyle('display', 'none');
	},
	toggleMask: function()
	{
		this.objMask.toggleMask();
	}
});

function isIE6() {
	return (navigator.userAgent.toLowerCase().indexOf('msie 6') != -1) && (navigator.userAgent.toLowerCase().indexOf('msie 7') == -1);
}
