//procedury weryfikujace PESEL
//IncludeJavaScript('js/formValidation/verify_pesel.js');






String.prototype.trim = function() {
	a = this.replace(/^\s+/, '');
	return a.replace(/\s+$/, '');
};

String.prototype.trim2 = function() { 	
	return this.replace(/\s+/g,'')
};



function testuj_imie(id_imie, id_message_container, obowiazkowe){
	var error=0;
	var imie_n = document.getElementById(id_imie).value;

	if(imie_n.length<1) { 
		if(obowiazkowe){
			alert("Prosimy podać imię");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}
	}else{
		var reg = /^[a-zA-ZąćęłńóśżźĄĆĘŁŃÓŚŻŹ]{2,255}$/;
		var reg2 = /(.)\1{2,}/;
		if(imie_n.length==1){
			alert("Podane imię jest zbyt krótkie");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}else if(!imie_n.match(reg)){ 
			alert("Niepoprawne znaki w imieniu. \nW przypadku imion dwuczłonowych prosimy o wpisanie tylko pierwszego członu imienia. \n[Dozwolone znaki to: litery]");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}else if(imie_n.toLowerCase().match(reg2)){			
			alert("Nieprawidłowy ciąg powtórzonych znaków w imieniu");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}		
	}
	if(error){
		return false;
	}else{
		document.getElementById(id_imie).value = imie_n.trim2();
		document.getElementById(id_message_container).style.color = '#000000';
		return true;				
	}
}





function testuj_nazwisko(id_nazwisko, id_message_container, obowiazkowe){
	var error=0;
	var nazwisko_n = document.getElementById(id_nazwisko).value;

	if(nazwisko_n.length<1) { 
		if(obowiazkowe){		
			alert("Prosimy podać nazwisko");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}
	}else{
		var reg = /^(d'|O'|von |van der |de la )?[a-zA-ZąćęłńóśżźĄĆĘŁŃÓŚŻŹ]{2,255}((-)[a-zA-ZąćęłńóśżźĄĆĘŁŃÓŚŻŹ]{2,255})?$/;
		var reg2 = /(.)\1{2,}/;
		if(nazwisko_n.length==1){
			alert("Podane nazwisko jest zbyt krótkie");			
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}else if(!nazwisko_n.match(reg)){ 
			alert("Niepoprawnie podane nazwisko. \n[Dozwolone znaki to: litery, znak myślnika, apostrof] \n[Dopuszczalne są nazwiska dwuczłonowe (oddzielone pojedynczym myślnikiem)]");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}else if(nazwisko_n.toLowerCase().match(reg2)){			
			alert("Nieprawidłowy ciąg powtórzonych znaków w nazwisku");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}		
	}
	if(error){
		return false;
	}else{
		document.getElementById(id_nazwisko).value = nazwisko_n.trim2();
		document.getElementById(id_message_container).style.color = '#000000';
		return true;				
	}
}



function testuj_pesel(id_pesel, id_message_container){
	var error=0;
	var pesel_n = document.getElementById(id_pesel).value;

	if(pesel_n.length<1) { 
		//alert("Prosimy podać numer PESEL");
		//document.getElementById(id_message_container).style.color = '#ff0000';
		//error++
	}else{
		var reg1 = /(0){11}/;
		var reg2 = /^[0-9]{11}$/;
		if(pesel_n.match(reg1)){
			alert("Podany numer PESEL jest nieprawidłowy"); 
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}
		if(!pesel_n.match(reg2)){
			alert("Niepoprawny numer PESEL");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}else if(!verifyNumber( 0, pesel_n )){		
			alert("Podany numer PESEL jest nieprawidłowy"); 
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}		
	}
	if(error){
		return false;
	}else{
		document.getElementById(id_pesel).value = pesel_n.trim2();
		document.getElementById(id_message_container).style.color = '#000000';
		return true;				
	}
}


function testuj_tel_kom(id_tel_kom, id_message_container){
	var prefix = new Array('696','517','668','608','609','503','692','513','518','512','665','697','604','506','888','666','504','693','887','663','694','509','883','600','690','885','515','605','519','607','507','510','511','603','695','881','889','505','514','516','691','667','884','501','606','500','698','602','880','699','661','882','662','886','660','601','508','502','78','79','797','664','799','789','50','798','795','669','788','796','783','786','787','785','51','781','794','780','782','784','790','791','792','793','72','720','721','722','723','724','725','726','727','728','729');
	var jest_prefix = 0;
	var error=0;
	var tel_n = document.getElementById(id_tel_kom).value;
	
	if(tel_n.length) {		
		for(i=0;i<prefix.length;i++){
			if((new RegExp('^('+parseInt(prefix[i])+')','')).test(tel_n)) jest_prefix = 1;
		}
		
		var reg1 = /^[0-9]{9}$/;
		if(!tel_n.match(reg1)){ 
			alert("Niepoprawny nr. telefonu komórkowego. \n[Numer musi się składać z 9 cyfr, bez zera na początku, bez spacji]");					
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}
		var reg2 = /^(0){9}$/;
		if(tel_n.match(reg2)){ 
			alert("Niepoprawny nr. telefonu komórkowego. \n[Numer nie może się składać z samych zer]");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}
		if(!jest_prefix){ 
			alert("Niepoprawny nr. telefonu komórkowego. \n[Prosimy podać numer telefonii komórkowej]");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}		
	}else{
		//wpisanie telefonu  jest obowiazkowe 
		alert("Prosimy podać numer telefonu komórkowego"); 
		document.getElementById(id_message_container).style.color = '#ff0000';
		error++
	}
	
	if(error){
		return false;
	}else{
		document.getElementById(id_tel_kom).value = tel_n.trim2();
		document.getElementById(id_message_container).style.color = '#000000';
		return true;				
	}
}






function testuj_tel_stacjonarny(id_tel_dom, id_message_container, wymagany){
	var prefix = new Array('696','517','668','608','609','503','692','513','518','512','665','697','604','506','888','666','504','693','887','663','694','509','883','600','690','885','515','605','519','607','507','510','511','603','695','881','889','505','514','516','691','667','884','501','606','500','698','602','880','699','661','882','662','886','660','601','508','502','78','79','797','664','799','789','50','798','795','669','788','796','783','786','787','785','51','781','794','780','782','784','790','791','792','793','72','720','721','722','723','724','725','726','727','728','729');
	var jest_prefix_kom = 0;
	var error=0;
	var tel_n = document.getElementById(id_tel_dom).value;
	
	if(tel_n.length){			
		var reg1 = /^(?!0)[0-9]{9}$/;
		var reg2 = /^(0){9}$/;
		if(!tel_n.match(reg1)){ 
			alert("Niepoprawny nr telefonu stacjonarnego. \n[Numer musi się składać z 9 cyfr, bez zera na początku, bez spacji]");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++ 
		}
		if (tel_n.match(reg2)){
			alert("Niepoprawny nr telefonu stacjonarnego. \n[Numer nie może się składać z samych zer]");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++ 
		}
		for(i=0;i<prefix.length;i++){
			if((new RegExp('^('+parseInt(prefix[i])+')','')).test(tel_n)) jest_prefix_kom = 1;
		}
		if(jest_prefix_kom){
			alert("Niepoprawny nr telefonu. \n[Prosimy podać numer telefonii stacjonarnej]");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++ 
		}
	}else{
		if(wymagany==true){
			alert("Prosimy podać telefon do szkoły"); 
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}else{
			//wpisanie telefonu jest obowiazkowe 
		}
	}
	
	if(error){
		return false;
	}else{
		document.getElementById(id_tel_dom).value = tel_n.trim2();
		document.getElementById(id_message_container).style.color = '#000000';
		return true;				
	}
}




function testuj_email(id_email_1, id_email_2, id_message_container_1, id_message_container_2){
	var error=0;
	var email_n1 = document.getElementById(id_email_1).value;
	var email_n2 = document.getElementById(id_email_2).value;
	
	if(email_n1.length<1) { 			
		alert("Prosimy podać adres e-mail"); 
		document.getElementById(id_message_container_1).style.color = '#ff0000';
		error++ 
	}else if(email_n1){
	    if (email_n1.length<1) { 
			alert("Prosimy podać adres e-mail");
			document.getElementById(id_message_container_1).style.color = '#ff0000';
			error++  
		}
	    if (!email_n1.toLowerCase().match(/^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,6}$/)) {
			alert("Podany adres e-mail jest nieprawidłowy"); 
			document.getElementById(id_message_container_1).style.color = '#ff0000';
			error++			
	    }
		if(email_n1.toLowerCase()!=email_n2.toLowerCase()){
			alert("Adresy e-mail nie zgadzają się "); 
			document.getElementById(id_message_container_1).style.color = '#ff0000';
			document.getElementById(id_message_container_2).style.color = '#ff0000';
			error++ 
		}
	}				
	
	if(error){
		return false;
	}else{
		document.getElementById(id_email_1).value = email_n1.trim2();
		document.getElementById(id_message_container_1).style.color = '#000000';
		document.getElementById(id_email_2).value = email_n2.trim2();
		document.getElementById(id_message_container_2).style.color = '#000000';
		return true;				
	}
}



function przetwarzanie_danych_os(id_chbox, id_message_container){
	var error=0;
	var chbox = document.getElementById(id_chbox).checked;
	
	if (!chbox) { 
		alert("Konieczne jest wyrażenie zgody na przetwarzanie danych osobowych w celach marketingowych przez Wydawnictwo Pedagogiczne OPERON"); 
		document.getElementById(id_message_container).style.color = '#ff0000';
		error++
	}
	
	
	if(error){
		return false;
	}else{
		document.getElementById(id_message_container).style.color = '#000000';
		return true;
	}
}




function testuj_liczbe_uczniow(id_liczba_u, minimum, id_message_container){
	var error=0;
	var liczba_u = parseInt(document.getElementById(id_liczba_u).value);

	if(!liczba_u) { 		
		alert("Prosimy podać liczbę uczniów");
		document.getElementById(id_message_container).style.color = '#ff0000';
		error++
	}else{
		if(liczba_u<minimum){
			alert("Wymagane jest zgłoszenie co najmniej "+minimum+" uczniów");
			document.getElementById(id_message_container).style.color = '#ff0000';
			error++
		}
	}
	
	if(error){
		return false;
	}else{		
		document.getElementById(id_message_container).style.color = '#000000';
		return true;				
	}
}







function liczba_uczniow(podstawowy_id, rozszerzony_id, dlugosc_max, suma_obu){	
	var po = document.getElementById(podstawowy_id);
	var ro = document.getElementById(rozszerzony_id);
	var postr = String(podstawowy_id)
	var rostr = String(rozszerzony_id)
	var po_td = document.getElementById('td_'+postr);
	var ro_td = document.getElementById('td_'+rostr);
					
	var suma = parseInt(po.value)+parseInt(ro.value);
	var error=0;
	
	
	var reg1 = /^[0-9]{1,3}$/;
	if(!po.value.match(reg1)){ 
		msg="Niepoprawny format w polu 'liczba uczniów'. \n[Dopuszczalne wartości to cyfry]";		
		alert("Niepoprawny format w polu 'liczba uczniów'. \n[Dopuszczalne wartości to cyfry]");		
		po_td.style.color = '#ff0000';
		error++;
	}
	if(!ro.value.match(reg1)){ 
		//msg="Niepoprawny format w polu 'liczba uczniów'. \n[Dopuszczalne wartości to cyfry]";		
		alert("Niepoprawny format w polu 'liczba uczniów'. \n[Dopuszczalne wartości to cyfry]");
		ro_td.style.color = '#ff0000';
		error++;
	}
	if(parseInt(po.value)>parseInt(dlugosc_max)){ 
		alert("Zbyt duża wartość w polu 'liczba uczniów'. \n[Dopuszczalne wartości < "+dlugosc_max+"]");		
		po_td.style.color = '#ff0000';
		error++;
	} 
	if(parseInt(ro.value)>parseInt(dlugosc_max)){ 
		alert("Zbyt duża wartość w polu 'liczba uczniów'. \n[Dopuszczalne wartości < "+dlugosc_max+"]");		
		ro_td.style.color = '#ff0000';
		error++;
	}
	if(suma>parseInt(suma_obu)){ 
		alert("Zbyt duże wartości w polach 'liczba uczniów'. \n[Dopuszczalna suma wartości < "+suma_obu+"]");		
		po_td.style.color = '#ff0000';
		ro_td.style.color = '#ff0000';
		error++;
	}  
	
	if(error){
		return false;
	}else{
		po_td.style.color = '#000000';
		ro_td.style.color = '#000000';
		return true;				
	}
}



function liczba_sal(podstawowy_id, rozszerzony_id, dlugosc_max, suma_obu, ptd, rtd){
	var po = document.getElementById(podstawowy_id);
	var ro = document.getElementById(rozszerzony_id);
	var po_td = document.getElementById(ptd);
	var ro_td = document.getElementById(rtd);
	
	var suma = parseInt(po.value)+parseInt(ro.value);
	var error=0;
	
	
	var reg1 = /^[0-9]{1,2}$/;
	if(!po.value.match(reg1)){ 
		msg="Niepoprawny format w polu 'liczba sal'. \n[Dopuszczalne wartości to cyfry]";		
		alert("Niepoprawny format w polu 'liczba sal'. \n[Dopuszczalne wartości to cyfry]");		
		po_td.style.color = '#ff0000';
		error++;
	}
	if(!ro.value.match(reg1)){ 
		//msg="Niepoprawny format w polu 'liczba uczniów'. \n[Dopuszczalne wartości to cyfry]";		
		alert("Niepoprawny format w polu 'liczba sal'. \n[Dopuszczalne wartości to cyfry]");
		ro_td.style.color = '#ff0000';
		error++;
	}
	if(parseInt(po.value)>parseInt(dlugosc_max)){ 
		alert("Zbyt duża wartość w polu 'liczba sal'. \n[Dopuszczalne wartości < "+dlugosc_max+"]");		
		po_td.style.color = '#ff0000';
		error++;
	} 
	if(parseInt(ro.value)>parseInt(dlugosc_max)){ 
		alert("Zbyt duża wartość w polu 'liczba sal'. \n[Dopuszczalne wartości < "+dlugosc_max+"]");		
		ro_td.style.color = '#ff0000';
		error++;
	}
	if(suma>parseInt(suma_obu)){ 
		alert("Zbyt duże wartości w polach 'liczba sal'. \n[Dopuszczalna suma wartości < "+suma_obu+"]");		
		po_td.style.color = '#ff0000';
		ro_td.style.color = '#ff0000';
		error++;
	}  
	
	if(error){
		return false;
	}else{
		po_td.style.color = '#000000';
		ro_td.style.color = '#000000';
		return true;		
	}
}



function testuj_liczbe_uczniow_zakresy(id_liczba_up, id_liczba_ur, id_zakres_p, id_zakres_r, minimum, id_message_container){
	var error=0;
	var liczba_up = parseInt(document.getElementById(id_liczba_up).value);
	var liczba_ur = parseInt(document.getElementById(id_liczba_ur).value);
	var zakres_p = document.getElementById(id_zakres_p).checked;
	var zakres_r = document.getElementById(id_zakres_r).checked;

	if(!liczba_up && !liczba_ur && !zakres_p && !zakres_r) { 		
		alert("Prosimy wybrać zakres i podać liczbę uczniów");
		error++
	}else if((zakres_p && !liczba_up) || (zakres_r && !liczba_ur)){
		alert("Prosimy podać liczbę uczniów dla wybranego zakresu"); 
		error++
	}else if((!zakres_p && liczba_up) || (!zakres_r && liczba_ur)){
		alert("Liczbę uczniów należy podać po wcześniejszym zaznaczeniu zakresu"); 
		error++
	}else{		
		
		if(!liczba_up && !liczba_ur) { 		
			alert("Prosimy podać liczbę uczniów");
			error++
		}
		
		if (!zakres_p && !zakres_r) { 
			alert("Prosimy zaznaczyć zakres przedmiotu"); 
			error++
		}

		if((liczba_up+liczba_ur)<minimum){
			alert("Wymagane jest zgłoszenie conajmniej "+minimum+" uczniów łącznie z obu zakresów");
			error++
		}
		
		if((!zakres_r && liczba_up<minimum)||(!zakres_p && liczba_ur<minimum)){
			alert("Wymagane jest zgłoszenie conajmniej "+minimum+" uczniów łącznie z obu zakresów");
			error++
		}
		
	}
	
		
	
	if(error){
		document.getElementById(id_message_container).style.color = '#ff0000';
		return false;
	}else{				
		document.getElementById(id_message_container).style.color = '#000000';
		return true;				
	}
}