/* мыло мыльное */

t0='mailto:';
t='@iwm.spb.ru';

/* проверка HTML-форм */

(function() { 
    if (window.addEventListener) 
        window.addEventListener("load", init, false);
    else if (window.attachEvent) 
        window.attachEvent("onload", init);

    function init() {
        for(var i = 0; i < document.forms.length; i++) {
            var f = document.forms[i]; 

            var needsValidation = false;

            for(j = 0; j < f.elements.length; j++) {
                var e = f.elements[j];  

                if (e.type != "text") continue;

                var pattern = e.getAttribute("pattern");
                var required = e.getAttribute("required") != null;

                if (required && !pattern) {
                    pattern = "\\S";
                    e.setAttribute("pattern", pattern);
                }

                if (pattern) {
                    e.onchange = validateOnChange;
                    needsValidation = true;
                }
            }

            if (needsValidation) f.onsubmit = validateOnSubmit;
        }
    }
          
    function validateOnChange() {
        var textfield = this;                            
        var pattern = textfield.getAttribute("pattern"); 
        var value = this.value;                          

        if (value.search(pattern) == -1) textfield.className = "invalid";
        else textfield.className = "valid";
    }

    function validateOnSubmit() {
        var invalid = false;  
        for(var i = 0; i < this.elements.length; i++) {
            var e = this.elements[i];
            if (e.type == "text" && e.onchange == validateOnChange) {
                e.onchange(); 
                if (e.className == "invalid") invalid = true;
            }
        }

        if (invalid) {
            alert("Форма заполнена не полностью или некорректно.\n" +
                  "Пожалуйста, проверьте правильность заполнения\n" +
				  "выделенных красным цветом полей.\n\n"+
				  "Sorry, but the form was not filled correctly!\n"+
				  "Please, redeem errors in the marked reds fields\n"+
				  "and try once more..." );
            return false;
        }
    }
})();