var voucher_id = 0;
var voucher_selection = []

animate = new Object();
animate.do_voucher_animation = true;
animate.mouseenter = function() {
	element = this.getElements('.bond')[0];
	element.do_voucher_animation = false;
}
animate.mouseleave = function() {
	element = this.getElements('.bond')[0];
	if(!element.hasClass('stop_animation')) element.do_voucher_animation = true;
	if(!element.hasClass('animated')) animate.move_voucher(element);
}
animate.click = function() {
	var voucher = this.get('id');
	var rubber_band = this.getElements('.bond')[0];
	var checked = this.getElements('.voucher_checked')[0];
	
	if(voucher_selection.contains(voucher)){
		voucher_selection.erase(voucher);
		checked.addClass('hidden');
		this.addEvents({
			'mouseenter': animate.mouseenter,
			'mouseleave': animate.mouseleave
		});
	}
	else if(voucher_selection.length < 2) {
		voucher_selection.append([voucher]);
		checked.removeClass('hidden');
		this.removeEvents('mouseenter');
		this.removeEvents('mouseleave');
	}
	
	if(voucher_selection.length == 2) {
		$('pregame_form').removeClass('hidden');
		$('pregame_heading').addClass('hidden');
	}
	else {
		$('pregame_form').addClass('hidden');
	}
}
animate.voucher = function() {
	var temp_timing = [71, 1259, 463, 757];
	$$('.voucher .bond').each(function(element, index) {
		element.do_voucher_animation = true;
		element.animation_down = new Fx.Tween(element, {
			duration: 877,
			transition: Fx.Transitions.Cubic.easeOut,
			property: 'height'
		});
		element.animation_up = new Fx.Tween(element, {
			duration: 673,
			transition: Fx.Transitions.Bounce.easeOut,
			property: 'height'
		});
		setTimeout(function() {
			animate.move_voucher(element);
		}, temp_timing[index]);
	});
	$$('.voucher').addEvents({
		'mouseenter': animate.mouseenter,
		'mouseleave': animate.mouseleave,
		'click': animate.click
	});
}
animate.move_voucher = function(element) {
	if(animate.do_voucher_animation == true && element.do_voucher_animation == true) {
		element.addClass('animated');
		element.animation_down.start(15, 25);
		setTimeout(function() {
			element.animation_up.start(25, 15);
		}, 971);
		setTimeout(function() {
			element.removeClass('animated');
			animate.move_voucher(element);
		}, (1699 + (Math.floor(Math.random() * 300))));
	}
}

var submit_pregame = function() {
	$('pregame_form').wingame_special_voucher_1.value = voucher_selection[0];
	$('pregame_form').wingame_special_voucher_2.value = voucher_selection[1];
	Cookie.write('wingame_special_voucher_1', voucher_selection[0]);
	Cookie.write('wingame_special_voucher_2', voucher_selection[1]);
	$('wingame_special_voucher_1').set('value',voucher_selection[0]);
	$('wingame_special_voucher_2').set('value',voucher_selection[1]);
	$('pregame_form').submit();
}

var voucher_name = function(offer) {
	var voucher = '';
	switch(offer){
		case 'offer_1':
			voucher = 'IKEA';
			break;	
		case 'offer_2':
			voucher = 'Media Markt';
			break;
		case 'offer_3':
			voucher = 'zalando';
			break;
		case 'offer_4':
			voucher = 'ah';
			break;
	}
	
	return voucher;
}

var set_small_voucher_image = function() {
	var voucher_01 = $('wingame_special_voucher_1').get('value');	
	var voucher_02 = $('wingame_special_voucher_2').get('value');	
	
	if(voucher_01 == '') {
		$('voucher_text_01').set('html', voucher_name('offer_1'));
		$('voucher_text_02').set('html', voucher_name('offer_2'));
	}
	
	$('voucher_text_01').set('html', voucher_name(voucher_01));
	$('voucher_text_02').set('html', voucher_name(voucher_02));
	
	$('voucher_img_01').set('src', '/wingame/60/images/gutschein_'+ voucher_01 +'_small.jpg');
	$('voucher_img_01').set('alt', voucher_name(voucher_01) +' Gutschein');
	
	$('voucher_img_02').set('src', '/wingame/60/images/gutschein_'+ voucher_02 +'_small.jpg');
	$('voucher_img_02').set('alt', voucher_name(voucher_02) +' Gutschein');
}


window.addEvent('domready', function() {
	//Pop-under function; var MAPPER maps 'BO-keyword' to html element
	MAPPER = {
		'body' : $('page_halfreg'),
		'freetest' : null, 
		'gender' :  $('genderbox'),
		'gender_male' : $('male'),
		'gender_female' : $('female'),
		'firstname': $('firstname'),
		'halfreg': $('submit_halfreg'),
		'fulreg': $('submit_fullreg'),
		'street': $('street'),
		'country': $('landselect'),
		'extra' : null
	}

    // get the current page
	current_page = $(document.body).get('id');
	
	// reg half
	if(current_page == 'page_pregame') {
		
		if($$('.voucher').length > 0 && voucher_id == 0) {
			animate.voucher();
		}
	
		var wingame_special_voucher_1_cookie = Cookie.read('wingame_special_voucher_1');
		var wingame_special_voucher_2_cookie = Cookie.read('wingame_special_voucher_2');
	}
	
	if(current_page == 'page_halfreg') {
		set_small_voucher_image(); //inject small voucher images
		
		$('back_to_pregame').addEvent('click', function() {
			$$('[name=todo]')[0].set('value', 'show_pregame');
			$('form_master').submit();
			return false;
		});
		
		var mooli = new moolidator('form_master', {
			errorInputStyles: {
				border: '1px solid #FF0000',
				height: '20px'
			},
			inputStyles: {
				border: '1px solid #D2D2D2',
				height: '20px'
			},
			loadingImageIE6: '/wingame/global/images/moolidator_loading_ie6.gif',
			agbErrorSubmit: true
		});
	}
	
	if(current_page == 'page_fullreg') {
		
		set_small_voucher_image(); //inject small voucher images
		
		/*var onTelNumberDo = ""
			+ "if(el.get('name') == 'tel_number') {"
			+ "    var temp_value = el.get('value').replace(/[^0-9]/gi, '');"
			+ "    el.set('value', temp_value)"
			+ "}"*/
		
		var mooli = new moolidator('form_master', {
			errorInputStyles: {
				border: '1px solid #FF0000',
				height: '20px'
			},
			inputStyles: {
				border: '1px solid #D2D2D2',
				height: '20px'
			},
			regexp:{
				// default rules
				wingame_negate_tel_default:/^\d{5,}$/,
				wingame_negate_street_default:/\w{2,}/,
				wingame_negate_streetnr_default:/\d/,
				wingame_negate_city_default:/\w{2,}/,
				
				// NL rules
				wingame_city_nl: /^\d+$/,
				wingame_negate_city_nl: /\w{2,}/,
				
				// BE rules		
				wingame_negate_tel_be:/^0(4\d{8}|[12356789]\d{7})$/
			},
//			onValidationDo: onTelNumberDo,
			loadingImageIE6: '/wingame/global/images/moolidator_loading_ie6.gif'
		});
		
		$('landselect').addEvent('change', function() {
			
			mooli.setClass('street', ['wingame_negate_street_default']);
			mooli.setClass('streetnr', ['wingame_negate_streetnr_default']);
			mooli.setClass('dayofbirth', ['date[day]', 'group[monthofbirth,yearofbirth]']);
			mooli.setClass('monthofbirth', ['date[month]', 'group[dayofbirth,yearofbirth]']);
			mooli.setClass('yearofbirth', ['date[year]', 'group[dayofbirth,monthofbirth]']);
			
			if($('landselect').value == 2) {
 				mooli.setClass('zipcode', ['digit','length[4,4]','group[city]']);
 				$('zipcode').set('maxlength','4');
 				mooli.setClass('tel_number', ['wingame_negate_tel_be']);
 			} 
 			if($('landselect').value == 7) {
 				mooli.setClass('zipcode', ['digit','length[3,7]','group[city]']);
 				$('zipcode').set('maxlength','7');
 				mooli.setClass('tel_number', ['wingame_negate_tel_default']);
 			}
		});
		
		$('zipcode').addEvent('blur',function() {
			var myRequest = new Request({
				method: 'get', 
				url: '/cgi-bin/wingame.pl?todo=check_zipcode&zipcode=' + $('zipcode').value,
				onComplete: function(response) { 
					var res = JSON.parse(response);
					console.log(res);
					if (res.status) {
						city = res.result.City;
						street = res.result.Region2;
					}
					else {
						city = '';
						street = '';
					}
						
					$('street').value = street;
					$('city').value = city;
				}
			}).send();
		});
		
		pro6pp_interface.initialize();
	}
	
	if(current_page == 'page_survey') {	
		set_small_voucher_image(); //inject small voucher images
		survey_main();
	}
	
	if(current_page == 'page_coreg') {	
		set_small_voucher_image(); //inject small voucher images
	}
});


/* AGB-Functions -----------------------------------------------------------------------*/
var count_agb = 0;
var checkform = function() {
	var send = false;	
	var a = $('agb');
	
	if (count_agb > 2) send = true;
	else if (!$('agb').checked) showdiv('agberror');
	else send = true;
	
	if (send) {
		/*
		for(i = 0; i < clearFields.length; i++) {
			var elem = $(clearFields[i]);			   
			var val = elem.get('value');			
			if (val == elem.id) {
				elem.set('value', '');
			}
		}
		*/
		$('reg_half_form').submit();
	}
}

var doRegisterAccept = function() {
	var a = $('agb');
	a.checked = "checked";
	hidelayer('agberror');
}


/* Coreg functions --------------------------------------------------------------------------*/
var errortext = true;		

function fillcheck() {
	ausgabe = true;
	for(i= 0; i < (document.form_coreg.length); i++) {
		if ((document.form_coreg.elements[i].name.indexOf("coreg_pk_") > -1) && document.form_coreg.elements[i].checked == true) {
			errortext = false;
			if(document.form_coreg.elements[i+1] && document.form_coreg.elements[i+1].name.indexOf("confirmbox::") > -1 && document.form_coreg.elements[i+1].checked == false) { 		
				alert("Sie muessen noch die Checkbox des gewaehlten Angebots bestaetigen!");
				ausgabe = false;					
			} 
		}
	}

	if (errortext == true) {
		hidetagsIE('select');
		showlayer('hinweisbox');
		ausgabe = false;
	} 

	if(ausgabe == true) {
		document.form_coreg.submit();
	}
}
