﻿String.prototype.trim = function()
{
    var reg = new RegExp(/(^[ ]+)|([ ]+$)/g)
    return this.replace(reg, "");
}
//为控制增加事件，兼容IE和Firefox
function addEventHandle(control, eventname, eventHandle)
{
    if (window.addEventListener)
    {
        control.addEventListener(eventname, eventHandle, false);
    }
    else
    {
        eventname = "on" + eventname;
        control.attachEvent(eventname, eventHandle)
    }
}

function removeEventHandle(control, eventname, eventHandle)
{
    if (window.addEventListener)
    {
        control.removeEventListener(eventname, eventHandle, false);
    }
    else
    {
        eventname = "on" + eventname;
        control.detachEvent(eventname, eventHandle)
    }
}

//取得客户端事件后重新封装，兼容IE和Firefox
function myEvent()
{
    this.target;
    this.type;
    this.offsetX;
    this.offsetY;
    this.clientX;
    this.clientY;
    this.screenX;
    this.screenY;
    this.button;
    this.keyCode;
    this.shiftKey;
    this.altKey;
    this.ctrlKey;
    this.fromElement;
    this.toElement;
    this.event;
    this.isIEEvent;
    this.initialize = function()
    {
        if (window.addEventListener)
        {
            this.isIEEvent = false;
            var func = this.initialize.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))
                    {
                        this.event = arg0;
                        if (this.event != null)
                        {
                            this.target = this.event.target;
                            this.offsetX = this.event.layerX;
                            this.offsetY = this.event.layerY;
                            this.fromElement = this.event.relatedTarget;
                            this.toElement = this.event.relatedTarget;
                            break;
                        }
                    }
                }
                func = func.caller;
            }

        }
        else
        {
            this.isIEEvent = true;
            this.event = window.event;
            if (this.event != null)
            {
                this.target = this.event.srcElement;
                this.offsetX = this.event.offsetX;
                this.offsetY = this.event.offsetY;
                this.fromElement = this.event.fromElement;
                this.toElement = this.event.toElement;
            }
        }
        if (this.event != null)
        {
            this.type = this.event.type;
            this.clientX = this.event.clientX;
            this.clientY = this.event.clientY;
            this.screenX = this.event.screenX;
            this.screenY = this.event.screenY;
            this.button = this.event.button;
            this.keyCode = this.event.keyCode;
            this.shiftKey = this.event.shiftKey;
            this.altKey = this.event.altKey; 
            this.ctrlKey = this.event.ctrlKey;
            return true;
        } 
        return false;
    }
}
function $getUrlSearchParamters()
{
    //返回格式为{key:value,key:value}
    var queryString = window.location.search;
    queryString = queryString.length > 3 ? queryString.substr(1) : null;
    var searchObject = {};
    if (queryString != null)
    {
        var queryKeyValues = queryString.split("&");
        var searchObjectString = "searchObject={";
        for (var i = 0; i < queryKeyValues.length; i++)
        {
            var keyValue = queryKeyValues[i].split("=");
            var key = keyValue[0];
            var value = decodeURIComponent(keyValue[1].trim());
            searchObjectString += (i > 0 ? ",\"" : "\"") + key + "\":" + "\"" + value + "\"";
        }
        searchObjectString += "}"
        eval(searchObjectString);
    }
    return searchObject;
}
function addbookmark(siteName)
{
    var nome_sito = siteName;
    var url_sito = location;
    if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4))
    {
        window.external.AddFavorite(url_sito, nome_sito);
    }
    else if (navigator.appName == "Netscape")
    {
        window.sidebar.addPanel(nome_sito, url_sito, "");
    }
    else
    {
        alert("Sorry!Cannt Add this site to your favorite!.");
    }
}

function topPageRedirect(url)
{
    if (url != null)
    {
        var parentPage = parent;
        while (parentPage.parent != parentPage)
        {
            parentPage = parentPage.parent;
        }
        parentPage.location.href = url;
    }
}

function $pageReferenceJS(jsFile)
{
    var checkIsReference = function()
    {
        if (jsFile == null)
        {
            return false;
        }
        var scripts = document.getElementsByTagName("SCRIPT");
        if (scripts != null && scripts.length > 0)
        {
            for (var i = 0; i < scripts.length; i++)
            {
                var scriptInfo = scripts[i]
                if (scriptInfo.src != null && scriptInfo.src != "" && scriptInfo.src.toLowerCase() == jsFile.toLowerCase())
                {
                    return true;
                }
            }
        }
        return false;
    }
    var reference = function()
    {
        if (jsFile != null)
        {
            if (!checkIsReference())
            {
                var head = document.getElementsByTagName("HEAD");
                var script = document.createElement("script");
                script.type = "text/javascript";
                script.src = jsFile;
                if (head != null && head.length > 0)
                {
                    head[0].appendChild(script)
                }
            }
        }
    }
    reference();
}


function $pageReferenceCSS(cssFile)
{
    var checkIsReference = function()
    {
        if (cssFile == null)
        {
            return false;
        }
        var cssLinks = document.getElementsByTagName("LINK");
        if (cssLinks != null && cssLinks.length > 0)
        {
            for (var i = 0; i < cssLinks.length; i++)
            {
                var cssInfo = cssLinks[i]
                if (cssInfo.href != null && cssInfo.href != "" && cssInfo.href.toLowerCase() == cssFile.toLowerCase())
                {
                    return true;
                }
            }
        }
        return false;
    }

    var reference = function()
    {
        if (cssFile != null)
        {
            if (!checkIsReference())
            {
                var head = document.getElementsByTagName("HEAD");
                var cssInfo = document.createElement("link");
                cssInfo.rel = "stylesheet";
                cssInfo.type = "text/css";
                cssInfo.href = cssFile;
                if (head != null && head.length > 0)
                {
                    head[0].appendChild(cssInfo)
                }
            }
        }
    }
    reference();
}

function tabPanle(p)
{
    //              p=
    //              {
    //                    defaultIndex:0,
    //                    titleDefauleCss:"",
    //                    titleSelectedCss:"",
    //                    itemChangedEvent:null
    //              }
    var defaultIndex = 0;
    var titleDefauleCss = null;
    var titleSelectedCss = null;
    var itemChangedEvent = null;
    var initialize = function()
    {
        if (p.defaultIndex != null)
        {
            defaultIndex = p.defaultIndex;
        }
        titleDefauleCss = p.titleDefauleCss;
        titleSelectedCss = p.titleSelectedCss;

        if (p.itemChangedEvent != null)
        {
            itemChangedEvent = p.itemChangedEvent;
        }
    }
    initialize();
    var currentItem = null;
    var items = [];
    //            var item=
    //            {
    //                titleBar:null,
    //                contentBar:null
    //            }

    this.add = function(item)
    {
        item.index = items.length;
        items[items.length] = item;
    }
    this.getItems = function()
    {
        return items;
    }
    var addItemTitleOnClickEvent = function(i)
    {
        var item = items[i];

        function titleOnClick()
        {
            if (currentItem != null)
            {
                if (currentItem.titleBar != null)
                {
                    if (titleDefauleCss != null)
                        currentItem.titleBar.className = titleDefauleCss;
                }
                if (currentItem.contentBar != null)
                {
                    currentItem.contentBar.style.display = "none";
                }
            }
            if (item != null)
            {
                currentItem = item;
            }
            if (currentItem != null)
            {
                if (currentItem.titleBar != null)
                {
                    if (titleSelectedCss != null)
                        currentItem.titleBar.className = titleSelectedCss;
                }
                if (currentItem.contentBar != null)
                {
                    currentItem.contentBar.style.display = "";
                }
            }
            if (itemChangedEvent != null)
            {
                itemChangedEvent(currentItem.titleBar, { index: i, item: currentItem });
            }
        }
        addEventHandle(item.titleBar, "click", titleOnClick)
    }
    var isAddEvent = false;
    var addItemEvent = function()
    {
        if (isAddEvent)
        {
            return;
        }
        for (var i = 0; i < items.length; i++)
        {
            addItemTitleOnClickEvent(i);
        }

        isAddEvent = true;
    }
    this.setTab = function(index)
    {
        if (index == null)
        {
            index = defaultIndex;
        }
        for (var i = 0; i < items.length; i++)
        {
            var item = items[i];
            if (item != null)
            {
                if (item.titleBar != null)
                {
                    if (titleDefauleCss != null)
                        item.titleBar.className = titleDefauleCss;
                }
                if (item.contentBar != null)
                {
                    item.contentBar.style.display = "none";
                }
                if (index == i)
                {
                    currentItem = item;
                }
            }
        }

        if (currentItem != null)
        {
            if (currentItem.titleBar != null)
            {
                if (titleSelectedCss != null)
                    currentItem.titleBar.className = titleSelectedCss;
            }
            if (currentItem.contentBar != null)
            {
                currentItem.contentBar.style.display = "";
            }

            if (itemChangedEvent != null)
            {
                itemChangedEvent(currentItem.titleBar, { index: index, item: currentItem });
            }
        }
        addItemEvent();
    }

}
