/**
 * @author nadia.mietkiewicz
 */
var MAX_LENGTH=255;
var MIN_PASS_LENGTH=2;
var MAX_PASS_LENGTH=255;

var IMIE_EMPTY = 'Pole "imię" jest obowiązkowe. Podaj swoje imię';
var NAZWISKO_EMPTY = 'Pole "nazwisko" jest obowiązkowe. Podaj swoje nazwisko';
var REDAKCJA_EMPTY = 'Pole "redakcja" jest obowiązkowe. Podaj nazwę redakcji w której pracujesz';
var EMAIL_EMPTY = 'Pole "email" jest obowiązkowe. Podaj swój adres email';
var TEL_EMPTY = 'Pole "telefon" jest obowiązkowe. Podaj numer telefonu pod którym możemy się z Toba skontaktować';
var AGREE_EMPTY = 'Musisz wyrazić zgodę na przetwarzanie danych';

var IMIE_LENGTH = 'Imie nie może być dłuższe niż ' + MAX_LENGTH + ' znaków';
var NAZWISKO_LENGTH = 'Nazwisko nie może być dłuższe niż ' + MAX_LENGTH + ' znaków';
var REDAKCJA_LENGTH = 'Nazwa redakcji nie może być dłuższa niż ' + MAX_LENGTH + ' znaków';
var EMAIL_LENGTH = 'Adres email nie może być dłuższy niż ' + MAX_LENGTH + ' znaków';
var TEL_LENGTH = 'Numer telefonu nie może być dłuższy niż ' + MAX_LENGTH + ' znaków';
var TEL_KOM_LENGTH = 'Numer telefonu komórkowego nie może być dłuższy niż ' + MAX_LENGTH + ' znaków';

var EMAIL_FORMAT = 'Podany adres email nie jest poprawny.';

var PASS_EMPTY = 'Twoje hasło nie może być puste';
var PASS_SHORT = 'Twoje hasło musi mieć conajmniej ' + MIN_PASS_LENGTH + ' znaków';
var PASS_LENGTH = 'Twoje hasło nie może być dłuższe niż ' + MAX_PASS_LENGTH + ' znaków';
var PASS_CONFIRM_EMPTY = 'Wprowadź powtórnie hasło';
var PASS_CONFIRM_WRONG = 'Hasła muszą się zgadzać';

var USER_EXISTS ='Ten email jest już zarejestrowany';
var REGISTER_ERROR = 'Przepraszamy wystąpił błąd przy rejestracji';



var errorFree=true;
function showError(message, element){
	try {
		errorFree = false;
		var errorLi = document.createElement('li');
		errorLi.appendChild(document.createTextNode(message));
		$('#validationErrors').append(errorLi);
		$('#errorList').show();
		$(element).parent().addClass('validationError');
		return false;
	} catch(e) {alert(e);}
}
function validateForm(event) {
	
	//alert('validate');
	try {
		$('.validationError').removeClass('validationError');
		$('#validationErrors').html('');
		$('#errorList').hide();
		errorFree=true;
		var f = document.getElementById('registerform');
		
		// FIRST NAME
		var data = f.PR_IMIE.value;
		if (data == '') 
			showError(IMIE_EMPTY,f.PR_IMIE);
		if (data.length > MAX_LENGTH) 
			showError(IMIE_LENGTH ,f.PR_IMIE);
		
		// LAST NAME
		data = f.PR_NAZWISKO.value;
		if (data == '') 
			showError(NAZWISKO_EMPTY,f.PR_NAZWISKO);
		if (data.length > MAX_LENGTH) 
			showError(NAZWISKO_LENGTH,f.PR_NAZWISKO);
		
		// REDAKCJA
		data = f.PR_REDAKCJA.value;
		if (data == '') 
			showError(REDAKCJA_EMPTY,f.PR_REDAKCJA);
		if (data.length > MAX_LENGTH) 
			showError(REDAKCJA_LENGTH,f.PR_REDAKCJA);
		
		// EMAIL
		data = f.email.value;
		if (data == '') 
			showError(EMAIL_EMPTY,f.email);
		if (data.length > MAX_LENGTH) 
			showError(EMAIL_LENGTH,f.email);
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if (reg.test(data) == false) 
			showError(EMAIL_FORMAT,f.email);
		
		// TELFON
		data = f.PR_TEL.value;
		if (data == '') 
			showError(TEL_EMPTY,f.PR_TEL);
		if (data.length > MAX_LENGTH) 
			showError(TEL_LENGTH,f.PR_TEL);
		//TODO: format telefonu
		
		
		// HASŁO
		data = f.PASS.value;
		if (data == '') 
			showError(PASS_EMPTY,f.PASS);
		else 
			if (data.length < MIN_PASS_LENGTH) 
				showError(PASS_SHORT,f.PASS);
			else 
				if (data.length > MAX_PASS_LENGTH) 
					showError(PASS_LENGTH,f.PASS);
				else {
					var data2 = f.PASS2.value;
					if (data2 == '') 
						showError(PASS_CONFIRM_EMPTY,f.PASS2);
					if (data2 != data) 
						showError(PASS_CONFIRM_WRONG,f.PASS2);
				}
		// ZGODA
		if (!f.AGREE.checked) 
			showError(AGREE_EMPTY,f.AGREE);
		
		// KATEGORIE
		var cat = "";
		$('#frCategories :checked:first').each(function(){
			cat += $(this).attr('name');
		});
		$('#frCategories :checked:not(:first)').each(function(){
			cat += ',' + $(this).attr('name');
		});
		//alert(cat);
		f.PR_KATEGORIE.value=cat;
		var podsumowanie="";
		podsumowanie+="imię: "+f.PR_IMIE.value+"\n";
		podsumowanie+="nazwisko: "+f.PR_NAZWISKO.value+"\n";
		podsumowanie+="redakcja: "+f.PR_REDAKCJA.value+"\n";
		podsumowanie+="tel.: "+f.PR_TEL.value+"\n";
		podsumowanie+="hasło: "+f.PASS.value+"\n";
		podsumowanie+="hasło2: "+f.PASS2.value+"\n";
		podsumowanie+="kategorie: "+f.PR_KATEGORIE.value+"\n";
		podsumowanie+="zgoda: "+f.AGREE.checked+"\n";
		if(!errorFree) {
			return false;
		}		
		//loadXMLDoc('http://pracuj-dla-mediow.pl/rejestracja/?email='+f.email.value+'&pass='+f.PASS.value);
		return true;
	} 
	catch (e) {
		alert(e);
		return showError('Problem z walidacją');
	}
	return false;
}
function validateFormEdit(event) {

	try {
		$('.validationError').removeClass('validationError');
		$('#validationErrors').html('');
		$('#errorList').hide();
		errorFree=true;
		var f = document.getElementById('registerform');
		
		// FIRST NAME
		var data = f.PR_IMIE.value;
		if (data == '') 
			showError(IMIE_EMPTY,f.PR_IMIE);
		if (data.length > MAX_LENGTH) 
			showError(IMIE_LENGTH ,f.PR_IMIE);
		
		// LAST NAME
		data = f.PR_NAZWISKO.value;
		if (data == '') 
			showError(NAZWISKO_EMPTY,f.PR_NAZWISKO);
		if (data.length > MAX_LENGTH) 
			showError(NAZWISKO_LENGTH,f.PR_NAZWISKO);
		
		// REDAKCJA
		data = f.PR_REDAKCJA.value;
		if (data == '') 
			showError(REDAKCJA_EMPTY,f.PR_REDAKCJA);
		if (data.length > MAX_LENGTH) 
			showError(REDAKCJA_LENGTH,f.PR_REDAKCJA);
				
		// TELFON
		data = f.PR_TEL.value;
		if (data == '') 
			showError(TEL_EMPTY,f.PR_TEL);
		if (data.length > MAX_LENGTH) 
			showError(TEL_LENGTH,f.PR_TEL);
		//TODO: format telefonu
		
		
		// HASŁO
		data = f.PASS.value;
		if (data != '') 
			if (data.length < MIN_PASS_LENGTH) 
				showError(PASS_SHORT,f.PASS);
			else 
				if (data.length > MAX_PASS_LENGTH) 
					showError(PASS_LENGTH,f.PASS);
				else {
					var data2 = f.PASS2.value;
					if (data2 == '') 
						showError(PASS_CONFIRM_EMPTY,f.PASS2);
					if (data2 != data) 
						showError(PASS_CONFIRM_WRONG,f.PASS2);
				}
		
		// KATEGORIE
		var cat = "";
		$('#frCategories :checked:first').each(function(){
			cat += $(this).attr('name');
		});
		$('#frCategories :checked:not(:first)').each(function(){
			cat += ',' + $(this).attr('name');
		});
		//alert(cat);
		f.PR_KATEGORIE.value=cat;
		var podsumowanie="";
		podsumowanie+="imię: "+f.PR_IMIE.value+"\n";
		podsumowanie+="nazwisko: "+f.PR_NAZWISKO.value+"\n";
		podsumowanie+="redakcja: "+f.PR_REDAKCJA.value+"\n";
		podsumowanie+="tel.: "+f.PR_TEL.value+"\n";
		podsumowanie+="hasło: "+f.PASS.value+"\n";
		podsumowanie+="hasło2: "+f.PASS2.value+"\n";
		podsumowanie+="kategorie: "+f.PR_KATEGORIE.value+"\n";
		if(!errorFree) {
			return false;
		}		
		//loadXMLDoc('http://pracuj-dla-mediow.pl/rejestracja/?email='+f.email.value+'&pass='+f.PASS.value);
		return true;
	} 
	catch (e) {
		alert(e);
		return showError('Problem z walidacją');
	}
	return false;
}

var req;

function loadXMLDoc(url) {
	req = false;
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
   	try {req = new XMLHttpRequest();} catch(e) {req = false; }
    } else if(window.ActiveXObject) {
	try {req = new ActiveXObject("Msxml2.XMLHTTP");	} catch(e) {
    try {req = new ActiveXObject("Microsoft.XMLHTTP");	} catch(e) {req = false;}}}
	if(req) {
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send("");
	}
}

function processReqChange() {
    if (req.readyState == 4) {
    if (req.status == 200) {
		if (req.responseText.indexOf('OK') != -1) {
			var f=document.getElementById('registerform');
			f.submit();
	   	}
	  else if (req.responseText.indexOf('ERROR: userExists') != -1) {
	  	 showError(USER_EXISTS);
		 }	 
 	else showError(REGISTER_ERROR);
	
    } else {
    showError(REGISTER_ERROR);  }}
}