var whitespace = " \t\n\r";
var reqFldMsgEnd = "is a required field. Please enter it now.";
var numFldMsgEnd = "needs to contain a number value. Please correct the entry.";

var sContactName = "Contact Name";
var sTelNum = "Telephone Number";
var sCommodity = "Commodity";
var sCountry = "Country of Origin";
var sVal = "Value/Currency";
var sGSTNum = "GST Number";
var sCarrierName = "Carrier Name";
var sPRONum = "PRO Number";

function isDigit (c) {
	return ((c >= "0") && (c <= "9"))
}

function isEmpty(s) {
   return ((s == null) || (s.length == 0))
}

function isInteger (s) {
    var i;

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }

    return true;
}

function isWhitespace(s) {
	var i;
	if (isEmpty(s)) return true;

	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1) return false;
	}
		return true;
}

function isEmail (s) {
    if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return false;
       else return (isEmail.arguments[1] == true);
   
    if (isWhitespace(s)) return false;

    var i = 1;
    var sLength = s.length;

    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function warnEmpty(theField, s) {
	theField.focus();
	alert(s + " " + reqFldMsgEnd);
	return false;
}

function warnNonNumber(theField, s) {
	theField.focus();
	alert(s + " " + numFldMsgEnd);
	return false;
}

function checkEmail (theField) {
    if (!isEmail(theField.value)) {
		theField.focus();
		window.alert('Please enter a valid email address. e.g. user@company.com');
		}
    else return true;
}

function checkString(theField, s) {
	if (isWhitespace(theField.value))
		return warnEmpty(theField, s);
	else return true;
}

function checkNumber(theField, s) {
	if (checkString(theField, s)) {
		if (isInteger(theField.value)) {
			return true;
		}
		else return warnNonNumber(theField, s);
	}
}

function validateRQ (form) {
	if (	checkString(form.rqContactName,sContactName) &&
			checkString(form.rqTelephoneNumber,sTelNum) &&
			checkEmail(form.rqEmailAddress) &&
			checkString(form.rqCommodity,sCommodity) &&
			checkString(form.rqCountryOrigin,sCountry) &&
			checkString(form.rqValueCurrency,sVal)
		) {
		form.submit();
		}
	else
		return false;
}

function validateNAR (form) {
	if (	checkString(form.narContactName,sContactName) &&
			checkString(form.narTelephoneNumber,sTelNum) &&
			checkEmail(form.narEmailAddress) &&
			checkNumber(form.narGSTNumber,sGSTNum)
		) {
		form.submit();
		}
	else
		return false;
}

function validateTR (form) {
	if (	checkString(form.trCarrierName,sCarrierName) &&
			checkString(form.trContactName,sContactName) &&
			checkString(form.trTelephoneNumber,sTelNum) &&
			checkEmail(form.trEmailAddress) &&
			checkNumber(form.trPRONumber,sPRONum)
		) {
		form.submit();
		}
	else
		return false;
}

function findObj(n, d) {
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function layerAction() {
  var g,b,k,f,args=layerAction.arguments;
  var a = parseInt(args[0]);
  if(isNaN(a))a=0;
  if(!document.arrayIsSet) {
  	counter=new Array();
 	document.arrayIsSet=true;
    for (var u=0;u<10;u++) {
		counter[u] = new Array();
	}
  }
  for(k=0; k<counter[a].length; k++) {
   if((g=findObj(counter[a][k]))!=null) {
    b=(document.layers)?g:g.style;b.visibility='hidden';
   }
  }
  for(k=1; k<args.length; k++) {
   if((g=findObj(args[k])) != null) {
    b=(document.layers)?g:g.style;b.visibility='visible';
    f=false;
    for(j=0;j<counter[a].length;j++) {
     if(args[k]==counter[a][j]) {
 		f=true;
	 }
    }
    if(!f) {counter[a][counter[a].length++]=args[k];
    }
   }
  }
}

function navBar(tableCellRef, hoverFlag, navStyle) {
	if (hoverFlag) {
		tableCellRef.style.backgroundColor = '#666666';
	}
	else {
		tableCellRef.style.backgroundColor = '#000000';
	}
}