// Javascript utilities 
// The contents of this file are Copyright © JHC Technology Limited, 2006-2011
// Version 1.1

function showDiv(divid) {
  if (document.layers) {
    document.layers[divid].visibility="show";
  }
  else {
    document.getElementById(divid).style.visibility="visible";
  }  
}

function hideDiv(divid) {
  if (document.layers) {
    document.layers[divid].visibility="hide";
  }
  else {
    document.getElementById(divid).style.visibility="hidden";
  }
}

function expandDiv(divid) {
  if (document.layers) {
    document.layers[divid].display="block";
  }
  else {
    document.getElementById(divid).style.display="block";
  }  
}

function contractDiv(divid) {
  if (document.layers) {
    document.layers[divid].display="none";
  }
  else {
    document.getElementById(divid).style.display="none";
  }
}

function isDivVisible(divid) {
  if (document.layers) {
    if (document.layers[divid].display == "visible") {
      return true;
    }
    if (document.layers[divid].display == "block") {
      return true;
    }
  }
  else {
    if (document.getElementById(divid).style.display == "visible") {
      return true;
    }  
    if (document.getElementById(divid).style.display == "block") {
      return true;
    }
  }
  return false;
}

function getSelectedRadio(aButtonGroup) {
  if (aButtonGroup[0]) { 
    for (var i = 0; i < aButtonGroup.length; i++) {
      if (aButtonGroup[i].checked) {
        return i
      }
    }
  } 
  else {
    if (aButtonGroup.checked) { 
      return 0; 
    } 
  }
  return -1;
} 

function getSelectedRadioValue(aButtonGroup) {
  var i = getSelectedRadio(aButtonGroup);
  if (i == -1) {
    return "";
  } else {
    if (aButtonGroup[i]) { 
      return aButtonGroup[i].value;
    } 
    else { 
      return aButtonGroup.value;
    }
  }
}

String.prototype.trim = function() {
  return ((ar=/^\s*([\s\S]*\S+)\s*$/.exec(this)) ? ar[1] : ""); 
}

function trim(str) {
  if (str == null) {
    return ("");
  }
  else {
    return (str.trim());
  }
} 

function addBookmark(strTitle) {
  var strUrl = location.href;
  if (arguments.length == 0) {
    strTitle = document.title;
  }
  else if (trim(strTitle) == "") {
    strTitle = document.title;
  }
  window.external.AddFavorite(strUrl, strTitle);
}
                         
function setCookie(strName, strValue, nTtlDays){
  var dtExpDate = new Date();
  dtExpDate.setDate(dtExpDate.getDate() + nTtlDays);
  var strValue = escape(strValue) + ((nTtlDays == null) ? "" : "; expires=" + dtExpDate.toUTCString());
  document.cookie = strName + "=" + strValue;
}

function getCookie(strName) {
  var aCookies = document.cookie.split( ';' );
  var aCookie = '';
  var strCookieName = '';
  var strCookieValue = '';
  var bCookieFound = false; 
  strName = trim(strName);
  for ( i = 0; i < aCookies.length; i++ ) {
		aCookie = aCookies[i].split( '=' );
		strCookieName = trim(aCookie[0]);
		if (strCookieName == strName) {
			bCookieFound = true;
			if (aCookie.length > 1) {
				strCookieValue = unescape(trim(aCookie[1]));
			}
			return strCookieValue;
			break;
		}
		aCookie = null;
		strCookieName = '';
	}
	if (!bCookieFound) {
		return null;
	}
}

function hasCookies() {
  if (document.cookie) {
     return true;
  }
  return false;
}  

function deleteCookie(strName) {
  if (getCookie(strName)) {
    setCookie(strName, "", -2);
  }  
}

function setFieldById(strField, strValue) {
  setField(document.getElementById(strField.replace("[]", "")), strValue);
}

function setField(objField, strValue) {
  if (objField.type == "select-one") {
    for (i = 0; i < objField.options.length; i++) {
      if (objField.options[i].value == strValue) {
        objField.selectedIndex = i;
        break;
      }
    }
  }
  else if (objField.type == "select-multiple") {
    var strValueList = "," + strValue + ",";
    for (i = 0; i < objField.options.length; i++) {
      if (strValueList.indexOf(objField.options[i].value) != -1 && 
          objField.options[i].value != "") {
        objField.options[i].selected = true;
      }
    }
  }
  else if ((objField.type == "radio") || (objField[0] && objField[0].type == "radio")) {
    if (objField.length > 0) {
      for (i = 0; i < objField.length ; i++) {
        if (objField[i].value == strValue) {
          objField[i].checked = true;
          break;
        }
      }
    }
    else {
      if (objField.value == strValue) {
        objField.checked = true;
      }
    }
  }
  else if (objField.type = "checkbox") {
    if (typeof strValue == 'boolean') {
      objField.checked = strValue;
    }
    else if (strValue = "") {
      objField.checked = false;
    }
    else {
      objField.checked = true;
    }      
  }
  else {
    objField.value = strValue;
  }
}

function checkCheckbox(arrCheckbox) {
  var bSelected = false;
  if (arrCheckbox.length > 0) {
    for (i = 0; i < arrCheckbox.length ; i++) {
      if (arrCheckbox[i].checked) {
        bSelected = true;
        break;
      }
    }
  }
  else {
    bSelected = arrCheckbox.checked;
  }
  return bSelected;
}
