function fGetXY(a, offset) {
  var p = offset ? offset.slice(0) : [ 0, 0 ], tn;
  while (a) {
    tn = a.tagName.toUpperCase();
    p[0] += a.offsetLeft - (tn == "DIV" && a.scrollLeft ? a.scrollLeft : 0);
    p[1] += a.offsetTop - (tn == "DIV" && a.scrollTop ? a.scrollTop : 0);
    if (tn == "BODY") {
      break;
    }
    a = a.offsetParent
  }
  return p
}
function getRadioValue(field) {
  if (field.length) {
    for ( var i = 0; i < field.length; i++) {
      if (field[i].checked) {
        return field[i].value
      }
    }
  } else {
    if (field.checked) {
      return field.value
    }
  }
  return null
}
function parseDate(str) {
  var date = new Date();
  date.setTime(Date.parse(str.replace("-", "/")));
  return date
}
function getCheckboxValues(field, uncheckedValue) {
  var valueArray = new Array();
  if (field.length) {
    for ( var i = 0; i < field.length; i++) {
      if (field[i].checked) {
        valueArray[i] = field[i].value
      } else {
        valueArray[i] = uncheckedValue
      }
    }
  } else {
    if (field.checked) {
      valueArray[0] = field.value
    } else {
      valueArray[0] = uncheckedValue
    }
  }
  return valueArray
}
function getValueArray(fields) {
  var valueArray = new Array();
  if (!fields) {
    return valueArray
  }
  if (!fields.length) {
    if (fields.value) {
      valueArray[0] = fields.value
    }
    return valueArray
  }
  if ("checkbox" == fields[0].type || "radio" == fields[0].type) {
    var index = 0;
    for ( var i = 0; i < fields.length; i++) {
      if (fields[i].checked) {
        valueArray[index++] = fields[i].value
      }
    }
  } else {
    for ( var i = 0; i < fields.length; i++) {
      valueArray[i] = fields[i].value
    }
  }
  return valueArray
}
var clientErrors = new Array();
var clientErrorCount = 0;
function addClientError(anErrorMessage) {
  clientErrors[clientErrorCount++] = anErrorMessage
}
function hasClientErrors() {
  return clientErrors.length > 0
}
function drawClientMessages() {
  var allMessages = "";
  if (clientErrors.length > 0) {
    allMessages += "<ul>";
    for ( var i = 0; i < clientErrors.length; i++) {
      allMessages += "<li>" + clientErrors[i] + "</li>"
    }
    allMessages += "</ul>";
    document.getElementById("message").innerHTML = allMessages
  }
}
var feildErrorStyle = "float:left;margin-left:15px;padding-top:5px;padding:3px;padding-right:10px;border:solid 1px #FF6600;background-color:#FFF2E9;";
var errorStyle = "float:left;border:solid 1px #FF6600;background-color:#FFF2E9;";
var errorImage = " <img src=\"../images/index/icon_red.gif\" width=\"14\" height=\"14\" align=\"absmiddle\" /> ";
var messageStyle = "float:left;border:solid 1px #00BE00;background-color:#E6FFE6;";
var messageImage = " <img src=\"../images/index/icon_green.gif\" width=\"14\" height=\"14\" align=\"absmiddle\" /> ";
var promptStyle = "float:left;margin-left:15px;padding:3px;padding-right:10px;border:solid 1px #00A8FF;background-color:#E2F5FF;";
var promptImage = " <img src=\"../images/index/icon_blue.gif\" width=\"14\" height=\"14\" align=\"absmiddle\" /> ";
function clearMessages(divId) {
  var div = document.getElementById(divId);
  div.innerHTML = "";
  div.style.cssText = ""
}
function drawClientMessage(divId, message) {
  var div = document.getElementById(divId);
  div.style.cssText = messageStyle;
  div.innerHTML = messageImage + message;
  window.scrollTo(0, 0)
}
function drawClientError(divId, error) {
  var div = document.getElementById(divId);
  div.style.cssText = errorStyle;
  div.innerHTML = errorImage + error;
  window.scrollTo(0, 0)
}
function drawMessages(reply, errorDivId) {
  var result = reply.getResult();
  var allMessages = "";
  if (reply.isFault()) {
    allMessages += "code: " + result.code + "<br />";
    allMessages += "message: " + result.message + "";
    var errorDiv = document.getElementById("actionError");
    if (errorDiv) {
      errorDiv.style.cssText = errorStyle;
      errorDiv.innerHTML = errorImage + allMessages
    }
    return
  }
  if (result.script) {
    eval(result.script)
  }
  if (result.fieldErrors) {
    for ( var i in result.fieldErrors) {
      if (i == Buffalo.BOCLASS) {
        continue
      }
      var errorDiv = document.getElementById(i + "Error");
      if (errorDiv) {
        errorDiv.style.cssText = feildErrorStyle;
        errorDiv.innerHTML = errorImage + result.fieldErrors[i]
      }
    }
  }
  if (result.actionMessages && result.actionMessages.length > 0) {
    if (!errorDivId) {
      errorDivId = "actionError";
    }
    var errorDiv = document.getElementById(errorDivId);
    if (errorDiv) {
      errorDiv.style.cssText = messageStyle;
      errorDiv.innerHTML = messageImage + result.actionMessages
    }
  } else if (result.actionErrors && result.actionErrors.length > 0) {
    if (!errorDivId) {
      errorDivId = "actionError";
    }
    var errorDiv = document.getElementById(errorDivId);
    if (errorDiv) {
      errorDiv.style.cssText = errorStyle;
      errorDiv.innerHTML = errorImage + result.actionErrors
    }
  }
}
function drawSuccessMessage(successMessage) {
  var errorDiv = document.getElementById("actionError");
  errorDiv.style.cssText = messageStyle;
  errorDiv.innerHTML = messageImage + successMessage
}
function drawErrorMessage(errorMessage) {
  var errorDiv = document.getElementById("actionError");
  errorDiv.style.cssText = errorStyle;
  errorDiv.innerHTML = errorImage + errorMessage
}
function alertMessages(reply) {
  var result = reply.getResult();
  var allMessages = "";
  if (reply.isFault()) {
    allMessages += "code: " + result.code + "\n";
    allMessages += "message: " + result.message + "\n";
    alert(allMessages);
    return
  }
  if (result.script) {
    eval(result.script)
  }
  if (result.actionMessages.length > 0) {
    for ( var i = 0; i < result.actionMessages.length; i++) {
      allMessages += result.actionMessages[i] + "\n"
    }
    alert(allMessages)
  } else if (result.actionErrors.length > 0) {
    for ( var i = 0; i < result.actionErrors.length; i++) {
      allMessages += result.actionErrors[i] + "\n"
    }
    alert(allMessages)
  }
}
function hasErrors(reply) {
  return reply.isFault() || hasActionErrors(reply) > 0 || hasFieldErrors(reply) > 0
}
function hasActionErrors(reply) {
  var result = reply.getResult();
  return result && result.actionErrors && result.actionErrors.length > 0
}
function hasActionMessages(reply) {
  var result = reply.getResult();
  return result && result.actionMessages && result.actionMessages.length > 0
}
function hasFieldErrors(reply) {
  var result = reply.getResult();
  if (!result || !result.fieldErrors) {
    return false
  }
  var errors = result.fieldErrors;
  for (i in errors) {
    return true
  }
  return false
}
var buffalo = new Buffalo("");
buffalo.onLoading = function(state) {
};
function openPrompt(field) {
  var promptMessage = promptMessages[field.name];
  if (!promptMessage) {
    return
  }
  var errorDiv = document.getElementById(field.name + "Error");
  errorDiv.style.cssText = promptStyle;
  errorDiv.innerHTML = promptImage + promptMessage
}
function closePrompt(field) {
  var errorDiv = document.getElementById(field.name + "Error");
  errorDiv.style.cssText = "";
  errorDiv.innerHTML = ""
}
function openActionPrompt(promptContent) {
  var errorDiv = document.getElementById("actionError");
  errorDiv.style.cssText = promptStyle;
  errorDiv.innerHTML = promptImage + promptContent
}
function closeActionPrompt(promptMessages) {
  var actionErrorDiv = document.getElementById("actionError");
  actionErrorDiv.innerHTML = "";
  actionErrorDiv.style.cssText = "";
  actionErrorDiv.style.disply = "none";
  if (promptMessages == null) {
    return
  }
  for ( var fieldName in promptMessages) {
    var fieldErrorDiv = document.getElementById(fieldName + "Error");
    if (fieldErrorDiv) {
      fieldErrorDiv.style.cssText = "";
      fieldErrorDiv.innerHTML = ""
    }
  }
}
function isDate(dateStr, dilimeter) {
  if (dateStr == null) {
    return false
  }
  if (dilimeter == "" || dilimeter == null) {
    dilimeter = "-"
  }
  var tempy = "";
  var tempm = "";
  var tempd = "";
  var tempArray;
  if (dateStr.length < 8 && dateStr.length > 10) {
    return false
  }
  tempArray = dateStr.split(dilimeter);
  if (tempArray.length != 3) {
    return false
  }
  if (tempArray[0].length == 4) {
    tempy = tempArray[0];
    tempd = tempArray[2]
  } else {
    tempy = tempArray[2];
    tempd = tempArray[1]
  }
  tempm = tempArray[1];
  var tDateString = tempy + "/" + tempm + "/" + tempd;
  var tempDate = new Date(tDateString);
  if (isNaN(tempDate)) {
    return false
  }
  if (((tempDate.getUTCFullYear()).toString() == tempy) && (tempDate.getMonth() == parseInt(tempm) - 1)
      && (tempDate.getDate() == parseInt(tempd))) {
    return true
  } else {
    return false
  }
}


String.prototype.trim = function(){
  return this.replace(/(^\s*)|(\s*$)/g, ""); 
}

