﻿//tab 选择卡
function settab(area, id, style) {
    var contents = $("#" + area + "div").children();
    contents.hide();
    contents.eq(id).show();

    var tabs = $("#" + area + "tabs").children();
    tabs.attr("class", style + "tabs_2");
    tabs.eq(id).attr("class", style + "tabs_1");
}
////上面的TAG效果是通用型的

//tab 选择卡
function setTab(area,id,style_1,style_2) {
	var tabArea=document.getElementById(area);

	var contents=tabArea.childNodes;
	for(i=0; i<contents.length; i++) {
		if(contents[i].tagName=='UL'){contents[i].style.display='none';}
	}
	document.getElementById(id).style.display='';

	var tabs=document.getElementById(area+'tabs').getElementsByTagName('span');
	for(i=0; i<tabs.length; i++) { tabs[i].className=style_2; }
	document.getElementById(id+'tab').className=style_1;
}
////上面的TAG效果是通用型的

//tabs 选择卡
function setTabs(area,id,style) {
	var tabArea=document.getElementById(area).getElementsByTagName("ul");
	var tabs=document.getElementById(area+'Tabs').getElementsByTagName("span");

	for(i=0; i<tabArea.length; i++) {
		tabArea[i].style.display="none";
		tabs[i].className=style;
	}
	tabArea[id-1].style.display="";
	tabs[4-id].className=style + "_a";
}
////上面的TAG效果是通用型的

//酒店tab 选择卡
function sethotelTab(area,id,showItemID) {
	var tabArea=document.getElementById(area);

	var contents=tabArea.childNodes;
	for(i=0; i<contents.length; i++) {
		if(contents[i].tagName=='UL'){contents[i].style.display='none';}
	}
	document.getElementById(showItemID).style.display='';

	if('hainanHotel'==id){
		document.getElementById('hainanHotel').style.display='';

		var tabs=document.getElementById(area+'tabs').getElementsByTagName('span');
		for(i=0; i<tabs.length; i++) { tabs[i].className='rightcolumn_Menu'; }
		document.getElementById(showItemID+'tab').className='rightcolumn_ActionMenu';
	}else{
		document.getElementById('hainanHotel').style.display='none';
	}

	var tabs=document.getElementById(area+'tabs').getElementsByTagName('h1');
	for(i=0; i<tabs.length; i++) {
		tabs[i].className='rightcolumn_Menu1'; 
	}
	document.getElementById(id+'tab').className='rightcolumn_ActionMenu1';
}
////上面的TAG效果是酒店专用的

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); 
		 } 
	}
}

//DynamicLoad类用于动态加载js、vbs和css文件。
function DynamicLoad() {
    //属性
    var Self = this;  //对象自身
    //功能：加载指定的文件
    //参数：src——需要被加载的文件
    //返回：（无）
    this.Load = function (src) {
        if (Self.IsLoaded(src)) {  //判断该文件是否已经加载了
            Self.OnLoaded(src);
            return;
        } else { //如果没有加载，动态创建
            var objDynamic; //动态创建的对象
            var type = Self.GetSrcType(src); //文件类型
            if (type == "js" || type == "vbs") {
                objDynamic = document.createElement("script");
                objDynamic.src = src;
                if (type == "js") {
                    objDynamic.type = "text/javascript";
                    objDynamic.language = "javascript";
                } else {
                    objDynamic.type = "text/vbscript";
                    objDynamic.language = "vbscript";
                }
            } else if (type == "css") {
                objDynamic = document.createElement("link");
                objDynamic.rel = "stylesheet";
                objDynamic.type = "text/css";
                objDynamic.href = src;
            } else {
                Self.OnFailed(src);
                return;
            }
            document.getElementsByTagName("head")[0].appendChild(objDynamic); //将创建的对象插入到HEAD节中
            objDynamic.onload = objDynamic.onreadystatechange = function () { //加载过程中状态改变引发的事件
                //在此函数中this指针指的是s结点对象，而不是JsLoader实例，
                //所以必须用self来调用onsuccess事件，下同。
                if (this.readyState && this.readyState == "loading")
                    return;
                else
                    Self.OnLoaded(src);
            };
            objDynamic.onerror = function () { //加载过程中发生错误引发的事件
                document.getElementsByTagName("head")[0].removeChild(objDynamic);
                Self.OnFailed(src);
            };
        }
    };
    //功能：判断是否已经加载了某文件
    //参数：src——需要被检查的文件
    //返回：返回是否已经加载了该文件
    this.IsLoaded = function (src) {
        var isLoaded = false; //假设没有加载
        var type = Self.GetSrcType(src);  //得到文件的类型
        var i;  //用于循环的索引
        if (type == "js" || type == "vbs") {
            var scripts = document.getElementsByTagName("script"); //得到所有的脚本对象集合
            for (i = 0; i < scripts.length; i++) { //依次判断每个script对象
                if (scripts[i].src && scripts[i].src.indexOf(src) != -1) {
                    if (scripts[i].readyState == "loaded" || scripts[i].readyState == "complete") {
                        isLoaded = true;
                        break;
                    }
                }
            }
        } else if (type == "css") {
            var links = document.getElementsByTagName("link"); //得到所有的link对象集合
            for (i = 0; i < links.length; i++) { //依次判断每个link对象
                if (links[i].href && links[i].href.indexOf(src) != -1) {
                    if (links[i].readyState == "loaded" || links[i].readyState == "complete" || links[i].readyState == "interactive") {
                        isLoaded = true;
                        break;
                    }
                }
            }
        }
        return isLoaded;
    };
    //功能：得到文件的类型（即扩展名）
    //参数：src——文件名
    //返回：返回文件的类型
    this.GetSrcType = function (src) {
        var type = "";
        var lastIndex = src.lastIndexOf(".");
        if (lastIndex != -1) {
            type = src.substr(lastIndex + 1);
        }
        return type;
    };
    //功能：当文件加载完成时发生的事件
    //参数：src——加载完成的文件
    //返回：（无）
    this.OnLoaded = function (src) { Self.LoadedCallback(src); };
    //功能：文件加载完成时执行的回调函数
    //参数：src——加载完的文件
    //返回：（无）
    this.LoadedCallback = function (src) { };
    //功能：当文件加载过程中发生错误时发生的事件
    //参数：src——正在加载的文件
    //返回：（无）
    this.OnFailed = function (src) { Self.FailedCallback(src); };
    //功能：当文件加载失败时执行的回调函数
    //参数：src——加载失败的文件
    //返回：（无）
    this.FailedCallback = function (src) { };
}

//幻灯片效果
function slideEffect() {
    var n;   //起始位置。
    var o;    //播放的对象集合
    var interval=null;
    this.Load = function (id) {
        this.n = 0;
        this.o = $("#" + id).children();
        this.o.eq(0).show();
        var msobj = this;
        var stop = function () { msobj.Stop() };
        var start = function () { msobj.Start() };
        this.o.hover(stop, start);
        this.Start();
    };
    //设置起始播放位置
    this.SetPos = function (n) {
        this.n = n;
    };
    this.Start = function () {
        var msobj = this;
        var play = function () { msobj.Play() };
        this.interval = setInterval(play, 5000);
    };
    this.Stop = function () {
        clearInterval(this.interval);
    };
    this.Play = function () {
        var msobj = this;
        var m = (1 + parseInt(msobj.n)) % msobj.o.length;
        var fadein = function () {
            if ($("#packagelist").length > 0) {
                $("#packagelist a").css("color", "");
                $("#packagelist a").eq(m).css("color", "red");
            }
            msobj.o.eq(m).fadeIn("slow");
        }
        msobj.o.eq(msobj.n).fadeOut("slow", fadein);
        msobj.n = m;
    };
}
