function sprawdz_date(start, dateID, zladata, zlyzakres, caly) 
{
   var date = document.getElementById(dateID).value;

   if (date == "") { //all empty is always allowed
      return "";
   }
	
   // This instruction will create a date object
   source_date = parseDate(date);
   
   if (source_date == null) {return zladata};
   
   if (source_date<start) {return zlyzakres};
   
   return "";
}

function porownaj_date(date1ID, date2ID, zlyzakres) {

	var date1 = document.getElementById(date1ID).value;
	var date2 = document.getElementById(date2ID).value;

	if (date1 == "") { //empty is allowed
		return "";
	}
	
	if (date2 == "") { //empty is allowed
		return "";
	}
	
   // This instruction will create a date object
   
   source_date1 = parseDate(date1);//new Date(rok1,mc1,dzien1);
   source_date2 = parseDate(date2);//new Date(rok2,mc2,dzien2);
  
   if (source_date2<source_date1) {return zlyzakres;}
   
   return "";
}


function sprawdz_numer_ogloszenia() {
	var snumer=document.getElementById("nrpozycji").value;
	if (snumer=="") {return "";};
	var wzor6cyfr=/^\d+$/ 	;	// ^ begin \d digits {6} times 6 $ end
	if (snumer.search(wzor6cyfr)==-1) {//if match failed
		return "Numer powinien sk&#322;ada&#263; si&#281; z samych cyfr";
	}
	return "";
}

function sprawdz_CPV() {
	var cpv1=document.getElementById("kodCPV1").value;
	var cpv2=document.getElementById("kodCPV2").value;
	var cpv3=document.getElementById("kodCPV3").value;
	var cpv4=document.getElementById("kodCPV4").value;
	var cpv5=document.getElementById("kodCPV5").value;
	if ((cpv1=="")&&(cpv2=="")&&(cpv3=="")&&(cpv4=="")&&(cpv5=="")) {return "";};
	var wzor2cyfr=/^\*|[\d\?]{2}$/ 	;
	var wzor1cyfr=/^\*|[\d\?]{1}$/ 	;
	var blad="Nieprawid&#322;owy kod CPV";
	if 	((cpv1.search(wzor2cyfr)==-1)||
		(cpv2.search(wzor2cyfr)==-1)||
		(cpv3.search(wzor2cyfr)==-1)||
		(cpv4.search(wzor2cyfr)==-1)||
		(cpv5.search(wzor1cyfr)==-1)) {//if match failed
		return blad;
	}
	return "";
}

function sprawdzaj(x, c) {

var teraz = new Date();
var wczoraj = teraz.getDate()-1;
teraz.setDate(wczoraj);

var czerwiec=new Date();
czerwiec.setYear(2007);
czerwiec.setMonth(5); //0 is January
czerwiec.setDate(11);

var w;
var k;

if (x==10) {
	w = sprawdz_date(czerwiec, "dataPublikacji_od", 
		"Nieprawid&#322;owa data", "Podana data jest wcze&#347;niejsza ni&#380; 11 czerwca 2007", c);
	k=document.getElementById("komunikat1");
}
else if (x==11) {
	w = sprawdz_date(czerwiec, "dataPublikacji_do", 
		"Nieprawid&#322;owa data", "Podana data jest wcze&#347;niejsza ni&#380; 11 czerwca 2007", c);
	k=document.getElementById("komunikat1");
}
else if (x==20) {
	w = sprawdz_date(teraz, "terminSkladaniaOfert_od", 
					"Nieprawid&#322;owy termin", "Podana data jest wcze&#347;niejsza ni&#380; bie&#380;&#261;ca", c);
	k=document.getElementById("komunikat2");
}
else if (x==21) {
	w = sprawdz_date(teraz, "terminSkladaniaOfert_do", 
					"Nieprawid&#322;owy termin", "Podana data jest wcze&#347;niejsza ni&#380; bie&#380;&#261;ca", c);
	k=document.getElementById("komunikat2");
}
else if (x==3) {
	w = sprawdz_numer_ogloszenia();
	k=document.getElementById("komunikat4");
}
else if (x==4) {
	w = sprawdz_CPV();
	k=document.getElementById("komunikat5");
}
else if (x==12) {
	w = porownaj_date("dataPublikacji_od", "dataPublikacji_do", "Podany zakres dat jest nieprawid&#322;owy");
	k=document.getElementById("komunikat1");
}
else if (x==22) {
	w = porownaj_date("terminSkladaniaOfert_od", "terminSkladaniaOfert_do", "Podany zakres dat jest nieprawid&#322;owy");
	k=document.getElementById("komunikat2");
}

if (w=="") return true;
k.innerHTML='<p style="color:red;"> '+w+'</p>';
return false;
}

function sprawdzajCaly() {
	var b10=sprawdzaj(10, true);
	var b11=sprawdzaj(11, true);
	var b12=sprawdzaj(12, true);
	var b20=sprawdzaj(20, true);
	var b21=sprawdzaj(21, true);
	var b22=sprawdzaj(22, true);
	var b3=sprawdzaj(3);
	var b4=sprawdzaj(4);
	var b=b10&&b11&b12&&b20&&b21&&b22&&b3&&b4;
	if (b==true) return true;
	k=document.getElementById("komunikat3");
	var w="Wprowadzone dane s&#261; nieprawid&#322;owe";
	k.innerHTML='<p style="color:red;"> '+w+'</p>';
	return false;
}

function help(pole, button) {

var helpWholePhrase = " <br/>Domy&#347;lnie zostan&#261; wyszukiwane wyniki, które zawieraj&#261; podan&#261; fraz&#281;; zaznaczenie pola 'szukaj tylko ca&#322;ej frazy' spowoduje, &#380;e zostan&#261; wy&#347;wietlone te wyniki, które ca&#322;kowicie pasuj&#261; do zadanego kryterium.";
var helpRegExp = " Mo&#380;na u&#380;y&#263; znaku '?', który zast&#281;puje dowoln&#261; liter&#281; albo znaku '*', który zast&#281;puje dowolny ci&#261;g liter.";

var ht="";

switch(pole) {
case "rodzaj zamowienia":
 ht="Nale&#380;y wybra&#263; jeden z rodzajów zamówienia";
 break
case "tryb zamowienia":
 ht="Nale&#380;y wybra&#263; jeden z trybów post&#281;powania";
 break
case "rodzaj ogloszenia":
 ht="Nale&#380;y wybra&#263; rodzaj og&#322;oszenia z listy wyboru";
 break
case "numer ogloszenia":
 ht="W to pole nale&#380;y wpisa&#263; numer og&#322;oszenia (bez my&#347;lnika i numeru roku)";
 break
case "data publikacji":
 ht="W to pole nale&#380;y wprowadzi&#263; dok&#322;adn&#261; dat&#281; publikacji, przedzia&#322; dat lub wybra&#263; jedn&#261; z opcji: wczoraj, przedwczoraj albo zesz&#322;y tydzie&#324;";
 break
case "termin skladania ofert":
 ht="W to pole nale&#380;y wprowadzi&#263; dat&#281; terminu sk&#322;adania ofert, przedzia&#322; dat lub wybra&#263; jedn&#261; z opcji: wczoraj, przedwczoraj albo zesz&#322;y tydzie&#324;";
 break
case "przedmiot zamowienia":
 ht="W to pole nale&#380;y wprowadzi&#263; przedmiot zamówienia. " + helpRegExp + helpWholePhrase;
 break
case "kod CPV":
 ht="Pole s&#322;u&#380;y jako kryterium wyszukiwania pe&#322;nego numeru CPV w postaci 99.99.99.99-9. Mo&#380;na u&#380;y&#263; znaku '?', który zast&#281;puje dowoln&#261; cyfr&#281; albo znaku '*', który zast&#281;puje dowolny ci&#261;g cyfr.";
 break
case "zamawiajacy":
 ht="W to pole nale&#380;y wprowadzi&#263; nazw&#281; Zamawiaj&#261;cego. " + helpRegExp + helpWholePhrase;
 break
case "wojewodztwo":
 ht="Nale&#380;y wybra&#263; województwo z listy wyboru (w przypadku gdy Zamawiaj&#261;cy nie poda&#322; województwa lub jego siedziba znajduje si&#281; poza granicami Polski prosimy wybra&#263; \"inne lub brak\")";
 break
case "miejscowosc":
 ht="W to pole nale&#380;y wprowadzi&#263; nazw&#281; miejscowo&#347;ci. " + helpRegExp + helpWholePhrase;
 break
case "aktualne/archiwalne":
 ht = "Tutaj mo&#380;na wybra&#263; podzbiór og&#322;osze&#324;: wszystkie, aktualne b&#261;d&#378; archiwalne. Og&#322;oszenia aktualne to takie, dla których termin sk&#322;adania ofert/wniosków jeszcze nie up&#322;yn&#261;&#322; (dla og&#322;osze&#324; bez takiego terminu - og&#322;oszenia z ostatniego miesi&#261;ca). Og&#322;oszenia archiwalne to pozosta&#322;e og&#322;oszenia. ";
 break
case "text":
 ht = "W to pole mo&#380;na wprowadzi&#263; fragment tre&#347;ci og&#322;oszenia. " + helpRegExp;
 break
case "prezentacja":
 ht = "W tej sekcji mo&#380;na ustawi&#263; licb&#261; wyników wy&#347;wietlanych na ka&#380;dej stronie oraz ich kolejno&#347;&#263; sortowania. Kolejno&#347;&#263; sortowania 'domy&#347;lna' oznacza kolejno&#347;&#263;, w jakiej og&#322;oszenia umieszczane by&#322;y w bazie (od najnowszych); 'data publikacji' - wg. daty publikacji og&#322;oszenia (od najnowszych); 'termin sk&#322;adania ofert' - wg. terminu sk&#322;adania ofert (od najszybciej up&#322;ywaj&#261;cego, og&#322;oszenia bez takiego terminu na ko&#324;cu)";
 break
case "mojeOgloszenia":
 ht = "Naci&#347;ni&#281;cie tego przycisku spowoduje szukanie w&#347;ród og&#322;osze&#324; opublikowanych przez aktualnie zalogowanego u&#380;ytkownika.";
 break

}

//alert(ht);
  var elem = document.getElementById('helpContainer');
  elem.innerHTML = ht;

  showBubble('helpContainer', button);
}
