function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}

function checkForm()
{	
	var title = document.getElementById('saveAlertTitle').value;
	var txt = document.getElementById('saveIdeaTxt').value;
	var emlTxt = document.getElementById('emailInvalidTxt').value;
	var emailEmptyTxt = document.getElementById('emailEmptyTxt').value;
	if(document.getElementById('saveEmail').value == 'email@domein.nl')
	{
		createCustomAlert(emailEmptyTxt,"Gift-seek");
		return false;
	}
	if(checkemail(trim(document.getElementById('saveEmail').value)))
	{
		createCustomAlert(txt,title);
		return true;
	}
	else
	{
		createCustomAlert(emlTxt,"Gift-seek");
		return false;
	}

}
function checkWhatToDo()
{

	if(document.getElementById('ideaStartContent'))
	{
		//We zitten op de start page
		var txt = document.getElementById('noIdeasTxt').value;
		alert(txt,"Gift-seek");
		return false;
	}
	if(document.getElementById('ideaList'))
	{
		//We zitten op de ideen lijst
		$('saveImg').src = 'images/nl/ideaSave.jpg';
		return true;
	}		
	if(document.getElementById('saveIdea'))
	{
		//We zitten op de save page
		if(checkForm())
		{
		$('saveImg').src = 'images/nl/ideaMail.jpg';
		return true;
		}
		return false;
	}
	
return false;		
}
function checkDefaultName(obj,defTxt)
{
	if(obj.value == defTxt)
	{
		obj.value = '';
	}
}
function goNextResult(page)
{
 document.getElementById('pageField').value = page;
 return true;
}
function gotoResultPage(page)
{
		document.getElementById('pageField').value = (page - 1);
		var wwwResult = $('wwwResult_res');
		var resultHider = $('resultHider').empty().addClass('ajax-loading');
		var pagerBottom = $('pagerBottom').empty();
		topScroll();
		
		$('wwwFormPage').send({
			update: wwwResult,
			onComplete: function() {
			var toolTips = new Tips($$('#tipsCont .toolTip'));
			
			}
			});
}
function checkOccasion(txt)
{
	
	var theForm = document.getElementById("wwwForm");
	
	var num_of_elements = theForm.length;
	
	var occ = 0;
	
	var typ = 0;
	
	for (var i=0; i<num_of_elements; i++) 
	{
		var theElement = theForm.elements[i];
		var element_type = theElement.type;
		var element_name = theElement.name;
		var element_value = theElement.value;
		
		if (element_type == "checkbox") 
		{
			if (theElement.checked == true) 
			{
				
				if(element_name == 'occasion[]')
				{
					occ++;
				}				
				if(element_name == 'type[]')
				{
					typ++;
				}
			}
		}
	}
	if(occ == 0 || typ == 0)
	{
		if(occ == 0)
		{
			txt = txt + 'gelegenheden';
		}
		if(occ == 0 && typ ==0)
		{
			txt = txt + ' en ';
		}
		if(typ == 0)
		{
			txt = txt + 'cadeau types';
		}
		alert(txt,"Gift-seek");
		return false;
	}
	else
	{
		return true;
	}
}
function checkemail(emailAdd)
{
	var str= emailAdd;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(str))
	{
		return true;
	}
	else
	{
		return false;
	}
}
	
function clearForm() 
{
	document.forms[0].reset();
};

/**
* @file elSelect.js
* @downloaded from http://www.cult-f.net/2007/12/14/elselect/
* @author Sergey Korzhov aka elPas0
* @site  http://www.cult-f.net
* @date December 14, 2007
* 
*/
var Input = {
   initialize: function() {
     if(document.getElementsByTagName("form")) {
			var divs = document.getElementsByTagName("div");
			for(var i = 0; i < divs.length; i++) {
				if(divs[i].className.match("checkbox") || divs[i].className.match("radio")) {
					divs[i].onmousedown = Input.effect;
					divs[i].onmouseup = Input.handle;
					window.onmouseup = Input.clear;
				}
			}
		}
	},
	
	effect: function() {
		if(this.className == "checkbox" || this.className == "radio") {
			this.style.backgroundPosition = "0 -26px";
		} else {
			this.style.backgroundPosition = "0 -79px";
		}
	},

	handle: function() {
		var selector;
		selector = this.getElementsByTagName("input")[0];
		if(this.className == "checkbox") {
			selector.checked = true;
			this.className = "checkbox selected";
			this.style.backgroundPosition = "0 -52px";
		} else if(this.className == "checkbox selected") {
			selector.checked = false;
			this.className = "checkbox";
			this.style.backgroundPosition = "0 0";
		} else {
			selector.checked = true;
			this.className = "radio selected";
			this.style.backgroundPosition = "0 -52px";
			inputs = document.getElementsByTagName("input");
			for(i = 0; i < inputs.length; i++) {
				if(inputs[i].getAttribute("name") == selector.getAttribute("name")) {
					if(inputs[i] != selector) {
						inputs[i].parentNode.className = "radio";
						inputs[i].parentNode.style.backgroundPosition = "0 0";
					}
				}
			}
		}
	},

	clear: function() {
		var divs;
		divs = document.getElementsByTagName("div");
		for(var i = 0; i < divs.length; i++) {
			if(divs[i].className == "checkbox" || divs[i].className == "radio") {
				divs[i].style.backgroundPosition = "0 0";
			} else if(divs[i].className == "checkbox selected" || divs[i].className == "radio selected") {
				divs[i].style.backgroundPosition = "0 -52px";
			}
		}
	}
}
	window.onload = Input.initialize;

var elSelect = new Class({
	options: {
		container: false,
		baseClass : 'elSelect'
	},
	source : false,
	selected : false,
	_select : false,
	current : false,
	selectedOption : false,
	dropDown : false,
	optionsContainer : false,
	hiddenInput : false,
	/*
	pass the options,
	create html and inject into container
	*/
	initialize: function(options){
		this.setOptions(options)
		
		if ( !this.options.container ) return
		
		this.selected = false
		this.source = $(this.options.container).getElement('select')
		this.buildFrameWork()
		
		$(this.source).getElements('option').each( this.addOption, this )
		$(this.options.container).setHTML('')
		this._select.injectInside($(this.options.container))
		
		this.bindEvents()
		
	},
	
	buildFrameWork : function() {
		this._select = new Element('div').addClass( this.options.baseClass )
		this.current = new Element('div').addClass('selected').injectInside($(this._select))
		this.selectedOption = new Element('div').addClass('selectedOption').injectInside($(this.current))
		this.dropDown = new Element('div').addClass('dropDown').injectInside($(this.current))
		new Element('div').addClass('clear').injectInside($(this._select))
		this.optionsContainer = new Element('div').addClass('optionsContainer').injectInside($(this._select))
		var t = new Element('div').addClass('optionsContainerTop').injectInside($(this.optionsContainer))
		var o = new Element('div').injectInside($(t))
		var p = new Element('div').injectInside($(o))
		var t = new Element('div').addClass('optionsContainerBottom').injectInside($(this.optionsContainer))
		var o = new Element('div').injectInside($(t))
		var p = new Element('div').injectInside($(o))
//Patch
		this.hiddenInput = new Element('input').setProperties({
		type : 'hidden',
		name : this.source.getProperty('name')
		}).injectAfter($(this.options.container))
		
		
		
	},
	
	bindEvents : function() {
		document.addEvent('click', function() { 
				if ( this.optionsContainer.getStyle('display') == 'block') 
					this.onDropDown()
			}.bind(this));
			
		$(this.options.container).addEvent( 'click', function(e) { new Event(e).stop(); } )		
		this.current.addEvent('click', this.onDropDown.bindWithEvent(this) )
		
	},
	
	//add single option to select
	addOption: function( option ){
    	var o = new Element('div').addClass('option').setProperty('value',option.value)
		if ( option.disabled ) { o.addClass('disabled') } else {
			o.addEvents( {
				'click': this.onOptionClick.bindWithEvent(this),
				'mouseout': this.onOptionMouseout.bindWithEvent(this),
				'mouseover': this.onOptionMouseover.bindWithEvent(this)
			})
		}
		
		if ( $defined(option.getProperty('class')) && $chk(option.getProperty('class')) ) 
			o.addClass(option.getProperty('class'))

	
		if ( option.selected ) { 
			if ( this.selected) this.selected.removeClass('selected');
			this.selected = o
			o.addClass('selected')
			this.selectedOption.setText(option.text);
			this.hiddenInput.setProperty('value',option.value);
		}
		o.setText(option.text)		
		o.injectBefore($(this.optionsContainer).getLast())
	},
	
	onDropDown : function( e ) {
			
			if ( this.optionsContainer.getStyle('display') == 'block') {
				this.optionsContainer.setStyle('display','none')
			} else {
				this.optionsContainer.setStyle('display','block')
				this.selected.addClass('selected')
				//needed to fix min-width in ie6
				var width =  this.optionsContainer.getStyle('width').toInt() > this._select.getStyle('width').toInt() ?
															this.optionsContainer.getStyle('width')
															:
															this._select.getStyle('width')
															
				this.optionsContainer.setStyle('width', width)
				this.optionsContainer.getFirst().setStyle('width', width)
				this.optionsContainer.getLast().setStyle('width', width)
			}						
	},
	onOptionClick : function(e) {
		var event = new Event(e)
		if ( this.selected != event.target ) {
			this.selected.removeClass('selected')
			event.target.addClass('selected')
			this.selected = event.target
			this.selectedOption.setText(this.selected.getText());
			this.hiddenInput.setProperty('value',this.selected.getProperty('value'));
		}
		this.onDropDown()
	},
	onOptionMouseover : function(e){
		var event = new Event(e)
		this.selected.removeClass('selected')
		event.target.addClass('selected')
	},
	onOptionMouseout : function(e){
		var event = new Event(e)
		event.target.removeClass('selected')
	}
	
});
elSelect.implement(new Events);
elSelect.implement(new Options);

