var mail_check = false;
var user_check = false;
var pw_check = false;

var path_to_files = "/elements/registration/";

function showInfo(langfo){	
	var ajax = new Ajax.Updater(
         'infotxt',        // DIV id (XXX: doesnt work?)
         path_to_files+'func.loadinfo.php',       // URL
         {                // options
         method: 'post',
		 postBody: 'langfo='+langfo,
		 onComplete: showResponse
		 });

	function showResponse(req){
		$('infotxt').innerHTML = req.responseText;
	}
}


function regExMail(mail){
	ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
	for(i=0; i < mail.length ;i++){
		if(ok.indexOf(mail.charAt(i))<0){ 
			return (false);
		}	
	} 

	if (document.images) {
		re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
		if (!mail.match(re) && mail.match(re_two)) {
			return (-1);		
		} 
	}
}


function checkEmail(mail){
	var loader = $('email_load');
	var alarm = $('email_alert');
	var ok = $('email_ok');
	
	if(!regExMail(mail)){
		loader.style.display = "none";
		alarm.style.display = "block";
		ok.style.display = "none";
		mail_check = false;
	}
	else{
		loader.style.display = "block";
		alarm.style.display = "none";
		ok.style.display = "none";
		
		var ajax = new Ajax.Request(
			path_to_files+'func.checkemail.php',  // URL
         	{  // options
         		method: 'post',
		 		postBody: 'email='+mail,
		 		onSuccess: function(req){
			
			if(req.responseText == "good"){
				loader.style.display = "none";
				alarm.style.display = "none";
				ok.style.display = "block";
				mail_check = true;
				document.form1.username.disabled = false;
				document.form1.username.focus();
			}
			else{
				loader.style.display = "none";
				alarm.style.display = "block";
				ok.style.display = "none";
				mail_check = false;
				showInfo('email_taken');
			}
		}});
	}
}


function checkUsername(name){
	var loader = $('user_load');
	var alarm = $('user_alert');
	var ok = $('user_ok');
	
	if(name.length >= 3){
		var name_array = name.split("");
		var valid_chars = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,-,1,2,3,4,5,6,7,8,9,0";
		var char_array = valid_chars.split(",");
		var found = 0;
		for(j=0;j<name_array.length;j++){
			for(i=0;i<char_array.length;i++){
				if(name_array[j].indexOf(char_array[i]) == -1){
					valid = false;
				}
				else{
					valid = true;
					found++;
					break;
		}}}
		if(found == name.length){
			loader.style.display = "block";
			alarm.style.display = "none";
			ok.style.display = "none";
			
			var ajax = new Ajax.Request(
				path_to_files+'func.checkusername.php',  // URL
         		{  // options
         			method: 'post',
		 			postBody: 'username='+name,
		 			onSuccess: function(req){
						if(req.responseText == "good"){
							loader.style.display = "none";
							alarm.style.display = "none";
							ok.style.display = "block";
							user_check = true;
							document.form1.userpass.disabled = false;
							document.form1.userpass2.disabled = false;
							document.form1.userpass.focus();
						}
						else{
							loader.style.display = "none";
							alarm.style.display = "block";
							ok.style.display = "none";
							showInfo('user_taken');
							user_check = false;
						}
					}
				});
		}
		else{
			loader.style.display = "none";
			alarm.style.display = "block";
			ok.style.display = "none";
			user_check = false;
		}
	}
	else{
		loader.style.display = "none";
		alarm.style.display = "block";
		ok.style.display = "none";
		user_check = false;
	}
}


function checkPW(pw1,pw2){
	var alarm = $('pass_alert');
	var ok = $('pass_ok');
	if(pw1 == pw2 && pw1 != "" && pw2 != ""){
		alarm.style.display = "none";
		ok.style.display = "block";
		pw_check = true;
	}
	else if (pw1 == "" && pw2 != ""){
		alarm.style.display = "none";
		ok.style.display = "none";
		pw_check = false;	
	}
	else if (pw1 != "" && pw2 == ""){
		alarm.style.display = "none";
		ok.style.display = "none";
		pw_check = false;
	}
	else if (pw1 == "" && pw2 == ""){
		alarm.style.display = "none";
		ok.style.display = "none";
		pw_check = false;
	}
	else{
		showInfo('userpass_missmatch');
		alarm.style.display = "block";
		ok.style.display = "none";
		pw_check = false;
	}
}


function checkForm1(){
	var step1 = $('regi_step1');
	var step2 = $('regi_step2');
	if(pw_check == true && user_check == true && mail_check == true){
		var ajax = new Ajax.Updater(
         'none_really',        // DIV id (XXX: doesnt work?)
         path_to_files+'func.authcode.php?auth_status=send',       // URL
         {                // options
         method: 'post',
		 postBody: Form.serialize('form1'),
		 onComplete: function(req){
						if(req.responseText == "good"){
							step1.style.display = "none";
							step2.style.display = "block";
						}
						else{
							alert("We are experiencing technical difficulties with the mailserver. Please try again later.");
						}
					}
		 });
	}
	else{
		showInfo('missing_items');
	}
}

function advanceForm(){
	var loader = $('auth_load');
	var alarm = $('auth_alert');
	var ok = $('auth_ok');
	
	loader.style.display = "block";
	alarm.style.display = "none";
	ok.style.display = "none";
	
	if($('auth_code').value != ""){
		var ajax = new Ajax.Updater(
         'none_really',        // DIV id (XXX: doesnt work?)
		  path_to_files+'func.authcode.php?auth_status=verify',
         {                // options
         method: 'post',
		 postBody: Form.serialize('advanceform'),
		 onComplete: function(req){
			 			if(req.responseText != "nogood"){
							loader.style.display = "none";
							alarm.style.display = "none";
							ok.style.display = "block";
							setTimeout("gotoPersonalInfos("+req.responseText+")",1000);
						}
						else{
							showInfo('auth_code_wrong');
							loader.style.display = "none";
							alarm.style.display = "block";
							ok.style.display = "none";
						}
					}
		 });
	}
	else{
		showInfo('missing_items');
		loader.style.display = "none";
		alarm.style.display = "block";
		ok.style.display = "none";
	}
}


function gotoPersonalInfos(user_id){
	var ajax = new Ajax.Updater(
	 'registration_container',        // DIV id (XXX: doesnt work?)
	 path_to_files+'personal_info.php',       // URL
	 {                // options
	 method: 'post',
	 postBody: 'user_id='+user_id,
	 onComplete: function(req){
					$('registration_container').innerHTML = req.responseText;
				}
	 });
}


var sex_check = false;
var country_check = false;
var region_check = false;
var bday_check = false;
var captcha_check = false;
var agb_check = false;

function sexChoosen(){
	var alarm = $('sex_alert');
	var ok = $('sex_ok');
	alarm.style.display = "none";
	ok.style.display = "block";
	sex_check = true;
}


function getRegions(country){
	var loader = $('country_load');
	var alarm = $('country_alert');
	var ok = $('country_ok');
	
	if(country == ""){
		country_check = false;
		loader.style.display = "none";
		alarm.style.display = "none";
		ok.style.display = "none";
	}
	else{
	loader.style.display = "block";
	alarm.style.display = "none";
	ok.style.display = "none";
	
	$('region_alert').style.display = "none";
	$('region_ok').style.display = "none";
	region_check = false;
	
	var ajax = new Ajax.Updater(
	'regionselect',	// DIV id
	path_to_files+'func.getregions.php',	// URL
	{	// options
		method: 'post',
		postBody: 'country='+country,
		onComplete: function(req){
			loader.style.display = "none";
			alarm.style.display = "none";
			ok.style.display = "block";
			country_check = true;
			if(req.responseText == ''){
				$('regionselect').style.display = "none";
				$('regionselect').innerHTML = '<input type="hidden" name="region" value="0">';
				$('regionselect_title').style.display = "none";
				region_check = true;
			}
			else{
				$('regionselect').innerHTML = req.responseText;
				$('regionselect').style.display = "block";
				$('regionselect_title').style.display = "block";
			}
		}
	});
	}
}

function regionChoosen(value){
	var alarm = $('region_alert');
	var ok = $('region_ok');
	if (value == "") {
		alarm.style.display = "none";
		ok.style.display = "none";
		region_check = false;
	} 
	else { 
		alarm.style.display = "none";
		ok.style.display = "block";
		region_check = true;
	}
}

function bdayCheck(){
	var alarm = $('bday_alert');
	var ok = $('bday_ok');
	if($F('bday') != "" && $F('bmon') != "" && $F('byea') != ""){
		alarm.style.display = "none";
		ok.style.display = "block";
		bday_check = true;
	}
	else{
		alarm.style.display = "none";
		ok.style.display = "none";
		bday_check = false;
	}
}

function checkCaptcha(code){
	var loader = $('captcha_load');
	var alarm = $('captcha_alert');
	var ok = $('captcha_ok');
	
	loader.style.display = "block";
	alarm.style.display = "none";
	ok.style.display = "none";
	
	var ajax = new Ajax.Request(
		path_to_files+'func.checkcaptcha.php',  // URL
        {  // options
			method: 'post',
		 	postBody: 'thecode='+code,
		 	onSuccess: function(req){
				if(req.responseText == "good"){
					loader.style.display = "none";
					alarm.style.display = "none";
					ok.style.display = "block";
					captcha_check = true;
				}
				else{
					loader.style.display = "none";
					alarm.style.display = "block";
					ok.style.display = "none";
					captcha_check = false;
				}
			}
		})
}

function checkAGBS(){
	if(document.form2.agbs.checked == true){
		agb_check = true;
	}
	else{
		agb_check = false;
	}
}


function checkForm2(){
	if(sex_check == true && country_check == true && region_check == true && bday_check == true && captcha_check == true && agb_check == true){
		document.form2.Submit.disabled = true;
		var ajax = new Ajax.Updater(
         'registration_container',        // DIV id (XXX: doesnt work?)
         path_to_files+'personal_info.php',       // URL
         {                // options
         evalScripts: true,
		 method: 'post',
		 postBody: Form.serialize('form2'),
		 onComplete: function(req){
			 			content = req.responseText.split("¦");
						$('registration_container').innerHTML = content[1];
						setTimeout("loginRedirect('"+content[0]+"');",3000);
					}
		 });
	}
	else{
		showInfo('missing_items');
		document.form2.Submit.disabled = false;
	}
}


function loginRedirect(username){
	document.location.href = "/profile/"+username+"/aboutme/";
}
