var telrepeat=0;
var regemail = new RegExp ('^([a-zA-Z0-9\-\.\_]+)(\@)([a-zA-Z0-9\-\.]+){2}(\.)([a-z]{2,4})$');
var tfields=new Object();
// values not needed at the moment. Should be used for messages
tfields['Vorname']='Vorname';
tfields['Nachname']='Nachname';
tfields['Geburtstag']='Geburtsdatum: TT.MM.JJJJ';
tfields['Telefon']='Telefon';
tfields['Vorwahl']='Vorwahl';
tfields['E-Mail']='E-Mail';
tfields['Ort']='Ort';
tfields['Plz']='PLZ';
tfields['Strasse']='Straße';
tfields['Nr']='Nr.';
var toggling=false,GSdone=1,GSmax=4,haveprogressbar=false,nrsregfields=0;

function showGSButton(what){
	what=what.replace(/^.+bannerid:([0-9]+),$/,"$1");
	if(what==0) return;
	var gscl = '';
	//$("#Gutschein"+GSdone).show();
	if(typeof GSBclass != 'undefined') gscl=' class="'+GSBclass+'" ';
	$("#Gutschein"+GSdone).append('<h4><a href="http://a3.iwin.de/click.a3s/'+what+'/'+adzone_danke+'"'+gscl+' target="_blank">Gutschein einlösen<'+'/a><'+'/h4>');
	GSdone++;
	if(GSdone <= GSmax)showGutschein();
	}
function showGutschein() {
	if(!adzone_danke || adzone_danke =='') return;
	if (!document.A3used) document.A3used = ',';
	document.write=function(data){$("#Gutschein"+GSdone).append(data);}
	$.getScript('http://a3.iwin.de/js/js.a3s?n=518840812&zone_id='+adzone_danke+'&target=_BLANK&block=1&exclude='+document.A3used,function(data, textStatus){showGSButton(document.A3used);});
	}
function showRegProgress() {
	if(!haveprogressbar) return;
	nr=$(".cbox").find(".ok").length;
	if($('input[name="UD_ANREDE"]:checked').val()) nr++;
	nr += $('input[name^="teilnbed"]').filter(":checked").length;
	newwidth=nr * 100 / nrsregfields;
	$("#regprogressbar").css("width",newwidth+"%");
	}
//this maybe necessary when reloading content
function prepareCont() {
	$(".submit").click(function(){submitIt();});
	$(".cbox").corner("5px").parent().corner("10px");
	$(".overcbox").corner("5px").parent().corner("10px");
	$(".corn10").corner("10px");
	$(".corn15").corner("15px");
	$(".corn30").corner("30px");
	$(".errtext").corner("5px");
	if(!$.browser.msie) $('input[type="text"],select').corner("5px");
	else {
		$("input[type=text],select").css("border","1px groove gray");
		$(".anrede").css("height","28px")
		}
	for(elm in tfields) {
		nrsregfields++;
		if($("#"+elm).val() !='' )$("#"+elm).parent().find('label').hide();
		$("#"+elm).focus(
			function(){$(this).removeClass("err");if($(this).val()=='') $(this).parent().find('label').addClass('foc');}
			);
		$("#"+elm).blur(
			function(){if($(this).val()=='')$(this).removeClass("ok").parent().find('label').removeClass('foc').show();else checkSingle($(this).attr("id"));}
			);
		$("#"+elm).keydown(
			function(){$(this).parent().find('label').hide();}
			);
		// for auto fillers...and progressbar on empty
		$("#"+elm).change(
			function(){if($(this).val()==''){$(this).removeClass("ok").parent().find('label').removeClass('foc').show();showRegProgress();}else $(this).parent().find('label').hide();}
			);
		}
	//init prog
	if($("#regprogressbar").length > 0) {
		$("#regprogressbar").corner("10px");
		haveprogressbar = true;
		nrsregfields += $('input[name^="teilnbed"]').length;
		$('input[name^="teilnbed"]').click(function(){showRegProgress()});
		if($('input[name="UD_ANREDE"]').length > 0){
			nrsregfields++;
			$('input[name="UD_ANREDE"]').click(function(){showRegProgress()});
			}
		showRegProgress();
		}	
	}

//dom ready stuff
var docw='',docwrcount=1;
$(function(){
	prepareCont();
	$('a[target="small"]').click(function(){loadOverlay($(this).attr('href'));$("#overlay").css("visibility","visible");return false});//animate({visibility:visible},100);});
	$("#closeoverlay").click(function(){closeOverlay();});
	});

function toggleCbox(cont){
	toggling=true;
	$(".nextocb").find(".cbox").html(cont);
	$(".nextocb").filter(":first").css("position","static");
	ocbheight=$(".ocb").outerHeight()+10;
	ocbpos=$(".nextocb").filter(":first").position();
	$(".ocb").filter(":first").css("position","relative").animate({
		top:'-='+(ocbheight+100)
		},
	1000,
	function(){
		}		
	);
	$(".nextocb").css("position","relative").toggle().animate({
		top:'-='+ocbheight
		},
	1000,
	function(){
		$(this).css("position","static");
		$(this).css("top",0);
		$(".nextocb").removeClass("nextocb");
		$(".ocb").filter(":first").remove();
		$("#cmain").append('<div class="ocb nextocb" style="display:none"><div class="cbox"><\/div><\/div>');
		toggling=false;
		prepareCont();
		mpos=$("#cmain").position();
		$(window).scrollTop(mpos.top);
		});
	}
	
/* form stuff*/
// help function
function getFieldVal(field) {
	return jQuery.trim($("#"+field).val());
	}

//check functions
function codeToCity(zip){
	if(zip == '')return;
	$("#Ort").val( $.ajax({ type: "POST",
			url: "/iwin/game/adrtest.php",
			data: "todo=checkplz&plz="+zip,
			async: false
		}).responseText );
	if($("#Ort").val()!='')$("#Ort").parent().find('label').hide();
	}
	
function checkAddr() {
	var adrcheck=($.ajax({ type: "Post",
			url: "/iwin/include/adrtest.php",
			data: "todo=adrcheck&plz="+getFieldVal('Plz')+"&ort="+getFieldVal('Ort')+"&str="+getFieldVal('Strasse'),
			async: false
		}).responseText);
	return adrcheck;
	}

function submitIt() {
	if($('input[name="todo"]').val()=='submit') checkReg();
	else sendForm();
	}
// when submit
function checkReg(){
	/* stop form from submitting normally */
	$("#RegForm").submit(function(event) {event.preventDefault();});
	// reset errortexts
	$(".errtext").hide().find("span").remove();
	markOk("Vorname","Nachname","Strasse","Nr","Plz","Ort","E-Mail","Geburtsdatum","Vorwahl","Telefon");
	var errt='';
	telrepeat++;
	// name
	if(!$('input[name="UD_ANREDE"]:checked').val()) errt += markError('Anrede');
	if(getFieldVal('Vorname').length < 2)errt += markError('Vorname');
	if(getFieldVal('Nachname').length < 2)errt += markError('Nachname');
		// email
	if(regemail.test(getFieldVal('E-Mail')) == false) errt += markError('E-Mail');
	// phone
	if(telrepeat < 2) {
		if(getFieldVal('Vorwahl').length < 3 || getFieldVal('Vorwahl').length > 6 || !isFinite(getFieldVal('Vorwahl')) || parseInt(getFieldVal('Vorwahl'),10) == "0")
			errt += markError('Vorwahl');
		if(getFieldVal('Telefon').length < 3 || !isFinite(getFieldVal('Telefon')))
			errt += markError('Telefon');
		}
	// address
	if(getFieldVal('Nr')=='')errt += markError('Nr');
	if($("#UD_LAND option:selected").val()=='D') {
		if(getFieldVal('Ort') != '' && getFieldVal('Strasse') != '' && getFieldVal('Plz') != '' && checkAddr() == 0)
			errt += markError('Plz','Ort','Strasse');
		else {
			if(getFieldVal('Plz').length < 5 || isNaN(getFieldVal('Plz'))) errt += markError('Plz');
			if(getFieldVal('Ort').length < 2) errt += markError('Ort');
			if(getFieldVal('Strasse').length < 3) errt += markError('Strasse');
			}
		}
	else {
		if(getFieldVal('Plz').length < 4 || isNaN(getFieldVal('Plz'))) errt += markError('Plz');
		if(getFieldVal('Ort').length < 2) errt += markError('Ort');
		if(getFieldVal('Strasse').length < 3) errt += markError('Strasse');
		}
	// age
	if(getFieldVal('Geburtstag')=='')errt += markError('Geburtstag');
	else {
		var bdarr=getFieldVal('Geburtstag').split(".");
		if(bdarr.length != 3) errt += markError('Geburtstag');
		else if(isNaN(bdarr[0]) || isNaN(bdarr[1]) || isNaN(bdarr[2])) errt += markError('Geburtstag');
		else if(parseInt(bdarr[2]) < 1900 || parseInt(bdarr[1]) > 12 || parseInt(bdarr[0]) > 31) errt += markError('Geburtstag');
		else {
			var nowd = new Date();
			var userd = new Date(parseInt(bdarr[2]), parseInt(bdarr[1]),parseInt(bdarr[0]));
			if(nowd.getYear() - userd.getYear() < 18 || (nowd.getYear() - userd.getYear() == 18 && nowd.getMonth() < userd.getMonth() && nowd.getDate() < userd.getDate())) {
				errt += markError('Geburtstag');
				errText('Teilnahme erst ab 18 Jahren!<br>');
				}
			}
		}
	// teilnbed
	$('input[name^="teilnbed"]').each(function(){if($(this).attr('checked')==false){errt += "Einverständniserklärung";return false}});
	if(errt == '') sendForm();
	else {
	 	$(".submit").effect("shake", { times:5 }, 30);
	 	errText(errt);
	 	}
	}

// on blur, just check syntax mostly
function checkSingle(field){
	val=getFieldVal(field);
	if(val=='') markError(field);
	else if((field == 'E-Mail' || field=='Strasse') && val.length < 3) markError(field);
	else if(field == 'E-Mail' && regemail.test(getFieldVal('E-Mail')) ==false) markError(field);
	else if((field == 'Nachname' || field=='Vorname' || field=='Ort') && val.length < 2) markError(field);
	else if(field == 'Nr' && val.length < 1) markError(field,0);
	else if(field == 'Plz' && isNaN(val)) markError(field);
	else if((field == 'Vorwahl' || field=='Telefon') && val!='' && (val.length < 3 || isNaN(val))) markError(field);
	else if(field == 'Plz' && 
		(($("#UD_LAND option:selected").val()=='D' && val.length != 5) || ($("#UD_LAND option:selected").val()!='D' && val.length !=4))
		) markError(field);
	else {
		// some specials only for country D
		if($("#UD_LAND option:selected").val()=='D') {
			// autofill city field only when not checking all (eg not writing error texts)
			if(field=='Plz') codeToCity(val);
			if(field == 'Plz' || field=='Ort' || field=='Strasse') {
				if(getFieldVal('Ort') != '' && getFieldVal('Strasse') != '' && getFieldVal('Plz') != ''){
					adrcheck=checkAddr();
					if(adrcheck==0) markError('Plz','Ort','Strasse');
					else markOk('Plz','Ort','Strasse');
					return;
					}
				}
			}
		else {
			// only syntax cehck for outside DE
			if(field=='Ort' && getFieldVal('Ort').length < 2)  markError('Ort');
			else if(field=='Strasse' && getFieldVal('Strasse').length < 3) markError('Strasse');
			}		
		markOk(field);
		}
	}

function markError() {
	var errf='';
	for(i=0;i< markError.arguments.length;i++) {
		field = markError.arguments[i];
		$("#"+field).removeClass("ok").addClass("err");
		errf += field+", ";
		}
	showRegProgress();
	return errf;
	}

function markOk() {
	for(i=0;i< markOk.arguments.length;i++) {
		field = markOk.arguments[i];
		$("#"+field).removeClass("err").addClass("ok");
		}
	showRegProgress();
	}

function errText(txt) {
	if(txt.indexOf(",") > (txt.length -2)) txt=txt.substring(0,txt.lastIndexOf(','));
	$(".errtext").show().append("<span>"+txt+"<\/span>");
	}

function sendForm() {
	var values = {};
	// ie do not get along with js inside ajax loaded content well
	if($.browser.msie && $('input[name="todo"]').val()=='coreg'){
		$(".cbox").find('form').submit();
		return;
		}
	if(toggling) return;
	
  $(".cbox").find('input[type="text"],select,input:checkbox:checked,input:radio:checked,input:hidden').each(function() {
        values[this.name] = $(this).val();
    });
  values['ajax']=1;
  $.ajax({
        url: '/iwin/game/index.php',
        contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",
        data: values,        
        type: 'post',
        success: function(msg){toggleCbox(msg)}
    });
	}

function loadOverlay(url){
	$('#overcont').load(url+'&ajax=1');		
	}

function closeOverlay(){
	$('#overlay').css('visibility','hidden');		
	}
// dummy to overwrite unnecessary calls
function opensmall() {
	return false;
	}

