﻿$(document).ready(function()
{
    //在文档中插入一个层, 用来显示ajax请求过程
    $("body").append("<div id='ajaxLoading' style='display:none;'><img src='/Content/img/other/ajax_loading.gif' /></div>");


    //    $("input").attr("class", function()
    //    {
    //        if ($(this).attr("class") == "" || $(this).attr("class") == null || $(this).attr("class") == undefined)
    //            return $(this).attr("type");
    //    });


    //设置表格行鼠标划过变色
    $(".gridView tr").hover
    (
        function()
        {
            $(this).addClass("hover");
        },
        function()
        {
            $(this).removeClass("hover");
        }
    );
    //表格隔行变色
    //$("tr:odd").addClass("odd");

    //符合web标准的打开新窗口方法(在要开新窗口的链接上加入rel="external")
    $("a[rel='external']").click(function() { window.open(this.href); return false; });

    //自定义提示(含title属性的元素)
    Tip("*");

    //滑动门
    $(".tabs > div:first").addClass("tabs-current");
    $(".tabs > div:gt(0)").addClass("tabs-hide");
    $(".tabs > ul li:first").addClass("tabs-selected");
    $(".tabs > ul li").click(function(e)
    {
        if (e.target != this) return;
        var tabs = $(this).parent().children("li");
        var panels = $(this).parent().parent().children("div");
        var index = $.inArray(this, tabs);
        if (!panels.eq(index)[0]) return;
        tabs.removeClass("tabs-selected").eq(index).addClass("tabs-selected");
        panels.attr("class", "tabs-hide").eq(index).attr("class", "tabs-current");
    });


    //表单中的清空按钮，清空所在表单中所有输入控件
    $(".clearBtn").click(function()
    {
        $(this).parents("form:first").find(":text, :file, :hidden, :password, textarea, select").val("").end().find(":radio, :checkbox").attr("checked", false);
    });


    /*
    //以下表示当指定的连接中包含指定的后缀名时增加相应的样式
    $("a[@href$=flv],a[@href$=mp4],a[@href$=mov],a[@href$=wmv],a[@href$=avi],a[@href$=mpg]").addClass("mov");
    $("a[@href$=zip],a[@href$=rar],a[@href$=gzip],a[@href$=bzip],a[@href$=ace],a[@href$=7z]").addClass("zip");
    $("a[@href$=txt]").addClass("txt");
    $("a[@href$=jpg],a[@href$=gif],a[@href$=bmp],a[@href$=png]").addClass("pic");
    $("a[@href$=mp3],a[@href$=wav],a[@href$=ogg],a[@href$=wma],a[@href$=m4a]").addClass("mp3");
    $("a[@href$=fla],a[@href$=swf]").addClass("fla");
    //以下表示当指定的连接中包含指定的前缀时增加相应的样式
    $("a[@href^=mailto]").addClass("mailto");
    $("a[@href^=skype]").addClass("skype");
    $("a[@href^=msnim]").addClass("msnim");
    $("a[@href^=qqim]").addClass("qq");
    */
});

//ajax 请求开始
$("*").ajaxStart(function()
{
    $("#ajaxLoading").show();
});

//ajax 请求结束
$("*").ajaxStop(function()
{
    $("#ajaxLoading").hide();
});

//ajax 请求错误
$("*").ajaxError(function(event, XMLHttpRequest, ajaxOptions, error)
{
    alert("对不起，出错了 :-(");
});


//ckfinder 开始
//打开一个窗口浏览服务器文件 functionData：接收数据的对象
function BrowseServer(functionData)
{
    var finder = new CKFinder();
    finder.SelectFunction = SetFileField;
    finder.SelectFunctionData = functionData;
    finder.Popup();
}
function SetFileField(fileUrl, data)
{
    document.getElementById(data["selectFunctionData"]).value = fileUrl;
}
//ckfinder 结束


//设置提示
function Tip(obj)
{
    $(obj).tooltip({ track: true, delay: 0, showURL: false, fade: 0, showBody: " - " });
}

//类似C#中的string.Format();
String.format = function()
{
    if (arguments.length == 0)
    {
        return null;
    }

    var str = arguments[0];

    for (var i = 1; i < arguments.length; i++)
    {

        var re = new RegExp('\\{' + (i - 1) + '\\}', 'gm');
        str = str.replace(re, arguments[i]);
    }
    return str;
}

//返回事件源
function GetEvent()
{
    //ie
    if (document.all)
        return window.event;

    //firefox
    var func = GetEvent.caller;
    while (func != null)
    {
        var arg0 = func.arguments[0];
        if (arg0)
        {
            //if((arg0.constructor==Event || arg0.constructor ==MouseEvent)||(typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
            return arg0;
        }
        func = func.caller;
    }

    //opera
    return window.event;
}



//在光标处插入文本
function InsertText(obj, txt)
{
    obj = document.getElementById(obj);
    selection = document.selection;
    obj.focus();
    if (typeof obj.selectionStart != "undefined")
    {
        var s = obj.selectionStart;
        obj.value = obj.value.substr(0, obj.selectionStart) + txt + obj.value.substr(obj.selectionEnd);
        obj.selectionEnd = s + txt.length;
    } else if (selection && selection.createRange)
    {
        var sel = selection.createRange();
        sel.text = txt;
    } else
    {
        obj.value += txt;
    }
}


//HTML编码
function HTMLEncode(input)
{
    var converter = document.createElement("DIV");
    converter.innerText = input;
    var output = converter.innerHTML;
    converter = null;
    return output;
}

//HTML解码
function HTMLDecode(input)
{
    var converter = document.createElement("DIV");
    converter.innerHTML = input;
    var output = converter.innerText;
    converter = null;
    return output;
}

//加入收藏
function AddFavorite(sURL, sTitle)
{
    try
    {
        window.external.addFavorite(sURL, sTitle);
    }
    catch (e)
    {
        try
        {
            window.sidebar.addPanel(sTitle, sURL, "");
        }
        catch (e)
        {
            alert("加入收藏失败，请使用Ctrl+D进行添加");
        }
    }
}

//设为首页
function SetHome(obj, vrl)
{
    try
    {
        obj.style.behavior = 'url(#default#homepage)'; obj.setHomePage(vrl);
    }
    catch (e)
    {
        if (window.netscape)
        {
            try
            {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            }
            catch (e)
            {
                alert("此操作被浏览器拒绝！\n请在浏览器地址栏输入“about:config”并回车\n然后将[signed.applets.codebase_principal_support]设置为'true'");
            }
            var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
            prefs.setCharPref('browser.startup.homepage', vrl);
        }
    }
}

