/* inregistrare */
var Inregistrare = {
	
	empty: '', 
	
	ArrowOk: '<div class="boxHelperFormWhite"><div style="width:14px;"><img src="'+Site.imageSource()+'arrow-ok.png" border="0" align="left" /></div></div>',
	ArrowNotOk: '<div class="boxHelperFormWhite"><div style="width:14px;"><img src="'+Site.imageSource()+'arrow-not-ok.png" border="0" align="left" /></div></div>',
	
	/* mesaje formular username */
	userOk: false, 
	userMesajWelcome:'<div class="boxHelperForm" ><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Cu acest nume de utilizator te vei loga de acum inainte pe site-ul nostru. Alege cu atentie!<br />In nume poti folosi litere, cifre si _. Lungimea maxima admisa este de 36 de caractere.</div><div id="bottom"></div></div></div>',
	userMic: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Numele de utilizator trebuie sa aiba cel putin 5 caractere.</div><div id="bottom"></div></div></div>',
	userMare: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Numele de utilizator trebuie sa aiba cel mult 36 caractere.</div><div id="bottom"></div></div></div>',
	userCaractereRefuzate: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Caractere valide pentru numele de utilizator sunt: cel putin 3 litere, cifre, si _ </div><div id="bottom"></div></div></div>',
	userExist: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Acest nume de utilizator este folosit, va rugam alegeti un alt nume.</div><div id="bottom"></div></div></div>',
	userAvaible: '<div class="boxHelperForm"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Acest nume de utilizator este liber si poate fi folosit.</div><div id="bottom"></div></div></div>',
	userLitere: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Numele de utilizator trebuie sa contina cel putin trei litere.</div><div id="bottom"></div></div></div>',
	userMayBeAvaible: '<div class="boxHelperForm"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Acest nume de utilizator poate fi folosit. Click pe linkul de verificare disponibilitate pentru a vedea daca este liber.</div><div id="bottom"></div></div></div>',
	userCuvinteRefuzate: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Acest nume de utilizator nu poate fi folosit deoarce contine cuvinte neacceptate de site-ul joci.ro </div><div id="bottom"></div></div></div>',
	
	/* mesaje formular password */
	passOk: false, 
	passMesajWelcome:'<div class="boxHelperForm"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Pentru ca parola ta sa fie sigura:<br />- foloseste minim 6 caractere;<br />- foloseste macar o litera mare;<br />- foloseste macar o cifra;<br />- foloseste macar un caracter special ( *, &, _, #, ^, etc. ).</div><div id="bottom"></div></div></div>',
	passMic:'<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Parola trebuie sa aiba cel putin 6 caractere.</div><div id="bottom"></div></div></div>',
	passMayBe:'<div class="boxHelperForm"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Parola poate fi folosita.</div><div id="bottom"></div></div></div>',
	passMetterGoala:'<img src="'+Site.imageSource()+'parola-goala.png" border="0">',
	passMetterSlaba:'<img src="'+Site.imageSource()+'parola-slaba.png" border="0">',
	passMetterAcceptabila:'<img src="'+Site.imageSource()+'parola-acceptabila.png" border="0">',
	passMetterBuna:'<img src="'+Site.imageSource()+'parola-buna.png" border="0">',
	passMetterPuternica:'<img src="'+Site.imageSource()+'parola-puternica.png" border="0">',
	
	/* mesaje formular confirm password */
	passCOk: false, 
	passCMesajWelcome: '<div class="boxHelperForm"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Completeaza acest camp cu parola din campul de mai sus.</div><div id="bottom"></div></div></div>',
	passCParentEmpty: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Completeaza mai intai parola in campul de mai sus.</div><div id="bottom"></div></div></div>', 
	passNotEqual: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Nu s-a confirmat parola.</div><div id="bottom"></div></div></div>', 
	passEqual: '<div class="boxHelperForm"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Parola a fost confirmata.</div><div id="bottom"></div></div></div>',
	
	/* mesaje formular email */
	emailOk: false, 
	emailMesajWelcome: '<div class="boxHelperForm"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Alege o adresa de email la care esti sigur ca vei primi linkul de activare.<br />Utilizatorii care au conturile neactivate, nu se pot autentifica si juca pe site.</div><div id="bottom"></div></div></div>',
	emailExist: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Exista un nume de utilizator inregistrat cu aceasta adresa email.</div><div id="bottom"></div></div></div>',
	emailIsOk: '<div class="boxHelperForm"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Adresa email este corecta.</div><div id="bottom"></div></div></div>', 
	emailIsNotOk: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Adresa de email nu este corecta.</div><div id="bottom"></div></div></div>',
	emailIsNotDomain: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Adresa de email nu este corecta petntru ca nu ati specificat domeniul dupa caracaterul \'.\' </div><div id="bottom"></div></div></div>', 
	emailSpecialChars: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Adresa de email nu este corecta.</div><div id="bottom"></div></div></div>',
	emailIsNotDomainBetween: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Adresa de email nu este completata corespunzator.</div><div id="bottom"></div></div></div>',
	
	/* mesaje formular cod imagine */
	codOk: false, 
	codIsOk: '<div class="boxHelperForm"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Codul este corect.</div><div id="bottom"></div></div></div>',
	codIsNotOk: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Codul din camp nu este acelasi cu cel din imagine.</div><div id="bottom"></div></div></div>',
	
	inregistrareContentOk: '<strong>FELICITARI!<br />Ai fost inregistrat cu succes!</strong><br /><br />Tot ce iti mai ramane acum de facut este sa activezi contul. Joci.ro a trimis un mesaj la adresa de e-mail trecuta de tine in formularul de inregistrare. Deschide mesajul si fa click pe link-ul de activare, contul va deveni astfel activ. Pentru siguranta verifica si in fisierele Junk/Spam. Conturile neactivate vor fi sterse automat dupa 7 zile.<br /><br /><strong> Intampini probleme? </strong>Scrie-ne la adresa <strong>info</strong>@joci.ro si te vom ajuta.',
	
	termeni: false,
	termeniNotOk: '<div class="boxHelperFormRed"><div style="width:212px;"><div id="left2"></div><div id="center2">&nbsp;</div><div id="right2" style="width:190px;">Trebuie sa fiti de acord cu <b>termenii si conditiile</b> site-ului pentru a putea crea un cont.</div><div id="bottom"></div></div></div>',
	
	userMesaj: this.User,
	
	inputDoFocus:function( id ){
		Site.inputDoFocus( id );
		/* se face update la helper cu mesajul de intampinare */
		if( id.name == 'user' ){
			$('msg_user').innerHTML = this.userMesajWelcome;
			$('msg_pass').innerHTML = '';
			$('msg_pass_c').innerHTML = '';
		} else if ( id.name == 'pass' ){
			$('msg_user_arrow').innerHTML = this.userOk ? this.ArrowOk : this.ArrowNotOk;
			$('msg_pass').innerHTML = this.passMesajWelcome;
			$('msg_pass_c').innerHTML = '';
            $('msg_email').innerHTML = '';
		} else if ( id.name == 'pass_c' ){
			$('msg_pass_c').innerHTML = this.passCMesajWelcome;
			$('msg_email').innerHTML = '';
            $('msg_cod').innerHTML = '';
		} else if ( id.name == 'email' ){
			$('msg_email').innerHTML = this.emailMesajWelcome;
            $('msg_cod').innerHTML = '';
		}
	},
	

	
	regCheckArrow:function(camp)
	{
		
		if (Inregistrare.userOk == false)
		{
			if (camp == 'username')
			{
				$('msg_user_arrow').innerHTML = this.ArrowNotOk;
				if (document.getElementById('user').value == '')
				{
					$('msg_user_arrow').innerHTML = '';
					$('msg_user').innerHTML = Inregistrare.userMesajWelcome;
				}
				else
				{
					var url = SITE_URL+'inregistrare/user/';
					var pars = 'user='+escape($F('user'))+'&pass='+escape($F('pass'))+'&pass_c='+escape($F('pass_c'))+'&email='+escape($F('email'))+'&cod='+escape($F('cod'))+'&termeni='+($F('termeni'));
					var registerUpdater = new Ajax.Updater( 'msg_register', url, {method:'post',parameters:pars,evalScripts:true} ); 
				}
			}
		}
		else
			if (camp == 'username')
			{	
			
				$('msg_user').innerHTML = '';
				$('msg_pass').innerHTML = '';
				$('msg_pass_c').innerHTML = '';
				$('msg_email').innerHTML = '';
				$('msg_cod').innerHTML = '';
				
				$('msg_user').innerHTML = Inregistrare.userAvaible;
				$('msg_user_arrow').innerHTML = this.ArrowOk;
				
			}
		
		if (Inregistrare.passOk == false)
		{
			if (camp == 'pass')
			{
				$('msg_pass_arrow').innerHTML = this.ArrowNotOk;
				if (document.getElementById('pass').value == '' )
				{
					$('msg_pass_arrow').innerHTML ='';
					$('msg_pass').innerHTML = Inregistrare.passMesajWelcome;
				}
				else
				{
					var url = SITE_URL+'inregistrare/register_pass/'+document.getElementById('pass').value;
					var pars = 'user='+escape($F('user'))+'&pass='+escape($F('pass'))+'&pass_c='+escape($F('pass_c'))+'&email='+escape($F('email'))+'&cod='+escape($F('cod'))+'&termeni='+($F('termeni'));
					var registerUpdater = new Ajax.Updater( 'msg_register', url, {method:'post',parameters:pars,evalScripts:true} ); 
				}
			}
		}
		else
			if (camp == 'pass')
			{
				$('msg_pass').innerHTML = Inregistrare.passMayBe;
				$('msg_pass_arrow').innerHTML = this.ArrowOk;
				if ( $('pass').value != $('pass_c').value )
				{
					$('msg_pass_c_arrow').innerHTML = this.ArrowNotOk;
				}
			}
		
		if (Inregistrare.passCOk == false)
		{
			if (camp == 'passc')
			{
				$('msg_pass_c_arrow').innerHTML = this.ArrowNotOk;
				if (document.getElementById('pass_c').value == '')
				{
					$('msg_pass_c_arrow').innerHTML = '';
					$('msg_pass_c').innerHTML = Inregistrare.passCMesajWelcome;
				}
				else
				{
					var url = SITE_URL+'inregistrare/register';
					var pars = 'user='+escape($F('user'))+'&pass='+escape($F('pass'))+'&pass_c='+escape($F('pass_c'))+'&email='+escape($F('email'))+'&cod='+escape($F('cod'))+'&termeni='+($F('termeni'));
					var registerUpdater = new Ajax.Updater( 'msg_register', url, {method:'post',parameters:pars,evalScripts:true} ); 
				}
			}
		}
		else
		{
			if (camp == 'passc')
			{
				$('msg_pass_c').innerHTML = Inregistrare.passEqual;
				$('msg_pass_c_arrow').innerHTML = this.ArrowOk;
				if ( $('pass').value != $('pass_c').value )
				{
					$('msg_pass_c_arrow').innerHTML = this.ArrowNotOk;
					$('msg_pass_c').innerHTML = Inregistrare.passNotEqual;
				}
			}
		}
		
		
		
		if (Inregistrare.emailOk == false)
		{
			if (camp == 'email')
			{
				$('msg_email_arrow').innerHTML = this.ArrowNotOk;
				if (document.getElementById('email').value == '' )
				{
					$('msg_email_arrow').innerHTML = '';
					$('msg_email').innerHTML = Inregistrare.emailMesajWelcome;
				}
				else
				{
					var url = SITE_URL+'inregistrare/email/';
					var pars = 'user='+escape($F('user'))+'&pass='+escape($F('pass'))+'&pass_c='+escape($F('pass_c'))+'&email='+escape($F('email'))+'&cod='+escape($F('cod'))+'&termeni='+($F('termeni'));
					var registerUpdater = new Ajax.Updater( 'msg_register', url, {method:'post',parameters:pars,evalScripts:true} ); 
				}
			}
		}
		else
		{
			if (camp == 'email')
			{	
				$('msg_email').innerHTML = Inregistrare.emailIsOk;
				$('msg_email_arrow').innerHTML = this.ArrowOk;
			}
		}
		
		if (( $('pass').value != $('pass_c').value ) & ($('pass_c').value != '') & ($('pass').value != ''))
		{
			$('msg_pass_c_arrow').innerHTML = Inregistrare.ArrowNotOk;
		}
		
	},
	
	inputDoBlur:function( id ){
		Site.inputDoBlur( id );
		if ( id.name == 'user' ){
			$('msg_user_arrow').innerHTML = this.userOk ? this.ArrowOk : this.ArrowNotOk;
		} else if ( id.name == 'pass' ){
			$('msg_pass_arrow').innerHTML = this.passOk ? this.ArrowOk : this.ArrowNotOk;
		} else if ( id.name == 'pass_c' ){
			$('msg_pass_c_arrow').innerHTML = this.passCOk ? this.ArrowOk : this.ArrowNotOk;
		} else if ( id.name == 'email' ){
			$('msg_email_arrow').innerHTML = this.emailOk ? this.ArrowOk : this.ArrowNotOk;
		}
	}, 
	
	

	
	User: function(){
		/* verifica stringul */
		var user_name = escape($('user').value);
		
		if ( user_name.length <= 4 ){
			$('msg_user').innerHTML = Inregistrare.userMic;
			Inregistrare.userOk=false;
		} else if ( user_name.length >= 37 ){
			$('msg_user').innerHTML = Inregistrare.userMare;
			Inregistrare.userOk=false;
		} else if ( this.UserCheck){
			$('msg_user').innerHTML = Inregistrare.userExist;	
			Inregistrare.userOk=false;
		} else if ( !user_name.match( /^[a-z0-9_]+$/ ) ){
			$('msg_user').innerHTML = Inregistrare.userCaractereRefuzate;
			Inregistrare.userOk=false;
		} else {
			$('msg_user').innerHTML = Inregistrare.userMayBeAvaible;
			Inregistrare.userOk=true;
		}
	}, 
	UserCheck: function(){
		var url = SITE_URL+'inregistrare/user';
		var pars = 'user='+escape($F('user'));
		var userUpdater = new Ajax.Updater( 'msg_user', url, {method:'post',parameters:pars,evalScripts:true} );
	}, 
	PassMetter: function ( password ){
		var score = 0;
		if (password.length > 3) score++;
		if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;
		if (password.match(/\d+/)) score++;
		if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) ) score++;
		if (password.length > 12) score++;
		
		return score;
	}, 
	Pass: function(){
		var user_pass = $('pass').value;
		var score = Inregistrare.PassMetter( user_pass );
		if ( score == 0 ){
			$('masoara_parola').innerHTML = Inregistrare.passMetterGoala;
		} else if ( score == 1 ){
			$('masoara_parola').innerHTML = Inregistrare.passMetterSlaba;
		} else if ( score == 2 ){
			$('masoara_parola').innerHTML = Inregistrare.passMetterAcceptabila;
		} else if ( score == 3 ){
			$('masoara_parola').innerHTML = Inregistrare.passMetterBuna;
		} else if ( score >= 4 ){
			$('masoara_parola').innerHTML = Inregistrare.passMetterPuternica;
		}
		
		if ( user_pass.length < 6 ){
			$('msg_pass').innerHTML = Inregistrare.passMic;
			document.getElementById('msg_pass_arrow').innerHTML = Inregistrare.ArrowNotOk;
			Inregistrare.passOk = false;
		} else {
			$('msg_pass').innerHTML = Inregistrare.passMayBe;
			document.getElementById('msg_pass_arrow').innerHTML = Inregistrare.ArrowOk;
			if ( $('pass').value != $('pass_c').value )
			{
				$('msg_pass_c_arrow').innerHTML = Inregistrare.ArrowNotOk;
			}
			Inregistrare.passOk = true;
		}
	}, 
	PassC: function (){
		//alert(Inregistrare.passOk);
		var user_pass = $('pass').value;
		var user_pass_confirm = $('pass_c').value;
		if ( user_pass_confirm.length == 0 ){
			$('msg_pass_c').innerHTML = Inregistrare.passCMesajWelcome;
		} else {
			if ( !Inregistrare.passOk ){
				$('msg_pass_c').innerHTML = Inregistrare.passCParentEmpty;
				document.getElementById('msg_pass_c_arrow').innerHTML = Inregistrare.ArrowNotOk;
			} else if ( user_pass != user_pass_confirm ){
				$('msg_pass_c').innerHTML = Inregistrare.passNotEqual;
				document.getElementById('msg_pass_c_arrow').innerHTML = Inregistrare.ArrowNotOk;
			} else {
				Inregistrare.passCOk = true;
				document.getElementById('msg_pass_c_arrow').innerHTML = Inregistrare.ArrowOk;
				
				$('msg_pass_c').innerHTML = Inregistrare.passEqual;
			}
		}
	}, 
	EmailChecker: function (){        
        /*
        required=true;
		if (email==null) {
            if (required) {
                return false;
            }
        return true;
        }
        if (email.length==0) {
            if (required) {
                return false;
            }
            return true;
        }
        if (! allValidChars(email)) {
            return false;
        }
        if (email.indexOf("@") < 1) {
            return false;
        } else if (email.lastIndexOf(".") <= email.indexOf("@")) {
            return false;
        } else if (email.indexOf("@") == email.length) {
            return false;
        } else if (email.indexOf("..") >=0) {
            return false;
        } else if (email.indexOf(".") == email.length) {
            return false;
        }
        */
		var url = SITE_URL+'inregistrare/email';
		var pars = 'email='+escape($F('email'));
		var emailUpdater = new Ajax.Updater( 'msg_email', url, {method:'post',parameters:pars,evalScripts:true} );

        //preiau datele dintr-un fisier generat automat in momentul in care se adauga un nou domeniu
        //in cele interzise
        /*
        var b = "caca.ro,yahoo.ro,hotmail.ro,google.ro";
        var domains = new Array();
        domains = b.split(',');
        for(var i in domains){
            if (email.match(domains[i])!=null){
                //alert(domains[i]);
                return false;
            }
        }
        */
        return true;
	}, 
	AllValidChars: function( email ){
        var parsed = true;
		var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
		for (var i=0; i < email.length; i++) {
			var letter = email.charAt(i).toLowerCase();
			if (validchars.indexOf(letter) != -1) continue;
			parsed = false;
			break;
		}
		return parsed;
	}, 
	Email: function (){
		var email = $('email').value;
		if ( Inregistrare.EmailChecker( email ) ){
			$('msg_email').innerHTML = Inregistrare.emailIsOk;
			Inregistrare.emailOk = true;
            //alert(Inregistrare.emailOk);
		} else {
			$('msg_email').innerHTML = Inregistrare.emailIsNotOk;
			Inregistrare.emailOk = false;
            //alert(Inregistrare.emailIsNotOk);
		}
	}, 
	CodImagine: function (){
		new Ajax.Updater( 'sursa_imagine', SITE_URL+'inregistrare/cod_imagine' );
	}, 
	Register: function (){
		
		
			
			if ((Inregistrare.userOk == true) & (Inregistrare.passOk == true) & (Inregistrare.passCOk == true) & (Inregistrare.emailOk == true) )
			{
				var url = SITE_URL+'inregistrare/register/status';
				var pars = 'user='+escape($F('user'))+'&pass='+escape($F('pass'))+'&pass_c='+escape($F('pass_c'))+'&email='+escape($F('email'))+'&cod='+escape($F('cod'))+'&termeni='+($F('termeni'));
				var registerUpdater = new Ajax.Updater( 'msg_register', url, {method:'post',parameters:pars,evalScripts:true} );
			}
			
			
	}
}

Event.observe(window, 'load', initInregistrare, false);

function initInregistrare(){
	Event.observe('user', 'keyup', Inregistrare.UserCheck);
	Event.observe('verifica_disponibilitate', 'click', Inregistrare.UserCheck);
	Event.observe('pass', 'keyup', Inregistrare.Pass);
	Event.observe('pass_c', 'keyup', Inregistrare.PassC);
	Event.observe('email', 'keyup', Inregistrare.EmailChecker);
	
	Event.observe('alta_imagine', 'click', Inregistrare.CodImagine);
	
	Event.observe('inregistrare', 'click', Inregistrare.Register);

}