// JavaScript Document
function YY_checkform() { //v4.66
//copyright (c)1998,2002 Yaromat.com
  var eid = ""; var ae = 0;
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
nextElement:
  for (var i=1; i<args.length;i=i+4){
// This snippet basically tells the error checker to skip the current element if it is currently disabled
	if (args[i].substr(args[i].length-3, 1) != "[" && args[i].substr(args[i].length-1, 1) != "]") {
	    eid = document.getElementById(args[i]);
		if (eid.disabled) {
			while (eid.tagName != "TR" && eid.tagName != "FORM") eid = eid.parentNode;
			eid.bgColor = "";
			continue nextElement;
		}
    } else {
		var rg = eval('document.form.' + args[i].substr(0, args[i].length-3));
		for (var idx = 0; idx < rg.length; idx++) {
			eid = rg[idx];
			if (eid.disabled) {
				while (eid.tagName != "TR" && eid.tagName != "FORM") eid = eid.parentNode;
				eid.bgColor = "";
				continue nextElement;
			}
		}
	}
//****************************
	if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
// This snippet takes the current tag, finds its parent TR tag, and changes the TR background to blue
// It stops searching once it reaches a FORM tag
        if(!myDot) if (ae<10){myErr+='* ' +args[i+3]+'\n'; ae++;}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
// This snippet takes the current tag, finds its parent TR tag, and changes the TR background to blue
// It stops searching once it reaches a FORM tag
	if (args[i].substr(args[i].length-3, 1) != "[" && args[i].substr(args[i].length-1, 1) != "]") {
		eid = document.getElementById(args[i]);
		while (eid.tagName != "TR" && eid.tagName != "FORM") eid = eid.parentNode;
		if (eid.tagName == "TR") {
			if (addErr) {
				eid.bgColor = "lightblue";
			} else
				eid.bgColor = "";
		}
	} else {
		var rg = eval('document.form.' + args[i].substr(0, args[i].length-3));
		for (var idx = 0; idx < rg.length; idx++) {
			eid = rg[idx];
			while (eid.tagName != "TR" && eid.tagName != "FORM") eid = eid.parentNode;
			if (eid.tagName == "TR") {
				if (!myDot) 
					eid.bgColor = "lightblue";
				else
					eid.bgColor = "";
			}
		}
	}
// This modification only adds an error message to the list of there are currently less than 10 so as to not
// make the list too long for the screen
    if (addErr)	{
		if (ae<10) {myErr+='* '+args[i+3]+'\n'; ae++;}
		addErr=false;
	}
  }
  if (myErr!='') alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr+'\nThe lines with errors have been highlighted in blue!');
  document.MM_returnValue = (myErr=='');
}