// v3.02 of preloadImages() ...
//   - any number of parameters
//   - sequences of images enclosed in <>, e.g. <0-7>, with optionally up to 4 leading zeros e.g. <01-17>
//   - 3.01 ... fix for Netscape, where parseInt() interprets a leading zero as an octal
//   - 3.02 ... ANY number of leading zeros

function preloadImages() {
  var imgFiles, i, j, k, kb, kc;
  var s1, s2, s2s, s2sl, s2v, s2b, s3, s3s, s3sl, s3v, s3b, sl, bb, s1s, s4s;

  if (document.images) {
    imgFiles = preloadImages.arguments;
    if (document.preloadArray == null)
      document.preloadArray = new Array();
    i = document.preloadArray.length;
    with (document) {
      for (j = 0; j < imgFiles.length; j++) {
        s1 = imgFiles[j].indexOf('<');
        sl = imgFiles[j].length;
        if (s1 != -1) {
          s2s = imgFiles[j].substring(s1,sl); s2 = s2s.indexOf('-')+s1;
          if (s2 > s1+1) {
            s3s = imgFiles[j].substring(s2,sl); s3 = s3s.indexOf('>')+s2;
            if (s3 > s2+1) {
              s1s = imgFiles[j].substring(0,s1);
              s2s = imgFiles[j].substring(s1+1,s2); s2sl = s2s.length;
              s3s = imgFiles[j].substring(s2+1,s3); s3sl = s3s.length;
              s4s = imgFiles[j].substring(s3+1,sl);
              s2b = 0;
              while (s2sl > s2b+1 && s2s.substring(s2b,s2b+1) == '0') s2b++;
              s2v = parseInt(s2s.substring(s2b,s2sl));
              s3b = 0; 
              while (s3sl > s3b+1 && s3s.substring(s3b,s3b+1) == '0') s3b++;
              s3v = parseInt(s3s.substring(s3b,s3sl));
              for (k = s2v; k <= s3v; k++) {
                bb = s1s; kc = 10;
                for (kb = 0; kb < s2b; kb++) {
                  if (k < kc) bb += "0";
                  kc *= 10;
                }
                bb += k + s4s;
                preloadArray[i] = new Image;
                preloadArray[i++].src = bb;
              }
            }
          }
        }
        else {
          preloadArray[i] = new Image;
          preloadArray[i++].src = imgFiles[j];
        }
      }
    }
  }
}

function findObj(n, d) { //v4.0
  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=findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function swapImage() { //v3.01
  var i,j=0,x,a=swapImage.arguments; document.sr=new Array; for(i=0;i<(a.length-1);i+=2)
   if ((x=findObj(a[i]))!=null){document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+1];}
}

function swapImgRestore() { //v3.0
  var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}


// focused popup
function w(url) {
  var x = window.open(url,"xx",'top=15,left=15,width=640,height=480,status=no,scrollbars=yes,resizable=yes');
  x.focus();
}


function openPopup(url, popupTitle, attr) { 
  var popupID = window.open(url, popupTitle, attr);
	popupID.focus();
}


function showdate(thedate)
{
  var a, b, d, y;

  if (!thedate) {
    a = new Date(document.lastModified);
    if (navigator.appName == "Netscape" && navigator.appVersion.substring(0,1) == "3") {
      y = a.getYear(); if (y < 30) { y += 2000; a.setYear(y); } else y += 1900;
    }
    else {
      y = a.getFullYear(); if (y < 1930) { y += 100; a.setFullYear(y); }
    }
    d = a.getDate().toString(); if (d.length == 1) d = "0"+d;
    b = a.toString();
    thedate = b.substring(0,4) + d + "-" + b.substring(4,7) + "-" + y;
  }
  document.write(thedate);
}


var preloadrequired = 0;

function preloadrollovers() {
  if (preloadrequired == 1) {
    preloadImages('images/bassocr.gif','images/bprofiler.gif','images/bservicesr.gif','images/bnewsr.gif');
  }
  else if (preloadrequired == 2) {
    preloadImages('images/bwhoarewer.gif');
  }
  else if (preloadrequired == 3) {
    preloadImages('images/bintprofiler.gif');
  }
  if (preloadrequired != 1) {
    preloadImages('images/massocr.gif','images/mprofiler.gif','images/mservicesr.gif','images/mnewsr.gif','images/gwlogor.gif');
  }
  // if (navigator.appName == "Netscape") document['sponsor'].visibility = "hide";
  // else document.all['sponsor'].style.visibility = "hidden";
}

function cmtrim(str) {
	return str.replace(/^ */,"").replace(/ *$/,"");
}

var sPhone='0123456789()- ';
var sNumeric='0123456789';
var sPrice='$0123456789.';
var sPercent='0123456789.%';
var sAlpha='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz \'-';
var sAlphaRej=',';
function CheckValidChars(str,chk) {
	var i,j=str.length;
	for (i=0;i<j;i++) {
		if (chk.indexOf(str.substring(i,i+1))<0) return false;
	}
	return true;
}
function CheckInvalidChars(str,chk) {
	var i,j=str.length;
	for (i=0;i<j;i++) {
		if (chk.indexOf(str.substring(i,i+1))>=0) return false;
	}
	return true;
}

function IsBlank(fld) {
	var val = cmtrim(fld.value);
	return (val == '');
}
function IsPercent(fld) {
	var val = cmtrim(fld.value);
	if (val == '') return true;
	if (CheckValidChars(val,sPercent) == false) { alert('Please enter a positive number'); fld.focus(); return false; }
	if (val.indexOf('%') > 0) val = val.replace(/%/,'');
	if (CheckValidChars(val,sNumeric) == false) { alert('Please enter whole percentages only'); fld.focus(); return false; }
	return true;
}
function GetPercent(fld) {
	var val = cmtrim(fld.value);
	if (val == '') return 0;
	if (val.indexOf('%') > 0) val = val.replace(/%/,'');
	return parseInt(val);
}

function hide() {
    var args = hide.arguments;
	for (var j = 0; j < args.length; j++) {
		if (document.getElementById(args[j])) document.getElementById(args[j]).style.display = 'none';
	}
}

function show() {
    var args = show.arguments;
	for (var j = 0; j < args.length; j++) {
		if (document.getElementById(args[j])) document.getElementById(args[j]).style.display = 'block';
	}
}

function toghide() {
	var args = toghide.arguments;
	var checked = args[0].checked;
	for (var j = 1; j < args.length; j++) {
		if (document.getElementById(args[j])) {
			if (document.getElementById(args[j]).style.display == 'none') {
				document.getElementById(args[j]).style.display = 'block';
				checked = false;
			}
			else {
				document.getElementById(args[j]).style.display = 'none';
				checked = true;
			}
		}
	}
	args[0].checked = checked;
}

function chkmand()
{
    var z = chkmand.arguments;

	var zi = 0;
	var displayalert = true;
	if (typeof(z[0]) == 'boolean') {
		zi++;
		displayalert = z[0];
	}
	var frm = z[zi];
	var os = '';
	var c = 0;
	for (var i = zi+1; i < z.length; i++) {
		var a = z[i];
		var m = a[0];
		var o = 'and';
		var p = 1;
		if (a.length > 1 && typeof(a[1]) == 'object') {
			if (a[1].length) {
				var ff = eval('frm.'+ a[1][0]);
				if (ff) {
					p = 0;
					var vv = '';
					if (ff.length) {
						for (var ii = 0; ii < ff.length; ii++) {
							switch (ff[ii].type) {
							case 'radio':
							case 'checkbox':
								if (ff[ii].checked) vv = ff[ii].value;
								break;
							case 'text':
							case 'textarea':
								if (vv == '') vv = ff[ii].value;
								break;
							}
						}
					}
					else {
						switch (ff.type) {
						case 'radio':
						case 'checkbox':
							if (ff.checked) vv = ff.value;
							break;
						case 'text':
						case 'textarea':
							if (vv == '') vv = ff.value;
							break;
						}
					}
					vv = cmtrim(vv);
					var jjs = 1;
					if (a[1].length > 2 && ( a[1][1] == 'not' || a[1][2] == 'NOT')) jjs++;
					for (var jj = jjs; jj < a[1].length; jj++) {
						if (cmtrim(a[1][jj]) == vv) { p = 2; break; }
					}
					if (jjs == 2) p = 2-p;
				}
			}
		}
		if (p > 0) {
			if (a.length > p+1 && ( a[p] == 'or' || a[p] == 'OR' )) { o = 'or'; p++; }
			if (a.length > p+1 && ( a[p] == 'and' || a[p] == 'AND' )) { o = 'and'; p++; }
			var ok = (o == 'and') ? true : false;
			for (var j = p; j < a.length; j++) {
				var f = eval('frm.' + a[j]);
				var isarr = (f.length) ? true : false;
				var e = false;
				if (isarr) {
					for (var k = 0; k < f.length; k++) {
						var t = f[k].type;
						//alert(a[j] + '[' + k + ']-' + t);
						switch (t) {
						case 'radio':
						case 'checkbox':
							if (f[k].checked) e = true;
							break;
						case 'text':
						case 'textarea':
							if (cmtrim(f[k].value) != '') e = true;
							break;
						}
						if (e == true) break;
					}
				}
				else {
					var t = f.type;
					//alert(a[j] + '-' + t);
					switch (t) {
					case 'radio':
					case 'checkbox':
						if (f.checked) e = true;
						break;
					case 'text':
					case 'textarea':
						if (cmtrim(f.value) != '') e = true;
						break;
					}
				}
				//alert(a[j] + '-' + e);
				if (e == false && o == 'and') { ok = false; break; }
				else if (e == true && o == 'or') { ok = true; break; }
			}
			//alert(m + ' ' + ok);
			if (ok == false) {
				os += '    ' + m + '\n';
				c++;
			}
		}
	}
	if (os != '') {
		if (displayalert == true) alert('The following question' + ((c == 1) ? '' : 's') +' should be answered:\n' + os + 'Please complete before proceeding.');
		return false;
	}
	return true;
}
