function showDiv(id) {
	document.getElementById(id).style.visibility = "visible";
	document.getElementById(id).style.display = "block";
}

function hideDiv(id) {
	document.getElementById(id).style.visibility = "hidden";
	document.getElementById(id).style.display = "none";
}


function trim(str) {
	if(typeof(str)=="string") {
		return str.replace(/^\s+|\s+$/g, "");
	 } else {
		 return str;
	 }
}


function isInteger(s) {
	var i;
    for(i = 0; i < s.length; i++) {
		// Check that current character is number.
        var c = s.charAt(i);
		
        if (((c < "0") || (c > "9"))) return false;
    }
	
    // All characters are numbers.
    return true;
}


function isText(str) {
	var text = new RegExp('^[\.\,\a-zäüöÄÜÖßA-Z\-\ ]+$', 'i');
	
	if (text.test(str) === false) {
		return false;
	}
	
	return true;
}


// date validator
function daysInFebruary(year) {
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
	}
	
	return this;
}


function checkedBedingungen() {
	var form = document.forms["gs"];
	
	form.Bedingungen.checked = true;
	
	formcheck('', '');
}


function go() {
	c = formcheck('', '');
	
	if (c == true) {
		document.gs.submit();
	}
}


function formcheck(mandanten_abkz, gewinnspiel_id) { 
	var form = document.forms["gs"];
	var hardError = false;
	
	// email regeln
	var reg = new RegExp (
		'^([a-zA-Z0-9\-\.\_\!\#\$\%\&\*\+\-\/\=\?\^\`\{\|\}\~]+)'+	// Name
		'(\@)'+	// @-Zeichen
		'([a-zA-Z0-9\-\.]+){2}'+	// Domain
		'(\.)'+	// Punkt
		'([a-z]{2,4})$'	// TLD
	);
  	
	var error = "";
	
	if(form.Anrede[0].checked != true && form.Anrede[1].checked != true) {
		error += " - Anrede<br />";
	}
	
	if(trim(form.Vorname.value).length < 3) {
		error += " - Vorname<br />";
		form.Vorname.style.borderColor = "#FE0002";
	} else if (isText(form.Vorname.value) == false) {
		error += " - Vorname falsch<br />";
		form.Vorname.style.borderColor = "#FE0002";
	}
	
	
	if(trim(form.Nachname.value).length < 3) {
		error += " - Nachname<br />";
		form.Nachname.style.borderColor = "#FE0002";
	} else if (isText(form.Nachname.value) == false) {
		error += " - Nachname falsch<br />";
		form.Nachname.style.borderColor = "#FE0002";
	}
	
	
	if(trim(form.Email.value) == '') {
		error += " - E-Mail<br />";
		form.Email.style.borderColor = "#FE0002";
	} else if (reg.test(form.Email.value) == false) {
		error += " - E-Mail ist falsch<br />";
		form.Email.style.borderColor = "#FE0002";
	}else{
		var domainCheck = $.ajax({
			   					  type: "POST",
								  url: "libs/ajax/checkEmail.php",
								  data: "email="+form.Email.value,
								  async: false
								}).responseText;
		if(domainCheck == 'mailOk'){
			// do nothing loop
		} else if (domainCheck == 'mailDuplicateCoreg'){
			error = " Sie haben mit der Emailadresse bereits teilgenommen<br />";
			form.Email.style.borderColor = "#FE0002";
			hardError = true;
		} else if (domainCheck == 'mailDuplicate') {
			error = " Sie haben mit dieser Emailadresse bereits teilgenommen<br />";
			form.Email.style.borderColor = "#FE0002";
			hardError = true;
		} else {
			error += " - E-Mail ist falsch<br />";
			form.Email.style.borderColor = "#FE0002";
		}
	}
	
	
	if(form.Bedingungen && !form.Bedingungen.checked) { 
		error += "- Einverständniserklärung";
	}
	
	
	if(error != "") {
		errormsg = "<div class=\"x\"><a href=\"javascript:hideDiv('message');\">X</a></div>";
		
		if(!form.Bedingungen.checked) {
			errormsg += "<p style=\"text-align:center;margin-top:0.5em;\"><b>";
			errormsg += "Bitte akzeptieren Sie <a href=\"content/" + mandanten_abkz + "/datenschutz.html\" target=\"_blank\" onclick=\"popup(this.href, 'Datenschutz', 480, 600); return false\">Datenschutz</a>";
			errormsg += " und <a href=\"content/" + mandanten_abkz + "/agb.php?gid=" + gewinnspiel_id + "\" target=\"_blank\" onclick=\"popup(this.href, 'AGB', 480, 600); return false\">AGB</a>";
			errormsg += "</b></p>";
			errormsg += "<p class=\"acceppt\"><a href =\"#\" onclick=(checkedBedingungen())>akzeptieren</a></p>";
		} else {
			if(!hardError){
				errormsg += "<p style=\"margin-top:0.5em;\"><b>Bitte füllen Sie diese Felder aus:</b></p>"; 
			} else {
				errormsg += "<p style=\"margin-top:0.5em;\"><b>Fehler:</b></p>"; 
			}
			errormsg += "<p  style=\"margin-bottom:0.5em;\">" + error + "</p>";
		}
		
		nachricht = document.getElementById('message');
		showDiv('message');
		nachricht.innerHTML = errormsg;
	} else {
		form.submit();
	}
}

$(document).ready(function(){
	$("input[name='Plz']").blur( function(){
		if(trim(document.forms["gs"].Plz.value) != '' && document.forms["gs"].Land.value == 'DE'){
			$("input[name='Ort']").val( $.ajax({ type: "POST",
										    	 url: "libs/ajax/getOrtByPostleitzahl.php",
												 data: "plz="+trim(document.forms["gs"].Plz.value),
												 async: false
											   }).responseText );
			
			if( trim(document.forms["gs"].Vorwahl.value) == ''){
				$("input[name='Vorwahl']").val( $.ajax({ type: "POST",
												    	 url: "libs/ajax/getVorwahlByPostleitzahl.php",
														 data: "plz="+trim(document.forms["gs"].Plz.value),
														 async: false
													   }).responseText );
			}
		}
	});
});



function formcheckSeite2(domain_url, hashCode, step) {
	var daysInMonth = DaysArray(12);
	var form = document.forms["gs"]; 
  	var error = ""; 
	
	var datum = new Date();
	var jahr_heute = datum.getFullYear()-18;
	
	var geb_tag = form.Geb_Tag.value;
	var geb_monat = form.Geb_Monat.value;
	var geb_jahr = form.Geb_Jahr.value;
	
	
	if(trim(form.Strasse.value).length < 3) {
		error += " - Strasse<br />";
		form.Strasse.style.borderColor = "#FE0002";
	} else if (isText(form.Strasse.value) == false) {
		error += " - Strasse nicht korrekt<br />";
		form.Strasse.style.borderColor = "#FE0002";
	}
	
	if(trim(form.Hausnr.value).length < 1) {
		error += " - Hausnr<br />";
		form.Hausnr.style.borderColor = "#FE0002";
	}
	
	if(trim(form.Plz.value).length == '') {
		error += " - PLZ<br />";
		form.Plz.style.borderColor = "#FE0002";
	} else if (trim(form.Land.value == 'DE')) {
		if(trim(form.Plz.value).length != 5 || isInteger(form.Plz.value) == false) {
			error += " - PLZ nicht korrekt<br />";
			form.Plz.style.borderColor = "#FE0002";
		}else{
// Erst wieder aktivieren wenn 100% alle Postleitzahlen in der Datenbank sind				
//			var postleitzahlCheck = $.ajax({  type: "POST",
//											  url: "libs/ajax/checkPostleitzahl.php",
//											  data: "plz="+trim(form.Plz.value),
//											  async: false
//											}).responseText;
//			
//			if(postleitzahlCheck == false){
//				error += " - PLZ existiert nicht<br />";
//				form.Plz.style.borderColor = "#FE0002";
//			}			
		}
	} else if (trim(form.Land.value == 'AT') || trim(form.Land.value == 'CH')) {
		if(trim(form.Plz.value).length != 4 || isInteger(form.Plz.value) == false) {
			error += " - PLZ nicht korrekt<br />";
			form.Plz.style.borderColor = "#FE0002";
		}
	}
	
	if(trim(form.Vorwahl.value).length < 3) {
		error += " - Vorwahl<br />";
		form.Vorwahl.style.borderColor = "#FE0002";
	}if( trim(form.Vorwahl.value).length > 6){
		error += " - Vorwahl<br />";
		form.Vorwahl.style.borderColor = "#FE0002";
	}else if (isInteger(form.Vorwahl.value) == false) {
		error += " - Vorwahl nicht korrekt<br />";
		form.Vorwahl.style.borderColor = "#FE0002";
	}
	
	if(trim(form.Rufnummer.value).length < 4) {
		error += " - Rufnummer<br />";
		form.Rufnummer.style.borderColor = "#FE0002";
	} else if (isInteger(form.Rufnummer.value) == false) {
		error += " - Rufnummer nicht korrekt<br />";
		form.Rufnummer.style.borderColor = "#FE0002";
	}
	
	if(trim(form.Ort.value).length < 3) {
		error += " - Ort<br />";
		form.Ort.style.borderColor = "#FE0002";
	} else if (isText(form.Ort.value) == false) {
		error += " - Ort nicht korrekt<br />";
		form.Ort.style.borderColor = "#FE0002";
	}
	
	// geburtstag
	if(trim(geb_tag) == '' && trim(geb_monat) == '' && trim(geb_jahr) == '') {
		error += " - Geburtsdatum<br />";
		form.Geb_Tag.style.borderColor = "#FE0002";
		form.Geb_Monat.style.borderColor = "#FE0002";
		form.Geb_Jahr.style.borderColor = "#FE0002";
	} else if(trim(geb_tag).length < 1 || isNaN(form.Geb_Tag.value) || trim(geb_monat).length < 1 || isNaN(geb_monat) || trim(geb_jahr).length < 4 || isNaN(geb_jahr)) {
		error += " - Geburtsdatum nicht korrekt<br />";
		form.Geb_Tag.style.borderColor = "#FE0002";
		form.Geb_Monat.style.borderColor = "#FE0002";
		form.Geb_Jahr.style.borderColor = "#FE0002";
	} else if (geb_monat == 2 && geb_tag > daysInFebruary(geb_jahr) || geb_tag > daysInMonth[geb_monat] || geb_jahr < '1900') {
		error += " - Geburtsdatum nicht korrekt<br />";
		form.Geb_Tag.style.borderColor = "#FE0002";
		form.Geb_Monat.style.borderColor = "#FE0002";
		form.Geb_Jahr.style.borderColor = "#FE0002";
	} else if (geb_tag > 31 || geb_monat > 12 || geb_jahr > jahr_heute) {
		error += " - Teilnahme erst ab 18 Jahren m&ouml;glich!<br />";
		form.Geb_Tag.style.borderColor = "#FE0002";
		form.Geb_Monat.style.borderColor = "#FE0002";
		form.Geb_Jahr.style.borderColor = "#FE0002";
	}	
	
	if(error != "") {
		errormsg = "<div class=\"x\"><a href=\"javascript:hideDiv('message');\">X</a></div>";
		errormsg += "<p style=\"margin-top:0.5em;\"><b>Bitte füllen Sie diese Felder aus:</b></p>"; 
		errormsg += "<p  style=\"margin-bottom:0.5em;\">" + error + "</p>";
		
		nachricht = document.getElementById('message');
		showDiv('message');
		nachricht.innerHTML = errormsg;
	} else {
		form.submit();
		
		// nur beim bams
		if(form.Land.value != 'SONST') {
			showWin(domain_url, hashCode, step);
		}
	}
}



function auswahl(id, id2) {
	// submit button einblenden
	if(document.getElementById(id).checked) {
		showDiv(id2);
	} else {
		hideDiv(id2);
	}
	
	if(document.getElementById('beschwerde').checked) {
		document.getElementById('nachricht_info').style.visibility = "visible";
		document.getElementById('nachricht_info').style.display = "block";
	} 
	else if(document.getElementById('kontakt').checked) {
		document.getElementById('nachricht_info').style.visibility = "visible";
		document.getElementById('nachricht_info').style.display = "block";
	}
	else {
		document.getElementById('nachricht_info').style.visibility = "hidden";
		document.getElementById('nachricht_info').style.display = "none";
	}
}

function kontakt_check() { 
	var form = document.forms["gs"];
	error = "";
	
	// Radio-Gruppe durchlaufen
	var is_checked = "false";
	
	for(var i=0; i < form.Botschaft.length; i++){
		// Falls der aktuelle Radiobutton gesetzt ist
		if(form.Botschaft[i].checked == true) {
			is_checked = "true";
			break;
		}
	}
	
	// email regeln
	reg = new RegExp (
		'^([a-zA-Z0-9\\-\\.\\_]+)'+	// Name
		'(\\@)'+	// @-Zeichen
		'([a-zA-Z0-9\\-\\.]+)'+	// Domain
		'(\\.)'+	// Punkt
		'([a-zA-Z]{2,4})$'	// TLD
	);
	
	if (trim(form.Vorname.value).length < 3) 
	{ error += " - Name<br />"; } 
	
	
	if(reg.test(form.Email.value) == false)
	{ error += " - Email-Adresse<br />"; }
	
	if(is_checked == "false")
	{ error += " - Bitte wählen Sie Ihr Anliegen<br />"; }
	
	// nachricht beim beschwerde und kontakt ist pflicht
	if(form.Botschaft[1].checked == true || form.Botschaft[2].checked == true) {
		if(form.Nachricht.value == '')
		{ error += " - Sie haben keine Nachricht eingegeben<br />"; }
	}
	

	if (error != '') {
		errormsg = '<div class="x"><a href="javascript:hideDiv(\'message\');">X</a></div>';
		errormsg += '<p>Bitte füllen Sie diese Felder aus:</p>'; 
		errormsg += '<p>'+error+'</p>';
		
		infotext = document.getElementById('message');
		showDiv('message');
		infotext.innerHTML = errormsg;

		return false;
	} else {
		form.submit();
	}
	
}


function popup(adresse, beschreibung, W, H, center) {
	var left, top, desc, param;
	
	if(center == 1) {
		left	=	(screen.width)	?	(screen.width-W)/2:100;
		top		=	(screen.height)	?	(screen.height-H)/2:100;
	}
	else { 
		left 	= 400;
		top		= 50;
	}

	desc = "'" + beschreibung + "'";
	param += "'dependent=yes, location=no, menubar=0, scrollbars=yes, status=no, toolbar=no, resizable=no, top=" + top + ", left=" + left + ", width=" 	+ W + ", height=" + H +	"'";
	
	fenster = window.open (adresse, beschreibung, param);
	fenster.focus;
}


function doform(color) {
	document.gs.iphonecolor.value = color;
}

function showWin(domain_url, hashCode, step) {
	if(step == 'step_3') {
		settings = "width=624, height=468, status=no, scrollbars=no, menubar=no, toolbar=no";
	} else{
		settings = "width=700, height=500, status=no, scrollbars=no, menubar=no, toolbar=no";
	}
	win=window.open("http://" + domain_url + "/index.php?action=coreg_popunder&HASH=" + hashCode + "&step=" + step, "CoregPopunder", settings);
	win.blur(); 
}

function doiPopunder(domain_url, hashCode, step) {
	settings = "width=500, height=500, status=no, scrollbars=no, menubar=no, toolbar=no";
	
	win = window.open("http://" + domain_url + "/index.php?action=coreg_popunder&HASH=" + hashCode + "&step=" + step, "Coreg Popunder", settings);
	win.blur(); 
}

function skyswitch(id, idname) {
	document.getElementById("sb").style.backgroundImage = "url(gewinnspiele/templates/" + id + "/img/step_1_list.gif)";
	document.getElementById("sa").style.backgroundImage = "url(gewinnspiele/templates/" + id + "/img/step_1_list.gif)";
	document.getElementById(idname).style.backgroundImage = "url(gewinnspiele/templates/"+ id +"/img/step_1_list_a.gif)";
	document.gs.iphonecolor.value = idname;
}