//===================================================
// Form Validation
//===================================================
function validateForm() {

	var valid = 1;
	var bgBad = "#FBEEF1";
	var tekst = "";
	var tekst1 = "";
	var tekst2 = "Proszę wypełnić jeszcze następujące pola:\n\n";

	errorEmail = "";
	errorDate = "";
	errorPLZ = "";
	errorPhone = "";
	errorFax = "";
	errorPin = "";
	
	f = document.forms.kontaktForm;
	
	for (i=0;i<f.elements.length;i++) {
		if (f.elements[i].type == "text") setCSSnormal(f.elements[arguments[i]]);
	}

	for (var i = 0; i < arguments.length; i++) {

		if (f.elements[arguments[i]].type == "text") {
			if (f.elements[arguments[i]].value == "") {
				valid  = 0;
				tekst1 += " - "+arguments[i].substr(0,1).toUpperCase()+arguments[i].substr(1)+"\n";
				setCSS (f.elements[arguments[i]]);
			}
		}

/*		if (f.elements[arguments[i]].type == "select-multiple") {
			hasSelections = 0;
			for(var j = 0; j < f.elements[arguments[i]].options.length; j++) {
				if (f.elements[arguments[i]].options[j].selected)	{
					hasSelections++;
				}
			}
			if (hasSelections == 0) {
				valid  = 0;
				tekst += ' - '+arguments[i].substr(0,1).toUpperCase()+arguments[i].substr(1)+"\n";;
			}
		} */

/*		if (typeof FCKeditorAPI != "undefined")	{
			for (var sEditorName in FCKeditorAPI.__Instances) {
				if (sEditorName == arguments[i]) {
					if (FCKeditorAPI.__Instances[sEditorName].GetHTML() == "") {
						valid = 0;
						tekst += " - "+arguments[i].substr(0,1).toUpperCase()+arguments[i].substr(1)+"\n";
					}
				}
			}
		} */
		
/*		if ((f.elements[arguments[i]].name == "geburtsdatum") && (f.elements[arguments[i]].value != "")) {
			errorDate = "";
			if (!checkDate(f.elements[arguments[i]].value)) {
				setCSS (f.elements[arguments[i]]);
			} else {
				setCSSnormal(f.elements[arguments[i]]);
			}
		} */
		
		if ((f.elements[arguments[i]].name == "email") && (f.elements[arguments[i]].value != "")) {
			errorEmail = "";
			email = isEmail(f.elements[arguments[i]].value);
			if (!email) {
				setCSS (f.elements[arguments[i]]);
				errorEmail = "E-mail: Podany adres e-mail jest nieprawidłowy.\n";
				valid = 0;
			} else {
				errorEmail = "";
				setCSSnormal(f.elements[arguments[i]]);
			}
		}

/*		if ((f.elements[arguments[i]].name == "plz") && (f.elements[arguments[i]].value != "")) {
			errorPLZ = "";
			if (!checkPLZ(f.elements[arguments[i]].value)) {
				setCSS (f.elements[arguments[i]]);
			} else {
				setCSSnormal(f.elements[arguments[i]]);
			}
		} */

		if ((f.elements[arguments[i]].name == "telefon") && (f.elements[arguments[i]].value != "")) {
			errorPhone = "";
			if (!checkPhone(f.elements[arguments[i]].value)) {
				setCSS (f.elements[arguments[i]]);
				valid = 0;
			} else {
				setCSSnormal(f.elements[arguments[i]]);
			}
		}

/*		if (f.elements[arguments[i]].name == "telefaxnummer") {
			errorFax = "";
			if (f.elements[arguments[i]].value != "") {
				if (!checkFax(f.elements[arguments[i]].value)) {
					setCSS (f.elements[arguments[i]]);
				} else {
					setCSSnormal(f.elements[arguments[i]]);
				}
			} else {
				setCSSnormal(f.elements[arguments[i]]);
			}
		} */

		if ((f.elements[arguments[i]].name == "pin") && (f.elements[arguments[i]].value != "")) {
			errorPin = "";
			if (!checkPin(f.elements[arguments[i]].value)) {
				setCSS (f.elements[arguments[i]]);
				errorPin = "Działanie: Wpisany wynik jest nieprawidłowy.\n";
				valid = 0;
			} else {
				setCSSnormal(f.elements[arguments[i]]);
			}
		}

		
	} //End for


	if (valid) {
		f.submit();
		return true;
	} else {
		if ( tekst1 != "") {
			tekst = tekst2 + tekst1;
		}
		tekst += "\n\n";
		tekst += errorPhone;
		tekst += errorEmail;
		tekst += errorPin;
//		tekst += errorPLZ;
//		tekst += errorFax;
//		tekst += errorDate;
		tekst = tekst.replace('Imie','Imię');
		tekst = tekst.replace('Email','E-mail');
		tekst = tekst.replace('Pin','Wynik działania');
		alert (tekst + "\n \n");
		return false;
	}
}

//===================================================
// Date Validation
//===================================================
function checkDate(fld) {
	currDate = new Date();
	year = fld.substr(6,4);
	month = fld.substr(3,2) - 1;
	day = fld.substr(0,2);
	formDate = new Date(year, month, day);
	diffDate = currDate - formDate;
	diffDays = Math.round(diffDate/(1000*60*60*24));
	
	currYear = currDate.getYear() + 1900;
	diffYears = currYear - year;
	
	if ((diffYears < 14) || (diffYears > 99)) {
//		errorDate = "Geburtsdatum: Sie müssen zwichen 14 und 99 Jahre alt sein.\n";
		errorDate = "Data urodzenia: \n";
		return false;
	}	else {
		return true;
	}
}

//===================================================
// E-mail Validation
//===================================================
function isEmail(str) {
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}


//===================================================
// PLZ Validation
//===================================================
function checkPLZ(fld) {
	var regDigits = /[0-9]{5}/;
	
	if ((!regDigits.test(fld)) || (fld.length > 5)) {
//		errorPLZ = "PLZ: " + fld + " ist keine gültige PLZ.\n";
		errorPLZ = "Kod pocztowy: " + fld + " nie jest poprawnym kodem pocztowym.\n";
		return false;
	}	else {
		return true;
	}
}

//===================================================
// Phone Number Validation
//===================================================
function checkPhone(fld) {
	var telnr = /^\+?[0-9 ()-]+[0-9]$/  ;
	
	if (!telnr.test(fld)) {
//		errorPhone = "Telefonnummer: Es sind nur Zahlen 0-9 sowie die Zeichen  +/- und Leerzeichen zugelassen.\n";
		errorPhone = "Telefon: Pole może zawierać jedynie cyfry 0-9, znaki +/- oraz odstępy.\n";
		return false;
	}	else {
		return true;
	}
}

//===================================================
// Fax Number Validation
//===================================================
function checkFax(fld) {
	var telnr = /^\+?[0-9 ()-]+[0-9]$/  ;
	
	if (!telnr.test(fld)) {
//		errorFax = "Telefaxnummer: Es sind nur Zahlen 0-9 sowie die Zeichen  +/- und Leerzeichen zugelassen.\n";
		errorFax = "Fax: Pole może zawierać jedynie cyfry 0-9, znaki +/- oraz odstępy.\n";
		return false;
	}	else {
		return true;
	}
}


//===================================================
// Set Background Color For Form Element
//===================================================
function setColor(el, bg) {
  if (el.style) el.style.backgroundColor = bg;
}

//===================================================
// Set CSS For Form Element
//===================================================
function setCSS(el) {
	if (el) el.className = 'inputTextWarn';
}

//===================================================
// Reset CSS For Form Element
//===================================================
function setCSSnormal(el) {
	if (el) el.className = 'inputText';
}


//===================================================
// Cookie Delete
//===================================================
function delete_cookie ( cookie_name )
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1*24*60*60*1000 );
  document.cookie = cookie_name + "=; expires=" + cookie_date.toGMTString();
}

//===================================================
// Cookie Set
//===================================================
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

//===================================================
// Cookie Read
//===================================================
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}



//===================================================
// Select - Disable Options
//===================================================
function emulateDisabled(selectBox) {
	for (var i=0, option; option = selectBox.options[i]; i++) {
		if (option.disabled) {
			option.style.color = "#c8c8c8";
		}else{
			option.style.color = "menutext";
		}
	}
}

function restoreEmulateDisabled(selectBox) {
	selDis = false;
	for (var i=0, option; option = selectBox.options[i]; i++) {
		if(option.selected && option.disabled){
//			option.selected=false;
			selectBox.selectedIndex = window.select_current[selectBox.id];
			selDis = true;
		}
	}
	if (!selDis) {
		chooseProduct(selectBox);
	}
}

function addEmulation(selectBox){
	window.select_current = new Array();
	selectBox.onfocus = function(){ window.select_current[this.id] = this.selectedIndex; }
	selectBox.onchange = function(){ restoreEmulateDisabled(this); }
}


window.onload = function() {

	if (document.getElementsByTagName) {
	
		var s = document.getElementsByTagName("select");

		if (s.length > 0) {
			window.select_current = new Array();
			
			for (var i=0, select; select = s[i]; i++) {
				if (select.name == 'produkt') {
					select.onfocus = function(){ window.select_current[this.id] = this.selectedIndex; }
					select.onchange = function(){ restoreEmulateDisabled(this); }
					emulateDisabled(select);
				}
			}
		}
	}
}

//===================================================
// Form Reset (incl. FCKeditor
//===================================================
function resetForm() {
  resetEditors();
  document.forms[0].reset();
  return false;
}

function validateNewsltr(par) {
	if (checkEmailNewsltr(document.frmNewsltr.email, 'Podany adres e-mail jest nieprawidłowy.\nProszę podać poprawny adres e-mail.')) {
		if (par == 'zapis') {
			document.frmNewsltr.btn.value = 'zapis';
			document.frmNewsltr.submit();
		}
		if (par == 'wypis') {
			document.frmNewsltr.btn.value = 'wypis';
			document.frmNewsltr.submit();
		}
	} else {
		return false;
	}
}

function checkEmailNewsltr(fldEmail, txtAlert){
		strEmail=/^[0-9a-z.-]+(@|\(at\))+[0-9a-z._-]+\.[a-z]{2,3}$/i;
		if(strEmail.test(fldEmail.value)==false){
			alert(txtAlert);
			fldEmail.focus();		
			fldEmail.select();
			return false;
		}
	return true;	
}
