/*
 * Testowanie formularzy
 * @version 1.4.3
 *
 * 1.30 - dodanie kilku walidatorków nip, regon, pesel,
 * 1.40 - dodanie metody selekcji
 * 1.4.1 - (obs) Drobna poprawka onDel
 * 1.4.2 - (gea) emaile z komunikatem
 * 1.4.21 - (web2.4) drobna poprawka
 * 1.4.3 - (web2.4) check_email (goodMail ? true : false);
 * 
 */


var formService = {
    delOK : true,
    changeOK : true,
	
    onDel : function(komunikat) {
        this.delOK = confirm(komunikat);
        return this.delOK;
    },

    onChange : function(komunikat) {
        this.changeOK = alert(komunikat);
    },

    trim : function(s) {
        var str = s.value;
        //        str = this.xmlCode(str);
        var n;
        for (n = 0; str.charAt(n)==" " && n < str.length; n++){};
        str = str.substring(n);
        //	var start = n;
		
        for (n = str.length -1; str.charAt(n)==" " && n > 0; n--){};
        var end = n + 1;
        s.value = str.substring(0, end);
		
        return true;
    },
	
    isEmpty : function(s, komunikat) {
        var empty = ((s == null) || (s.length == 0));
        if (empty && komunikat) alert(komunikat);
        return empty;
    },

    select : function(element) {
        if (!element.klikniety) {
            element.klikniety = true;
            element.value = "";
        } else
            element.select();
    },

    checkElement : function(element) {
        return this.trim(element);
    },

    checkAll : function(f) {
        if (!this.delOK) return false;
        return this.check(f)
    },

    check : function(f) {
        alert('Koniecznie ustaw funkcję formService.check = function(formularz)');
        return false;
    },

    check_email : function(e, message) {
        var goodMail = true;
        var ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
        for (var i = 0; i < e.length ; i++)
            if (ok.indexOf(e.charAt(i)) < 0) {
                goodMail = false;
                break;
            }

        if (goodMail) {
            var re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
            var re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
            goodMail = (!e.match(re) && e.match(re_two));
        }
        if (!goodMail && message) alert(message);
        return (goodMail ? true : false);
    },

//    check_nip : function(e) {
//        var re_nip=/^(\(d{3}-\d{3}-\d{2}-\d{2})|(d{3}-\d{2}-\d{2}-\d{3})$/;
//        return (e.match(re_nip));
//    }
//
    check_nip : function(nip) {
        var wNIP = new Array(6, 5, 7, 2, 3, 4, 5, 6, 7, -1);
        var cNumber;
        var i;
        var iCheck;

        cNumber = nip;
        iCheck = 0;

        if(cNumber.length != 10)
            return false;

        for(i=0;i<(cNumber.length-1);++i)
            iCheck +=parseInt(cNumber.substring(i,i+1))*wNIP[i];

        iCheck = iCheck%11;

        if(iCheck == parseInt(cNumber.substring(cNumber.length-1,cNumber.length)))
            return true;
        else
            return false;
    },

    check_regon : function(regon) {

	var cNumber;
	var i;
	var iCheck;
	var wREGON;

	cNumber = regon;
	iCheck = 0;

	if(cNumber.length == 9) wREGON=new Array(8, 9, 2, 3, 4, 5, 6, 7, -1);
	else if (cNumber.length == 14) wREGON=new Array(2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, -1);
	else return false;

	for(i=0;i<(cNumber.length-1);++i)
            iCheck +=parseInt(cNumber.substring(i,i+1))*wREGON[i];

	iCheck = iCheck%11;
	if (iCheck == 10) iCheck=0;

	if(iCheck == parseInt(cNumber.substring(cNumber.length-1,cNumber.length)))
            return true;
	else
            return false;
    },
    
    
    check_pesel : function(pesel){

	var wPESEL = new Array(1, 3, 7, 9, 1, 3, 7, 9, 1, 3 , -1);
	var cNumber;
	var i;
	var iCheck;

	cNumber = pesel;
	iCheck = 0;

	if (cNumber.length != 11)
		return false;

	for (i=0; i<(cNumber.length-1); ++i)
            iCheck +=(parseInt(cNumber.substring(i,i+1))*wPESEL[i])%10;

	iCheck = iCheck%10;

	if (iCheck != 0) iCheck = 10 - iCheck;
	if (iCheck == parseInt(cNumber.substring(cNumber.length-1,cNumber.length)))
            return true;
	else
            return false;
    }
}

