function ShH(ob_nazwa1,ob_nazwa2)
{
    obj1 = document.getElementById(ob_nazwa1);
    obj2 = document.getElementById(ob_nazwa2);
    if(obj1!=undefined)
    {
        if(obj1.style.display=='block')
	        obj1.style.display='none';
        else
	        obj1.style.display='block';
    }
    if(obj2!=undefined)
    {
        if(obj2.style.display=='block')
	        obj2.style.display='none';
        else
	        obj2.style.display='block';
    }
}
function fokus(AElementID)
    {
        var el = document.getElementById(AElementID);
        el.focus();
    }
function ch_sts(obkt)
{
    return !obkt.disabled;
}
function en_dis_all(frm)
{
 for (var i=0;i<frm.elements.length;i++)
 {
  var obj = frm.elements[i];
  obj.disabled = !(obj.disabled);
 }
 var obj = frm.elements[0];
 var z = (obj.disabled) ? 'WYŁĄCZONA !' : 'włączona';
 alert('Edycja jest teraz ' + z);
}

function en_dis(frm)
{
  var obj = document.getElementById('n_plik');
  obj.disabled = !(obj.disabled);
  var z = (obj.disabled) ? 'WYŁĄCZONA !' : 'włączona';
  alert('Edycja została ' + z);
}

function maskujKlawisze(AEvent, AMaska)
{
    if (AMaska != '') {

    if (window.Event) {
        kodKlawisza = AEvent.which;
    } else {
        kodKlawisza = AEvent.keyCode;
    }

    if (kodKlawisza == 13) {
        return true;  // Enter
    };

    if (kodKlawisza == 8) {
        return true;  // Backspace <-
    };

    if (kodKlawisza == 0) {
        return true;  // klawisze sterujące
    };

    klawisz = String.fromCharCode(kodKlawisza);

        if (AMaska.indexOf(klawisz) == -1) {
        return false;
    } else {
        return true;
    }
    } else {
      return false;
    }
}
function valto(AForm)
    {
        var frm=document.getElementById(AForm);
        if (!frm.opinia.value) {
            alert("Wypełnij pole treść!");
            frm.kto.focus()
            return false;
            }
        if (!frm.kto.value) {
            alert("Wypełnij pole nazwisko!");
            frm.kto.focus()
            return false;
            }
        if (!frm.eml.value) {
            alert("Wypełnij pole email!");
            frm.eml.focus();
            return false;
            }
	if (echeck(frm.eml.value)==false){
		frm.eml.value=""
		frm.eml.focus()
		return false
	}

        else {
            return true;
        }
    }


function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("błędny adres email")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("błędny adres email")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("błędny adres email")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("błędny adres email")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("błędny adres email")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("błędny adres email")
		    return false
		 }

		 if (str.indexOf(" ")!=-1){
		    alert("błędny adres email")
		    return false
		 }

 		 return true
	}


function frm_tst(tabela,Aform)
{
         if (tabela == 'sl_hasla')
         {
          if(Aform.kat.value=='b.d.')
          {
           alert("Nie wybrałeś kategorii !");
           Aform.kat.focus();
           return false;
          }
          else if(!Aform.dane2.value)
          {
           alert("Brak wpisu w polu 'Hasło' !");
           Aform.dane2.focus();
           return false;
          }
          else
          {
           //alert("Test OK");
           //return false;
           return true;
          }
         }
         else
         {
           //alert("Brak testu");
           //return false;
           return true;
         }
}
function checktest(AForm)
         {
         if (!(Aform.typdok[0].checked||Aform.typdok[1].checked||Aform.typdok[2].checked||Aform.typdok[3].checked)) {
           alert("Nie wybrałeś żadnego typu dokumentu");
           return false;
           }
         if (!Aform.typdok.value == 'Za') {
         alert("może lepiej jakiś inny dokument");
         return false;
         }
         else {
              return true;
              }
         }
function ckeck_uncheck_all() {
        var frm = document.czekuj;
        for (var i=0;i<frm.elements.length;i++) {
                var elmnt = frm.elements[i];
                if (elmnt.type=='checkbox') {
                        if(frm.master_box.checked == true){ elmnt.checked=false; }
            else{ elmnt.checked=true; }
                }
        }
        if(frm.master_box.checked == true){ frm.master_box.checked = false; }
    else{ frm.master_box.checked = true; }
}
function ckeck_un_all(id_form) {
        var formularz = id_form;
        var frm = document.fikumiku;
        for (var i=0;i<frm.elements.length;i++) {
                var elmnt = frm.elements[i];
                if (elmnt.type=='checkbox') {
                        if(frm.master_box.checked == true){ elmnt.checked=false; }
            else{ elmnt.checked=true; }
                }
        }
        if(frm.master_box.checked == true){ frm.master_box.checked = false; }
    else{ frm.master_box.checked = true; }
}

function kopiuj_l2all() {
         var frm = document.limit;
         var elmnt = document.getElementById('DoKopiowania');
//         alert("You entered: " + elmnt.value);
         document.getElementById('Pon').value = elmnt.value;
         document.getElementById('Wto').value = elmnt.value;
         document.getElementById('Sro').value = elmnt.value;
         document.getElementById('Czw').value = elmnt.value;
         document.getElementById('Pia').value = elmnt.value;
         document.getElementById('Sob').value = elmnt.value;
         document.getElementById('Nie').value = elmnt.value;
/*         for (var i=0;i<frm.elements.length-1;i++) {
                var elmnt = frm.elements[i];
                var elmnt_1 = frm.elements[0];
                elmnt.value = elmnt_1.value;
        }*/
}
function czywpisal(AForm){
if (!AForm.zalad_plik.value&&!AForm.zalad_plik_zewn.value) {
            alert("Przed zatwierdzeniem musisz wskazać plik lokalny do wysłania, albo też wpisać adres zewnętrznej lokalizacji pliku!");
            return false;
            }
if (AForm.zalad_plik.value&&AForm.zalad_plik_zewn.value) {
            alert("Zdecyduj się - podajesz plik lokalny, czy plik na innym serwerze!");
            return false;
            }
}
function coszukac(AForm){
if (!AForm.fn.value||AForm.fn.value=='szukaj...') {
            alert("Wpisz coś do pola wyszukiwania!");
            return false;
            }
}

function keyInfo(e)
{
    var key = false;
    if (e && e.which != undefined) key = e.which;
    else if (event && event.keyCode != undefined) key = event.keyCode;
    //if (key == 27) window.close();
    //if (key == 27) {window.location.reload;}
    //if (key) {alert(key);}
    //if (key == 27) {alert('form_view.php?t=form_hasla');}
    //if (key == 39) {alert('w prawo');}
    if (key == 39) {window.location='form_add.php?t=users';window.location.reload;}
    //if (key == 37) {alert('w lewo');}
    if (key == 37) {window.location='form_view.php?t=users';window.location.reload;}
}

function MM_goToURL() {
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}





function Validator(f){
if(!$(f)){alert('Formularz od id "'+f+'" nie istnieje na stronie.');}
else{var _form=$(f);_form.onsubmit=function(){if(!run()){return false;}};}
var _data=[];
var _errors=[];
var _fields=['text','password','textarea','file','checkbox','radio','select-one','select-multiple'];
var _groups=[['text','password','textarea'],['file'],['checkbox','radio'],['select-one'],['select-multiple']];
var _rules=[['req','minLength','maxLength','signs','type','pattern','regExp','patternMsg'],['req'],['req'],['req','falseValue'],['req']];
var _types_name=['email','www','postalcode','custom'];
var _types=[/^[\w\.-]+@([\w-]+)*\.[a-z]{2,4}$/,/^(http:\/\/|https:\/\/|ftp:\/\/)?(www.)?([\w.\-_]+)[.]{1}([\w]+){1,4}([\/]?([\w.\-_]+)?)+$/,/^[0-9]{2}-[0-9]{3}$/];
var _signs=['l','n','ln','m','custom'];
function $(id){return document.getElementById(id);}
function F(name){return _form[name];}
function trim(x){return x.replace(/^\s+|\s+$/g,'');}
function in_array(element,array){for(var i=0,j=array.length;i<j;i++){if(array[i]==element)return true;}return false;}
function valid_type(value,type,custom){if(type==4&&custom!=''){return eval('/'+custom+'/.test(value)');}else{return _types[type].test(value);}}
function add_error(msg){_errors.push(msg);}
function T(name){return(_form[name][0]&&_form[name][0].type=='radio')?_form[name][0].type:_form[name].type;}
function R(rules){var i=0;for(var x in rules){i++;}return(i>0)?true:false;}
function V(name){
switch(T(name)){
case'text':case'password':case'file':case'textarea':return F(name).value;break;
case'checkbox':return F(name).checked;break;
case'radio':for(var i=0,j=F(name).length;i<j;i++){if(_form[name][i].checked){return true;}}break;
case'select-one':return F(name).options[F(name).selectedIndex].value;break;
case'select-multiple':var v=[];
for(var i=0,j=F(name).options.length;i<j;i++){if(F(name).options[i].selected){v.push(F(name).options[i].value);}}
return v;break;}return false;}
function C(name,rules){
var type=-1;
switch(T(name)){
case'text':case'password':case'textarea':type=0;break;
case'file':type=1;break;
case'checkbox':case'radio':type=2;break;
case'select-one':type=3;break;
case'select-multiple':type=4;break;
default:alert('Pole "'+name+'" nie moze byc walidowane.');return false;
}
if(type==-1){return false;}
for(var x in rules){
if(!in_array(x,_rules[type])){alert('Nie mozna zastosowac opcji "'+x+'" dla pola "'+name+'" lub opcja ta nie istnieje.');return false;}
if(x=='signs' && !in_array(rules[x],_signs)){alert('Podana zostala nieprawidlowa wartosc opcji "signs" dla pola "'+name+'".');return false;}
if(x=='signs' && rules[x]=='custom' && !rules.pattern){alert('Brak opcji "pattern" dla pola "'+name+'" wymaganej podczas uzycia opcji signs:\'custom\'.');return false;}
if(x=='type' && !in_array(rules[x],_types_name)){alert('Podana zostala nieprawidlowa wartosc opcji "type" dla pola "'+name+'".');return false;}
if(x=='type' && rules[x]=='custom' && !rules.regExp){alert('Brak opcji "regExp" dla pola "'+name+'" wymaganej podczas uzycia opcji type:\'custom\'.');return false;}
}return true;}
this.addField=function(name, rules, user_name){
if(!F(name)){alert(' W formularzu nie istnieje pole "'+name+'".');return false;}
if(!R(rules)){alert('Jezeli chesz sprawdzic pole "'+name+'" musisz podac przynajmniej 1 kryterium.');return false;}
if(C(name,rules)){_data.push([name, rules, user_name]);return true;}
}
function run(){
_errors=[];
for(var i=0,j=_data.length; i<j; i++){
var el=F(_data[i][0]);
var name=_data[i][0];
var rules=_data[i][1];
var uname=(_data[i][2]=='')?name:_data[i][2];
if(rules.req==1){
switch(T(name)){
case'text':case'password':case'file':case'textarea':if(trim(V(name))==''){add_error([name,'Pole "'+uname+'" jest wymagane.'])}break;
case'checkbox':case'radio':if(!V(name)){add_error([name,'Pole "'+uname+'" musi byc zaznaczone.'])}break;
case'select-one':if(V(name)==0||V(name)==''||V(name)==(rules.falseValue)?rules.falseValue:0){add_error([name,'Musi zostac wybrany element list "'+uname+'".'])}break;
case'select-multiple':if(V(name).length==0){add_error([name,'Przynajmniej jeden element listy "'+uname+'" musi byc zaznaczony.'])}break;
}}
if(rules.minLength && trim(V(name)).length<rules.minLength){add_error([name,'Pole "'+uname+'" musi miec przynajmniej '+rules.minLength+' znakow.'])}
if(rules.maxLength && trim(V(name)).length>rules.maxLength){add_error([name,'Pole "'+uname+'" moze miec maksymalnie '+rules.maxLength+' znakow.'])}
if(rules.signs){
if(rules.signs=='l'){pattern='A-Za-z';msgAdd='litery';}
if(rules.signs=='n'){pattern='0-9';msgAdd='cyfry';}
if(rules.signs=='ln'){pattern='A-Za-z0-9';msgAdd='litery i cyfry';}
if(rules.signs=='m'){pattern='A-Za-z0-9\-_';msgAdd='litery, cyfry oraz "-" i "_"';}
if(rules.signs=='custom'){pattern=rules.pattern;msgAdd=(!rules.patternMsg||rules.patternMsg=='')?rules.pattern:rules.patternMsg;}
if(V(name).search('[^'+pattern+']')>=0){add_error([name,'Pole "'+uname+'" moze zawierac tylko '+msgAdd+'.']);}}
if(rules.type){
if(V(name)!=''&&rules.type=='email'&&!valid_type(V(name),0)){add_error([name,'Pole "'+uname+'" musi zawierac poprawny adres e-mail.']);}
if(V(name)!=''&&rules.type=='www'&&!valid_type(V(name),1)){add_error([name,'Pole "'+uname+'" musi zawierac poprawny adres www.']);}
if(V(name)!=''&&rules.type=='postalcode'&&!valid_type(V(name),2)){add_error([name,'Pole "'+uname+'" musi zawierac poprawny kod pocztowy.']);}
if(V(name)!=''&&rules.type=='custom'&&!valid_type(V(name),3,rules.regExp)){add_error([name,'Pole "'+uname+'" jest niepoprawne.']);}}}
if(_errors.length>0){if(this.userErrors){this.userErrors(_errors)}else{showErrors()}return false;}else{ return true; }}
this.addErrorFunction = function(f){this.userErrors = f; return true; }
function showErrors(){var eMsg=[];for(var i=0,j=_errors.length;i<j;i++){eMsg[i]=_errors[i][1];}alert(eMsg.join('\n'));}
}
function txt_lm(Aobj,limit)
{
 var elmnt=document.getElementById(Aobj);
 if(elmnt.value.length>limit)
 {
 //alert('limit 150 znaków!');
 elmnt.focus();
 elmnt.value=elmnt.value.substring(0,limit);
 }
}
function tst_zapyt(Aform)
{
          if(Aform.data_insert.value=='')
          {
           alert("Brak daty zapytania");
           return false;
          }
          else if(!Aform.id_f.value)
          {
           alert("Brak danych o firmie!");
           Aform.dane2.focus();
           return false;
          }
          else if(!Aform.typ.value)
          {
           alert("Wybierz typ zapytania!");
           Aform.typ.focus();
           return false;
          }
          else if(!Aform.region.value)
          {
           alert("Wybierz zasięg zapytania!");
           Aform.region.focus();
           return false;
          }
          else if(!Aform.tytul.value)
          {
           alert("Brak tytułu!");
           Aform.tytul.focus();
           return false;
          }
          else if(!Aform.tresc.value)
          {
           alert("Wpisz treść zapytania!");
           Aform.tresc.focus();
           return false;
          }
          else if(!Aform.tresc.length>150)
          {
           alert("Treść zapytania została skrócona do 150 znaków");
          }
          else if(Aform.data_do.value && !isDate(Aform.data_do.value))
          {
           Aform.data_do.focus();
           return false;
          }
          else if(Aform.kot_poczt_z.value && !isPostCode(Aform.kot_poczt_z.value))
          {
           alert("Błąd w kodzie pocztowym! Wprowadź kod w formacie: XX-XXX");
           Aform.kot_poczt_z.focus();
           return false;
          }
/*
          else if(!Aform.nazwa_z.value)
          {
           alert("Brak firmy pytającego!");
           Aform.nazwa_z.focus();
           return false;
          }
          else if(!Aform.nazwisko_z.value)
          {
           alert("Wpisz nazwisko!");
           Aform.nazwisko_z.focus();
           return false;
          }
          else if(!Aform.telefon_z.value)
          {
           alert("Wpisz nr telefonu!");
           Aform.telefon_z.focus();
           return false;
          }
          else if(!Aform.kot_poczt_z.value)
          {
           alert("Brak kodu pocztowego!");
           Aform.kot_poczt_z.focus();
           return false;
          }
          else if(!Aform.miasto_z.value)
          {
           alert("Wpisz miasto!");
           Aform.miasto_z.focus();
           return false;
          }
          else if(!Aform.ulica_z.value)
          {
           alert("Wpisz ulicę!");
           Aform.ulica_z.focus();
           return false;
          }
          else if(!Aform.nrpos_z.value)
          {
           alert("Brak nr posesji!");
           Aform.nrpos_z.focus();
           return false;
          }
*/
          else if(!Aform.email_z.value)
          {
           alert("Brak adresu email!");
           Aform.email_z.focus();
           return false;
          }
          else if(!echeck(Aform.email_z.value))
          {
           //alert("Błędny email!");
           Aform.email_z.focus();
           return false;
          }
/*
          else if(!Aform.www_z.value)
          {
           alert("Wpisz adres www!");
           Aform.www_z.focus();
           return false;
          }
*/
          else
          {
           //alert("Test OK");
           //return false;
           return true;
          }
}

var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function dniLuty (year){
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   }
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strYear=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strDay=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("Wymagany format daty : RRRR-MM-DD")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Wprowadź rok z zakresu od "+minYear+" do "+maxYear)
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Wprowadź właściwy miesiąc")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>dniLuty(year)) || day > daysInMonth[month]){
		alert("Wprowadź właściwy dzień miesiąca")
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Wprowadź prawidłową datę")
		return false
	}
return true
}
function isPostCode(src)
{
  var regex = /^[0-9]{2}\-[0-9]{3}$/;
  return regex.test(src);
}
function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

