//<SCRIPT language="javascript">

function MM_findObj(n, d) { //v4.01
  var p,i,x;  
  if (!d) 
      d=document; 
  if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
      d = parent.frames[n.substring(p+1)].document; 
      n = n.substring(0,p);
  }
  if (!(x = d[n]) && d.all) 
      x = d.all[n]; 
  for (i=0; !x && i<d.forms.length; i++) 
      x = d.forms[i][n];
  for (i=0; !x && d.layers && i < d.layers.length; i++) 
      x = MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) 
      x = d.getElementById(n); 
  return x;
}

function YY_checkform() { //v4.71 

//revised lindsaybigelow@cad2data.com 20-may-2004 (ignore missing form elements) 
//revised lindsaybigelow@cad2data.com 12-sep-2004 (stop checking after first error) 

//copyright (c)1998,2002 Yaromat.com
  var a = YY_checkform.arguments;
  var oo = true;
  var v = "";
  var s = "";
  var err = false;
  var r,o,at,o1,t,i,j,ma,rx,cd,cm,cy,dte,at;
  
  for (i = 1; i < a.length; i = i + 4) {
    var s1 = "";
    if (a[i+1].charAt(0) == '#') {
        r = true; 
        a[i+1] = a[i+1].substring(1);
    } else { 
        r = false;
    }
    o  = MM_findObj(a[i].replace(   /\[\d+\]/ig,"" ));
    o1 = MM_findObj(a[i+1].replace( /\[\d+\]/ig,"" ));
	try { //ignore missing form elements
	  v = o.value;
	  t = a[i+2];
	  if (o.type == "text" || o.type == "password" || o.type == "hidden") {
		if (r && v.length == 0) 
		    err = true;
		if (v.length > 0) {
		    if (t == 1) { //fromto
		      ma = a[i+1].split('_');
		      if(isNaN(v) || v < ma[0] / 1 || v > ma[1] / 1) 
		          err = true;
		    } 
		    else if (t == 2) {
		      rx = new RegExp( "[\\w\.=-]+@[\\w\\.-]+\\.[a-zA-Z]{2,4}" );
		      if(!rx.test(v))
		          err=true;
		    } 
		    else if (t == 3){ // date
		      ma = a[i+1].split("#");
		      at = v.match(ma[0]);
		      if (at) {
		    	cd = (at[ma[1]]) ? at[ma[1]] : 1;
		    	cm = at[ma[2]] - 1;
		    	cy = at[ma[3]];
		    	dte = new Date(cy,cm,cd);
		    	if (dte.getFullYear() != cy || dte.getDate() != cd || dte.getMonth() != cm)
		    	    err=true;
		      } else { 
		          err=true;
		      }
		    } 
		    else if (t == 4) { // time
		      ma = a[i+1].split("#");
		      at = v.match(ma[0]);
		      if (!at)
		          err=true;
		    } 
		    else if (t == 5){ // check this 2
		      if (o1.length)
		          o1=o1[a[i+1].replace(/(.*\[)|(\].*)/ig,"")];
		      if (!o1.checked)
		          err=true;
		    } 
		    else if (t == 6) { // the same
		      if (v != MM_findObj(a[i+1]).value)
		          err=true;
		    }
		} 
	  } 
	  else { 
	      if (!o.type && o.length > 0 && o[0].type == "radio") {
		    	at = a[i].match(/(.*)\[(\d+)\].*/i);
		    	o2 = (o.length > 1) ? o[at[2]] : o;
		    if (t == 1 && o2 && o2.checked && o1 && o1.value.length / 1 == 0)
		        err=true;
		    if (t == 2) {
		      oo = false;
		      for (j=0; j<o.length; j++) 
		          oo=oo||o[j].checked;
		      if (!oo) {
		          s1 = "* " + a[i+3];
		      }
		    }
	      } 
	      else if (o.type == "checkbox") {
		    if ((t == 1 && o.checked == false) || (t == 2 && o.checked && o1 && o1.value.length / 1 == 0))
		        err=true;
	      } 
	      else if (o.type == "select-one" || o.type == "select-multiple") {
		    if (t == 1 && o.selectedIndex / 1 == 0)
		        err=true;
	      }
	      else if (o.type == "textarea") {
		    if (v.length < a[i+1])
		        err=true;
	      }
	  } 
	  if (err) {
	      if (s1 == "")
	          s1 = "* " + a[i+3]; 
	      err = false;
	  }
	} catch (e) {;} // [LB]
	
	if (s1 != "") {
	    s += s1 + '\n';
	    break; // stop checking after first error
	}
  }
  if (s != "") {
      alert("The required information is incomplete or contains errors:\t\t\t\t\t\n\n" + s);
  }
  document.MM_returnValue = (s == "");
}

//</SCRIPT>
