﻿/**
 * @author GawSoft biuro@gawsoft.pl
 * @since 2008-09-18
 * @date 2008-09-18
 * @version 1.01
 * Register javascript form
 */

var site_url = "http://www.bukmacherzy.com/";
var login_exists = "Login istnieje w naszej bazie";
var login_to_short = "Login jest za krótki. Musi zawierać min. 3 znaki";
var bad_email = 'Zły email';
var no_password = 'Nie wpisałeś hasła';
var no_rules = 'Nie zaznaczyłeś regulaminu';
var email_exists = "Adres e-mail już istnieje";

var error=0;


function show_error_box()
{
	document.getElementById('register_error_box').style.display="block";
}

/**
 * @param obj Object Object of input with login
 * Check login is correct and doesnt exists
 */
 

function register()
{
    check_login(document.getElementById('username'));
	check_rules();
	check_password();
	check_email(document.getElementById('email'));
	
	var img=document.getElementsByTagName("img");
	for(var i=0;i<img.length;i++)
	{
		if(img[i].className=="error_img" && (img[i].style.display=="block" || img[i].style.display=="inline"))
		{
			alert("Formularz zawiera błędy popraw je i wyślij ponownie");
			return false;
		}
	}
	
	document.getElementById('register_button').onclick = "";
    var sex=0;
    if(document.getElementById("mez"))
    {
        if(document.getElementById('mez').checked)
           sex=1;
        else if(document.getElementById('kob').checked)
           sex=2;
    }
/*
 *loginTypujemy": document.getElementById('login_typujemy').value,
			"loginSportczat": document.getElementById('login_sportczat').value,
			"emailMoneybookers": document.getElementById('email_moneybookers').value,
			"imie": document.getElementById('imie').value,
                        "nr": document.getElementById('nr').value,
			"nazwisko": document.getElementById('nazwisko').value,
			"ulica": document.getElementById('ulica').value,
			"kod": document.getElementById("kod").value,
			"miasto": document.getElementById("miasto").value,
			"wojewodztwo": document.getElementById("wojewodztwo").options[document.getElementById("wojewodztwo").selectedIndex].value,
			"rok": document.getElementById("rok").options[document.getElementById("rok").selectedIndex].value,
			"komorka": document.getElementById("komorka").value,
 */
	advAJAX.post({ 
		url: "http://www.bukmacherzy.com/register_xml/",
		parameters : {
			"login" : document.getElementById('username').value,
			"password": document.getElementById('pass').value,
			"password2": document.getElementById('pass2').value,
			"email":document.getElementById('email').value,
			"rules": document.getElementById("rules").checked
                        
		},
		onSuccess : function(obj) { 
			var info = obj.responseXML.getElementsByTagName("register_info");
			var error = obj.responseXML.getElementsByTagName("register_error");
			if(error.length==0){
                document.getElementById('register_processing').style.display="none";
                document.getElementById('register_boxa').style.display="block";
                return true;
            }
			
			var error_items = error[0].getElementsByTagName("i");
			if(error_items.length == 0){
				document.getElementById('register_error_items').innerHTML = "";
				document.getElementById('register_error_box').style.display="none";
				return set_register_box();
			}		
			document.getElementById('register_button').onclick = function(){register()};
			if(error_items.length > 0)
			{
				var ul = document.createElement("ul");
				for(var z=0;z<error_items.length;z++){
					var li = document.createElement("li");
					li.innerHTML = error_items[z].firstChild.nodeValue;
					ul.appendChild(li);
				}
				document.getElementById('register_error_items').innerHTML = "";
				document.getElementById('register_error_items').appendChild(ul);
				document.getElementById('register_error_box').style.display="block";
			}
			
		},
         timeout : 4000,
		 onTimeout : function() { document.getElementById('register_processing').style.display="none";alert("Connection timed out."); },
		 retry: 1,
		 retryDelay: 2000,
		onError : function(obj) { alert("Błąd podczas rejestracji: " + obj.status); },
		onInitialization: function(){ document.getElementById('register_processing').style.display="block";},
		onFinalization: function(){document.getElementById('register_processing').style.display="none";}
		
	});
	
	
	
}

function check_login(obj)
{
	if(check_login_validation(obj))
		check_login_exists(obj.value);
}

/**
 * @param obj Object Object of login input
 * Check login is correct
 */
function check_login_validation(obj)
{
 
	if(obj.value.length==0){
		set_chmurka(document.getElementById('login_error'),"Wpisałeś niepoprawny login");
		return false;
	}
	
	if(!check_accept_str(document.getElementById('login_error'),obj.value))
		return false;
		
	if (obj.value.length <3){
		set_chmurka(document.getElementById('login_error'),login_to_short);
		return false;
	}else{
		unset_chmurka(document.getElementById('login_error'));
		return true;
	}
	
	return true;
}

function set_register_box()
{
	document.getElementById('register_boxa').style.display="block";
}

function unset_register_box()
{
	document.getElementById('register_box').style.display="none";
}

function check_rules()
{
	if(document.getElementById("rules").checked==true){
		document.getElementById('rules_error').style.display="none";
		return true;
	}else{
		document.getElementById('rules_error').style.display="inline";
		return false;
	}
}

function check_password()
{
	var pass = document.getElementById('pass').value;
	var pass2 = document.getElementById('pass2').value;


	if(!check_accept_str(document.getElementById('password_error'),pass))
		return false;

	if(!check_accept_str(document.getElementById('password_error'),pass2))
		return false;
	
	if(pass.length < 5)
		return set_chmurka(document.getElementById('password_error'),"Hasła musi składać się minimum z 5 znaków");
	else
		unset_chmurka(document.getElementById('password_error'));
		
	if (pass && pass2 && pass!=pass2){
		set_chmurka(document.getElementById('password_error'),"Hasła róźnią się od siebie");
	}else{
		unset_chmurka(document.getElementById('password_error'));
	}


}

function send_form(obj)
{
	alert(event.keyCode);
}

function check_email(obj)
{
	var mail = obj.value;
	if(mail.length==0){
		set_chmurka(document.getElementById('email_error'),"Nie wpisałeś poprawnego adresu E-mail");
		return false;
	}
	
	if(!check_accept_str(document.getElementById('email_error'),obj.value))
	return false;
		
	if(mail.length>0)
	{
		if(!isEmail(mail)){
			return set_chmurka(document.getElementById("email_error"),bad_email);
		}else{
			unset_chmurka(document.getElementById('email_error'));
		}
		
		check_email_exists(mail);
	}
}
/**
 * @param string string Email string
 * @return bool
 * Check email is correct
 */
function isEmail(string) {
   var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
    if(emailfilter.test(string))
		return true;
	else
		return false;
}

function check_accept_str(obj,value)
{
	if(is_accept_str(value)){
		set_chmurka(obj,"Fraza zawiera niedozwolone znaki.");
		return false;
	}else{
		unset_chmurka(obj);
		return true;
	}

}


function is_accept_str(string)
{
	if(string.search(/[^A-Za-z0-9\.\-\_@^*&%$#!]/)!=-1)
		return true;
	else
		return false;
}

/**
 * @param login string login string
 * Check in Db that login exists only send query
 */
function check_login_exists(login)
{

	advAJAX.get({
		url: site_url+"/user/check_login_exists/?login="+login,	   
		onSuccess : function(obj) { login_check_xml(obj.responseXML); },
		onError : function(obj) { alert("Error: " + obj.status); }
	});
}

function check_email_exists(email)
{
	advAJAX.get({
		url: site_url+"/user/check_email_exists/?email="+email,	   
		onSuccess : function(obj) { email_check_xml(obj.responseXML); },
		onError : function(obj) { alert("Error: " + obj.status); }
	});
}


function lightInput(obj)
{
	if(obj.className!="r_input"){
		obj.className = "r_input";
	}else if(obj.className=="r_input" && obj.value==""){
		obj.className="p_input";
	}
}

function email_check_xml(xmlRoot)
{
	if(xmlRoot!=null){
		le = xmlRoot.getElementsByTagName("email_exists");
		if(le.length  == 0)
			return false;
			
		var email = le[0].firstChild.nodeValue;
	
		if(new Number(email)>=1){
			set_chmurka(document.getElementById("email_error"),email_exists);
		}else{
			unset_chmurka(document.getElementById('email_error'));
		}
		
	}
				 		      
}


function unset_chmurka(obj)
{
	if(error>0)
		error--;
		
	if(!obj.parentNode)
		return false;
		
	var img = obj.parentNode.getElementsByTagName("img");
	if(img.length>0)
	{
		img.item(0).style.display="none";
	}
	
	var table = obj.getElementsByTagName("table");
	if(table.length>0)
	{
		table.item(0).parentNode.removeChild(table.item(0));
	}
}	

function set_chmurka(obj,komunikat)
{
	error++;
	var table = document.createElement("table");
	table.cellSpacing=0;
	table.cellPadding=0;
	table.className="error_table";
	
	var tr = table.insertRow(0);
	
	var td = tr.insertCell(0);
	var img = document.createElement("img");
	img.src = "http://www.bukmacherzy.com/new_lay/images/register_error_a.gif";
	td.appendChild(img);
	
	td = tr.insertCell(1);
	td.className="b";
	
	td = tr.insertCell(2);
	img = document.createElement("img");
	img.src = "http://www.bukmacherzy.com/new_lay/images/register_error_b.gif";
	td.appendChild(img);
	
	tr = table.insertRow(1);
	td = tr.insertCell(0);
	td.className="a";
	td.innerHTML = "&nbsp;";
	
	td = tr.insertCell(1);
	td.className="g";
	td.valign="middle";
	/*img = document.createElement("img");
	img.src = "http://www.bukmacherzy.com/new_lay/images/strzalka_pink.gif";
	img.className="strzalka";
	td.appendChild(img);
   */
  
	td.innerHTML += komunikat;
	
	td = tr.insertCell(2);
	td.className="aa";
	td.innerHTML = "&nbsp;";
	
	tr = table.insertRow(2);
	td = tr.insertCell(0);
	img = document.createElement("img");
	img.src = "http://www.bukmacherzy.com/new_lay/images/register_error_c.gif";
	td.appendChild(img);
	
	td = tr.insertCell(1);
	td.className="f";
	
	td = tr.insertCell(2);
	img = document.createElement("img");
	img.src = "http://www.bukmacherzy.com/new_lay/images/register_error_d.gif";
	td.appendChild(img);
				
	obj.innerHTML = "";
	obj.appendChild(table);
	
	var imgs = obj.parentNode.getElementsByTagName("img");
	for(var i=0;i<imgs.length;i++)
	{
		if(imgs[i].className=="error_img")
			return imgs[i].style.display="block";
	}
}

function show_chmurka(obj)
{
	if(!obj.parentNode)
		return false;
		
	var table = obj.parentNode.getElementsByTagName("table");
	if(table.length==0)
		return false;
		
	table.item(0).style.display="block";
}

function disable_chmurka(obj)
{
	if(!obj.parentNode)
		return false;
		
	var table = obj.parentNode.getElementsByTagName("table");
	if(table.length==0)
		return false;
		
	table.item(0).style.display="none";
}

function login_check_xml(xmlRoot)
{
	if(xmlRoot!=null){
		le = xmlRoot.getElementsByTagName("user_exists");
		if(le.length  > 0)
			var login = le[0].firstChild.nodeValue;
		
		if(new Number(login)>=1){
            
			set_chmurka(document.getElementById("login_error"),login_exists);
		}else{
			unset_chmurka(document.getElementById('login_error'));
		}
	}
				 		      
}