// common.js -

var thisBrowser = '';

if (document.layers) thisBrowser='NN4';
if (document.all) thisBrowser='IE';
if (!document.all && document.getElementById) thisBrowser='NN6';
if (navigator.userAgent.indexOf("Opera") > -1) thisBrowser='O';	// CRW,A:01/29/03

function changeColor(entityId,bgColor,fontColor){
  if (thisBrowser=='IE'){
    document.all[entityId].style.backgroundColor=bgColor;
    if (fontColor != null) document.all[entityId].style.color=fontColor;
  }
  if (thisBrowser=='NN6'){
    document.getElementById(entityId).style.backgroundColor=bgColor;
    if (fontColor!=null) document.getElementById(entityId).style.color=fontColor;
  }
}

function redirect(url){
  window.location=url;
}

function hideEntity(entityId){
  if (thisBrowser=='IE') document.all[entityId].style.visibility="hidden";
  if (thisBrowser=='NN6') document.getElementById(entityId).style.visibility="hidden";
}

function unhideEntity(entityId){
  if (thisBrowser=='IE') document.all[entityId].style.visibility="visible";
  if (thisBrowser=='NN6') document.getElementById(entityId).style.visibility="visible";
}

// isBlank() -- Return true if string contains only whitespace.
function isBlank(s) {
  var len = s.length;
  var cnt = 0;
  for (var i = 0; i < len; i++) {
    var c = s.charAt(i);
    if ((c == ' ') || (c == '\n') || (c == '\t')) cnt ++;
  }
  if (cnt == len) {
    return true;
  } else {
    return false;
  }
}

// isNothing() -- Return true if string contains no usable value.
function isNothing(s) {
  if ((s == null) || (s == "") || isBlank(s)) {
    return true;
  } else {
    return false;
  }
}

// checkDayOfWeek() -- 
function checkDayOfWeek(dte) {
  monthNames = new Array(12);
  monthNames[1]  = "January";
  monthNames[2]  = "February";
  monthNames[3]  = "March";
  monthNames[4]  = "April";
  monthNames[5]  = "May";
  monthNames[6]  = "June";
  monthNames[7]  = "July";
  monthNames[8]  = "August";
  monthNames[9]  = "September";
  monthNames[10] = "October";
  monthNames[11] = "November";
  monthNames[12] = "December";
  var yy = dte.substring(0, 2);
  var mm = dte.substring(2, 4);
  var dd = dte.substring(4, 6);
  var EnteredDate = new Date(monthNames[parseInt(mm,10)] + " " + dd + ", 20" + yy);
  var DayOfWeek = EnteredDate.getDay();
  if ((DayOfWeek >= 1) && (DayOfWeek <= 5)) { // Allow Monday through Friday.
    return true;
  } else {
    return false;
  }
}

// getStrFront() --
function getStrFront(MainStr, SearchStr) {
  FoundOffset = MainStr.indexOf(SearchStr);
  if (FoundOffset == -1) {
    return null;
  }
  return MainStr.substring(0, FoundOffset);
}

// getStrEnd() --
function getStrEnd(MainStr, SearchStr) {
  FoundOffset = MainStr.indexOf(SearchStr);
  if (FoundOffset == -1) {
    return null;
  }
  return MainStr.substring(FoundOffset + SearchStr.length, MainStr.length);
} 

// isDate() --
function isDate(InputStr) {
  // Convert any hyphen delimiters to slashes.
  while (InputStr.indexOf("-") != -1) { 
    InputStr = replaceStr(InputStr, "-", "/");
  }
  // Check delimiters -- 0 or 2 are allowed.
  var Delim1 = InputStr.indexOf("/");
  var Delim2 = InputStr.lastIndexOf("/");
  if ((Delim1 != -1) && (Delim1 == Delim2)) {
    return false;
  }
  // Extract date pieces; logic varies depending on delimiters.
  if (Delim1 != -1) {
    // There are delimiters.
    var mm = parseInt(InputStr.substring(0, Delim1), 10);
    var dd = parseInt(InputStr.substring(Delim1 + 1, Delim2), 10);
    var yy = parseInt(InputStr.substring(Delim2 + 1, Delim2 + 3), 10);
  } else {
    // No delimiters.
    var mm = parseInt(InputStr.substring(0, 2), 10);
    var dd = parseInt(InputStr.substring(2, 4), 10);
    var yy = parseInt(InputStr.substring(4, 6), 10);
  }
  // Check if any date pieces are not numbers.
  if ((isNaN(mm)) || (isNaN(dd)) || (isNaN(yy))) {
    return false;
  }
  // Check month range.
  if ((mm < 1) || (mm > 12)) {
    return false;
  }
  // Determine number of days in month.
  if ((mm == 1) || (mm == 3) || 
      (mm == 5) || (mm == 7) || 
      (mm == 8) || (mm == 10) || (mm == 12)) {
    var maxdd = 31;
  } else {
    if ((mm == 4) || (mm == 6) || 
        (mm == 9) || (mm == 11)) {
      var maxdd = 30;
    } else {
      if ((yy % 4) == 0) { // This will fail in 2100!
        var maxdd = 29;
      } else {
        var maxdd = 28;
      }
    }
  }
  // Check day range.
  if ((dd < 1) || (dd > maxdd)) {
    return false;
  }
  // Reached end, so must be good date.
  return rightChar("00" + yy, 2) + rightChar("00" + mm, 2) + rightChar("00" + dd, 2);
}

// replaceStr() --
function replaceStr(MainStr, SearchStr, ReplaceStr) {
  var FrontStr = getStrFront(MainStr, SearchStr);
  var EndStr = getStrEnd(MainStr, SearchStr);
  if ((FrontStr != null) && (EndStr != null)) {
    return FrontStr + ReplaceStr + EndStr;
  }
  return null;
}

// rightChar() --
function rightChar(InputStr, NumChar) {
  for (i = 1; i > NumChar; i++) {
    InputStr = " " + InputStr;
  }
  return InputStr.substring(InputStr.length - 2, InputStr.length);
}

// Use the Enter key to submit the form.
function enterSubmit(event, myform) {
	if (navigator.appName.indexOf("Netscape") != -1){
		// Netscape or Firefox browser  
		if (event && event.which == 13){
			myform.submit();
		} else {
		    return true;
		}
	} else {
		// All other browsers Microsoft, etc.
		if (window.event && window.event.keyCode == 13) {
   			myform.submit();
		} else {
   			return true;
   		}
	}
}

// checkall
function checkAll(checkboxName, masterCheckbox) {
	if (checkboxName && typeof checkboxName.length != "undefined"){
    	for(i = 0; i < checkboxName.length; i++) {
			checkboxName[i].checked = masterCheckbox.checked? true:false;
		}
	} else {
		var checkStatus = masterCheckbox.checked;
		checkboxName.checked = masterCheckbox.checked? true:false;
	}			
}


function NoneWithCheck(ss) {
	// ss will be undefined if there is only one, stupid bug
	if (ss && typeof ss.length != "undefined"){
		for(var i = 0; i < ss.length; i++) {
			if(ss[i].checked) { 
				return false; 
			}
		}
		return true;	
	} else {
		// If there is only a single checkbox check its state and return it
		return ss.checked? false:true;
	}
}

//
// Get the style property depending on the browser type.
// Example: getElementStyle("itemColor", "backgroundColor", "background-color");
//
function getElementStyle(elemID, IEStyleProp, CSSStyleProp) {
    var elem = document.getElementById(elemID);
    if (elem.currentStyle) {
        return elem.currentStyle[IEStyleProp];
    } else if (window.getComputedStyle) {
        var compStyle = window.getComputedStyle(elem, "");
        return compStyle.getPropertyValue(CSSStyleProp);
    }
    return "";
}
//---------------------------------------------------------

