/* Funkcja obsługuje weryfikację siły hasła */

function passCheck(pass, progresBar, progresLabel, kontener) { //this function is called 'onkeyup'

	var password = document.getElementById(pass).value; //get the password for testing
	var multiply=0; //the multiplier
	
	if (password.match(/[a-z]+/)) multiply++; //add 1 to the multiplier if there are lowercase letters
	if (password.match(/[A-Z]+/)) multiply++; //" if there are uppercase letters
	if (password.match(/\d+/)) multiply++; //" if there are number
	if (password.match(/\s+/)) multiply++; //" if there is whitespace
	if (password.length > 0 && password.match(/\D\W\S/)) multiply++; //" if there are symbols (not decimal, not a letter,not whitespace, and not nothing at all)

	var score = password.length*multiply; //make the score the password length * the multiplier
	var bar = document.getElementById(progresBar);
	var label = document.getElementById(progresLabel);
	var box = document.getElementById(kontener);
	
	box.style.display = 'block';
	
	if (password.length < 6) {
		bar.style.width = "29px";
		bar.style.backgroundColor ='#' + 'cc0000';
		label.innerHTML = "za krótkie";
	}
	/*
	Set the colors and text depending on the score. You might want to make it easier to get a good password if you want.
	Note that there are else if statements, not just seperate ifs. This is important, so it skips all subsequent ifs if it has matched one.
	*/
	else if (score<1) {
		bar.style.width = "29px";
		bar.style.backgroundColor ='#' + 'cc0000';
		label.innerHTML = "bardzo słabe";
	} else if (score<10) {
		bar.style.width = "58px";
		bar.style.backgroundColor ='#' + 'ff3300';
		label.innerHTML = "słabe";
	} else if (score<15) {
		bar.style.width = "87px";
		bar.style.backgroundColor ='#' + 'ffff33';	
		label.innerHTML = "przeciętne";
	} else if (score<25) {
		bar.style.width = "116px";
		bar.style.backgroundColor ='#' + 'ff9900';	
		label.innerHTML = "ponadprzeciętne";
	} else if (score<35) {
		bar.style.width = "145px";
		bar.style.backgroundColor ='#' + '66ff33';
		label.innerHTML = "silne";
	} else if (score >= 35) {
		bar.style.width = "174px";
		bar.style.backgroundColor ='#' + '33cc00';	
		label.innerHTML = "bardzo silne";
	}
}

/* Funkcja ustawia zawartość pola "wyświetlana nazwa" */

function setNameval(name, login, imie, nazwisko){
	var nameInput = document.getElementById(name);
	var nameLogin = document.getElementById(login);		
	var nameImie = document.getElementById(imie);		
	var nameNazwisko = document.getElementById(nazwisko);
	
	if(nameLogin && nameLogin.value != ""){
		nameInput.value = nameLogin.value;
	}
	if(nameNazwisko && nameNazwisko.value != ""){
		nameInput.value = '';
		nameInput.value = nameNazwisko.value;
	}	
	if(nameImie && nameImie.value != "" && nameNazwisko.value != ""){
		nameInput.value = nameImie.value + " " + nameNazwisko.value;
	}	
}

/* Funkcja obsługuje klilnięcie w opcję newslettera w formualrzu */

function newsletter_klik(f){
	if(f.newsletter.checked == false){
		return confirm('czy na pewno pragniesz zrezygnować z otrzymywania newslettera?');
	}
}

/* Funkcja sprawdza poprawność wypełnionego formularza rejestracji */

function sprawdzRejestracjaForm(f, akcja, modul){
	
	fv = new formValidator();
	
	if(akcja == 'register'){
	fv.raiseNormalInput("login", 'inputText');
	fv.raiseNormalInput("haslo", 'inputText');
	fv.raiseNormalInput("haslo2", 'inputText');
	}
	
	fv.raiseNormalInput("imie", 'inputText');
	fv.raiseNormalInput("nazwisko", 'inputText');
	//fv.raiseNormalInput("name", 'inputText');
	if(modul != 'sklep'){
	fv.raiseNormalInput("opis", 'inputText');
	}
	fv.raiseNormalInput("plec_mdiv", '');
	fv.raiseNormalInput("plec_fdiv", '');	
	fv.raiseNormalInput("email", 'inputText');
	fv.raiseNormalInput("email2", 'inputText');
	fv.raiseNormalInput("adm0", 'inputSelect');
	fv.raiseNormalInput("miasto", 'inputText');
	if(akcja == 'register' || (akcja == 'contactedit' && modul != 'sklep')){
	fv.raiseNormalInput("obr", 'inputText');
	}
	
	if(modul == 'sklep'){
	fv.raiseNormalInput("phone", 'inputText');
	fv.raiseNormalInput("mobile", 'inputText');
	fv.raiseNormalInput("country", 'inputText');
	fv.raiseNormalInput("postal_code", 'inputText');
	fv.raiseNormalInput("address", 'inputText');
	fv.raiseNormalInput("house_number", 'inputText');
	}
	
	if(akcja == 'register'){
	fv.raiseNormalInput("regulaminCheckDiv", 'checkbox');
	fv.raiseNormalInput("zgodaCheckDiv", 'checkbox');
	}

	if( akcja == 'register' && fv.isEmpty(f.login.value) ){
		fv.raiseError("proszę podać login");
		fv.raiseInput("login", 'inputText_error');
	}
				
	if( akcja == 'register' && (fv.isMinLength(f.haslo.value, 6) || fv.isEmpty(f.haslo.value) ) ){
		fv.raiseError("podane hasło jest za krótkie");
		fv.raiseInput("haslo", 'inputText_error');
	}
	
	if( akcja == 'register' && f.haslo.value != f.haslo2.value ){
		fv.raiseError("podane hasła różnią się od siebie");
		fv.raiseInput("haslo2", 'inputText_error');
	}
	
	if( fv.isEmpty(f.imie.value) ){
		fv.raiseError("proszę podać imię");
		fv.raiseInput("imie", 'inputText_error');
	}	
	
	if( fv.isEmpty(f.nazwisko.value) ){
		fv.raiseError("proszę podać nazwisko");
		fv.raiseInput("nazwisko", 'inputText_error');
	}		
	
	/*if( fv.isEmpty(f.name.value) ){
		fv.raiseError("proszę określić nazwę pod jaką będziesz występował w naszej społeczności");
		fv.raiseInput("name", 'inputText_error');
	}*/
	
	if(modul != 'sklep'){
	if( fv.isEmpty(f.opis.value)){
		fv.raiseError("proszę wpisać opis wyświetlany pod Twoim nazwiskiem lub loginem");
		fv.raiseInput("opis", 'inputText_error');
	}	
	}
	
	if( f.plec_m.checked == false && f.plec_f.checked == false ){
		fv.raiseError("proszę określić płeć");
		fv.raiseInput("plec_mdiv", 'inputRadio_error');
		fv.raiseInput("plec_fdiv", 'inputRadio_error');
	}		
	
	if( fv.isEmpty(f.email.value) ){
		fv.raiseError("proszę podać aktualny adres e-mail");
		fv.raiseInput("email", 'inputText_error');
	}	
	
	if( !fv.isEmailAddress(f.email.value) ){
		fv.raiseError("podany adres e-mail ma niepoprawną postać");
		fv.raiseInput("email", 'inputText_error');
	}
	
	if( f.email.value != f.email2.value ){
		fv.raiseError("podane adresy e-mail różnią się między sobą");
		fv.raiseInput("email2", 'inputText_error');
	}	
	
	if (f.elements['adm0'][0].selected == true ) {
		fv.raiseError("należy określić przynajmniej kraj");
		fv.raiseInput("adm0", 'inputSelect_error');
	}	
	
	if( fv.isEmpty(f.miasto.value) ){
		fv.raiseError("proszę podać miejscowość");
		fv.raiseInput("miasto", 'inputText_error');
	}	
	
	if(akcja == 'register' || (akcja == 'contactedit' && modul != 'sklep')){
	if( fv.isEmpty(f.obr.value) ){
		fv.raiseError("proszę przepisać kod znajdujący się na obrazku");
		fv.raiseInput("obr", 'inputText_error');
	}		
	}
	
	if( akcja == 'register' && !fv.isChecked(f.regulamin) ){
		fv.raiseError("niezbędna jest akceptacja treści regulaminu");
		fv.raiseInput("regulaminCheckDiv", 'checkbox_error');
	}	
	
	if( akcja == 'register' && !fv.isChecked(f.zgoda) ){
		fv.raiseError("niezbędna jest zgoda na przetwarzanie danych osobowych");
		fv.raiseInput("zgodaCheckDiv", 'checkbox_error');
	}	
	
	
	/* opcje dla sklepu */
	
	if(modul == 'sklep'){
		
		if( fv.isEmpty(f.phone.value) && fv.isEmpty(f.mobile.value) ){
			fv.raiseError("należy podać przynajmnej jeden numer telefonu");
			fv.raiseInput("phone", 'inputText_error');
			fv.raiseInput("mobile", 'inputText_error');
		}

		if( fv.isEmpty(f.postal_code.value) ){
			fv.raiseError("proszę wpisać kod pocztowy");
			fv.raiseInput("postal_code", 'inputText_error');
		}		
		
		if( fv.isEmpty(f.address.value) ){
			fv.raiseError("proszę wpisać nazwę ulicy");
			fv.raiseInput("address", 'inputText_error');
		}		
		
		if( fv.isEmpty(f.house_number.value) ){
			fv.raiseError("proszę wpisać numer budynku");
			fv.raiseInput("house_number", 'inputText_error');
		}	
		
		if ((f.elements['adm0'][1].selected == true || f.elements['adm0'][2].selected == true) && fv.isEmpty(f.country.value)) {
			pokaz('counryDIV');
			fv.raiseError("wybrano kraj inny niż Polska. Proszę wpisać nazwę kraju");
			fv.raiseInput("country", 'inputText_error');
		}				
		
	}
	
	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		f.submit();
		return true;
	}
	
}

/*
Funkcja pokazuje / ukrywa pole NAZWA KRAJU 
w przypadku wyboru z listy kraju innego niż Polska
*/

function checkSelectedCountry(value, patern){
	if(value != patern){
		pokaz('counryDIV');
	}
	else{
		ukryj('counryDIV');
	}
}

/* Funkcja sprawdza poprawność wypełnionego formularza zmiany hasła */

function sprawdzPasswdForm(f){
	
	fv = new formValidator();
	
	fv.raiseNormalInput("login", 'inputText');
	fv.raiseNormalInput("haslo", 'inputText');
	fv.raiseNormalInput("haslo2", 'inputText');
	fv.raiseNormalInput("haslo_old", 'inputText');
	fv.raiseNormalInput("obr", 'inputText');
	
	if( fv.isEmpty(f.login.value) ){
		fv.raiseError("proszę podać login");
		fv.raiseInput("login", 'inputText_error');
	}
		
	if( fv.isEmpty(f.haslo_old.value) ){
		fv.raiseError("proszę wpisać aktualane hasło");
		fv.raiseInput("haslo_old", 'inputText_error');
	}		
			
	if( fv.isMinLength(f.haslo.value, 6) && !fv.isEmpty(f.haslo.value) ){
		fv.raiseError("podane nowe hasło jest za krótkie");
		fv.raiseInput("haslo", 'inputText_error');
	}
	
	if( f.haslo.value != f.haslo2.value ){
		fv.raiseError("podane nowe hasła różnią się od siebie");
		fv.raiseInput("haslo2", 'inputText_error');
	}
	
	if( fv.isEmpty(f.obr.value) ){
		fv.raiseError("proszę przepisać kod znajdujący się na obrazku");
		fv.raiseInput("obr", 'inputText_error');
	}		

	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		f.submit();
		return true;
	}
	
}

/* Funkcja sprawdza poprawność wypełnionego formularza dodania / edycji pracy */

function sprawdzJobForm(f){
	
	fv = new formValidator();
	
	fv.raiseNormalInput("nazwa_firmy", 'inputText');
	fv.raiseNormalInput("start_date_mies", 'inputText');
	fv.raiseNormalInput("start_date_rok", 'inputText');
	fv.raiseNormalInput("end_date_mies", 'inputText');
	fv.raiseNormalInput("end_date_rok", 'inputText');
	fv.raiseNormalInput("stanowisko", 'inputText');
	
	if( fv.isEmpty(f.nazwa_firmy.value) ){
		fv.raiseError("proszę podać nazwę firmy");
		fv.raiseInput("nazwa_firmy", 'inputText_error');
	}
	
	if( f.start_date_mies.value==0 ){
		fv.raiseError("proszę podać datę rozpoczęcia pracy");
		fv.raiseInput("start_date_mies", 'inputText_error');
	}	
	
	if( f.start_date_rok.value==0 ){
		fv.raiseError("proszę podać datę rozpoczęcia pracy");
		fv.raiseInput("start_date_rok", 'inputText_error');
	}	
	
	if( !fv.isChecked(f.aktualna_praca) ){
		if( f.end_date_mies.value==0 ){
			fv.raiseError("proszę podać datę zakończenia pracy");
			fv.raiseInput("end_date_mies", 'inputText_error');
		}	
		
		if( f.end_date_rok.value==0 ){
			fv.raiseError("proszę podać datę zakończenia pracy");
			fv.raiseInput("end_date_rok", 'inputText_error');
		}		
	}
	
	if( fv.isEmpty(f.stanowisko.value) ){
		fv.raiseError("proszę wpisać nazwę stanowiska");
		fv.raiseInput("stanowisko", 'inputText_error');
	}
	
	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		f.submit();
		return true;
	}
	
}

/* Funkcja sprawdza poprawność wypełnionego formularza dodania / edycji zrealizowanego projektu */

function sprawdzProjektyForm(f){
	
	fv = new formValidator();
	
	fv.raiseNormalInput("nazwa", 'inputText');
	fv.raiseNormalInput("start_date_mies", 'inputText');
	fv.raiseNormalInput("start_date_rok", 'inputText');
	fv.raiseNormalInput("end_date_mies", 'inputText');
	fv.raiseNormalInput("end_date_rok", 'inputText');
	fv.raiseNormalInput("lokalizacja", 'inputText');
	fv.raiseNormalInput("opis", 'inputText');
	
	if( fv.isEmpty(f.nazwa.value) ){
		fv.raiseError("proszę podać nazwę projektu");
		fv.raiseInput("nazwa", 'inputText_error');
	}
	
	if( f.start_date_mies.value==0 ){
		fv.raiseError("proszę podać datę rozpoczęcia projektu");
		fv.raiseInput("start_date_mies", 'inputText_error');
	}	
	
	if( f.start_date_rok.value==0 ){
		fv.raiseError("proszę podać datę rozpoczęcia projektu");
		fv.raiseInput("start_date_rok", 'inputText_error');
	}	
	
	if( !fv.isChecked(f.aktualny) ){
		if( f.end_date_mies.value==0 ){
			fv.raiseError("proszę podać datę zakończenia projektu");
			fv.raiseInput("end_date_mies", 'inputText_error');
		}	
		
		if( f.end_date_rok.value==0 ){
			fv.raiseError("proszę podać datę zakończenia projektu");
			fv.raiseInput("end_date_rok", 'inputText_error');
		}		
	}
	
	if( fv.isEmpty(f.lokalizacja.value) ){
		fv.raiseError("proszę wpisać lokalizację projektu");
		fv.raiseInput("lokalizacja", 'inputText_error');
	}

	if( fv.isEmpty(f.opis.value) ){
		fv.raiseError("proszę wpisać zwarty opis projektu");
		fv.raiseInput("opis", 'inputText_error');
	}	
	
	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		f.submit();
		return true;
	}
	
}

/* Funkcja sprawdza poprawność wypełnionego formularza dodania / edycji dzialalnosci spolecznej */

function sprawdzStanowiskaForm(f){
	
	fv = new formValidator();
	
	fv.raiseNormalInput("funkcja", 'inputText');
	fv.raiseNormalInput("start_date_mies", 'inputText');
	fv.raiseNormalInput("start_date_rok", 'inputText');
	fv.raiseNormalInput("end_date_mies", 'inputText');
	fv.raiseNormalInput("end_date_rok", 'inputText');
	fv.raiseNormalInput("lokalizacja", 'inputText');
	fv.raiseNormalInput("obowiazki", 'inputText');
	
	if( fv.isEmpty(f.funkcja.value) ){
		fv.raiseError("proszę podać nazwę pełnionej funkcji");
		fv.raiseInput("funkcja", 'inputText_error');
	}
	
	if( f.start_date_mies.value==0 ){
		fv.raiseError("proszę podać datę rozpoczęcia pełnienia tej funkcji");
		fv.raiseInput("start_date_mies", 'inputText_error');
	}	
	
	if( f.start_date_rok.value==0 ){
		fv.raiseError("proszę podać datę rozpoczęcia pełnienia tej funkcji");
		fv.raiseInput("start_date_rok", 'inputText_error');
	}	
	
	if( !fv.isChecked(f.aktualny) ){
		if( f.end_date_mies.value==0 ){
			fv.raiseError("proszę podać datę zakończenia pełnienia tej funkcji");
			fv.raiseInput("end_date_mies", 'inputText_error');
		}	
		
		if( f.end_date_rok.value==0 ){
			fv.raiseError("proszę podać datę zakończenia pełnienia tej funkcji");
			fv.raiseInput("end_date_rok", 'inputText_error');
		}		
	}
	
	if( fv.isEmpty(f.lokalizacja.value) ){
		fv.raiseError("proszę wpisać lokalizację");
		fv.raiseInput("lokalizacja", 'inputText_error');
	}

	if( fv.isEmpty(f.obowiazki.value) ){
		fv.raiseError("proszę wpisać zwarty zarys pełnionych obowiązków");
		fv.raiseInput("obowiazki", 'inputText_error');
	}	
	
	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		f.submit();
		return true;
	}
	
}


/* Funkcja sprawdza poprawność wypełnionego formularza dodania / edycji szkoły */

function sprawdzwyksztalcenieForm(f){
	
	fv = new formValidator();
	
	fv.raiseNormalInput("poziom", 'inputText');
	fv.raiseNormalInput("nazwa_szkoly", 'inputText');
	fv.raiseNormalInput("start_date_mies", 'inputText');
	fv.raiseNormalInput("start_date_rok", 'inputText');
	fv.raiseNormalInput("end_date_mies", 'inputText');
	fv.raiseNormalInput("end_date_rok", 'inputText');
	fv.raiseNormalInput("lokalizacja", 'inputText');
	
	if( f.poziom.value==0 ){
		fv.raiseError("proszę wybrać poziom kształcenia");
		fv.raiseInput("poziom", 'inputText_error');
	}	
	
	if( fv.isEmpty(f.nazwa_szkoly.value) ){
		fv.raiseError("proszę podać nazwę szkoły / uczelni");
		fv.raiseInput("nazwa_szkoly", 'inputText_error');
	}
	
	if( f.start_date_mies.value==0 ){
		fv.raiseError("proszę podać datę rozpoczęcia kształcenia");
		fv.raiseInput("start_date_mies", 'inputText_error');
	}	
	
	if( f.start_date_rok.value==0 ){
		fv.raiseError("proszę podać datę rozpoczęcia kształcenia");
		fv.raiseInput("start_date_rok", 'inputText_error');
	}	
	
	if( !fv.isChecked(f.aktualna) ){
		if( f.end_date_mies.value==0 ){
			fv.raiseError("proszę podać datę zakończenia kształcenia");
			fv.raiseInput("end_date_mies", 'inputText_error');
		}	
		
		if( f.end_date_rok.value==0 ){
			fv.raiseError("proszę podać datę zakończenia kształcenia");
			fv.raiseInput("end_date_rok", 'inputText_error');
		}		
	}
	
	if( fv.isEmpty(f.lokalizacja.value) ){
		fv.raiseError("proszę wpisać miejscowość szkoły / uczelni");
		fv.raiseInput("lokalizacja", 'inputText_error');
	}
	
	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		f.submit();
		return true;
	}
	
}


/* Funkcja sprawdza poprawność wypełnionego formularza dodania / edycji www */

function sprawdzwwwForm(f){
	
	fv = new formValidator();
	
	fv.raiseNormalInput("www_name", 'inputText');
	fv.raiseNormalInput("www_link", 'inputText');
	
	if( fv.isEmpty(f.www_name.value) ){
		fv.raiseError("proszę podać nazwę strony www");
		fv.raiseInput("www_name", 'inputText_error');
	}
	
	if( fv.isEmpty(f.www_link.value) ){
		fv.raiseError("proszę wpisać adres tej strony www");
		fv.raiseInput("www_link", 'inputText_error');
	}
	
	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		f.submit();
		return true;
	}
	
}

/* Funkcja sprawdza poprawność wypełnionego formularza wysłania prywatnej wiadomoci */

function sprawdzSendPrivatForm(f){

	fv = new formValidator();
	
	fv.raiseNormalInput("subject", 'inputText');
	fv.raiseNormalInput("postText", 'inputText');
	
	if( fv.isEmpty(f.subject.value) ){
		fv.raiseError("proszę wpisać temat wiadomości");
		fv.raiseInput("subject", 'inputText_error');
	}
	
	if( fv.isEmpty(f.postText.value) ){
		fv.raiseError("proszę wpisać treść wiadomości");
		fv.raiseInput("postText", 'inputText_error');
	}
	
	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		f.submit();
		return true;
	}
	
}

/* Funkcja regeneruje obrazek zabezpieczeń formularza */

function genNewSecureImage(id, path){
	
	var rand = Math.round(1000*Math.random());
	var e_img;
	e_img = document.getElementById(id);
	
	if (e_img){
		e_img.setAttribute("src",path+'?count='+rand);	
	}
	
}


/* Funkcja obsługuje przekierowanie z timerem */



function begintimer(id, url, czas){
	
	if (!document.images)
		return
	if (czas==1)
		window.location=url;
	else{
		czas-=1
		curmin=Math.floor(czas/60)
		cursec=czas%60
		if (curmin!=0)
			curtime=curmin+" min i "+cursec+" sek"
		else
			curtime=cursec+" sek"
			
		var div = document.getElementById(id);
		if(div){
			div.innerHTML = curtime;
		}
		setTimeout(function() { begintimer(id, url, czas); },1000);
		
	}
} 

/* Funkcja wyzwala procedurę AJAX sprawdzajšcš czy jest już w bazie podany login */

function checkLoginExists(login, path, div){
	if(login != ""){
		loading(div);	
		var req = mint.Request();
    	req.AddParam("login", login);
	    req.Send(path, div);	
	}
	else{
		alert('najpierw wpisz login');
	}
}

/* Funkcja wyzwala procedurę AJAX sprawdzajšcš czy jest już w bazie podany email */

function checkEmailExists(email, path, div){
	if(email != ""){
		loading(div);	
		var req = mint.Request();
    	req.AddParam("email", email);
	    req.Send(path, div);	
	}
	else{
		alert('najpierw wpisz adres e-mail');
	}
}

/* Funkcja sprawdza czy nie przekroczono limitu zakliknietych checkboxow */

function checkNumberOfChecked(f, zakres, current){
	var limit = zakres+1;
	with (document.forms[f]) {
		elements[0].value++
		var L = elements.length
		var i = 0;
		while (L--){
			if(elements[L].checked){
				i++;
				if(i == limit){
					alert('osiągnięto limit dozwolonych zaznaczeń');
					document.forms[f].elements[current].checked = false;
					break;
					return false;
				}
			}

		}
	} 
}
