/*!
 * ЙЦУКЕ - just to force charset=utf-8
 * validlogin.js
 * http://sumat.ru/
 * Copyright 2011 - 2099
 * Made 20100625 adopted to utf8 coding 20111009
 */

window.onload = initForms;

function initForms() {
         document.forms[0].onsubmit = function() {return validForm();}
}




function validForm() {
     var error_string = "";
     var allGood = true;
     var thisTagGood = true;
     var allTags = document.getElementsByTagName ("*");


     for (var i=0; (i<allTags.length && allGood); i++) {

/*
alert("allTags["+i+"] = " + allTags[i] + "--- allTags[i].name = " + allTags[i].name + "--- allTags[i].value = " +  allTags[i].value);
*/

//
// allTags[i].name
// name=userid
// name=password
//


       if (allTags[i].name == "userid" || 
	  allTags[i].name == "password") {

/*
alert("allTags["+i+"] = " + allTags[i] + "--- allTags[i].name = " + allTags[i].name + "--- allTags[i].value = " +  allTags[i].value);
*/

           allGood = validTag(allTags[i]);

        }



     }


if (!allGood) {

error_string = "Прошу вводить логин и ключ доступа с максимальной концентрацией внимания и бдительности, на которую вы только способны!\n" + error_string;
alert(error_string);
}

return allGood;







     function validTag(thisTag) {


        var outClass = "";
        var allClasses = thisTag.className.split (" ");


        for (var j=0; j<allClasses.length; j++) {
           outClass += validBasedOnClass(allClasses[j]) + " ";
        }

        thisTag.className = outClass;


        if (outClass.indexOf("invalid") > -1) {
           invalidLabel(thisTag.parentNode);
           thisTag.focus();
	   thisTag.select();
           return false;
        }
	else {
           validLabel(thisTag.parentNode);
        }
        return true;





        function validBasedOnClass(thisClass) {
           var classBack = "";

           switch(thisClass) {

              case "":

              case "invalid":
                 break;

              case "userid":
                 if (!validID (thisTag.value)) classBack = "invalid ";
                 classBack += thisClass;
                 break;


              case "password":
                 if (!validPSW (thisTag.value)) classBack = "invalid ";
                 classBack += thisClass;
                 break;


              default:
                 break;

           }
           return classBack;
        }



        function validID(id) {
//         var invalidChars = " /:,;йцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ";
           var validChars = "0123456789";
           var error_string_id = "";
           var badcharwas = 0;
		   var idlen = id.length;

           if (id == "") {
              error_string_id += "Пустой логин.\n";
           }

/*
alert("idlen = " + idlen);
*/

        if (idlen > 0) {
			for (var k=0; k<idlen; k++) {
				var checkChar = id.charAt(k);
				if ((validChars.indexOf(checkChar) == -1) && (badcharwas != 1)) {
				error_string_id += "В логине присутствуют некорректные символы.\n";
				badcharwas = 1;
				}
			}
		}


           if (error_string_id == "")

           {
// validLabel(thisTag.parentNode);
return true;
} 
           else {

           alert(error_string_id);
           return false;
           }
        }



        function validPSW(psw) {
           var invalidChars = "йцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ";
           var error_string_psw = "";
           var badcharwas = 0;
		   var idlen = psw.length;

           if (psw == "") {
              error_string_psw += "Пустой ключ доступа.\n";
           }


        if (idlen > 0) {
           for (var k=0; k<invalidChars.length; k++) {
              var badChar = invalidChars.charAt(k);
              if ((psw.indexOf(badChar) > -1) && (badcharwas != 1)) {
              error_string_psw += "В ключе доступа присутствуют некорректные символы.\n";
              badcharwas = 1;
              }
           }
		}

           if (error_string_psw == "")

           {
// validLabel(thisTag.parentNode);
return true;
} 
           else {

           alert(error_string_psw);
           return false;
           }
        }







        function invalidLabel(parentTag) {
           if (parentTag.nodeName == "LABEL") {
              parentTag.className += " invalid";
           }
        }

        function validLabel(parentTag) {

           if (parentTag.nodeName == "LABEL") {
              parentTag.className += " valid";
           }

        }




     }
}



