if( !console ){
	var log = function(){}
	var console = {
		'log':log,
		'debug':log,
		'error':log
	}
}

var SollicitatieLog = {};

SollicitatieLog.setMouseEvent = function(e){
	this._mouseEvent = e;
};
SollicitatieLog._mouseEvent = null;
SollicitatieLog._xhr = null;
SollicitatieLog._data = [];
SollicitatieLog._time = [];
SollicitatieLog._intervalId = null;

SollicitatieLog.empty = function(){
	this._data = [];
}

SollicitatieLog.getTime = function(){
	var time = new Date().getTime()/1000;
	return time - this._time;
}

SollicitatieLog.start = function(){
	this._time = Math.round( new Date().getTime()/1000 );
	this._mouseEvent = {'client':{'x':0,'y':0}};
	
	// log xhr
	if(this.xhr == null){
		this.xhr = new Request.JSON({'url':'api/solliciteren/log'});
	}

	$$('button').addEvent('click', SollicitatieLog.log.bind(this) );
	$$('input, select').addEvent('focus', SollicitatieLog.log.bind(this) );
	$$('input, select').addEvent('change', SollicitatieLog.log.bind(this) );

	// this._intervalId = this.log.periodical(1000, this);
	
}

SollicitatieLog.log = function(e){
	var obj = {};
	obj.time = this.getTime();
	obj.windowsize = window.getSize();
	obj.position = {
		'x':this._mouseEvent.client.x,
		'y':this._mouseEvent.client.y
	};
	obj.type = e.type;
	obj.target = e.target.title;
	obj.value = e.target.get('value');
	
	this.xhr.post(obj);
}

SollicitatieLog.stop = function(){

	$$('input,select').removeEvents('focus');
	$$('select').removeEvents('change');
	$$('button').removeEvents('click');

	clearInterval(this._intervalId);
}



/**
 *	McDonald
 */
var Mcd = {};

Mcd.initialize = function(e){
	
	// initialize all xhr objects
	Mcd.Hash._xhr = new Request.HTML({
		'noCache':true,
		'onSuccess':Mcd.Hash.changeContent,
		'evalScripts':false
	});

	// setup hash address
	Mcd.Hash._baseUrl = $$('base')[0].href;
	window.addEvent('hashchange',Mcd.Hash.onChange);

	Mcd.Hash.changeLinks($$('#wrapper')[0]);
	
	// has hash go to that page.
	if( location.hash != '' && location.hash != '#http://www.mcdonalds.nl/werk' ){
		window.fireEvent('hashchange', [location.hash]);
	} else {
		new Mcd.Spotlight({'type':'hrm20068','cat':'homep781'});	
	}
	
	// overlayer setup
	Overlay.initialize();
	
	// banner home autoplay
	// $('banner-home').play();
	
	
	if( location.hash == '' 
		&& Cookie.read('site_intro_js') == null )
	{
		var myCookie = Cookie.write('site_intro_js', 'once', {duration: 1});
		
		var flashvars = { 'clickTag': '' }
		var params = { 'wmode': 'transparent', 'allowScriptAccess': 'sameDomain' }
		swfobject.embedSWF('inc/swf/site_intro_js.swf', 'site_intro', "1000", "688", "8", 'inc/js/swfobject/expressInstall.swf', flashvars, params);
		
	}
	
	
	// add mousemove 
	$(document.body).addEvent('mousemove', function(e){
		SollicitatieLog.setMouseEvent(e);
	});
}

var Flash = {
	intro:{
		stopped:function(){
			$('site_intro').destroy();
			$('wrapper').setStyle('position','');
			$('site_intro_holder').setStyles({
				'height':1,
				'width':1	
			});
			$('banner-home').startVideo();
		},
		loaded:function(){
			$('site_intro_holder').setStyles({
				'height':$('wrapper').getSize().y,
				'width':$('wrapper').getSize().x	
			});
			$('wrapper').setStyle('position','relative');
		}
	},
	pet:{
		loaded:function(){
			if( location.hash == '' 
				&& location.href == $$('base')[0].href 
				&& Cookie.read('site_intro_js') == null ){
					
			} else {
				$('banner-home').startVideo();
			}
		}
	}
};

Flash.intro.loaded

Mcd.Scrollbar = null;
Mcd.Solliciteren = null;

Mcd.Hash = {};
Mcd.Hash._baseUrl = '';
Mcd.Hash.changeLinks = function(el){
	var elements = el.getElements('a[href^="/"]:not(a.overlayer,a.overlayer-wide)');
	elements.addEvent('click', this.onClick );
}

Mcd.Hash.onClick = function(e){
	e.preventDefault();
	e.stop();
	var value = this.href.replace(Mcd.Hash._baseUrl,'');
	location.hash = value;
	
	return false;
}

Mcd.Hash._getvars = {};
Mcd.Hash.onChange = function(str){
	var href = str.replace('#',Mcd.Hash._baseUrl);
	Mcd.Hash.changeContent(href);
	
	if( window != window.top ){
		var querystring = location.href.substr(location.href.lastIndexOf('?')+1).split('&');

		var length = querystring.length;
		for(var i = 0;i < length; ++i){
			if( querystring[i] != ''){
				var a = querystring[i].split('=');
				Mcd.Hash._getvars[a[0]] = a[1];
			}
		}
		
		// http://mcd.parcproductions.com/?&source=http%3A//www.mcdonalds.nl/werk&rnd=1305202680&test=true#
		if( Mcd.Hash._getvars.test ){
			window.top.location.href = unescape(Mcd.Hash._getvars.source)+'#'+str.replace('#','');
		}
	}


	// spotlight check.
	switch( str.replace('#', '') ){
		
		case '':{
			new Mcd.Spotlight({'type':'hrm20068','cat':'homep781'});
			break;	
		}
		case 'functies':{
			new Mcd.Spotlight({'type':'hrm20068','cat':'funct993'});
			break;	
		}
		case 'groeien':{
			new Mcd.Spotlight({'type':'hrm20068','cat':'carri374'});
			break;	
		}
		case 'solliciteren':{
			new Mcd.Spotlight({'type':'hrm20068','cat':'direc618'});
			break;	
		}
		case 'vacatures':{
			new Mcd.Spotlight({'type':'hrm20068','cat':'vacat406'});
			break;	
		}
	}
	
	try {
		pageTracker._trackPageview( str.replace('#', '') );
	} catch(err) {}
	
	/*McDonald.Spotlight.DoubleClick.setHtml('<iframe src="http://fls.doubleclick.net/activityi;src=749297;type=hrm20068;cat=funct993;ord=' + a + '?" width="1" height="1" frameborder="0"></iframe>');
*/
}

Mcd.Hash._xhr = null;
Mcd.Hash.changeContent = function(url){
	
	if(arguments.length > 1){
		SollicitatieLog.stop();
		
		$('content').set('html', arguments[2]);
		
		Mcd.Hash.changeLinks($('content'));
		Overlay.changeLinks($('content'));
		Overlay.hide();
		
		if($$('.applynow > .step.first').length>0){
			Mcd.Solliciteren = new Solliciteren();
			
			SollicitatieLog.start();
		}
		
		if(Browser.Platform.mac){
			$$('ul.jobs li a').setStyle('font-size','11px');
		}
		
		try {
			eval(arguments[3]);
		} catch(err){}
		
	} else {
		Mcd.Hash._xhr.options.url = url
		Mcd.Hash._xhr.send();	
	}
}

Mcd.Spotlight = function(o){
	
	var src = this.src;
	
	var opt = this.options;
	Object.merge(opt,o);
	opt.rnd = Math.random()*10000000000000;
	
	src += Object.toQueryString(opt).split('&').join(';')
	new Element('iframe', {
		'src':src,
		'width':'1px',
		'height':'1px'
	}).inject($('doubleclick_spotlight'));
	
}

Mcd.Spotlight.prototype.src = 'http://fls.doubleclick.net/activityi;';
Mcd.Spotlight.prototype.options = {
	'src':'749297',
	'type':'',
	'cat':'',
	'qty':'1'
}


var Overlay = {};
Overlay.initialize = function(){
	this._mask = new Mask();
	this._mask.element.addEvent('click',function(e){
		e.preventDefault();
		Overlay.hide();
	});
	this.Small._xhr = new Request.HTML({
		'evalScripts':false,
		'onSuccess':this.Small.show
	});
	this.Large._xhr = new Request.HTML({
		'evalScripts':false,
		'onSuccess':this.Large.show
	});
	
	$('overlay-small').getElements('.close').addEvent('click', function(e){
		e.preventDefault();	
		Overlay.Small.hide();
	});
	
	$('overlay-wide').getElements('.close').addEvent('click', function(e){
		e.preventDefault();	
		Overlay.Large.hide();
	});
	
	this.Small.fx = new Fx.Tween($('overlay-small'),{'property':'opacity'});
	this.Large.fx = new Fx.Tween($('overlay-wide'),{
		'transition':Fx.Transitions.Quad.easeOut,
		'property':'opacity',
		'onComplete':function(){
			if( $('overlay-wide').getStyle('opacity') == 0 ){
				$('overlay-wide').setStyle('display','none');
				// http://mcd.parcproductions.com/#groeien
				$$('#overlay-wide .overlay-content').set('html','');
			}
		}
	});

};

Overlay.changeLinks = function(el){
	el.getElements('a.overlayer').addEvent('click', function(e){
		e.preventDefault();	
		Overlay.Small.show(this.href);
	});
	
	el.getElements('a.overlayer-wide').addEvent('click', function(e){
		e.preventDefault();	
		Overlay.Large.show(this.href);
	});
}

Overlay._mask = null;

Overlay.Small = {
	_xhr:null,
	callback:function(){},
	show:function(url){
		// console.log(arguments.length,this.callback);
		if(arguments.length > 1){
			
			var contentElement = $$('#overlay-small .overlay-content')[0];
			contentElement.set('html', arguments[2]);
			try {
				eval(arguments[3]);
			} catch(err){ }
			Overlay.Small.fx.start(1);
			$('overlay-small').setStyle('display','block');
			Mcd.Hash.changeLinks(contentElement);
			
			Overlay._mask.element.setStyle('z-index','5');
			Overlay._mask.show();
			Overlay.Small.checkSpotlight($('overlay-small'));
			Overlay.Small.callback.call();
			Overlay.Small.callback = function(){};
		} else {
			Overlay.Small._xhr.options.url = url
			Overlay.Small._xhr.send();	
		}
	},
	hide:function(){
		// $('overlay-small').setStyle('display','none');
		Overlay.Small.fx.start(0);
		Overlay._mask.hide();		
	},
	checkSpotlight:function(el){
		var axel = Math.random() + "";
		var a = axel * 10000000000000;

		strName = '';
		if( el.getElement('h2') ){
			var strName = el.getElement('h2').get('html');
		}

		switch(strName.toLowerCase()){
			case 'crewlid':{
				new Mcd.Spotlight({'type':'hrm20068','cat':'crewl013'});
				break;
			}

			case 'host(ess)':{
				new Mcd.Spotlight({'type':'hrm20068','cat':'hoste505'});
				break;
			}

			case 'management trainee':{
				new Mcd.Spotlight({'type':'hrm20068','cat':'manag925'});
				break;
			}

			case 'floormanager':{
				new Mcd.Spotlight({'type':'hrm20068','cat':'floor818'});
				break;
			}

			case 'assistent manager':{
				new Mcd.Spotlight({'type':'hrm20068','cat':'assis742'});
				break;
			}

			case '1e assistent manager':{
				new Mcd.Spotlight({'type':'hrm20068','cat':'1eass949'});
				break;
			}

			case 'restaurant manager':{
				new Mcd.Spotlight({'type':'hrm20068','cat':'resta118'});
				break;
			}

			case 'carriere en opleiding':{
				new Mcd.Spotlight({'type':'hrm20068','cat':'carri374'});
				break;
			}

			default:{
				// alert('Geen doubleclick spotlight hit')
				break;
			}
		}

	}
};

Overlay.Large = {
	_xhr:null,
	show:function(url){
		
		if(arguments.length > 1){
			var contentElement = $$('#overlay-wide .overlay-content')[0];
			contentElement.set('html', arguments[2]);
			
			// execute js
			try { eval(arguments[3]); } catch(err){ }

			Mcd.Hash.changeLinks(contentElement);
			
			Overlay.Large.fx.start(1);
			$('overlay-wide').setStyle('display','block');
			
			(function(){
				$('overlay-wide').setStyle('height', $('overlay-wide').getElement('.overlay').getSize().y);
			}).delay(100);
			
			
			Overlay._mask.element.setStyle('z-index','4');
			Overlay._mask.show();
		} else {
			Overlay.Large._xhr.options.url = url;
			Overlay.Large._xhr.send();	
		}
	},
	hide:function(){
		Overlay.Large.fx.start(0);
		Overlay._mask.hide();	
		// $('overlay-wide').setStyle('display','none');
	}
};

Overlay.hide = function(){
	Overlay.Small.hide();
	Overlay.Large.hide();
};

var Solliciteren = function(){
	var self = this;
	this._steps = $$('.applynow > .step');
	
	$$('.step.first > form input').addEvent('keydown', function(e){
		if(e.key == 'enter'){
			// $$('.step.first > form button[type=submit]').fireEvent('click');
			e.preventDefault();
			return false;
		}
	});
	
	$$('.step.first > form button[type=submit]').addEvent('click',function(e){
		e.preventDefault();
		
		var searchDto = new Solliciteren.SearchDto({
			'zipcode':$$('.step.first > form input[name=zipcode]')[0].get('value'),
			'city':$$('.step.first > form select[name=city]')[0].get('value'),
			'func':$$('.step.first > form select[name=function]')[0].get('value')
		});
		
		if( searchDto.zipcode == '' && searchDto.city != '' ){
			var optionElements = $$('.step.first > form select[name=city] option[value='+searchDto.city+']');	
			
			if( optionElements.length>0 && optionElements[0].hasClass('alternative') ){
				searchDto.zipcode = optionElements[0].get('title');
			}
		}
				
		this.search(searchDto);
	}.bind(this));
	
	// searchXhr
	this._searchXhr = new Request.JSON({
		'url':'api/solliciteren/fetch-all',
		'noCache':true,
		'onSuccess':this.search.bind(this)
	});
	
	
	// set events distance radio
	$$('input, select, textarea').addEvent('focus',function(e){
		
	});
	
	// set events distance radio
	$$('.step.second form fieldset p.filter input[name=distance]').addEvent('click',function(e){
		self._searchDto.distance = parseInt(this.value);
		self.search(self._searchDto);
	});
	
	$$('form > fieldset > p.filter > select').addEvent('change',function(e){
		e.preventDefault();
		
		self.filterSearchResult();
		
	});
	
	$$('.step.second .btn.btn-next').addEvent('click',function(e){
		e.preventDefault();
		self.gotoStep(2);
	});
	
	// console.debug($$('.step.third .btn.btn-next'));
	
	$$('.step.third .btn.btn-next').addEvent('click',function(e){
		e.preventDefault();
		
		if(this.getParent('form').validate()){
			self.gotoStep(3);
		}
	});
	
	// set form validators
	new Form.Validator($$('.step.third form')[0]);
	
	// final submit 
	$$('.step.fourth button[type=submit]').addEvent('click',function(e){
		e.preventDefault();
		
		var validate = this.getParent('form').validate();
		
		var day = parseInt(parseFloat(document.body.getElement('.step.fourth select[name=birth-day]').get('value')));
		var month = parseInt(parseFloat(document.body.getElement('.step.fourth select[name=birth-month]').get('value')));
		var year = parseInt(parseFloat(document.body.getElement('.step.fourth select[name=birth-year]').get('value')));
		
		var time = new Date(new Date().getFullYear()-15,new Date().getMonth(),new Date().getDate()).getTime()/1000;
		var birthday = new Date(year, month-1, day).getTime()/1000;
		
		if( time < birthday ){
			validate = false;
			
			alert('Je moet minimaal 15 zijn om te solliciteren');
		}
		
		if(validate){
			$$('.step.fourth button[type=submit]').setStyle('display','none');
			self.submitSollicitatie();
		}
	});
	
	$$('.btn.btn-searchagain').addEvent('click',function(e){
		e.preventDefault();
		this.gotoStep(0);
	}.bind(this));
}

// private vars
Solliciteren.prototype._steps = [];
Solliciteren.prototype._searchDto = null;
Solliciteren.prototype._searchXhr = null;
Solliciteren.prototype._logXhr = null;
Solliciteren.prototype._Scrollbar = null;

// public vars

// private methods
// public methods
Solliciteren.prototype.gotoStep = function(i){
	this._steps.removeClass('active');
	this._steps[i].addClass('active');
	
	// spotlight tags
	switch(i){
		case 0:{
			new Mcd.Spotlight({'type':'hrm20068','cat':'direc618'});
			break;
		}
		
		case 1:{
			new Mcd.Spotlight({'type':'hrm20068','cat':'direc958'});
			break;
		}
		
		case 2:{
			new Mcd.Spotlight({'type':'hrm20068','cat':'direc967'});
			break;
		}
		
		case 3:{
			new Mcd.Spotlight({'type':'hrm20068','cat':'direc414'});
			break;
		}
		
	}
}


Solliciteren.prototype.search = function(dto){
	
	if(arguments.length == 1){
		this._searchDto = dto;
		this._searchXhr.post(this._searchDto);
	} else {
		this.showSearchResult(arguments[0]);
	}
}

Solliciteren.prototype.filterSearchResult = function(){
	
	var search = [];
	$$('form > fieldset > p.filter > select').each(function(el,i){
		
		var name = el.get('name');
		var filter = el.get('value');
		
		if(filter != ""){
			search.push(name+':'+filter);
		}
	});
	
	if(search.length == 0){
		$$('.searchresults .content ul li:not(li.cloneable)').setStyle('display','block');
	} else {
		$$('.searchresults .content ul li').setStyle('display','none');
		$$('.searchresults .content ul li[title*="'+search.join(' / ')+'"]').setStyle('display','block');
	}
	
	this._scrollbar.reinitialize();
	$$('.step.second .btn.btn-next').setStyle('display','none');
}

Solliciteren.prototype.showSearchResult = function(result){
	console.log(result[0]);
	if(result[0]){
		var container = $$('.step.second .searchresults .content > ul')[0];
		container.getElements('li:not(li.cloneable)').destroy();

		var filterCity = {};
		var filterRestaurant = {};
		
		var el = container.getElement('li.cloneable');
		el.setStyle('display','block');
		Array.each(result[1], function(node, i){
			var cloneEl = el.clone();
			cloneEl.inject(container);
			cloneEl.set('html',unescape(cloneEl.get('html')).substitute(node));
			cloneEl.set('title','city:'+node.city+' / function:'+node.function_name);
			cloneEl.className = '';
			
			cloneEl.addEvent('click', this.selectFunction );
			
			filterCity[node.city] = node.city;
			filterRestaurant[node.function_name] = node.function_name;
		}, this);
		el.setStyle('display','none');
		
		// fill city filter
		var selectElementCity = $$('.step.second select[name=city]')[0];
		selectElementCity.getElements('option:not(option[value=""])').destroy();
		Object.each(filterCity,function(value,key){
			new Element('option',{
				'value':value,
				'text':key
			}).inject( selectElementCity );
		}, selectElementCity );
		
		// fill restaurant filter
		var selectElementRestaurant = $$('.step.second select[name=function]')[0];
		selectElementRestaurant.getElements('option:not(option[value=""])').destroy();
		Object.each(filterRestaurant,function(value,key){
			new Element('option',{
				'value':value,
				'text':key
			}).inject( selectElementRestaurant );
		}, selectElementRestaurant );
		
		// set the info buttons
		Overlay.changeLinks(container);
		
		if(this._scrollbar == null){
			this._scrollbar = new Scrollbar({
				'elContent': $$('.searchresults > .content')[0],
				'elScrollbar': $$('.searchresults > .scrollbar')[0],
				'elHandle': $$('.searchresults > .scrollbar > .knob')[0]
			});
		}
		
		// this._scrollbar.reinitialize();
		(function(){
			this._scrollbar.reinitialize();
		}).delay(50, this);
		
		this.gotoStep(1);
	} else {
		Overlay.Small.show('/error/geen-resultaat-gevonden');
	}
	
	$$('.step.second .btn.btn-next').setStyle('display','none');
}


Solliciteren.prototype.selectFunction = function(e){
	this.getParent('ul').getElements('li').removeClass('selected');
	this.addClass('selected');
	$$('.step.second .btn.btn-next').setStyle('display','block');
	var funcId = this.getElement('input[name=data]').get('value').split('|')[1];
	Overlay.Small.callback = function(){
		$('overlay-small').getElement('.btn.btn-applynow').removeEvents('click');
		$('overlay-small').getElement('.btn.btn-applynow').addEvent('click',function(e){
			e.preventDefault();
			Mcd.Solliciteren.gotoStep(2);
			Overlay.Small.hide();
		});
	};
	
	Overlay.Small.show('/function/information/' + funcId);
}

Solliciteren.prototype.submitSollicitatie = function(){
	
	var sollicitatie = new Solliciteren.SollicitatieDto();
	
	// get selected function and restaurant id;
	var data = $$('.step.second li.selected input[name=data]')[0].get('value');
	
	sollicitatie.restaurant_id = data.split('|')[0];
	sollicitatie.function_id = data.split('|')[1];
	
	var thirdForm = $$('.step.third form')[0];
	
	sollicitatie.gender = thirdForm.getElements('input[name=gender]').filter(function(el){ return el.get('checked'); })[0].get('value');
	sollicitatie.firstname = thirdForm.getElement('input[name=firstname]').get('value');
	sollicitatie.lastname = thirdForm.getElement('input[name=lastname]').get('value');
	sollicitatie.address = thirdForm.getElement('input[name=address]').get('value');
	sollicitatie['address-no'] = thirdForm.getElement('input[name="address-no"]').get('value');
	sollicitatie.zipcode = thirdForm.getElement('input[name=zipcode]').get('value');
	sollicitatie.city = thirdForm.getElement('input[name=city]').get('value');
	sollicitatie.hours = thirdForm.getElement('input[name=hours]').get('value');
	sollicitatie.experience = thirdForm.getElement('select[name=experience]').get('value');
	sollicitatie.when = thirdForm.getElements('input[name=when]').filter(function(item, index){ return item.checked; })[0].get('value');
	sollicitatie.when2 = thirdForm.getElements('input[name=when2]').filter(function(item, index){ return item.checked; })[0].get('value');
	
	var lastForm = $$('.step.fourth form')[0];

	sollicitatie['birth-day'] = lastForm.getElement('select[name="birth-day"]').get('value');
	sollicitatie['birth-month'] = lastForm.getElement('select[name="birth-month"]').get('value');
	sollicitatie['birth-year'] = lastForm.getElement('select[name="birth-year"]').get('value');
	sollicitatie.email = lastForm.getElement('input[name=email]').get('value');
	sollicitatie.phone = lastForm.getElement('input[name=phone]').get('value');
	sollicitatie.motivation = lastForm.getElement('textarea[name=motivation]').get('value');
	sollicitatie.filepath = McDonald.Solliciteren.filepath;
	
	
	var request = new Request.JSON({
		'url':'api/solliciteren/save',
		'onSuccess':function(response){
			// console.log(response);
			if(response[0]){
				var spotlight = {};

				spotlight.type = 'hrm20563';
				spotlight.cat = 'direc618';
				spotlight.u9 = response[1].sollicitatieid;
				spotlight.u8 = response[1].geboortejaar;
				spotlight.u7 = response[1].functie;
				spotlight.u6 = response[1].geen_voorkeur;
				spotlight.u5 = response[1].s_avonds;
				spotlight.u4 = response[1].overdag;
				spotlight.u3 = response[1].hours;
				spotlight.u2 = response[1].restaurantnumber;
				spotlight.u1 = response[1].plaats;

				new Mcd.Spotlight(spotlight);

				location.hash = 'solliciteren/dankjewel';
			}
		}
		
	});
	
	request.post(sollicitatie);
}


var Dto = function(o){
}
Dto.prototype.set = function(){
	if( arguments.length == 2 ){
		if(this[arguments[0]] != undefined) this[arguments[0]] = arguments[1];
	}
}

Solliciteren.SearchDto = function(o){
	if(o){
		Object.each(o, function(item, key){
			if(this[key] != undefined) this[key] = item;
		}, this );
	}
}

Solliciteren.SearchDto.prototype = {
	'func':'',
	'city':'',
	'zipcode':'',
	'distance':10
}

Solliciteren.SollicitatieDto = function(o){
	if(o){
		Object.each(o, function(item, key){
			if(this[key] != undefined) this[key] = item;
		}, this );
	}
}

Solliciteren.SollicitatieDto.prototype = {
	'restaurant_id':'',
	'function_id':'',
	'gender':'',
	'firstname':'',
	'lastname':'',
	'address':'',
	'address-no':'',
	'zipcode':'',
	'city':'',
	'hour':'',
	'experience':'',
	
	'when':'',
	'when2':'',
	
	'filepath':'',

	'birth-day':'',
	'birth-month':'',
	'birth-year':'',
	'email':'',
	'phone':'',
	'motivation':''
};

var Scrollbar = new Class({
	options: {
		elContent: 'scrollcontent',
		elScrollbar: 'scrollbar',
		elHandle: 'scrollhandle',
		blnHorizontal: false,
		blnIgnoreMouse: false
	},
	Implements: Options,
	objSlider:false,
	initialize: function(options)
	{
		this.setOptions(options);

		this.options.elContent = $(this.options.elContent);
		this.options.elScrollbar = $(this.options.elScrollbar);
		this.options.elHandle = $(this.options.elHandle);

		this.reinitialize();
	},

	reinitialize: function()
	{
		if (Browser.ie && Browser.version == 6)
		{
			this.options.elContent.setStyles(
			{
				'overflow-y': 'scroll'
			});

			this.options.elScrollbar.hide();
			this.options.elHandle.hide();

			return;
		}

		var contentSize = this.options.elContent.getSize();
		var contentScrollSize = this.options.elContent.getScrollSize();
		
		this.options.elScrollbar.setStyle('height', contentSize.y );

		this.intSteps = this.options.blnHorizontal ? (contentScrollSize.x - contentSize.x) : (contentScrollSize.y - contentSize.y);
		
		// this.setScrollbarSize();

		if (this.intSteps < 1){ 
			this.hideSlider();
		} else { 
			this.showSlider(); 
		}
		
		this.setSlider();
		
		if( !(this.options.blnIgnoreMouse) && this.objSlider != true)
		{
			this.options.elContent.removeEvents();
			this.options.elScrollbar.removeEvents();
			$$(this.options.elContent, this.options.elScrollbar).addEvents(
			{
				mousewheel: function(e)
				{
					e.preventDefault();
					var intStep = this.objSlider.step - e.wheel * 30;
					this.objSlider.set(intStep);
				}.bind(this)
			});
		}

		$(document.body).removeEvent('mouseleave');
		$(document.body).addEvent('mouseleave', function()
		{
			if(this.objSlider.drag) this.objSlider.drag.stop();
		}.bind(this));
	},

	setScrollbarSize: function()
	{
		if (this.options.blnHorizontal)
		{
			var intWidth = (this.options.elContent.getScrollSize().x / 1.1) - this.options.elScrollbar.getStyle('width').toInt();
			intWidth = this.options.elScrollbar.getStyle('width').toInt() - intWidth;
			if (intWidth < 40)
			{
				intWidth = 40;
			}
			this.options.elHandle.setStyle('width', intWidth);
		}
		else
		{
			var intHeight = (this.options.elContent.getScrollSize().y / 1.1) - this.options.elScrollbar.getStyle('height').toInt();
			intHeight = this.options.elScrollbar.getStyle('height').toInt() - intHeight;
			if (intHeight < 40)
			{
				intHeight = 40;
			}
			this.options.elHandle.setStyle('height', intHeight);
		}
	},

	hideSlider: function()
	{
		this.options.elHandle.hide();
		this.options.elScrollbar.setStyle('opacity', 0);
		this.options.elScrollbar.setStyle('height', 0);
	},

	showSlider: function()
	{
		this.options.elHandle.show();
		this.options.elScrollbar.setStyle('opacity', 1);
	},

	setSlider: function()
	{
		this.options.elScrollbar.removeEvents();
		this.options.elHandle.removeEvents();

		if(this.intSteps>0){
			this.objSlider = new Slider(this.options.elScrollbar, this.options.elHandle,
			{
				steps: parseInt(this.intSteps),
				mode: 'vertical',
				onChange: function(intStep)
				{
					var x = (this.options.blnHorizontal ? intStep : 0);
					var y = (this.options.blnHorizontal ? 0 : intStep);
					
					this.options.elContent.scrollTo(x,y);
				}.bind(this)
			}).set(0);
		}
	}

});


// test 
var McDonald = {
	Solliciteren:{
		filepath:'',
		setPageObject:function(p,type,value){
			// console.log(arguments);
			this.filepath = value;
		}
	}
}
// McDonald.Solliciteren.setPageObject
// McDonald.Solliciteren.options.arrPageObj[2].filepath

function showErrorField(){
	$$('.formerror').setStyle('display','block');
}
function hideErrorField(){
	// console.log($$('.formerror'));
	$$('.formerror').setStyle('display','none');
}


Form.Validator.add('validate-zipcode', {
	errorMsg: 'Dit veld is geen postcode',
	test: function(element){
		return element.value.test(/\d{4}\s?[a-zA-Z]{2}$/);
	}
});


Form.Validator.add('validate-hour', {
	errorMsg: '',
	test: function(element){
		return element.value.test(/^[0-9]{1,2}$/);
	}
})

window.addEvent('domready',Mcd.initialize);
