﻿//myAjax.js

//通过ID获取控件
function $(objId) {
    return document.getElementById(objId);
}

//控件内部输出值
function echo(objName, objValue, SetValue) {
    var obj = typeof (objName) == "object" ? objName : $(objName);
    if (objValue == null) objValue = (SetValue == null ? '<img src="/images/loading.gif" style="border:0px" /> loading...' : 'loading...');
    SetValue == null ? obj.innerHTML = objValue : obj.value = objValue;
}

//通过name获取控件集合
function $N(objName) {
    return document.getElementsByName(objName);
}

//通过tagName获取控件集合
function $T(objName) {
    return document.documentElement.getElementsByTagName(objName);
}

//url参数
function $Q(urlId, splitStr, isTop) {
    var Url = !isTop ? window.location.href : top.window.location.href;
    var u = Url.indexOf(!splitStr ? '?' : splitStr);
    var g = u >= 0 ? Url.substring(u + 1) : '';
    if (g != '') {
        if (typeof (urlId) != "string") {
            return g;
        }

        var gg = g.split('&');
        var str = urlId + '=';
        for (xm = 0; xm < gg.length; xm++) {
            if (gg[xm].indexOf(str) == 0) {
                return ((gg[xm].replace(str, '')).split('#')[0]);
            }
        }
    }
    return '';
}

//除去首尾空格
function trim(str) {
    return (str + '').replace(/(\s+)$/g, '').replace(/^\s+/g, '');
}

//Ajax提交
function myAjax(WebUrl, FuncName, IsXmlHttpObject, postData) {
    var xmlhttp = false;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
        if (xmlhttp.overrideMimeType) xmlhttp.overrideMimeType('text/xml');
    }
    else if (window.ActiveXObject) {
        var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
        for (var i = 0; i < versions.length; i++) {
            try {
                xmlhttp = new ActiveXObject(versions[i]);
                if (xmlhttp) break;
            }
            catch (e) { }
        }
    }
    if (xmlhttp) {
        xmlhttp.open(postData == null ? "GET" : "POST", WebUrl, true);
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                var Value = (!IsXmlHttpObject) ? xmlhttp.responseText : xmlhttp;
                switch (typeof (FuncName)) {
                    case "function":
                        FuncName(Value);
                        break;
                    case "string":
                        eval(FuncName);
                        break;
                }
            }
        }
        if (postData != null) {
            xmlhttp.setRequestHeader("content-length", postData.length);
            xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded");
        }
        xmlhttp.send(postData);
    }
    else {
        alert('你的浏览器不支持XMLHTTP,请升级');
    }
}

//回车提交
function onSubmitKey(FunName) {

    if (window.event.keyCode == 13) {
        RunFunction(FunName);
        return false;
    }
    return true;
}

//表单提交
function Ctlent(FunName, ret) {
    //ctrl + Enter
    if (window.event.ctrlKey && window.event.keyCode == 13) {
        RunFunction(FunName);
        return ret;
    }
    return true;
}

function RunFunction(FunName) {
    switch (typeof (FunName)) {
        case 'function': FunName; break;
        case 'string': window.eval(FunName); break;
        default: break;
    }
}

//关闭窗口
function CloseWindow(alertStr) {
    if (alertStr != null) alert(alertStr);
    window.open('', '_parent', '');
    window.close();
}

//设置select值
function setSelectedIndex(objName, selectedValue) {
    var obj = $(objName);
    for (var i = 0; i < obj.options.length; i++) {
        if (obj.options[i].value == selectedValue) {
            obj.selectedIndex = i;
            break;
        }
    }
}

function onCheckAll(checkboxID, checkboxsName, labelName) {
    var allcb = $N(checkboxsName);
    if (allcb.length == 0) return false;
    var ischecked = $(checkboxID).checked;
    for (var ii = 0; ii < allcb.length; ii++) { allcb[ii].checked = ischecked; }
    if (labelName != null && labelName != '') echo($(labelName), ischecked ? '取消全选' : '全选');
}

function CopyData(ObjName, Content, AlertInfo) {
    var meintext = !ObjName ? Content : $(ObjName).value;
    if (window.clipboardData) {

        // the IE-manier
        window.clipboardData.setData('Text', meintext);

        // waarschijnlijk niet de beste manier om Moz/NS te detecteren;
        // het is mij echter onbekend vanaf welke versie dit precies werkt:
    }
    else if (window.netscape) {

        // dit is belangrijk maar staat nergens duidelijk vermeld:
        // you have to sign the code to enable this, or see notes below 
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

        // maak een interface naar het clipboard
        var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
        if (!clip) return;

        // maak een transferable
        var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
        if (!trans) return;

        // specificeer wat voor soort data we op willen halen; text in dit geval
        trans.addDataFlavor('text/unicode');

        // om de data uit de transferable te halen hebben we 2 nieuwe objecten 
        // nodig om het in op te slaan
        var str = new Object();
        var len = new Object();

        var str = Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString);

        var copytext = meintext;

        str.data = copytext;

        trans.setTransferData("text/unicode", str, copytext.length * 2);

        var clipid = Components.interfaces.nsIClipboard;

        if (!clip) { alert('可能是浏览器原因导致失败，请点击右键复制吧^_^'); return; }

        clip.setData(trans, null, clipid.kGlobalClipboard);
    }
    if (AlertInfo != null) alert(AlertInfo);
}


//设定图片显示尺寸
function DrawImage(ImgD, w, h) {
    var image = new Image();
    image.src = ImgD.src;
    if (image.width > 0 && image.height > 0) {
        if (image.width / image.height >= w / h) {
            if (image.width > w) {
                ImgD.width = w;
                ImgD.height = (image.height * w) / image.width;
            } else {
                ImgD.width = image.width;
                ImgD.height = image.height;
            }
        } else {
            if (image.height > h) {
                ImgD.height = h;
                ImgD.width = (image.width * h) / image.height;
            } else {
                ImgD.width = image.width;
                ImgD.height = image.height;
            }
        }
    }
}

function FlashObj(PlayerServer, FlashID, FlashVarsValues, swf_width, swf_height) {
    var fObj = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" '
	+ 'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" '
	+ 'width="' + swf_width + '" height="' + swf_height + '" id="' + FlashID + '">'
	+ '<param name="allowScriptAccess" value="sameDomain" /><param name="wmode" value="transparent" />'
	+ '<param name="movie" value="' + PlayerServer + '" />'
	+ '<param name="quality" value="high" /><param name="wmode" value="transparent"><param name="allowFullScreen" value="true" />'
	+ '<param name="FlashVars" value="' + FlashVarsValues + '" />'
	+ '<embed src="' + PlayerServer + '" allowFullScreen="true" wmode="transparent" FlashVars="' + FlashVarsValues + '" '
	+ 'quality="high" width="' + swf_width + '" height="' + swf_height + '" name="' + FlashID + '" align="middle" allowScriptAccess="sameDomain" '
	+ 'type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>';
    return fObj;
}
