/*
 * file		register.js
 * desc		registration
 * lmod		25/02/2006
 *
 */

 function checkUsername(str){
	if(window.untimeout) window.clearTimeout(window.untimeout);
	window.untimeout = window.setTimeout(function(){
		if (str.length >= 4){
			new Ajax.Request('register_check.php?uname='+str,{
				method: 'get',
				onSuccess: function(transport){
					var response = transport.responseText || "no response text";
					if (response == 'true'){
						document.getElementById('uname_succ').innerHTML = '<img src="_files/site/ver3/tick.png" />&nbsp;<span style="color:#0AB101">Това потребителско име е свободно</span>';
					}else{
						document.getElementById('uname_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Това потребителско име е заето или невалидно</span>';
					}
				}
			});
		}else{
			if (str.length > 0){
				document.getElementById('uname_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Дължината трябва да е между 4 и 20 символа</span>';
			}else{
				document.getElementById('uname_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Моля, въведете потребителско име</span>';
			}
		}
	}, 750);	
} 

function checkMail(str){
	if(window.mtimeout) window.clearTimeout(window.mtimeout);
	window.mtimeout = window.setTimeout(function(){
		if (str.length >= 1){
			new Ajax.Request('register_check.php?mail='+str,{
				method: 'get',
				onSuccess: function(transport){
					var response = transport.responseText || "no response text";
					if (response == 'true'){
						document.getElementById('mail_succ').innerHTML = '<img src="_files/site/ver3/tick.png" />';
					}else{
						document.getElementById('mail_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Този e-mail е регистриран или е невалиден</span>';
					}
				}
			});
		}else{
			document.getElementById('mail_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Моля, въведете e-mail</span>';
		}
	}, 750);	
} 

function checkPass(str){
	if(window.ptimeout) window.clearTimeout(window.ptimeout);
	window.ptimeout = window.setTimeout(function(){
		if (document.getElementById('rpassword').value.length >= 1){
			if (document.getElementById('rpassword').value == document.getElementById('rcpassword').value){
				document.getElementById('pass_succ').innerHTML = '<img src="_files/site/ver3/tick.png" />';
				document.getElementById('cpass_succ').innerHTML = '<img src="_files/site/ver3/tick.png" />';
			}else{
				// document.getElementById('pass_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Двете пароли не съвпадат</span>';
				document.getElementById('pass_succ').innerHTML = '<img src="_files/site/ver3/tick.png" />';
				document.getElementById('cpass_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Двете пароли не съвпадат</span>';
			}
		}else{
			document.getElementById('pass_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Моля, въведете парола</span>';
			document.getElementById('cpass_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Двете пароли не съвпадат</span>';
		}
	}, 750);	
}

function checkCPass(str){
	if(window.ptimeout) window.clearTimeout(window.ptimeout);
	window.ptimeout = window.setTimeout(function(){
		if (document.getElementById('rcpassword').value.length >= 1){
			if (document.getElementById('rpassword').value == document.getElementById('rcpassword').value){
				document.getElementById('pass_succ').innerHTML = '<img src="_files/site/ver3/tick.png" />';
				document.getElementById('cpass_succ').innerHTML = '<img src="_files/site/ver3/tick.png" />';
			}else{
				// document.getElementById('pass_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Двете пароли не съвпадат</span>';
				document.getElementById('pass_succ').innerHTML = '<img src="_files/site/ver3/tick.png" />';
				document.getElementById('cpass_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Двете пароли не съвпадат</span>';
			}
		}else{
			// document.getElementById('pass_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Моля, въведете парола</span>';
			document.getElementById('cpass_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Моля, въведете парола</span>';
		}
	}, 750);	
} 

function checkFname(str){
	if(window.fntimeout) window.clearTimeout(window.fntimeout);
	window.fntimeout = window.setTimeout(function(){
		if (str.length >= 1){
			document.getElementById('fname_succ').innerHTML = '<img src="_files/site/ver3/tick.png" />';
		}else{
			document.getElementById('fname_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Моля, въведете име</span>';
		}
	}, 300);	
} 

function checkLname(str){
	if(window.lntimeout) window.clearTimeout(window.lntimeout);
	window.lntimeout = window.setTimeout(function(){
		if (str.length >= 1){
			document.getElementById('lname_succ').innerHTML = '<img src="_files/site/ver3/tick.png" />';
		}else{
			document.getElementById('lname_succ').innerHTML = '<img src="_files/site/ver3/cross.png" />&nbsp;<span style="color:#FF0000">Моля, въведете фамилия</span>';
		}
	}, 300);	
} 

Validator = Class.create();
Validator = {
	validate:	function(form)
				{
					var errors = [	"<p>Моля, попълнете всички задължителни полета.</p>",
									"<p>E-mail адресът, който сте въвели, е невалиден.</p>",
									"<p>Паролите, които сте въвели, не съвпадат.</p>",
									"<p>Потребителското Ви име трябва да е с дължина между 4 и 20 символа.</p>"
									];
					var errcodes = [];
					var haserrors = false;
					
					form = $(form) || false;
					if (!form) return false;
					
					// loop through all the elements in the form and validate them
					var elements = Form.getElements(form);
					for(var i = 0; i < elements.length; i++)
					{
						Element.removeClassName(elements[i], 'error');
						
						// check if required elements are empty
						if(Element.hasClassName(elements[i], 'required')) {
							if(this.isempty(elements[i])) {
								Element.addClassName(elements[i], 'error');
								haserrors = true;
								errcodes[0] = errcodes[0] ? errcodes[0]++ : 1;
							}
						}
						
						// check if email fields are valid
						/*if(Element.hasClassName(elements[i], 'email')) {
							if (!this.isemail(elements[i])) {
								Element.addClassName(elements[i], 'error');
								haserrors = true;
								errcodes[1] = errcodes[1] ? errcodes[1]++ : 1;
							}
						}*/
						
						// check if passwords match
						if(Element.hasClassName(elements[i], 'password')) {
							// assume there's another field with a classname of 'cpassword'
							// and validate against it
							
							var cpassword = document.getElementsByClassName('cpassword', form)[0];
							if(elements[i].value !== cpassword.value)
							{
								Element.addClassName(elements[i], 'error');
								haserrors = true;
								errcodes[2] = errcodes[2] ? errcodes[2]++ : 1;
							}
						}
					}
					
					if($F('rusername').length < 4 || $F('rusername').length > 20)
					{
						Element.addClassName($('rusername'), 'error');
						haserrors = true;
						errcodes[3] = errcodes[3] ? errcodes[3]++ : 1;
					}
					
					if(haserrors) {
						// build errorstrings
						var errorstring = '';
						for(var i=0; i < errcodes.length; i++) {
						  if(errcodes[i])
									errorstring += errors[i];
						}
						
						var wrnbox = $('warning');
						
						// show an error message
						//errorstring += "<p>Полетата, които трябва да попълните, са очертани в червено.</p>";
						errorstring+="<br />";
						wrnbox.innerHTML = errorstring;
						
						// show the warning box
						if(Element.hasClassName(wrnbox, 'hidden'))
							Element.removeClassName(wrnbox, 'hidden');
						self.location = "#";
						return false;
					}
					else {
						form.submit();
						return true;
					}
				},
	
	isempty:	function(element)
				{
					tagName = element.tagName.toLowerCase();
					switch(tagName)
					{
						case 'input':
						case 'textarea':
							return $F(element).match(/^\s*$/);
							break;
						case 'select':
							return $F(element) == 0 ? true : false;
							break;
					}
				},

	isemail:	function(element)
				{
					if($F(element).match(/^\s*$/))
						return; // should be handled by isempty
					var regex = /^[a-zA-Z][\w\.-_]*[a-zA-Z0-9_]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;  //  /^([\w]+)(\.[\w]+)*@([\w]+)(\.[\w]{2,4}){1,2}$/;
					var mail = $F(element);
					if(mail.match(regex))
						return true;
					else
						return false;
				}
};

var rules = {
	'#fRegister .submit': function(el) { Event.observe(el, 'click', function() { return Validator.validate('fRegister'); }); }
};

Behaviour.register(rules);

