// JavaScript Document
/// funkcja walidująca formularze
function validacja_form(cel,typ,ilosc)
{
    cel = '#'+cel;
    if($(cel))
    {
        var wartosc = $(cel).val();
        //wartosc = wartosc.strip();
        //wartosc = wartosc.stripScripts();
        //wartosc = wartosc.stripTags();
        //wartosc = wartosc.replace(/ /g, "");
		
        if(wartosc == '')
        {
            $(cel).className="walidacja_false";
            return false;
        }
        else
        {
            if(typ=='liczba')
            {
                var war = parseFloat(wartosc);
                if(isNaN(war) || war == '')
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
                else
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
            }
			
            /// sprawdzanie wartosci minimalnej
            if(typ=='min')
            {
                var war = parseFloat(wartosc);
                if((!isNaN(war) && war != '') && war >= ilosc)
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
                else
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
            }
            if(typ=='max')
            {
                var war = parseFloat(wartosc);
                if((!isNaN(war) && war != '') && war <= ilosc)
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
                else
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
            }
			
            if(typ=='przedzial')
            {
                var war = parseFloat(wartosc);
                var przedzial = ilosc.split(',');
                przedzial[0] = parseInt(przedzial[0]);
                przedzial[1] = parseInt(przedzial[1]);
								
                if(isNaN(war) || war == '')
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
                else
                {
                    if(war >= przedzial[0] && war <= przedzial[1] )
                    {
                        $(cel).className="walidacja_true";
                        return true;;
                    }
                    else
                    {
                        $(cel).className="walidacja_false";
                        return false
                    }
                }
            }
            else if(typ=='email')
            {
                if(wartosc.indexOf('@')>-1 && wartosc.indexOf('.')>-1)
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
                else
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
            }
            else if(typ=='nip')
            {
                var nipnodash = "";
				
                wartosc = String(wartosc);
				
                var dl = wartosc.length;
				
                for (licz=0; licz<dl; licz++)
                {
                    // if (is_numeric(wartosc[licz]) == true) nipnodash=nipnodash+wartosc[licz];
                    if (is_numeric(wartosc.charAt(licz)) == true) nipnodash=nipnodash+wartosc[licz];
                }
				
                if (nipnodash.length != 10)
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
				
                if (nipnodash.length == 10)
                {
                    var wagi = new Array ("6","5","7","2","3","4","5","6","7");
                    var wynik = new Array(9);
                    var suma = 0;
                    for (licz=0; licz<9; licz++) wynik[licz]=nipnodash[licz]*wagi[licz];
                    for (licz=0; licz<9; licz++) suma+=wynik[licz];
                    suma=suma%11;
					
                    if(suma == nipnodash[9])
                    {
                        $(cel).className="walidacja_true";
                        return true;
                    }
                    else
                    {
                        $(cel).className="walidacja_false";
                        return false;
                    }
                }
            }
            else if(typ=='pesel')
            {
                var nie = new Array('~','`','!','@','#','$','%','^','&','(',')','=','+','|','\\','"',"'",':',';',',','<','>','?','/');
					
                for(i=0;nie.length>=i;i++)
                {
                    if(wartosc.indexOf(nie[i])>-1)
                    {
                        $(cel).className="walidacja_false";
                        return false;
                        break;
                    }
                }
					
                var factor = new Array(1,3,7,9,1,3,7,9,1,3);
                var s = 0;
			
                for (i=0;i<=9;i++)
                {
                    s += wartosc.charAt(i)*factor[i];
                }
			
                var eleven = (10-s%10)%10;
                if(eleven==wartosc.charAt(10))
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
                else
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
            }
            else if(typ=='tekst_niedozwolone')
            {
                if(ilosc == '')
                {
                    var nie = new Array('~','`','!','@','#','$','%','^','&','(',')','=','+','|','\\','"',"'",':',';','<','>','?','/');
                }
                else
                {
                    var nie = ilosc.split(',');
                }
			
                var val = true;
                for(i=0;nie.length>=i;i++)
                {
                    if(wartosc.indexOf(nie[i])>-1)
                    {
                        $(cel).className="walidacja_false";
                        val = false;
                        break;
                    }
                }
				
                $(cel).className="walidacja_"+val;
                return val;
            }
            else if(typ=='tekst_dugosc')
            {
                if(wartosc.length < ilosc)
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
                else
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
            }
            else if(typ=='option')
            {
                if(wartosc == '' || wartosc == 'wybierz')
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
                else
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
            }
            else if(typ=='option_multiple')
            {
                ilosc = parseInt(ilosc);
                var wybrane = 0;
                for (var i = 0; i < $(cel).options.length; i++)
                {
                    if($(cel).options[ i ].selected)
                    {
                        wybrane ++;
                    }
                }
				
                if(ilosc == '' || isNaN(ilosc))
                {
                    ilosc = 1;
                }
					
                if(wybrane >= ilosc)
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
                else
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
            }
            else if(typ=='data')
            {
                var dzi = wartosc.split('-');
                dzi[0] = parseInt(dzi[0]);
                dzi[1] = parseInt(dzi[1]);
                dzi[2] = parseInt(dzi[2]);
				
                if(dzi[2] > 1960 && dzi[2] <= 2050 && dzi[1] >= 0 && dzi[1] <= 12 && dzi[0] >= 0 && dzi[0] <= 31)
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
                else
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
            }
            else if(typ=='data_wieksza')
            {
                var dzi = wartosc.split('-');
                var dzi2 = $(ilosc).value.split('-');
				
                var timestamp_1 = parseInt(dzi[2]+""+dzi[1]+""+dzi[0]);
                var timestamp_2 = parseInt(dzi2[2]+""+dzi2[1]+""+dzi2[0]);
				
                if(timestamp_1 > timestamp_2 )
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
                else
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
            }
            else if(typ=='data_mniejsza')
            {
                var dzi = wartosc.split('-');
                var dzi2 = $(ilosc).value.split('-');
				
                var timestamp_1 = parseInt(dzi[2]+""+dzi[1]+""+dzi[0]);
                var timestamp_2 = parseInt(dzi2[2]+""+dzi2[1]+""+dzi2[0]);
				
				
                if(timestamp_1 < timestamp_2 )
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
                else
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
            }
            else if(typ=='data_rowna')
            {
                var dzi = wartosc.split('-');
                var dzi2 = $(ilosc).value.split('-');
				
                var timestamp_1 = parseInt(dzi[2]+""+dzi[1]+""+dzi[0]);
                var timestamp_2 = parseInt(dzi2[2]+""+dzi2[1]+""+dzi2[0]);
				
				
                if(timestamp_1 == timestamp_2 )
                {
                    $(cel).className="walidacja_true";
                    return true;
                }
                else
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
            }
            else if(typ=='kod_pocztowy')
            {
                if(wartosc.indexOf('-') > 0)
                {
                    var kpsi = new Array;
                    var kps = wartosc.split('-');
                    kpsi[0] = parseInt(kps[0]);
                    kpsi[1] = parseInt(kps[1]);
					
                    if(isNaN(kpsi[0]) || isNaN(kpsi[1]))
                    {
                        $(cel).className="walidacja_false";
                        return false;
                    }
                    else if(String(kps[0]).length < 2  || (String(kps[1]).length != 3) )
                    {
                        $(cel).className="walidacja_false";
                        return false;
                    }
                    else
                    {
                        $(cel).className="walidacja_true";
                        return true;
                    }
                }
                else
                {
                    $(cel).className="walidacja_false";
                    return false;
                }
            }
            else if(typ=='checked')
            {
                if($(cel).checked == true)
                {
                    return true;
                }
                else
                {
                    return false;
                }
				
            }
            else
            {
                $(cel).className="walidacja_true";
                return true;
            }
			
        }
    }
    else
    {
        alert('Brak pola '+cel+'');
    }
}
function fko_wyslij()
{
    var blad = false;
	
    var dane = $('#fko_form :input[type!="hidden"]');
    dane.each(function(i, element)
    {
        if(element.lang != '')
        {
            var ide = element.id;
            if(!validacja_form(ide,element.lang,''))
            {
                blad = true;
					
                var pole = $('#td_'+ide).html();
                pole = pole.replace(/:/g, "");
                pole = pole.replace(/\*/g, "");
                $('#span_'+ide).html("<br> - pole '"+pole+"' nie zostało wypełnione, lub zostało wypełnione błędnie.");
					
            }
            else
            {
                $('#span_'+ide).html("");
            }
        }
    		
    });
	
    if(!blad)
    {
		
        $('#fko_operacja').val('wyslij_fom');
        $('#fko_form').attr('method', 'post');
        $('#fko_form').attr('action', document.location);
        $('#fko_form').submit();
    }
	
}
function fre_wyslij()
{
    var blad = false;

    var dane = $('#fre_form :input[type!="hidden"]');

    dane.each(function(i, element)
    {
        console.log(element);

        if(element.lang != '')
        {
            ide = element.id;
            if(!validacja_form(ide,element.lang,''))
            {
                blad = true;
					
                var pole = $('#td_'+ide).html();
                pole = pole.replace(/:/g, "");
                pole = pole.replace(/\*/g, "");
                $('#span_'+ide).html("<br> - pole '"+pole+"' nie zostało wypełnione, lub zostało wypełnione błędnie.");
					
            }
            else
            {
                $('#span_'+ide).html("");
            }
        }
    		
    });
	
    if(!blad)
    {
		
        $('#fre_operacja').val('wyslij_fom');
        $('#fre_form').attr('method', 'post');
        $('#fre_form').attr('action', document.location) ;
        $('#fre_form').submit();
    }
	
}
