/* 
 * JavaScript Document
 * Znajduja sie tu funkcje potrzebne do pokazywania podpowiedzi
 * podczas wypelniania formularza
 * 
 */

/** ********************************************** */
function VeryfiDane() {
	this.imie = false;
	this.nazwisko = false;
	this.firma = false;
	this.nip = false;
	//this.regon = false;
	this.email = false;
	this.miejscowosc = false;
	this.kodpocz = false;
	this.ulica = false;
	this.tel = false;
	
	this.imie_d = false;
	this.nazwisko_d = false;
	this.firma_d = false;
	this.miejscowosc_d = false;
	this.kodpocz_d = false;
	this.ulica_d = false;

}
var daneObiekt = new VeryfiDane();
/** ********************************************** */

/** ********************************************** */
/** **************CreateElementImg**************** */
/*
 * CreateElementImg(location,width,height,alt)- tworzy element obrazek <br />
 * @param location - sciezka do obrazka @param width - szerokosc obrazka @param
 * height - wysokosc obrazka @param alt - opis obrazka po najechamiu @example
 * CreateElementImg("../gfx/numerki/aktywny1.png","25","23","opis"); @type
 * <b>element obrazek</b> el=document.createElement("img");
 */
function CreateElementImg(location, width, height, alt) {
	var el = document.createElement("img");
	el.setAttribute("src", location);
	el.setAttribute("width", width);
	el.setAttribute("height", height);
	el.setAttribute("alt", alt);
	el.style.display = "inline";
	return (el);
}
/** ********************************************** */

/** ********************************************** */
/** ***PokazUkryj(idNamePokaz,idNameUkryj)******** */
/*
 * CreateElementImg(location,width,height,alt)- tworzy element podpowiedz <br />
 * @param element - sciezka do obrazka @param className - szerokosc obrazka
 * @example CreateEl("link"); @type <b>element obrazek</b>
 * el=document.createElement("img");
 */
function CreateEl(element, className) {
	var x = document.createElement(element);
	x.className = className;
	x.style.display = "block";
	return (x);
}
/** ********************************************** */
/** ********************************************** */
/** ****************infoForm********************** */
/* AddCssForm()-laduje styl/plik css wyswietlania podpowiedzi */
function AddCssForm() {
	var l = CreateEl("link");
	l.setAttribute("type", "text/css");
	l.setAttribute("rel", "stylesheet");
	l.setAttribute("href", "javascript/toolTipsForm.css");
	l.setAttribute("media", "screen");
	document.getElementsByTagName("head")[0].appendChild(l);
}
/** ********************************************** */

/** ********************************************** */
/** ****************infoForm********************** */
/*
 * infoForm(idName,tagName)-pokazuje opis po kliknieciu na element <br />
 * korzysta z elementu span ktory powinien byl opisany przez odpowiedni css
 * @param idName - id formularza w jakim znajduje sie element @param tagName -
 * tag elementu na jakim reaguje skrypt nie wymagany @example
 * infoForm("formu","input"); <form name="formu" id="formu" action="index.php"
 * method="post"> <input type=".." name=".." value=".." /> <span class="!!">
 * Twoj opis </span>
 */
function InfoForm(idName, tagName) {
	AddCssForm();
	var element;
	if (tagName != null && idName != null) {// zapytanie dla szczegolnych
		// elementow formularza
		element = document.getElementById(idName).getElementsByTagName(tagName);
	} else if (idName != null) {
		element = document.getElementById(idName);
	}

	for ( var i = 0; i < element.length; i++) {
		// sprawdzenie czy obiekt span istnieje
		if (element[i].parentNode.getElementsByTagName("span")[0]) {
			// po nacisnieciu pojawi sie opis
			//element[i].onfocus = function() {
				
				/* pokazuje podpowiedz
				if (this.parentNode.getElementsByTagName("span")[2]) {
					// Warunek jelsi nie mam opisu bledu
					this.parentNode.getElementsByTagName("span")[1].style.display = "inline";
					this.parentNode.getElementsByTagName("span")[2].style.display = "inline";
				} else {
					this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
					this.parentNode.getElementsByTagName("span")[1].style.display = "inline";
				}*/
			//}
			// po odznaczeniu zniknie opis
			element[i].onblur = function() {
				//if (this.parentNode.getElementsByTagName("span")[2]) {
					// Warunek jelsi nie mam opisu bledu
					//this.parentNode.getElementsByTagName("span")[1].style.display = "none";
					//this.parentNode.getElementsByTagName("span")[2].style.display = "none";
					
					this.parentNode.getElementsByTagName("span")[0].style.display = "none";//ukryj blad
				//} else {
					//this.parentNode.getElementsByTagName("span")[0].style.display = "none";
					//this.parentNode.getElementsByTagName("span")[1].style.display = "none";
				//}
				/*
				 * if(idName=="rejform"){ dalej1(); dalej2(); }
				 */
			}
		}
	}
}

/** ********************************************** */
/** ****************PokazBlad********************** */
/*
 * PokazBlad(form,elementParentNode,elementName,elementName2)-pokazuje blad
 * podczas wpisywania danych w formularzu <br /> korzysta z elementu span ktory
 * powinien byl opisany przez odpowiedni css 
 * @param form - formularz na jakim dzialamy 
 * @param elementParentNode - obszar w jakim dzialamy np. pole tabeli
 * @param elementName - obiekt w jakim dzialamy 
 * @param elementName2 - obiekt inny z jakim chcemu porownac 
 * @example <input type=".." name=".." value=".."
 * onkeyup="PokazBlad(this.form,this.parentNode,this.form.haslo2_rej,this.form.haslo_rej)" />
 */
function PokazBlad(form, elementParentNode, elementName) {
	if (form.name == "rejform") {
		//alert(elementParentNode.toString()+' | '+elementName.getAttribute("name"));
		var error, name;
		name = elementName.getAttribute("name");
		switch (name) {
		case "imie_f":
			error = verify_string(elementName.value, "imie");
			if (error == "") {
				daneObiekt.imie = true;
			} else {
				daneObiekt.imie = false;
			}
			break;
		case "nazwisko_f":
			error = verify_string(elementName.value, "nazwisko");
			if (error == "") {
				daneObiekt.nazwisko = true;
			} else {
				daneObiekt.nazwisko = false;
			}
			break;
		case "firma_f":
			error = verify_string(elementName.value, "firma");
			if (error == "") {
				daneObiekt.firma = true;
			} else {
				daneObiekt.firma = false;
			}
			break;
		case "nip_f":
			error = verify_liczby(elementName.value);
			if (error == "") {
				daneObiekt.nip = true;
			} else {
				daneObiekt.nip = false;
			}
			break;
		case "regon_f":
			error = 'brak';//verify_liczby(elementName.value);
			/*if (error == "") {
				daneObiekt.regon = true;
			} else {
				daneObiekt.regon = false;
			}*/
			break;
		case "e_mail_f":
			error = verify_email(elementName.value);
			if (error == "") {
				daneObiekt.email = true;
			} else {
				daneObiekt.email = false;
			}
			break;
		case "miejscowosc_f":
			error = verify_string(elementName.value, "miejscowosc");
			if (error == "") {
				daneObiekt.miejscowosc = true;
			} else {
				daneObiekt.miejscowosc = false;
			}
			break;
		case "kod_pocztowy_f":
			error = verify_kod(elementName.value);
			if (error == "") {
				daneObiekt.kodpocz = true;
			} else {
				daneObiekt.kodpocz = false;
			}
			break;
		case "adres_f":
			error = verify_string(elementName.value, "ulica");
			if (error == "") {
				daneObiekt.ulica = true;
			} else {
				daneObiekt.ulica = false;
			}
			break;
		case "tel_f":
			error = verify_string(elementName.value, "telefon");
			if (error == "") {
				daneObiekt.tel = true;
			} else {
				daneObiekt.tel = false;
			}
			break;
			
			
		case "imie_d":
			error = verify_string(elementName.value, "imie");
			if (error == "") {
				daneObiekt.imie_d = true;
			} else {
				daneObiekt.imie_d = false;
			}
			break;
		case "nazwisko_d":
			error = verify_string(elementName.value, "nazwisko");
			if (error == "") {
				daneObiekt.nazwisko_d = true;
			} else {
				daneObiekt.nazwisko_d = false;
			}
			break;
		case "firma_d":
			error = verify_string(elementName.value, "firma");
			if (error == "") {
				daneObiekt.firma_d = true;
			} else {
				daneObiekt.firma_d = false;
			}
			break;
		case "miejscowosc_d":
			error = verify_string(elementName.value, "miejscowosc");
			if (error == "") {
				daneObiekt.miejscowosc_d = true;
			} else {
				daneObiekt.miejscowosc_d = false;
			}
			break;
		case "kod_pocztowy_d":
			error = verify_kod(elementName.value);
			if (error == "") {
				daneObiekt.kodpocz_d = true;
			} else {
				daneObiekt.kodpocz_d = false;
			}
			break;	
		case "adres_d":
			error = verify_string(elementName.value, "ulica");
			if (error == "") {
				daneObiekt.ulica_d = true;
			} else {
				daneObiekt.ulica_d = false;
			}
			break;
			
		default:
			break;
		}
		
		if (error == "") {
			elementParentNode.getElementsByTagName("span")[0].style.display = "none";	
			PokazZnaczekForm(elementParentNode, "dobry");
		}else if (error == "brak") {
		
		} else {
			var opisBlad, infoBlad, niszcz;
			infoBlad = elementParentNode.getElementsByTagName("span")[0];
			niszcz = elementParentNode.getElementsByTagName("label")[0];
			infoBlad.removeChild(niszcz);
			opisBlad = document.createElement("label");
			opisBlad.appendChild(document.createTextNode(error));
			infoBlad.appendChild(opisBlad);
			infoBlad.style.display = "inline";
			PokazZnaczekForm(elementParentNode, "zly");
		}
		
	}
}
/** ********************************************** */
/** ********************************************** */

/** ****************PokazBlad_kopia********************** */
/*
 * PokazBlad_kopia(form,elementParentNode,elementName,elementName2)-pokazuje blad
 * podczas wpisywania danych w formularzu <br /> korzysta z elementu span ktory
 * powinien byl opisany przez odpowiedni css 
 * @param form - formularz na jakim dzialamy 
 * @param elementParentNode - obszar w jakim dzialamy np. pole tabeli
 * @param elementName - obiekt na jakim dzialamy 
 * @example <input type=".." name=".." value=".."
 * onkeyup="PokazBlad(this.form,this.parentNode,this.form.haslo2_rej,this.form.haslo_rej)" />
 */
function PokazBlad_kopia(form, elementParentNode, elementName) {
	if (form.name == "rejform") {
		//alert(elementParentNode.toString()+' | '+elementName.getAttribute("name"));
		var error, name;
		name = elementName.getAttribute("name");
		switch (name) {				
		case "imie_f":
			if(elementName.value!='PUSTE'){			
				error = verify_string(elementName.value, "imie");
			}else{
				error = verify_string('', "imie");
			}
			if (error == "") {
				daneObiekt.imie = true;
			} else {
				daneObiekt.imie = false;
			}
			break;
		case "nazwisko_f":
			if(elementName.value!='PUSTE'){			
				error = verify_string(elementName.value, "nazwisko");
			}else{
				error = verify_string('', "nazwisko");
			}
			if (error == "") {
				daneObiekt.nazwisko = true;
			} else {
				daneObiekt.nazwisko = false;
			}
			break;
		case "firma_f":
			error = verify_string(elementName.value, "firma");
			if (error == "") {
				daneObiekt.firma = true;
			} else {
				daneObiekt.firma = false;
			}
			break;
		case "miejscowosc_f":
			error = verify_string(elementName.value, "miejscowosc");
			if (error == "") {
				daneObiekt.miejscowosc = true;
			} else {
				daneObiekt.miejscowosc = false;
			}
			break;
		case "kod_pocztowy_f":
			error = verify_kod(elementName.value);
			if (error == "") {
				daneObiekt.kodpocz = true;
			} else {
				daneObiekt.kodpocz = false;
			}
			break;
		case "adres_f":
			error = verify_string(elementName.value, "ulica");
			if (error == "") {
				daneObiekt.ulica = true;
			} else {
				daneObiekt.ulica = false;
			}
			break;
			
		default:
			break;
		}
		
		if (error == "") {
			PokazZnaczekForm(elementParentNode, "dobry");
		} else {
			PokazZnaczekForm(elementParentNode, "zly");
		}
		
	}
}
/** ********************************************** */

/** ********************************************** */
/** *************pokazZnaczekForm***************** */
/*
 * PokazZnaczekForm(elementParentNode,jakiZnaczek) - pokazuje znaczek dobry lub
 * zly podczas wpisywania formularza <br /> korzysta z elementu span ktory
 * powinien byl opisany przez odpowiedni css @param elementParentNode - obszar w
 * jakim dzialamy np. pole tabeli @param jakiZnaczek - do wyboru dobry lub zly
 * @example PokazZnaczekForm(elementParentNode,"zly");
 */
function PokazZnaczekForm(elementParentNode, jakiZnaczek) {
	var znaczekBladCreate, znaczekBlad;
	znaczekBlad = elementParentNode.getElementsByTagName("img")[0];
	if ((!znaczekBlad) && (jakiZnaczek == "zly")) {
		if (znaczekBlad) {
			elementParentNode.removeChild(znaczekBlad);
		}
		znaczekBladCreate = CreateElementImg("javascript/zly.png", "15", "13");
		elementParentNode.appendChild(znaczekBladCreate);
	} else if ((znaczekBlad) && (jakiZnaczek == "zly")) {
		if (znaczekBlad) {
			elementParentNode.removeChild(znaczekBlad);
		}
		znaczekBladCreate = CreateElementImg("javascript/zly.png", "15", "13");
		elementParentNode.appendChild(znaczekBladCreate);
	} else if ((!znaczekBlad) && (jakiZnaczek == "dobry")) {
		if (znaczekBlad) {
			elementParentNode.removeChild(znaczekBlad);
		}
		znaczekBladCreate = CreateElementImg("javascript/dobry.png", "15", "13");
		elementParentNode.appendChild(znaczekBladCreate);
	} else if ((znaczekBlad) && (jakiZnaczek == "dobry")) {
		if (znaczekBlad) {
			elementParentNode.removeChild(znaczekBlad);
		}
		znaczekBladCreate = CreateElementImg("javascript/dobry.png", "15", "13");
		elementParentNode.appendChild(znaczekBladCreate);
	}
}
/** *********************************************** */

/** *********************************************** */
/** ***************KopiujDane(form))*************** */
/*
 * KopiujDane(form) pozwala zablokowac i wypelnic dane gdy
 * form.elements["dane"].checked; jest zaznaczony
 * form.elements["dane"].checked -> true(zaznaczony)/false(odznaczony)
 */
function KopiujDane(form,elementParentNode) {
	if (form.name == "rejform") {	
		
		if(form.elements["dane"].checked){
			//form.elements['imie_d'].disabled = form.elements['dane'].checked;
			if(form.elements["imie_f"].value!='PUSTE'){			
				form.elements["imie_d"].value = form.elements["imie_f"].value;
			}else{
				if(form.elements["imie_d"].value=='PUSTE'){	
					form.elements["imie_d"].value='';
				}
			}
			PokazBlad_kopia(form, document.getElementById("id_imie_d"), form.elements["imie_f"]);
			
			//form.elements["nazwisko_d"].disabled = form.elements["dane"].checked;
			if(form.elements["nazwisko_f"].value!='PUSTE'){			
				form.elements["nazwisko_d"].value = form.elements["nazwisko_f"].value;
			}else{
				if(form.elements["nazwisko_d"].value=='PUSTE'){	
					form.elements["nazwisko_d"].value='';
				}
			}
			//form.elements["nazwisko_d"].value = form.elements["nazwisko_f"].value;
			PokazBlad_kopia(form, document.getElementById("id_nazwisko_d"), form.elements["nazwisko_f"]);
			
			form.elements["firma_d"].disabled = form.elements["dane"].checked;
			form.elements["firma_d"].value = form.elements["firma_f"].value;
			PokazBlad_kopia(form, document.getElementById("id_firma_d"), form.elements["firma_f"]);
			
			form.elements["adres_d"].disabled = form.elements["dane"].checked;
			form.elements["adres_d"].value = form.elements["adres_f"].value;
			PokazBlad_kopia(form, document.getElementById("id_adres_d"), form.elements["adres_f"]);
			
			form.elements["kod_pocztowy_d"].disabled = form.elements["dane"].checked;
			form.elements["kod_pocztowy_d"].value = form.elements["kod_pocztowy_f"].value;
			//PokazBlad_kopia(form, document.getElementById("id_kod_pocztowy_d"), form.elements["kod_pocztowy_f"]);
			
			form.elements["miejscowosc_d"].disabled = form.elements["dane"].checked;
			form.elements["miejscowosc_d"].value = form.elements["miejscowosc_f"].value;
			PokazBlad_kopia(form, document.getElementById("id_miejscowosc_d"), form.elements["miejscowosc_f"]);
		}else{
			form.elements["firma_d"].disabled = false;
			form.elements["adres_d"].disabled = false;
			form.elements["kod_pocztowy_d"].disabled = false;
			form.elements["miejscowosc_d"].disabled = false;		
		}
		
	}
}
/** ********************************************** */


