﻿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;
}

//用来客户端信息显示
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 errorStyle = "float:left;margin-left:15px;padding:3px;padding-right:10px;border:solid 1px #FF6600;background-color:#FFF2E9;";
var feildErrorStyle = "float:left;margin-left:5px;padding-top:5px;padding:3px;padding-right:10px;border:solid 1px #FF6600;background-color:#FFF2E9;";
var errorStyle = "float:left;padding:3px;border:solid 1px #FF6600;background-color:#FFF2E9;";
var errorImage = " <img src=\"../images/admin/icon_red.gif\" width=\"14\" height=\"14\" align=\"absmiddle\" /> ";
//var messageStyle = "float:left;margin-left:15px;padding:3px;padding-right:10px;border:solid 1px #00BE00;background-color:#E6FFE6;";
var messageStyle = "float:left;padding:3px;border:solid 1px #00BE00;background-color:#E6FFE6;";
var messageImage = " <img src=\"../images/admin/icon_green.gif\" width=\"14\" height=\"14\" align=\"absmiddle\" /> ";
var promptStyle = "float:left;margin-left:5px;padding:3px;border:solid 1px #00A8FF;background-color:#E2F5FF;";
var promptImage = " <img src=\"../images/admin/icon_blue.gif\" width=\"14\" height=\"14\" align=\"absmiddle\" /> ";

// 清除提示信息
function clearMessages(divId) {
   var div = document.getElementById(divId);
   div.style.cssText = "";
   div.innerHTML = "";
}

// 显示客户端提示信息
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) {
    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("actionError").innerHTML = allMessages;
        return;
    }

    // If return a script, execute it
    if (result.script) {
        eval(result.script);
    }

    if (result.fieldErrors) {
        for (var i in result.fieldErrors) {
            if (i == Buffalo.BOCLASS) {
                continue;
            }
            //alert(i + ":" + result.fieldErrors[i]);
            var errorDiv = document.getElementById(i + "Error");
            //alert(errorDiv.style.cssText);
            if (errorDiv) {
                errorDiv.style.cssText = feildErrorStyle;
                errorDiv.innerHTML = errorImage + result.fieldErrors[i];
            }
        }
    }

    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;

        var errorDiv = document.getElementById("actionError");
        if (errorDiv) {
            errorDiv.style.cssText = messageStyle;
            errorDiv.innerHTML = messageImage + result.actionMessages;
        }
    }
    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;

        var errorDiv = document.getElementById("actionError");
        if (errorDiv) {
            errorDiv.style.cssText = errorStyle;
            errorDiv.innerHTML = errorImage + result.actionErrors;
        }
    }
}

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 return a script, execute it
    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) {
/*
    if (state) {
        window.status = "加载中...";
    }
    else {
        window.status = "加载完成";
    }
*/
}

function openPrompt(field) {
    var promptMessage = promptMessages[field.name];
    if (null == 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 = "";
    
    var fieldNameInit = field.name + "_init";
    var promptMessageInit = promptMessages[fieldNameInit];

    if (null == promptMessageInit) {
        errorDiv.innerHTML = "";
    }else{
    	errorDiv.innerHTML = promptMessageInit;
    }

}

function openActionPrompt(promptContent) {
    var errorDiv = document.getElementById("actionError");
    errorDiv.style.cssText = promptStyle;
    errorDiv.innerHTML = promptImage + promptContent;
}

function closeActionPrompt() {
    var errorDiv = document.getElementById("actionError");
    errorDiv.style.cssText = "";
    errorDiv.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;
    }
}

