//-------------------------------------------------------------------------------------//
// Wyswietla pola formularza
//-------------------------------------------------------------------------------------//

    function form_show_elements(formid) {
        var form = $(formid);

        document.write("<table border=1>");
        document.write("<tr><th></th><th>NAME</th><th>VAL</th><th>TYPE</th><th>ID</th><th>CLASS</th></tr>" );

        for(i=0; i<form.elements.length; i++) {
            document.write("<tr><td>Pole "+i+" </td><td>" + form.elements[i].name + "</td><td>" + form.elements[i].value + "</td><td>"  + form.elements[i].type + "</td><td>"  + form.elements[i].id + "</td><td>"  + form.elements[i].className + "</td></tr>" );
        }

        document.write("</table>");
    }

//-------------------------------------------------------------------------------------//
// INPUT - TEXT
//-------------------------------------------------------------------------------------//

    function form_check_text_login(element) {
        var len_ok1 = element.value.length > 1;
        var len_ok2 = element.value.length < 51;
        var len_ok = len_ok1 && len_ok2;
        var str_ok = element.value && element.value.indexOf(" ") == -1  && element.value.indexOf("\t") == -1;
        if (str_ok && len_ok) {
            if ($("#status_"+element.name).length) {
                $("#status_"+element.name).html('<span class="ok">'+js_komunikat['ok']+'</span>');
            }
            return 0;
        } else {
            if (!len_ok1) {
                msg = 'login_short';
            } else {
                msg = 'wypelnij_login';
            }
            if ($("#status_"+element.name).length) {
                $("#status_"+element.name).html('<span class="bad">'+js_komunikat[msg]+'</span>');
            }
            form_highlight(element.name);
            return 1;
        }
    }

//-------------------------------------------------------------------------------------//
// INPUT - TEXT
//-------------------------------------------------------------------------------------//


	function form_check_text_isnumeric(element) {
            if (element.value.match(/^[0-9]+$/) ) {
                if ($("#status_"+element.name).length)
                    $("#status_"+element.name).html('<span class="ok">'+js_komunikat['ok']+'</span>');
                return 0;	//bez bledow
            } else {
                if ($("#status_"+element.name).length)
                    $("#status_"+element.name).html('<span class="bad">'+js_komunikat['numeric']+'</span>');
                form_highlight(element.name);
                return 1;	//blad
            }
	}

//-------------------------------------------------------------------------------------//
// INPUT - TEXT
//-------------------------------------------------------------------------------------//


function form_check_text_numeric_fields(element, type) {
	name = element.name;
	value = element.value;
	if (type == 'gsm') {
            if (!form_check_text_gsm(value)) {
                form_status(name, type);
                form_highlight(name);
                return 1;
            }
	} else if (type == 'telephone') {
            if (!form_check_text_telephone(value)) {
                form_status(name, type);
                form_highlight(name);
                return 1;
            }
	} else if (type == 'nip') {
            if (!form_check_text_nip(value)) {
                form_status(name, type);
                form_highlight(name);
                return 1;
            }
	} else if (type == 'pesel') {
            if (!form_check_text_pesel(value)) {
                form_status(name, type);
                form_highlight(name);
                return 1;
            }
	} else {
            if (!value.match(/^[0-9]+$/)) {
                form_status(name, 'numeric');
                form_highlight(name);
                return 1;
            }
	}
	form_status(name, 'ok');
	return 0;
}

//-------------------------------------------------------------------------------------//
// INPUT - TEXT
//-------------------------------------------------------------------------------------//

	function form_check_text_regon(r) {
          r+=''; /* do stringa */
          r=r.replace(/[^0-9]+/g,''); /* usuwamy zbedne znaki */
          var rLEN=r.length;
          /* warunek dla 9-ciocyfrowego regonu */
          if(rLEN==9)  	    var wagi=new Array(8,9,2,3,4,5,6,7);
           /* warunek dla 14-stocyfrowego regonu */
          else if(rLEN==14) var wagi=new Array(2,4,8,5,0,9,7,3,6,1,2,4,8);
          else return false;
          for(var i=0,wagiLEN=wagi.length,sumaKontrolna=0; i < wagiLEN; i++)
               sumaKontrolna+=parseInt(r.charAt(i))*wagi[i];
          var cyfraKontrolna=sumaKontrolna%11;
          if(r==(r.substring(0,wagiLEN)+((cyfraKontrolna==10)?'0':cyfraKontrolna)+''))
             return true
          else
             return false;
	}

	function form_check_text_nip(nip) {
            var i;
            var scales9 = [6, 5, 7, 2, 3, 4, 5, 6, 7];
            var result=0;
            
            nip = nip.replace(/-/g, '');
            if (!nip.match(/^[0-9]+$/)) {
                return false;
            }
            if (nip.length==10 ) {
                for( i=0;i<9;i++ ) {
                    result += nip.charAt(i)*scales9[i];
                }
                return (result%11==nip.charAt(9));
            }
            return false;
	}

	function form_check_text_pesel(pesel) {
		return true;
		/* PESELu jednak nie potrzebujemy - wik 2009-11-19 */
		/*
		var i;
		var scales10 = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3];
		var result=0;
		if (!pesel.match(/^[0-9]+$/)) {
			return false;
		}
		if (pesel.length==11 )
		{
			for( i=0;i<10;i++ )
			{
				result += pesel.charAt(i)*scales10[i];
			}
			return ( 10-result%10==pesel.charAt(10));
		}
		return false;
		*/
	}

// SPRWAWDZANIE POPRAWNOSCI EMAILA

    function form_check_text_email(element) {
        if (/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(element.value)) {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html('<span class="ok">'+js_komunikat['ok']+'</span>');
            return 0;	//bez bledow
        } else {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html('<span class="bad">'+js_komunikat['email_invalid']+'</span>');
            form_highlight(element.name);
            return 1;	//blad
        }
    }


    function form_check_text_rejectspecjalchars(element) {
        if (element.value){
            if (/^([A-Za-z0-9\_\. ])*$/.test(element.value)) {
                if ($("#status_"+element.name).length)
                    $("#status_"+element.name).html('<span class="ok">'+js_komunikat['ok']+'</span>');
                return 0;	//bez bledow
            } else {
                if ($("#status_"+element.name).length)
                    $("#status_"+element.name).html('<span class="bad">'+js_komunikat['allowed_chars']+'</span>');
                form_highlight(element.name);
                return 1;	//blad
            }
        } else {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html('<span class="bad">'+js_komunikat['wypelnij_to_pole']+'</span>');
            form_highlight(element.name);
            return 1;	//blad
        }
    }

     function form_check_text_dateDMY(element) {
        if (element.value) {
            if (/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(element.value)) {
                if ($("#status_"+element.name).length)
                    $("#status_"+element.name).html('<span class="ok">'+js_komunikat['ok']+'</span>');
                return 0;	//bez bledow
            } else {
                if ($("#status_"+element.name).length)
                    $("#status_"+element.name).html('<span class="bad">'+js_komunikat['date_format_incorrect']+'</span>');
                form_highlight(element.name);
                return 1;	//blad
            }
        } else {
            if ($("#status_"+element.name))
                $("#status_"+element.name).html('<span class="bad">'+js_komunikat['wypelnij_to_pole']+'</span>');
            form_highlight(element.name);
            return 1;	//blad
        }
    }

     function form_check_text_timeHM(element) {
        if (element.value){
            if (/^[0-1]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$/.test( element.value )  ||  /^2[0-3]{1}:[0-5]{1}[0-9]{1}$/.test( element.value ) ) {
                if ($("#status_"+element.name).length)
                    $("#status_"+element.name).html('<span class="ok">'+js_komunikat['ok']+'</span>');
                return 0;	//bez bledow
            } else {
                if ($("#status_"+element.name).length)
                    $("#status_"+element.name).html('<span class="bad">'+js_komunikat['time_format_incorrect']+'</span>');
                form_highlight(element.name);
                return 1;	//blad
            }
        } else {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html('<span class="bad">'+js_komunikat['wypelnij_to_pole']+'</span>');
            form_highlight(element.name);
            return 1;	//blad
        }
    }



//-------------------------------------------------------------------------------------//
// INPUT - PASSWORD
//-------------------------------------------------------------------------------------//

    function form_check_passwordcompare(element) {
        var repeat = 'repeat_'+(element.id);
        var len_err = element.value.length < 6 || element.value.length > 50;
        var rep_err = element.value != $("#"+repeat).val();

        if (len_err  || rep_err) {
            if (len_err) {
                if ($("#status_"+element.name).length)
                    $("#status_"+element.name).html('<span class="bad">'+js_komunikat['password_short']+'</span>');
                form_highlight(element.name);
                return 1;	//blad
            }
            if (rep_err) {
                if ($("#status_"+element.name).length)
                    $("#status_"+element.name  ).html('<span class="bad">'+js_komunikat['password_doesnt_compare']+'</span>');
                form_highlight(element.name);
                return 1;	//blad
            }
        } else {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html("<span class='ok' >"+js_komunikat['ok']+'</span>');
            return 0;	//bez bledu
        }
    }

// Sprawdza INPUT typu PASSWORD -----------------------------------------------------------//

    function form_check_password(element) {
        if (element.className.match(/^.*vpasswordcompare.*$/)) {
            return form_check_passwordcompare( element );
        }
        if (element.className.match(/^.*vpasswordempty.*$/) ) {
            if ($("#status_"+element.name) && !element.value) {
                $("#status_"+element.name).html('<span class="bad">'+js_komunikat['wypelnij_to_pole']+'</span>');
                form_highlight(element.name);
                return 1;
            }
        }
        return 0;
    }
// sprawdzamy poprawnosc dla nazwy domeny	-----------------------------------------------------------//

    function form_check_text_domain(element) {
        var error = 0;
        var chars = [261,260,280,281,347,380,378,322,243,324,263,211,321,323,346,379,377,262];
        
        for (j=0;j<element.value.length;j++) {
            for(k=0;k<chars.length;k++) {
                if (String.fromCharCode(chars[k])==element.value.charAt(j)) {
                    error=1;
                    break;
                }
            }
            if(error==1) {
                break;
            }
        }

        if (element.value.match(/\s|[\r\n]|^$/))
            error=2;
        
        if (element.value.match(/[\.]|[!]|[~]|[`]|[@]|[#]|[$]|[%]|[\^]|[&]|[\*]|[(]|[)]|[=]|[+]|[|]|[\/]|[']|["]|[;]|[:]|[<]|[>]|[\?]|[\[]|[\]]|[\{]|[\}]|[\\]$/))
            error=3;

        return error;
    }

// Sprawdza INPUT typu TEXT -----------------------------------------------------------//

    function form_check_text(element, messageboxid) {
        //SZUKAM DokŁADNIEJ
	if ($("#status_"+element.name).length) {
            $("#status_"+element.name).html('');
	}

	if (element.className.match(/^.*vdomain.*$/) && element.value) {
            var response = form_check_text_domain( element );         // sprawdzamy poprawnosc dla nazwy domeny
            if (response == 1) {
                $('#status_'+element.name).html('<br><span class=\'bad\' >'+js_komunikat['polskie_znaki_domena']+'</span>');
            } else if(response == 2) {
                $('#status_'+element.name).html('<br><span class=\'bad\' >'+js_komunikat['biale_znaki_domena']+'</span>');
            } else if(response == 3) {
                $('#status_'+element.name).html('<br><span class=\'bad\' >'+js_komunikat['specjalne_znaki_domena']+'</span>');
            }
            return response;
	}

	if (element.className.match( /^.*vnumeric.*$/ )) {
            if (element.value)
                return  form_check_text_isnumeric( element );			//input-text LOGIN
	}
	if (element.className.match( /^.*vpesel.*$/ ))
            return  form_check_text_numeric_fields(element , 'pesel');			//input-text LOGIN

        if (element.className.match( /^.*vnip.*$/ ))
            return  form_check_text_numeric_fields(element , 'nip');			//input-text LOGIN

        if (element.className.match( /^.*vgsm.*$/ ))
            return  form_check_text_numeric_fields(element , 'gsm');			//input-text LOGIN

        if (element.className.match( /^.*vtelephone.*$/ ))
            return  form_check_text_numeric_fields(element , 'telephone');			//input-text LOGIN

        if (element.className.match( /^.*vlogin.*$/ ))
            return  form_check_text_login( element);			//input-text LOGIN

	if (element.className.match( /^.*vemail.*$/ ) && element.value)
            return form_check_text_email( element );         // INPUT text EMAIL

	if (element.className.match( /^.*vrejectspecjalchars.*$/ ))
            return form_check_text_rejectspecjalchars(element);         // zezwala na ([a-zA-Z0-9 _\.])*

	if (element.className.match( /^.*vdateDMY.*$/ ))
            return form_check_text_dateDMY( element );

	if (element.className.match( /^.*vtimeHM.*$/ ))
            return  form_check_text_timeHM( element );

	if (element.className.match( /^.*vno.*$/ ))
            return 0;

	//OGOLNA
	if (element.value) {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name  ).html('<span class="ok">'+js_komunikat['ok']+'</span>');

            return 0;	//bez bledow
	} else {
            var add_str="";

            if ($("#shopCartFinalize").length)
                add_str = "<br>";

            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html(add_str+'<span class="bad">'+js_komunikat['wypelnij_to_pole']+'</span>');

            form_highlight(element.name);
            return 1;	//blad
	}
    }

//-------------------------------------------------------------------------------------//
// SELECT
//-------------------------------------------------------------------------------------//

    function form_check_select(element) {
        if (element.value!='0') {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html('<span class="ok">'+js_komunikat['ok']+'</span>');
            return 0;	//bez bledow
         }else if (element.value == '0' || element.value == '') {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html('<span class="bad">'+js_komunikat['wypelnij_to_pole']+'</span>');
            return 1;	//blad
        }
    }

//-------------------------------------------------------------------------------------//
// TEXTAREA
//-------------------------------------------------------------------------------------//

    function form_check_textarea(element) {
        if (element.className.match( /^.*vno.*$/ ))
            return 0;

        if (element.getAttribute("wysiwyg"))
            var check_val = FCKeditorAPI.GetInstance(element.id).GetHTML();
        else
            var check_val = element.value;

        if (check_val) {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html('<span class="ok">'+js_komunikat['ok']+'</span>');
            return 0;	//bez bledow
        } else {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html('<span class="bad">'+js_komunikat['wypelnij_to_pole']+'</span>');
            form_highlight(element.name);
            return 1;	//blad
        }
    }

//-------------------------------------------------------------------------------------//
// INPUT - HIDDEN
//-------------------------------------------------------------------------------------//

    function form_check_hidden(element) {
        if (element.value)
            return 0;	//bez bledow
	else
            return 1;	//blad
    }

//-------------------------------------------------------------------------------------//
// INPUT - CHECKBOX
//-------------------------------------------------------------------------------------//

    function form_check_checkbox(element) {
        if (element.className.match(/^.*vrequired.*$/)) {
            return form_check_checkbox_required( element );
        }
        return 0;
    }

    function form_check_checkbox_required(element) {
        if (element.checked) {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html('<span class="ok">'+js_komunikat['ok']+'</span>');
            return 0;	//bez bledow
        } else {
            if ($("#status_"+element.name  ) )
                $("#status_"+element.name  ).html('<span class="bad">'+js_komunikat['acceptance_required']+'</span>');
            return 1;	//blad
        }
    }

//-------------------------------------------------------------------------------------//
// INPUT - FILE REQUIRED
//-------------------------------------------------------------------------------------//

    function form_check_file(element) {
        if (element.className.match(/^.*vrequired.*$/)) {
            return form_check_file_required(element);
        }
        return 0;
    }


    function form_check_file_required(element) {
        if (element.value) {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html('<span class="ok">'+js_komunikat['ok']+'</span>');
            return 0;
        }else {
            if ($("#status_"+element.name).length)
                $("#status_"+element.name).html('<span class="bad">'+js_komunikat['wypelnij_to_pole']+'</span>');
            form_highlight(element.name);
            return 1;	//blad
        }
    }
//-------------------------------------------------------------------------------------//
// C H E C K - F O R M
//-------------------------------------------------------------------------------------//
//form_check('chooseDomainName',
//'/index.php?event=sprawdznazwedomeny&amp;tpl_ajax=zamowserwerwritualnyajax',
//'message_',
//'/')
    function form_check(formid, post_url, event, get_url, get_target, newpage) {
	//form_show_elements( formid );
	var bledy = 0;
	var dane = "";
	var form = $( formid );
	var elements = new Array();
	var postData = '';
	var nb_txt=0;

	form = document.getElementById(formid);
//	reset(formid);

	if ($('message')) {
            messageboxid = 'message';
 	} else {
            if ($('message_'+formid)) {
                messageboxid = 'message_'+formid;
            }
        }
        if ($(messageboxid))
            $(messageboxid).html(false);

        for (i=0; i<form.elements.length; i++) {
            if (form.elements[i].getAttribute("wysiwyg")) {
                dane += form.elements[i].name+"="+FCKeditorAPI.GetInstance(form.elements[i].id).GetHTML()+"&"
            } else {
                dane += form.elements[i].name+"="+form.elements[i].value+"&"
            }

            type = form.elements[i].type;
            if (type == 'text') {
                bledy += form_check_text( form.elements[i] , messageboxid );

                if ($("#shopCartFinalize").length) {
                    var resp = find_the_same(elements,form.elements[i].value);
                    bledy += resp;

                    if (resp >0 ) {
                        $("#status_"+form.elements[i].name).html('<br><span class=\'bad\' >'+js_komunikat['powtorzenie_nazwy_domeny']+'</span>');
                    }

                    elements.push(form.elements[i].value);
                    // resp = check_length( form.elements[i].value , 2 );
                    // bledy +=	resp;
                    // if (resp >0 )
                    // 	  $("#status_"+form.elements[i].name  ).html('<br><span class=\'bad\' >'+js_komunikat['za_krotka_domena']+'</span>');
                }
            }

            if (type == 'password') {
                    bledy += form_check_password(form.elements[i]);
            }
            if (type == 'textarea')
                    bledy += form_check_textarea(form.elements[i]);
            if (type == 'select')
                    bledy += form_check_select(form.elements[i]);
            if (type == 'checkbox')
                    bledy += form_check_checkbox(form.elements[i]);
            if (type == 'file')
                bledy += form_check_file(form.elements[i]);

            if (post_url) {
                nb_txt++;
                var adds;
                if (nb_txt==1 ) {
                    adds = '';
                } else {
                    adds = '&';
                }
                postData=postData+adds+form.elements[i].name+'='+form.elements[i].value;
            }
	}
	//wyslanie lub nie
	if (bledy == 0 ) {
            if (post_url) {
                var name = event;
                $(name).html('<div style="text-align:center"><img src="'+get_url+'img/cms/loading.gif" alt="trwa ładowanie..." /></div>');
                ajaxPost(post_url, name, postData+"");
            } else {
                form.submit();
            }
            return true;
	} else {
            if (formid != 'chooseDomainName') {
                $(messageboxid).html('<span>'+js_komunikat['bledy_w_formularzu']+'</span>');
            }
	}
    }

    function find_the_same(arr, element) {
        for(var i in arr) {
            if (arr[i]==element && element)
                return 1;
        }
        return 0;
    }

    function check_length(element, n) {
        if (element.length < n && element)
            return 1;
        else
            return 0;
    }

/* wysylanie formularza przez wcisniecie entera, onkeypress musi byc w ostatnim polu formularza lub w jakims ktorym chcemy */
    function submitenter(myfield,e,formid) {
        var keycode;
        if (window.event)
            keycode = window.event.keyCode;
        else if (e)
            keycode = e.which;
        else
            return true;

        if (keycode == 13) {
           reset(formid);
           form_check(formid);
           //myfield.form.submit();
           return false;
        } else {
            return true;
        }
    }

    function sendenter(formID,url,idDiv,e,fr_url) {
        var keycode;
        if (window.event)
            keycode = window.event.keyCode;
        else if (e)
            keycode = e.which;
        else
            return true;

        if (keycode == 13) {
           reset(formID);
           form_check(formID, url, idDiv, fr_url);
           return false;
       } else {
           return true;
       }
    }

    /*resetuje wszystkie ostrzezenia*/
    function reset(formid) {}
    
    function form_clean_class(name) {
        var obj = $("#"+name);
        obj.removeClass("redInput");
        obj.focus(function(e){return 0;});
    }

    function form_highlight(elname) {
        var elobject = $("#"+elname);
        elobject.addClass("redInput");
        elobject.focus(function(){form_clean_class(elname)});
    }

    function form_status(el_name, type) {
        if ($("#status_"+el_name).length) {
            $("#status_"+el_name).html('<span class="bad">'+js_komunikat[type]+'</span>');
        }
    }

    function form_check_text_gsm(gsm) {
        var sms = $("#checkSMS").val();
        if (sms == 0) {
            return true;
        }
        if (!gsm.match(/^\+[0-9]{1,3}\.[0-9]{9}$/)) {
            return false;
        }
        return true;
    }

    function form_check_text_telephone(telephone) {
        if (!telephone.match(/^\+[0-9]{1,3}\.[0-9]{9}$/)) {
            return false;
        }
        return true;
    }

