// przełączenie obrazka w stan "włączony" (1)

function wlacz(guzik)
{
 var obrazki = "./graf/";
 eval("document.images[\"" + guzik + "\"].src = \"" + obrazki + guzik + "_1.gif\"");
 window.status = "";
}

// przełącznie obrazka w stan "wyłączony" (0)

function wylacz(guzik)
{
 var obrazki = "./graf/";
 eval("document.images[\"" + guzik + "\"].src = \"" + obrazki + guzik + "_0.gif\"");
 window.status = "";
}

// najnowsza wersja funkcji wysyłającej formularz - form + cel + sprawdzanie + 1 dowolna zmienna (zmienna1, wartość1)

function form_wyslij_1(formularz,cel,sprawdzenie,z1,w1)
{
 eval("document.forms[\"" + formularz + "\"].action=\"" + cel + "\"");
 eval("document.forms[\"" + formularz + "\"].elements[\"" + z1 + "\"].value=\"" + w1 + "\"");
 if(sprawdzenie)
 {
  if(form_sprawdz(formularz))
  {
   eval("document.forms[\"" + formularz + "\"].submit()");
  }
 }
 else
 {
  eval("document.forms[\"" + formularz + "\"].submit()");
 }
}

// najnowsza wersja funkcji wysyłającej formularz - form + cel + sprawdzanie + 2 dowolne zmienne (zmienna1, wartość1, zmienna2, wartość2)

function form_wyslij_2(formularz,cel,sprawdzenie,z1,w1,z2,w2)
{
 eval("document.forms[\"" + formularz + "\"].action=\"" + cel + "\"");
 eval("document.forms[\"" + formularz + "\"].elements[\"" + z1 + "\"].value=\"" + w1 + "\"");
 eval("document.forms[\"" + formularz + "\"].elements[\"" + z2 + "\"].value=\"" + w2 + "\"");
 if(sprawdzenie)
 {
  if(form_sprawdz(formularz))
  {
   eval("document.forms[\"" + formularz + "\"].submit()");
  }
 }
 else
 {
  eval("document.forms[\"" + formularz + "\"].submit()");
 }
}

// najnowsza wersja funkcji wysyłającej formularz - form + cel + sprawdzanie + 2 dowolne zmienne (zmienna1, wartość1, zmienna2, wartość2)

function form_wyslij_3(formularz,cel,sprawdzenie,z1,w1,z2,w2,z3,w3)
{
 eval("document.forms[\"" + formularz + "\"].action=\"" + cel + "\"");
 eval("document.forms[\"" + formularz + "\"].elements[\"" + z1 + "\"].value=\"" + w1 + "\"");
 eval("document.forms[\"" + formularz + "\"].elements[\"" + z2 + "\"].value=\"" + w2 + "\"");
 eval("document.forms[\"" + formularz + "\"].elements[\"" + z3 + "\"].value=\"" + w3 + "\"");
 if(sprawdzenie)
 {
  if(form_sprawdz(formularz))
  {
   eval("document.forms[\"" + formularz + "\"].submit()");
  }
 }
 else
 {
  eval("document.forms[\"" + formularz + "\"].submit()");
 }
}

// wysyłanie formularza (stara wersja)

function form_wyslij(formularz,akcja,cel)
{
 eval("document.forms[\"" + formularz + "\"].action=\"" + cel + "\"");
 eval("document.forms[\"" + formularz + "\"].elements[\"akcja\"].value=\"" + akcja + "\"");
 if(form_sprawdz(formularz))
 {
  eval("document.forms[\"" + formularz + "\"].submit()");
 }
}

// wysyłanie formularza ze sprawdzaniem wartości pól funkcją 'form_sprawdz' lub bez
// rozszerzona wersja form_wyslij()

function form_dalej(formularz,akcja,cel,sprawdzenie)
{
 eval("document.forms[\"" + formularz + "\"].action=\"" + cel + "\"");
 eval("document.forms[\"" + formularz + "\"].elements[\"akcja\"].value=\"" + akcja + "\"");
 if(sprawdzenie)
 {
  if(form_sprawdz(formularz))
  {
   eval("document.forms[\"" + formularz + "\"].submit()");
  }
 }
 else
 {
  eval("document.forms[\"" + formularz + "\"].submit()");
 }
}

// proste wysyłanie formularza

function wyslij(formularz)
{
 eval("document.forms[\"" + formularz + "\"].submit()");
}

// wysyłanie formularza enterem w ostatnim polu

function form_enter(formularz,zdusil)
{
var klawisz;
if (window.event) klawisz = window.event.keyCode;
else if (zdusil) klawisz = zdusil.which;
else return true;
if (klawisz == 13)
{
 eval("document.forms[\"" + formularz + "\"].submit()");
 return false;
}
else
return true;
}

// ustawianie focusa na polu

function form_focus(formularz,pole)
{
 eval("document.forms[\"" + formularz + "\"].elements[\"" + pole  + "\"].focus()");
}

// ustawianie focusa enterem na wskazanym polu

function form_next(formularz,pole,zdusil)
{
var klawisz;
if (window.event) klawisz = window.event.keyCode;
else if (zdusil) klawisz = zdusil.which;
else return true;
if (klawisz == 13)
{
 //alert("document.forms[\"" + formularz + "\"].elements[\"" + pole  + "\"].focus()");
 eval("document.forms[\"" + formularz + "\"].elements[\"" + pole  + "\"].focus()");
}
else
return true;
}

// podgląd formularza w nowym okienku

function form_podglad(form,okno)
{
if (! window.focus) return true;
var nowe_okno = window.open('./podglad.php', okno, config='height=400,width=790,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
nowe_okno.moveTo(15,130);
form.target=okno;
form.submit();
return true;
}

// okno pomocy i analogiczne okno danych osobowych

function pomoc(numer)
{
 if(numer == 0)
 {
  var pomoc_okno = window.open('./okienko.php', 'anew', config='height=400,width=400,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
 }
 else
 {
  var pomoc_okno = window.open('./okienko.php?id='+numer+'&akcja=pomoc', 'anew', config='height=400,width=400,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
 }
 if(!pomoc_okno.closed) pomoc_okno.focus();  
 pomoc_okno.moveTo(15,130);
}

function pomoc2(numer,sze,wys)
{
 if(numer == 0)
 {
  var pomoc_okno = window.open('./okienko.php', 'anew', config='height='+wys+',width='+sze+',toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
 }
 else
 {
  var pomoc_okno = window.open('./okienko.php?id='+numer+'&akcja=pomoc', 'anew', config='height='+wys+',width='+sze+',toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
 }
 if(!pomoc_okno.closed) pomoc_okno.focus();  
 pomoc_okno.moveTo(15,130);
}

function dane(numer)
{
 if(numer == 0)
 {
  var dane_okno = window.open('./okienko.php', 'anew', config='height=450,width=450,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
 }
 else
 {
  var dane_okno = window.open('./okienko.php?id='+numer+'&akcja=dane', 'anew', config='height=450,width=450,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
 }
 if(!dane_okno.closed) dane_okno.focus();  
 dane_okno.moveTo(15,130);
}

// sprawdza liczbę znaków wpisanych w pole <textarea>

function form_znaki(obj,max)
{
var result = true; 
var info = "Został przekroczony limit znaków dla tego pola (maks. " + max + ").";
if (obj.value.length >= max)
{ 
 alert(info); 
 result = false; 
} 
if (window.event) 
window.event.returnValue = result; 
return result; 
}

// sprawdza formularz przed wysłaniem
// funkcja wywoływana w funkcji form_wyslij()

function form_sprawdz(formularz)
{
var wynik=true; 
switch(formularz)
{
 case 'krok_1':
  liczba_autorow=document.forms[formularz].elements["liczba_autorow"].value;
  if(liczba_autorow.length==0)
  {
   alert("Proszę podać liczbę autorów publikacji (1-99).");
   document.forms[formularz].elements["liczba_autorow"].focus();
   wynik=false;
  }
  else
  {
   if(liczba_autorow==0)
   {
    alert("Proszę podać niezerową liczbę autorów publikacji (1-99).");
    document.forms[formularz].elements["liczba_autorow"].focus();
    wynik=false;
   }
   if(!allDigits(liczba_autorow))
   {
    alert("Proszę podać liczbę autorów publikacji używając wyłącznie cyfr.");
    document.forms[formularz].elements["liczba_autorow"].focus();
    wynik=false;
   }
  }
  return wynik;
  break;
 case 'nowe_haslo':
  if(document.forms[formularz].elements["stare"].value.length==0 || document.forms[formularz].elements["nowe"].value.length==0 || document.forms[formularz].elements["nowe2"].value.length==0)
  {
   alert("Proszę wypełnić wszystkie wymagane pola (stare oraz dwukrotnie nowe hasło).");
   return false;
  }
  else
  {
   return true;
  }
  break;
 case 'publikacja':
  //tytuł publikacji
  publikacja_tytul=document.forms[formularz].elements["publikacja_tytul"].value;
  if(publikacja_tytul.length==0)
  {
   alert("Proszę podać tytuł publikacji.");
   document.forms[formularz].elements["publikacja_tytul"].focus();
   wynik=false;
   return wynik;
  }
  //autor_*
  liczba_autorow=document.forms[formularz].elements["liczba_autorow"].value;
  // sprawdzanie, czy wybrano autora
  // jeżeli którekolwiek z pól autor_* jest puste poszukiwania zostają przerwane
  for(i=1;i<=liczba_autorow;i++)
  {
   autor=document.forms[formularz].elements["autor_"+i].value;
   if(autor.length == 0)
   {
    alert("Proszę wybrać autora nr "+i+".");
    document.forms[formularz].elements["autor_"+i].focus();
    wynik=false;
    return wynik;
   }
  }
  // sprawdzanie, czy nie wybrano kilka razy tego samego autora
  var test=true;  
  if(liczba_autorow>1)
  {
   for(i=1;i<=liczba_autorow;i++)
   {
    autor1=document.forms[formularz].elements["autor_"+i].value;
    for(j=i+1;j<=liczba_autorow;j++)
    {
     autor2=document.forms[formularz].elements["autor_"+j].value;
     if(autor2==autor1)
     {
      test=test&&false;
     }
    }
   }
   if(!test)
   {
    alert("Nazwiska autorów nie mogą się powtarzać.");
    document.forms[formularz].elements["autor_1"].focus();
    return false;
   }
  }
  //kod_id
  kod_id=document.forms[formularz].elements["kod_id"].value;
  if(kod_id.length==0)
  {
   alert("Proszę określić rodzaj publikacji.");
   document.forms[formularz].elements["kod_id"].focus();
   wynik=false;
   return wynik;
  }
  //jezyk_id
  jezyk_id=document.forms[formularz].elements["jezyk_id"].value;
  if(jezyk_id.length==0)
  {
   alert("Proszę wybrać z listy język publikacji.");
   document.forms[formularz].elements["jezyk_id"].focus();
   return false;  
  }
  //publikacja_strony
  publikacja_strony=document.forms[formularz].elements["publikacja_strony"].value;
  if(publikacja_strony.length==0)
  {
   alert("Proszę podać liczbę/zakres stron publikacji.");
   document.forms[formularz].elements["publikacja_strony"].focus();
   return false;  
  }
  //publikacja_rok
  publikacja_rok=document.forms[formularz].elements["publikacja_rok"].value;
  if(publikacja_rok.length==0)
  {
   alert("Proszę podać rok publikacji (1900-2100).");
   document.forms[formularz].elements["publikacja_rok"].focus();
   wynik=false;
  }
  else
  {
   if((publikacja_rok<1900)||(publikacja_rok>2100))
   {
    alert("Proszę podać rok publikacji z zakresu 1900-2100.");
    document.forms[formularz].elements["publikacja_rok"].focus();
    wynik=false;
   }
   if(!allDigits(publikacja_rok))
   {
    alert("Proszę podać rok publikacji używając wyłącznie cyfr.");
    document.forms[formularz].elements["publikacja_rok"].focus();
    wynik=false;
   }
  }
  //publikacja_punkty
  publikacja_punkty=document.forms[formularz].elements["publikacja_punkty"].value;
  if(publikacja_punkty.length==0)
  {
   alert("Proszę podać liczbę punktów zgodnie z zasadami obowiązującymi w momencie wydania.\nW razie wątpliwości proszę wpisać 0.");
   document.forms[formularz].elements["publikacja_punkty"].focus();
   return false;  
  }
  return wynik;
 case 'patent':
  wynik=true;
  //tytuł patentu
  patent_tytul=document.forms[formularz].elements["patent_tytul"].value;
  if(patent_tytul.length==0)
  {
   alert("Proszę podać tytuł patentu.");
   document.forms[formularz].elements["patent_tytul"].focus();
   wynik=false;
   return wynik;
  }
  //autor_*
  liczba_autorow=document.forms[formularz].elements["liczba_autorow"].value;
  // sprawdzanie, czy wybrano autora
  // jeżeli którekolwiek z pól autor_* jest puste poszukiwania zostają przerwane
  for(i=1;i<=liczba_autorow;i++)
  {
   autor=document.forms[formularz].elements["autor_"+i].value;
   if(autor.length == 0)
   {
    alert("Proszę wybrać autora nr "+i+".");
    document.forms[formularz].elements["autor_"+i].focus();
    wynik=false;
    return wynik;
   }
  }
  // sprawdzanie, czy nie wybrano kilka razy tego samego autora
  var test=true;  
  if(liczba_autorow>1)
  {
   for(i=1;i<=liczba_autorow;i++)
   {
    autor1=document.forms[formularz].elements["autor_"+i].value;
    for(j=i+1;j<=liczba_autorow;j++)
    {
     autor2=document.forms[formularz].elements["autor_"+j].value;
     if(autor2==autor1)
     {
      test=test&&false;
     }
    }
   }
   if(!test)
   {
    alert("Nazwiska autorów nie mogą się powtarzać.");
    document.forms[formularz].elements["autor_1"].focus();
    return false;
   }
  } 
  //numer patentu
  patent_numer=document.forms[formularz].elements["patent_numer"].value;
  if(patent_numer.length==0)
  {
   alert("Proszę podać numer patentu lub numer zgłoszenia.");
   document.forms[formularz].elements["patent_numer"].focus();
   wynik=false;
   return wynik;
  }
  return wynik;
  break;
 case 'ekspertyza':
  wynik=true;
  //tytuł ekspertyzy
  ekspertyza_tytul=document.forms[formularz].elements["ekspertyza_tytul"].value;
  if(ekspertyza_tytul.length==0)
  {
   alert("Proszę podać tytuł ekspertyzy.");
   document.forms[formularz].elements["ekspertyza_tytul"].focus();
   wynik=false;
   return wynik;
  }
  //autor_*
  liczba_autorow=document.forms[formularz].elements["liczba_autorow"].value;
  // sprawdzanie, czy wybrano autora
  // jeżeli którekolwiek z pól autor_* jest puste poszukiwania zostają przerwane
  for(i=1;i<=liczba_autorow;i++)
  {
   autor=document.forms[formularz].elements["autor_"+i].value;
   if(autor.length == 0)
   {
    alert("Proszę wybrać autora nr "+i+".");
    document.forms[formularz].elements["autor_"+i].focus();
    wynik=false;
    return wynik;
   }
  }
  // sprawdzanie, czy nie wybrano kilka razy tego samego autora
  var test=true;  
  if(liczba_autorow>1)
  {
   for(i=1;i<=liczba_autorow;i++)
   {
    autor1=document.forms[formularz].elements["autor_"+i].value;
    for(j=i+1;j<=liczba_autorow;j++)
    {
     autor2=document.forms[formularz].elements["autor_"+j].value;
     if(autor2==autor1)
     {
      test=test&&false;
     }
    }
   }
   if(!test)
   {
    alert("Nazwiska autorów nie mogą się powtarzać.");
    document.forms[formularz].elements["autor_1"].focus();
    return false;
   }
  }
  //zleceniodawca
  ekspertyza_zleceniodawca=document.forms[formularz].elements["ekspertyza_zleceniodawca"].value;
  if(ekspertyza_zleceniodawca.length==0)
  {
   alert("Proszę podać nazwę zleceniodawcy.");
   document.forms[formularz].elements["ekspertyza_zleceniodawca"].focus();
   wynik=false;
   return wynik;
  }
  //rok
  ekspertyza_rok=document.forms[formularz].elements["ekspertyza_rok"].value;
  if(ekspertyza_rok.length==0)
  {
   alert("Proszę podać rok ekspertyzy (1900-2100).");
   document.forms[formularz].elements["ekspertyza_rok"].focus();
   wynik=false;
  }
  else
  {
   if((ekspertyza_rok<1900)||(ekspertyza_rok>2100))
   {
    alert("Proszę podać rok ekspertyzy z zakresu 1900-2100.");
    document.forms[formularz].elements["ekspertyza_rok"].focus();
    wynik=false;
   }
   if(!allDigits(ekspertyza_rok))
   {
    alert("Proszę podać rok ekspertyzy używając wyłącznie cyfr.");
    document.forms[formularz].elements["ekspertyza_rok"].focus();
    wynik=false;
   }
  }
  return wynik;
  break;
 case "nowy_autor":
  //autor_imie
  autor_imie=document.forms[formularz].elements["autor_imie"].value;
  if(autor_imie.length==0)
  {
   alert("Proszę podać imię lub pierwszą literę imienia autora.");
   document.forms[formularz].elements["autor_imie"].focus();
   return false;
  }
  //autor_nazwisko
  autor_nazwisko=document.forms[formularz].elements["autor_nazwisko"].value;
  if(autor_nazwisko.length==0)
  {
   alert("Proszę podać nazwisko autora.");
   document.forms[formularz].elements["autor_nazwisko"].focus();
   return false;
  }
  return true;
  break;
 case "nowe_czasopismo":
  czasopismo_nazwa=document.forms[formularz].elements["czasopismo_nazwa"].value;
  if(czasopismo_nazwa.length==0)
  {
   alert("Proszę podać tytuł czasopisma.");
   document.forms[formularz].elements["czasopismo_nazwa"].focus();
   return false;
  }
  return true;
  break;
 case "nowa_konferencja":
  konferencja_tytul=document.forms[formularz].elements["konferencja_tytul"].value;
  if(konferencja_tytul.length==0)
  {
   alert("Proszę podać tytuł konferencji.");
   document.forms[formularz].elements["konferencja_tytul"].focus();
   return false;
  }
  return true;
  break;
 case "51_nowy_obiekt":
  obiekt_opis=document.forms[formularz].elements["obiekt_opis"].value;
  if(obiekt_opis.length==0)
  {
   alert("Proszę podać obis obiektu bazy danych.");
   document.forms[formularz].elements["obiekt_opis"].focus();
   return false;
  }
  return true;
  break;
 default:
  return true;
}
}

// funkcje sprawdzające poprawność pól
// http://javascript.about.com/library/scripts/blformvalidate.htm

function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validRequired(formField,fieldLabel)
{
	var result = true;
	
	if (formField.value == "")
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	
	return result;
}

function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;

	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

function validEmail(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
	{
		alert("Please enter a complete email address in the form: yourname@yourdomain.com");
		formField.focus();
		result = false;
	}
   
  return result;

}

function validNum(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}


function validInt(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var num = parseInt(formField.value,10);
 		if (isNaN(num))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}


function validDate(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var elems = formField.value.split("/");
 		
 		result = (elems.length == 3); // should be three components
 		
 		if (result)
 		{
 			var month = parseInt(elems[0],10);
  			var day = parseInt(elems[1],10);
 			var year = parseInt(elems[2],10);
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && (day > 0) && (day < 32) &&
					 allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
 		}
 		
  		if (!result)
 		{
 			alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
			formField.focus();		
		}
	} 
	
	return result;
} 
