
var Hole20Class = new Class ({

	initialize: function()
	{
		// Remove tooltips:
		// $$('div[title]').addEvent('mousemove', function(){return false;});
		this.setEvents();
	},

	setEvents: function()
	{
		var QuickSearch = $('quickSearchForm');

		if(QuickSearch) {
			QuickSearch.removeEvents();
			QuickSearch.addEvent('submit', this.submitQuickSearchForm.create({bind: this}));
		}
		
		this.addInputTip('metaUsername');
		this.addInputTip('metaPassword');
	},
	addInputTip: function(el){
		// deze methode zorgt ervoor dat de 'title' van een input element in de "val" komt als deze leeg is
		
		if (el = $(el)) {
			if (el.get('value') == '') {
				el.set('value', el.get('title'));
			}
			el.addEvent('focus', this.inputTipFocus);
			el.addEvent('blur', this.inputTipBlur);
		}
	},
	inputTipFocus: function(event){
		trg = $(event.target);
		if(trg.get('value') == trg.get('title')){
			trg.set('value', '');
		}
		
	},
	inputTipBlur: function(event){
		trg = $(event.target);
		if(trg.get('value') == ''){
			trg.set('value', trg.get('title'));
		}
	},
	submitQuickSearchForm: function(oEvent)
	{
		var oForm = $(oEvent.target);
		
		if(oForm)
		{
			sPostUrl = $('searchCategory').value;
			
			if ( sPostUrl )
			{
				oForm.set('action',LINK_ROOT + '/' + sPostUrl);
				oForm.submit();
			}
		}
		return false;
	},

	submitForm: function(oEvent)
	{

		var oBtn = this.getButton(oEvent);
		this.showLoader(oBtn);

		oForm = $(oBtn.get('rel'));

		if(oForm)
		{
			var validator = oForm.retrieve('validation');
			if( validator!=null && !validator.doValidate() ){
				Hole20.hideLoader(oBtn);
				return false;
			} else {
				oTarget = new Element('input', {type: 'hidden', name: 'target', value: oBtn.get('href')});
				oForm.adopt(oTarget);
				oForm.submit();
			}
		}
		else
		{
			console.log("Form '" + oBtn.get('rel') + "' not found!");
		}
		return false;
	},

	// Sets de focus in the first input element with an id begining with sId
	setFocus: function(sId)
	{
		var oFirstInput = $$('input[id^='+sId+']')[0];
		if (oFirstInput)
		{
			oFirstInput.focus();
		}
	},

	getButton: function(oEvent)
	{
		var oBtn = $(oEvent.target);
		while(oBtn.get('tag') != 'a')
		{
			oBtn = oBtn.getParent();
		}
		return oBtn;
	},

	getImage: function(oBtn)
	{
		var aChildren = oBtn.getChildren();

		for (i = 0; i < aChildren.length; i++)
		{
			sTag = aChildren[i].get('tag');

			switch(sTag)
			{
				case 'img':
					return $(aChildren[i]);

				case 'span':
					var oImg = this.getImage($(aChildren[i]));
					oImg.setStyle('margin-right', '-40px');
					oImg.setStyle('margin-left', '24px');
					return oImg;
			}
		}

		var oImg = new Element('img');

		oImg.setStyle('width', '16px');
		oImg.setStyle('height', '16px');
		oImg.setStyle('margin-top', '-16px');
		oImg.setStyle('margin-right', '-16px');

		oBtn.adopt(oImg);

		return oImg;
	},

	showLoader: function(oBtn)
	{
		var oImg = this.getImage(oBtn);
		oImg.set('src_', oImg.get('src'));
		oImg.set('src', LINK_ROOT+'/images/design/buttons/ajax-loader.gif');
	},

	hideLoader: function(oBtn)
	{
		var oImg = Hole20.getImage(oBtn);

		sImg = oImg.get('src_');

		if (sImg)
		{
			oImg.set('src', oImg.get('src_'));
		}
		else
		{
			oImg.dispose();
		}
	}
})

hole20init = function()
{
	Hole20 = new Hole20Class();
}

var Hole20;

window.addEvent('domready', hole20init);


function isdefined( variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

