﻿function initImagePath(imagePath){
	if(!imagePath){
		return;
	}
	this.errorImage = " <img src=\"" + imagePath + "icon_red.gif\" width=\"14\" height=\"14\" align=\"absmiddle\" /> ";
	this.messageImage = " <img src=\"" + imagePath + "icon_green.gif\" width=\"14\" height=\"14\" align=\"absmiddle\" /> ";
	this.promptImage = " <img src=\"" + imagePath + "icon_blue.gif\" width=\"14\" height=\"14\" align=\"absmiddle\" /> ";
}

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;
    }
}

// 用来服务端返回信息显示
function drawMessages(reply) {
    var result = reply.getResult();
    var allMessages = "";

    // 如果返回消息有错误, 则显示异常信息
    if (reply.isFault()) {
        allMessages += "<ul>";
        allMessages += "<li>code: " + result.code + "</li>";
        allMessages += "<li>message: " + result.message + "</li>";
        allMessages += "</ul>";
        document.getElementById("message").innerHTML = allMessages;
        return;
    }

    // If return a script, execute it
    if (result.script) {
        eval(result.script);
    }

    if (result.actionMessages && result.actionMessages.length > 0) {
        for (var i = 0; i < result.actionMessages.length; i++) {
            allMessages += "<span>" + result.actionMessages[i] + "</span>";
        }
        document.getElementById("message").innerHTML = allMessages;
    }
    else if (result.actionErrors && result.actionErrors.length > 0) {
        allMessages += "<ul>";
        for (var i = 0; i < result.actionErrors.length; i++) {
            allMessages += "<li>" + result.actionErrors[i] + "</li>";
        }
        allMessages += "</ul>";
        document.getElementById("message").innerHTML = allMessages;
    }
}

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;
    }

    // 如果返回信息为"forbidden"字符串, 说明没有操作的权限
    if (result == "forbidden") {
        top.location.href = top.location.href;
        return;
    }

    if (result.actionMessages && result.actionMessages.length > 0) {
        for (var i = 0; i < result.actionMessages.length; i++) {
            allMessages += result.actionMessages[i] + "\n";
        }
        alert(allMessages);
    }
    else if (result.actionErrors && 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 reply.isFault() || 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();
    return result && result.fieldErrors && result.fieldErrors.length > 0;
}

var buffalo = new Buffalo("");

buffalo.onLoading = function(state) {
/*
    if (state) {
        window.status = "加载中...";
    }
    else {
        window.status = "加载完成";
    }
*/
}