
var Register = (function() 
{
	return {
		
		ValidatePassword: function ()
		{
			var pass = document.regform.npassword.value;
			var cpass = document.regform.cpassword.value;
			var user = document.regform.nusername.value;
		
			if (pass.length == 0){
				alert("Va rugam alegeti o parola.");
				return false;
			} else if (pass.length > 32) {
				alert("Parola nu trebuie sa fie mai lunga de 32 de caractere.");
				return false;
			} else if (pass.length < 6) {
				alert("Parola trebuie sa aiba minim 6 caractere.");
				return  false;
			} else if (user.length != 0 && (user.indexOf(pass) >= 0 || pass.indexOf(user) >= 0)){
				alert("Parola este prea similara cu numele de utilizator.");
				return false;
			} else if (pass != cpass){
				alert("Parola nu corespunde cu confirmarea acesteia.");
				return false;
			} else {
				return true;
		
			}
		
		},
		
		ValidateEditPassword: function()
		{
			var pass = document.regform.npassword.value;
			var cpass = document.regform.cpassword.value;
			var user = document.regform.nusername.value;
		
			if (pass.length > 0)
			{
				if (pass.length > 32) {
					alert("Parola nu trebuie sa fie mai lunga de 32 de caractere.");
					return false;
				} else if (pass.length < 6) {
					alert("Parola trebuie sa aiba minim 6 caractere.");
					return  false;
				} else if (user.length != 0 && (user.indexOf(pass) >= 0 || pass.indexOf(user) >= 0)){
					alert("Parola este prea similara cu numele de utilizator.");
					return false;
				} else if (pass != cpass){
					alert("Parola nu corespunde cu confirmarea acesteia.");
					return false;
				} else {
					return true;
		
				}
				
			}
			else
			{
				return true;
				
			}
		
		}, 
		
		ValidateEmail: function()
		{
			var email = document.regform.email.value;
		
			if ((email.indexOf("@") == -1) || (email.indexOf(".") == -1))
			{
				alert("E-mail-ul nu este in format valid!");
				return false;
		
			}
			else
			{
				return true;
		
			}
		
		},
		
		ValidateFields: function(formfields, formfieldsname)
		{
			for (var i in formfields)
			{
				if (typeof(DOM.GetElement(formfields[i]).value) != 'undefined')
				{
					var fieldinfo = DOM.GetElement(formfields[i]).value;
			
					if (fieldinfo == "")
					{
						alert(formfieldsname[i] + " nu trebuie sa fie liber!");
						return false;
			
					}
					
				}
		
			}
		
		},
		
		ValidateCheckboxes: function()
		{
			var checkboxes = new Array("terms")
			var messages = new Array("Trebuie sa fiti de acord cu termenii si conditiile de utilizare pentru a continua!")
		
			for (var i in checkboxes)
			{
				if(!document.getElementById(checkboxes[i]).checked)
				{
					switch(checkboxes[i])
					{
						case "terms": 
							alert(messages[0]);
							break;
						case "shipping": 
							alert(messages[1]);
							break;
						
					}
		
					return false;
		
				}
		
			}
		
		},
		
		ValidateForm: function (formname, account_type)
		{	
			if (account_type == 1)
			{
				var formfields = new Array("nusername", "client_first_name", "client_last_name", "address_1", "city_1", "phone_1");
				var formfieldsname = new Array("Numele de utilizator", "Numele", "Prenumele", "Adresa", "Orasul", "Telefonul");
						
			}
			
			if (account_type == 2)
			{
				var formfields = new Array("nusername", "companyname", "cui", "regcom", "address_2", "city_2", "client_person_last_name", "client_person_first_name", "phone_2");
				var formfieldsname = new Array("Numele de utilizator", "Numele firmei", "CUI-ul", "Numarul la Registrul Comertului", "Adresa", "Orasul", "Numele persoanei de contact", "Prenumele  persoanei de contact", "Telefonul");
				
			}
		
			var valid = true;
			
			if ((this.ValidatePassword() == true) && (this.ValidateEmail() == true))
			{
				if (this.ValidateFields(formfields, formfieldsname) == false)
				{
					return false;
		
				}
		
			}
			else
			{
				return false;
		
			}
			
			if (DOM.GetElement('mobile_number').value.length > 0)
				return SMS.ValidateMobile(DOM.GetElement('mobile_number').value);
		
			return this.ValidateCheckboxes();
		
			return valid;
		
		},
		
		ValidateEdit: function (formname, account_type)
		{
			if (account_type == 1)
			{
				var formfields = new Array("fullname", "address_1", "city_1", "phone_1");
				var formfieldsname = new Array("Numele", "Adresa", "Orasul", "Telefonul");
			
			}
			
			if (account_type == 2)
			{	
				var formfields = new Array("companyname", "cui", "regcom", "address_2", "city_2", "client_person_last_name", "client_person_first_name", "phone_2");
				var formfieldsname = new Array("Numele firmei", "CUI-ul", "Numarul la Registrul Comertului", "Adresa", "Orasul", "Numele persoanei de contact", "Prenumele  persoanei de contact", "Telefonul");
					
			}
			
			var valid = true;
			
			if ((this.ValidateEditPassword() == true) && (this.ValidateEmail() == true))
			{
				if (this.ValidateFields(formfields, formfieldsname) == false)
				{
					return false;
		
				}
		
			}
			else
			{
				return false;
		
			}
		
			return valid;
		
		}

	};
	
})();
