var nolink = false;
var noexitpop = false;
var pointerLeft; 
var pointerRight;
var pointerDown;
var special_exit_pop = false;
var myColor = '';
var myColorName = '';
var current_page = '';
var mooli;

var colors = new Hash({
	'#000871': 'Dunkelblau',
	'#003986': 'Blau',
	'#0079ae': 'Petrol',
	'#00b1ca': 'Türkis',
	'#bd0000': 'Rot',
	'#d65700': 'Orange',
	'#ffc200': 'Gelb',
	'#ebf100': 'Zitrone',
	'#373737': 'Antrazit',
	'#6d6d6d': 'Grau',
	'#9d9d9d': 'Silber',
	'#cbcbcb': 'Hellgrau',
	'#1d6000': 'Dunkelgrün',
	'#3d8900': 'Grün',
	'#78ad00': 'Grasgrün',
	'#b6d000': 'Grüngelb',
	'#000000': 'Schwarz',
	'#FFFFFF': 'Weiss'
});
var colors_font_black = ['Weiss', 'Grüngelb', 'Hellgrau', 'Zitrone', 'Türkis'];
var pointer_right_after_focus = ['firstname', 'lastname', 'email', 'tel_number', 'streetnr', 'street', 'zipcode', 'city', 'dayofbirth', 'monthofbirth', 'yearofbirth', 'landselect', 'agb_18', 'agb'];

window.addEvent('unload', function() {
	exitpop();
});

window.addEvent('domready', function() {
	//Pop-under function; var MAPPER maps 'BO-keyword' to html element, fixed
	MAPPER = {
		'body' : $('page_reg_half'),
		'freetest' : null, 
		'gender' :  $('genderbox'),
		'gender_male' : $('male'),
		'gender_female' : $('female'),
		'firstname': $('firstname'),
		'halfreg': $('submit_halfreg'),
		'fulreg': $('submit_fullreg'),
		'street': $('street'),
		'country': $('landselect'),
		'extra' : null
	}
	
	current_page = $(document.body).get('id');
	
	if(current_page != 'page_reg_full') {
		use_color();
	}
	
	// pregame & reg full
	if(current_page == 'page_reg_full') {
		pointer_right_after_focus.each(function(element_id) {
			$(element_id).is_focused = false;
		});
		
		var url_color = unescape(get_parameter('color'));
		if(Object.keyOf(colors, url_color)) {
			setColor(Object.keyOf(colors, url_color));
			initRegFull();
		}
		
		if($('error') != null) {
			initRegFull();
		}
		
		// moolidator
		var on_validation_do = ''+
			'if(el.get("name") == "zipcode") {'+
			'	$("zipcode").set("value", $("zipcode").get("value").replace(/\D/g, ""))'+
			'}';
		
		mooli = new moolidator('register',{
			submitButton: 'submit_fullreg',
			errorMsgLength: 25,
			overrideMoolidatorStyles: true,
			debugConsole:false,
			onValidationDo: on_validation_do,
			agbErrorSubmit: true,
			regexp: {
				wingame_default_firstname_1: /[\@]/,
				wingame_default_firstname_2: /^\D*(\d\D*){1,2}$/,
				wingame_default_lastname_1: /[\@]/,
				wingame_default_lastname_2: /^\D*(\d\D*){1,2}$/,
				wingame_negate_default_email: /^([0-9a-zA-Z_]+[_\.\-+=]*)*[0-9a-zA-Z_\-+]+\@([0-9a-zA-Z_\-+]+\.)+[0-9a-zA-Z_\.\-+]{2,4}$/,
				wingame_negate_default_tel_number: /^\d{5,}$/,
				wingame_negate_default_streetnr: /\d/,
				wingame_default_street: /^[\d\s]+$/,
				wingame_negate_default_street: /\w{2,}/,
				wingame_negate_default_zipcode: /\w/,
				wingame_default_city: /^\d+$/,
				wingame_negate_default_city: /\w{2,}/,
				
				wingame_fr_tel_number: /\D/,
				wingame_negate_fr_tel_number: /\d/,
				wingame_negate_fr_zipcode: /^\d{5}$/
			}
		});
		
		$('landselect').addEvent('change', function() {
			if($('landselect').get('value') == 1) {
				mooli.setClass('tel_number', ['wingame_fr_tel_number','wingame_negate_fr_tel_number','group[email]']);
				mooli.setClass('zipcode', ['wingame_negate_fr_zipcode','group[city]']);
				$('zipcode').setProperty('maxlength', '5');
			} else {
				mooli.setClass('tel_number', ['wingame_negate_default_tel_number','group[email]']);
				mooli.setClass('zipcode', ['wingame_negate_default_zipcode','group[city]']);
				$('zipcode').setProperty('maxlength', '8');
			}
		});
		
		// farbwähler flash
		var colorchooser = new Swiff('/wingame/47/flash/faecher_flash_sw.swf', {
			container: $('colorchooser'),
			width: 350,
			height: 400,
			params: {
				wMode: 'transparent'
			}
		});
		
		// header title fading
		animate.fade_element('macbookname');
		
		// send PLZ and continue with step 2 by cklick on plzsubmit DIV
		$('plzsubmit').addEvent('click', function() {	
			send_plz();
		});
		$('plzInput').addEvent('click', function() {	
			$('plzerror').setStyle("display","none");
		});
		
		// nach links zeiger animation
		animate.pointer_left();
		
		$('agb_18').addEvent('click', function() {
			if($('agb_18').get('checked') == true) $('for_agb_18').removeClass('hidden');
			else $('for_agb_18').addClass('hidden');
		});
	}
	
	if(current_page == 'page_taf') {
		animate.fade_element('million');
		animate.pointer_down();
		animate.pointer_right_button();
		
		$('submit_taf').addEvent('click', function() {
			checkinputs();
		});
		
		$('cancel_taf').addEvent('click', function() {
			show_alert('alert_1');
		});
	}
	
	if(current_page == 'page_survey') {
		animate.fade_element('million');
		animate.pointer_down();
		animate.pointer_right_button();
		
		$('submit_survey').addEvent('click', function() {
			$$('form[name=survey]')[0].submit();
		});
		
		survey_main();
	}
	
	if(current_page == 'page_coreg') {
		animate.fade_element('million');
		animate.pointer_down();
		animate.pointer_right_button();
		
		$('submit_coreg').addEvent('click', function() {
			$$('form[name=inter]')[0].submit();
		});
	}
	
	if(current_page == 'page_coreg_iframe') {
		animate.fade_element('million');
		animate.pointer_down();
		coreg_iframe.skip_buttons = [];
		coreg_iframe.initialize();
	}
	
	if(current_page == 'page_finish') {
		animate.fade_element('million');
		animate.pointer_down();
	}
	
	if ($('mask_blink')) {
		ichBlinke = $('mask_blink');
		schalter = false;
		setTimeout("blinken()",700);
	}
	
	// events settings
	$(document.body).addEvents({
		'mouseenter': function() {
			nolink = false;
		},
		'mouseleave': function() {
			nolink = true;
		}
	});
});

var animate = new Object();
animate.fade_element = function(element_id) {
	var pf2 = new Fx.Tween(element_id, {
		duration: 1000,
		onComplete: function() {
			if($(element_id).getStyle("opacity") == "1") {
				pf2.start("opacity", "1", "0.50");
			} else {
				pf2.start("opacity", "0.50", "1");
			}
		}
	}).start("opacity", "1", "0.50");
}
animate.pointer_down_state = '';
animate.pointer_down = function() {
	if(animate.pointer_down_state == '') {
		animate.pointer_down_state = true;
		var pointerDown = setInterval(function() {
			if(animate.pointer_down_state == false) {
				clearInterval(pointerDown);
			} else {
				var pd = new Fx.Tween('pointerdown', {
					duration: 250
				}).start("margin-top", "-7", "3");
			}
		},500);
	}
}
animate.pointer_left_state = '';
animate.pointer_left = function() {
	if(animate.pointer_left_state == '') {
		animate.pointer_left_state = true;
		var pointerLeft = setInterval(function() {
			if(animate.pointer_left_state == false) {
				clearInterval(pointerLeft);
			} else {
				var pl = new Fx.Tween('pointerleft', {
					duration: 250
				}).start("margin-left", "-45", "-60");
			}
		},500);
	}
}
animate.pointer_right_state = '';
animate.pointer_right = function() {
	if(animate.pointer_right_state == '') {
		animate.pointer_right_state = true;
		var pointerRight = setInterval(function() {
			if(animate.pointer_right_state == false) {
				clearInterval(pointerRight);
			} else {
				var pr = new Fx.Tween('pointerright', {
					duration: 250
				}).start("margin-left", "275", "290");
			}
		},500);
	}
}
animate.pointer_right_button_state = '';
animate.pointer_right_button = function() {
	if(animate.pointer_right_button_state == '') {
		animate.pointer_right_button_state = true;
		var pointerRightButton = setInterval(function() {
			if(animate.pointer_right_button_state == false) {
				clearInterval(pointerRightButton);
			} else {
				var prb = new Fx.Tween('pointerrightbutton', {
					duration: 250
				}).start("margin-left", "0", "10");
			}
		},500);	
	}
}

var check_focused = function() {
	var result = true;
	pointer_right_after_focus.each(function(element_id) {
		if($(element_id).is_focused == false) result = false;
	});
	return result;
}

//functions
function setColor(col)  {
	var color = new Fx.Morph('macbook', {
		duration: 1000
	}).start({ 'background-color': col });
	
	var color2 = new Fx.Morph('plz', {
		duration: 1000
	}).start({ 'background-color': col });
	
	animate.pointer_left_state = false;
	animate.pointer_right();
	
	$('wingame_special_color').set('value', col);
	$('wingame_special_color_name').set('value', colors[col]);
}

function use_color() {
	myColor = $('wingame_special_color').get('value');
	if(Object.keys(colors).contains(myColor)) {
		myColorName = colors[myColor];
	} else {
		myColor = '#9d9d9d';
		myColorName = 'Silber';
	}
	if(colors_font_black.contains(myColorName)) {
		$$('.getBgColor').setStyle('color', '#000000');
		$$('.question h2').setStyle('color', '#000000');
		$$('.coreghead').setStyle('color', '#000000');
	}
	$$('.getBgColor').setStyle('background-color', myColor);
	$$('.question h2').setStyle('background-color', myColor);
	$$('.coreghead').setStyle('background-color', myColor);
}

// todo auf reg full
function initRegFull() {
	log.send({
		'url': '/cgi-bin/global.pl',
		'params': {
			'ident': 'pi_47_reg_full',
			'todo': 'log_misc'
		}
	});

	animate.fade_element('million');
	animate.pointer_down();
	
	pointer_right_after_focus.each(function(element_id) {
		$(element_id).addEvent('focus', function() {
			$(element_id).is_focused = true;
			if(check_focused() == true) {
				animate.pointer_down_state = false;
				animate.pointer_right_button();
			}
		});
	});
	
	use_color();
	
	$('pre_page').addClass('hidden');
	$('reg_page').removeClass('hidden');
}

// sweepstake functions
var count = 0;
var clearFields = new Array("Vorname","Nachname");
function checkform() {
	var send =false;	
	var a = document.getElementById('agb');
	if(count>2){
		send = true;
	}
	else if (!document.register.agb.checked) { 
		showlayer('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', '');
			}
		}
		document.register.submit();
	}
}

function doRegisterAccept() {
	var a = document.getElementById('agb');
	if(a.checked != "checked"){
		hidelayer('agberror');			
	}
}

var errortext = true;
function fillcheck() {
	ausgabe = true;
	for(i=0;i<(document.inter.length);i++) {
		//alert("name:"+document.inter.elements[i].name + ", ind:" + document.inter.elements[i].name.indexOf("question::"));
		if ((document.inter.elements[i].name.indexOf("coreg_pk_") > -1) && document.inter.elements[i].checked == true) {
			errortext = false;
			if(document.inter.elements[i+1] && document.inter.elements[i+1].name.indexOf("confirmbox::") > -1 && document.inter.elements[i+1].checked == false) { 		
				alert("Sie muessen noch die Checkbox des gewaehlten Angebots bestaetigen!");
				ausgabe = false;					
			} 
		}
	}

	if (errortext == true) {
		hidetagsIE('select');
		document.getElementById('werbeflaeche_coreg').style.display = 'block';
		//alert("Bitte w&auml;hlen Sie mindestens ein Gratis Angebot aus,\nindem Sie die Checkbox anklicken.");
		ausgabe = false;
	} 

	if(ausgabe == true) {
		document.inter.submit();
	}
}

/* send page1 by pressing "enter" *******************************************/
function send_plz(entered){
	clearInterval(pointerRight);
	var plz = $('plzInput').get('value').clean();
	if(plz.search(/\d+/) > -1) {
		$('plzerror').setStyle("display","none");
		$('zipcode').set('value', $('plzInput').get('value'));
		if($('wingame_special_color').get('value') == '{{wingame_special_color}}') {
			$('wingame_special_color').set('value', '#9d9d9d');
			$('wingame_special_color_name').set('value', 'Silber');
		}
		initRegFull();
	} else {
		$('plzerror').setStyle("display","block");
	}
}

/* DIVs sichtbar und unsichtbar macht ************************************************************************************************* */
function hidelayer(divs) {
	$(divs).setStyle("display", "none");
}
	
function showlayer(divs) {
	$(divs).setStyle("display", "block");
}
	
/* Button PLZ auf erster Seite blinken lassen *************************************************************/
function blinken(){
	if(schalter) {
		ichBlinke.style.backgroundPosition = "0px 0px";
	} else {
		ichBlinke.style.backgroundPosition = "0px -188px";
	}
	schalter=!schalter;
	setTimeout("blinken()",700);
}

/* TAF Seite ************************************************************************************************* */

/* Layer anzeigen, wenn man ohne Einladung weiter möchte */
var show_alert = function(this_alert_window) {
	hidetagsIE('select');
	if($('alert_layer')) {
		$$('.alert_window').setStyle('display', 'none');
		$('alert_layer').setStyle('display', 'block');
	}
	if($(this_alert_window)) $(this_alert_window).setStyle('display', 'block');
}
var hide_alert = function(this_alert_window) {
	showtagsIE('select');
	if($('alert_layer')) $('alert_layer').setStyle('display', 'none');
	if($(this_alert_window)) $(this_alert_window).setStyle('display', 'none');
}

/* eingegebene Taf Emails prüfen und ggf. Fehlermeldung ausgeben */
var re = /^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$/;

function checkinputs() {
	var filled = "";
	var errormail = "";
	
	for(i=0;i<6;i++) {
		if(document.allfriend.friend[i]) {
			filled += document.allfriend.friend[i].value;
			e = document.allfriend.friend[i].value;		
			//document.allfriend.friend[i].style.backgroundColor = "#ffffff";
			if (!e.match(re) && e != "") {
				if(errormail) errormail += ", ";
				errormail += (i+1); 				
				//document.allfriend.friend[i].style.backgroundColor = "#ff9999";
			}
		}
	}
	//alert("in filled steht: " + filled + " und in errormail steht: " + errormail);
	if(filled == "" && errormail == "") {
		show_alert('taferror1');
	} else if(errormail != "" && filled != "") {
		document.getElementById("tafcontent").innerHTML = errormail;
		show_alert('taferror2');
	} else {
		document.getElementById('allfriend').submit();
	}
}

function submit_without_taf() {
	for(i=0;i<6;i++) {
		if(document.allfriend.friend[i]) {
			document.allfriend.friend[i].value = "";
		}
	}
	document.getElementById('allfriend').submit();
}


/* coreg iframe ************************************************************************************************* */
coreg_iframe = new Object();
coreg_iframe.offers = new Array();
coreg_iframe.current_offer = 0;
coreg_iframe.form_id = 'coreg_iframe_form';
coreg_iframe.hide_class = 'hidden_iframe';
coreg_iframe.submit_buttons = ['submit_coreg_iframe'];
coreg_iframe.skip_buttons = ['skip_coreg_iframe'];
coreg_iframe.initialize = function() {
	coreg_iframe.offers = $$('.iframe_container');
	coreg_iframe.offers[coreg_iframe.current_offer].removeClass(coreg_iframe.hide_class);
	coreg_iframe.send_iframe_data(coreg_iframe.offers[coreg_iframe.current_offer]);
	if(coreg_iframe.submit_buttons.length > 0) {
		coreg_iframe.submit_buttons.each(function(submit_buttons) {
			$(submit_buttons).addEvent('click', function() {
				coreg_iframe.show_next_offer();
				return false;
			});
		});
	}
	if(coreg_iframe.skip_buttons.length > 0) {
		coreg_iframe.skip_buttons.each(function(skip_button) {
			$(skip_button).addEvent('click', function() {
				coreg_iframe.show_next_offer();
				return false;
			});
		});
	}
}

coreg_iframe.show_next_offer = function() {
	if(coreg_iframe.current_offer < (coreg_iframe.offers.length - 1)) {
		coreg_iframe.offers[coreg_iframe.current_offer].addClass(coreg_iframe.hide_class);
		coreg_iframe.current_offer++;
		coreg_iframe.offers[coreg_iframe.current_offer].removeClass(coreg_iframe.hide_class);
		coreg_iframe.send_iframe_data(coreg_iframe.offers[coreg_iframe.current_offer]);
	} else {
		$(coreg_iframe.form_id).submit();
	}
}

coreg_iframe.send_iframe_data = function(offer) {
	var temp_copy = $$('input[type=hidden][name=copy]')[0].get('value');
	var temp_client_pk = $$('input[type=hidden][name=client_pk]')[0].get('value');
	var temp_email = $$('input[type=hidden][name=email]')[0].get('value');
	var temp_wingame_pk = $$('input[type=hidden][name=wingame_pk]')[0].get('value');
	var temp_coreg_pk = offer.get('id').replace(/toggle_iframe_/g, '');
	if(temp_copy && temp_client_pk && temp_email && temp_wingame_pk && temp_coreg_pk) {
		var temp_data = 'copy=' + temp_copy +
			'&todo=save_coreg_order' +
			'&client_pk=' + temp_client_pk +
			'&email=' + temp_email +
			'&wingame_pk=' + temp_wingame_pk +
			'&coreg_pk=' + temp_coreg_pk;
		temp_data = encodeURI(temp_data);
		var temp_request = new Request({
			url: '/cgi-bin/global.pl',
			method: 'get'
		}).send(temp_data);
	}
}

