﻿// JScript 文件

/*
onpropertychange="chdate(this,'backDate')"
<input type=button value=语言设置   onclick="window.external.ShowBrowserUI('LanguageDialog', null)"> 
*/

//去空格
function Trim(inputString)
{
	return inputString.replace(/^ +/,"").replace(/ +$/,"");
}

function getEvent()////event ie and firefox 的兼容问题
{
    if(document.all)    return window.event;//如果是ie
    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;
    }
    return null;
}

function getElement()   //IE下的srcElement 与firefox 的兼容
{
    var evt=getEvent();
    var element=evt.srcElement || evt.target;
    return element;
}
//获取对象属性兼容方法
 function getObject(objectId) {
    if(document.getElementById && document.getElementById(objectId)) {
	    // W3C DOM
	    return document.getElementById(objectId);
    } else if (document.all && document.all(objectId)) {
	    // MSIE 4 DOM
	    return document.all(objectId);
    } else if (document.layers && document.layers[objectId]) {
	    // NN 4 DOM.. note: this won't find nested layers
	    return document.layers[objectId];
    } else {
	    return false;
    }
}
function SelectAllCheckboxes(chkName){
	var chkObj=document.getElementsByName(chkName);
	for(var i=0;i<chkObj.length;i++){
		//if(chkObj[i].type =="checkbox") chkObj[i].checked=!chkObj[i].checked;
		chkObj[i].checked= true;
	}
}

function GetXMLHttpRequest(){
	var reqXMLHttpRequest;//定义变量，用来创建xmlhttprequest对象
	if(window.XMLHttpRequest) //非IE浏览器，用xmlhttprequest对象创建
	{
	    reqXMLHttpRequest=new XMLHttpRequest();
	}
	else if(window.ActiveXObject) //IE浏览器用activexobject对象创建
	{
	    reqXMLHttpRequest=new ActiveXObject("Microsoft.XMLHttp");
	    if(!reqXMLHttpRequest){
	    	reqXMLHttpRequest=new ActiveXObject("Msxml2.XMLHTTP");// 7
	    }
	    if(!reqXMLHttpRequest){
	    	reqXMLHttpRequest=new ActiveXObject("Msxml2.XMLHTTP.3.0"); ////3.0或4.0, 5.0
	    }
	}
	return reqXMLHttpRequest;
}

//取当前URL来变更当前的Session
//ChangeCurrSessionByURL();
function ChangeCurrSessionByURL(){
	var reqXMLHttpRequest=GetXMLHttpRequest();//定义变量，用来创建xmlhttprequest对象
	var url="changeCurrSession.do?isCnEn="+document.location.href; //要请求的服务端地址
	if(reqXMLHttpRequest) //成功创建xmlhttprequest
	{
	    reqXMLHttpRequest.open("post",url,true); //与服务端建立连接(请求方式post或get，地址,true表示异步)
	    reqXMLHttpRequest.onreadystatechange =function(){ //指定回调函数
	    	if(reqXMLHttpRequest.readyState==4) //请求状态为4表示成功
			{
			}
			else //请求状态还没有成功，页面等待
			{
			}
	    };
	    reqXMLHttpRequest.send(null); //发送请求
	}
}

function ChangeSessionForHTML(urlfix){
	var reqXMLHttpRequest=GetXMLHttpRequest();//定义变量，用来创建xmlhttprequest对象
	var url="changeSession.do?isCnEn="+urlfix; //要请求的服务端地址
	
	if(reqXMLHttpRequest) //成功创建xmlhttprequest
	{
	    reqXMLHttpRequest.open("post",url,true); //与服务端建立连接(请求方式post或get，地址,true表示异步)
	    reqXMLHttpRequest.onreadystatechange =function(){ //指定回调函数
	    	if(reqXMLHttpRequest.readyState==4) //请求状态为4表示成功
			{
			}
			else //请求状态还没有成功，页面等待
			{
			    //document .getElementById ("myTime").innerHTML ="数据加载中";
			}
	    };
	    reqXMLHttpRequest.send(null); //发送请求
	}
}
function ChangeSession(urlfix){
	var reqXMLHttpRequest=GetXMLHttpRequest();//定义变量，用来创建xmlhttprequest对象
	var url="changeSession.do?isCnEn="+urlfix; //要请求的服务端地址
	//
	if(reqXMLHttpRequest) //成功创建xmlhttprequest
	{//
	    reqXMLHttpRequest.open("post",url,true); //与服务端建立连接(请求方式post或get，地址,true表示异步)
	    reqXMLHttpRequest.onreadystatechange =function(){ //指定回调函数
	    //alert("");
	    	if(reqXMLHttpRequest.readyState==4) //请求状态为4表示成功
			{//alert('1');alert();
			    if(reqXMLHttpRequest.status==200) //http状态200表示OK
			    {//所有状态成功
			    	var url=GetUrlAndQuery();
					//alert(urlfix+" : "+url);
					/*
					if(urlfix=="") url=url.substring(url.indexOf("eng1")+4);//alert(url);
					window.location.replace(urlfix+url);//网上
					*/
					//本地
					
					url=url.substring(url.indexOf("SZHotel")+7);
					if(urlfix=="") url=url.substring(url.indexOf("eng1")+4);
					window.location.replace("/SZHotel"+urlfix+url);
					
			    }
			    else //http返回状态失败
			    {
			        //alert("服务端返回状态" + reqXMLHttpRequest.statusText);
			    }
			}
			else //请求状态还没有成功，页面等待
			{
			    //document .getElementById ("myTime").innerHTML ="数据加载中";
			}
	    };
	    reqXMLHttpRequest.send(null); //发送请求
	}
}


//取 文件名 及参数
function GetUrlAndQuery(){
	//location.search; //获取url中"?"符后的字串
	var CurrentUrl = document.location.href;
	var domain = document.domain;
	var str_pos =CurrentUrl.indexOf(domain);//lastIndexOf("/");
	str_pos =CurrentUrl.indexOf("/",str_pos+1);
	return CurrentUrl.substring(str_pos);
}

function GetRequest()
{   
	var url = location.search; //获取url中"?"符后的字串
	var theRequest = new Object(); 
	if(url.indexOf("?") != -1)
	{
	  var str = url.substr(1);
	    strstrs = str.split("&");
	  for(var i = 0; i < strs.length; i ++)
	 {
		theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
	 }
	}
	return theRequest;   
}
function GetQueryString2(name)
{
	var reg = new RegExp("(^|&)"+name+"=([^&]*)(&|$)");
	var r = window.location.search.substr(1).match(reg);
	if(r!=null) return unescape(r[2]);
	return null;
}

//------------------------------------------------------------
//返回Url中问号"?"及问号后面的一串查询字符串
//参数：
//		ReplaceStr：		字符串类型，表示要在返回的字符串中删除， 如果不想删除则不用填写
//							如果要删除多个，则用逗号“,”分开
//------------------------------------------------------------
function GetQueryStr(ReplaceStr)
{
	var CurrentUrl, QueryStr, QueryStrArray, Count, BackStr, ReplaceStrArray, RCount
	
	ReplaceStr = ReplaceStr ? ReplaceStr.toLowerCase() : "";
	CurrentUrl = document.location.href;
	QueryStr = CurrentUrl.split("?")[1];
	QueryStr = QueryStr ? QueryStr : "";
	
	if ((ReplaceStr == "") || (QueryStr == ""))
	{
		return "?" + QueryStr;
	}
	
	ReplaceStrArray = ReplaceStr.split(",");
	RCount = ReplaceStrArray.length;
	QueryStrArray = QueryStr.split("&");
	Count = QueryStrArray.length;
	BackStr = "?";
	
	for (var i = 0; i < Count; i++)
	{
		var _bReplaceStr, Flag
		_bReplaceStr = QueryStrArray[i].split("=")[0].toLowerCase()
		
		Flag = true;
		for (var j = 0; j < RCount; j++)
		{
			if (_bReplaceStr.localeCompare(ReplaceStrArray[j]) == 0)
			{
				Flag = false;
				break;
			}
		}
		
		if (Flag)
		{
			BackStr = BackStr + QueryStrArray[i] + "&"
		}

	}
	return BackStr;
}
/*光标位置*/
function storeCaret (textEl){
	if(textEl.createTextRange){
		textEl.caretPos = document.selection.createRange().duplicate();
	}
}
/*光标当前插入value*/
function insertAtCaret(textObj,value){
	if(document.all)
    {    
        if (textObj.createTextRange && textObj.caretPos)   
        {  
            var caretPos = textObj.caretPos;  
            caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? value + ' ' : value;  
        }
        else
        {  
            textObj.value += value;  
        }  
    }
	else
    {  
        if(textObj.setSelectionRange)
        {  
            var rangeStart = textObj.selectionStart;  
            var rangeEnd = textObj.selectionEnd;  
            var tempStr1 = textObj.value.substring(0,rangeStart);  
            var tempStr2 = textObj.value.substring(rangeEnd);  
            textObj.value = tempStr1 + value + tempStr2;  
        }
        else
        {  
            alert("This version of Mozilla based browser does not support setSelectionRange!");  
        }  
    }  
}

//光标停在文字最后
function cc()
{
 var e = event.srcElement;
 var r =e.createTextRange();
 r.moveStart('character',e.value.length);
 r.collapse(true);
 r.select();
}
/*
<input type=text name=text1 value="123" onfocus="cc()"> 
*/

//无提示关闭窗口
function Close() 
{ 
 var ua=navigator.userAgent 
 var ie=navigator.appName=="Microsoft Internet Explorer"?true:false 
 if(ie) 
 { 
      var IEversion=parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE ")))) 
      if(IEversion< 5.5) 
      { 
        var str  = '<object id=noTipClose classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">' 
        str += '<param name="Command" value="Close"></object>'; 
        document.body.insertAdjacentHTML("beforeEnd", str); 
        document.all.noTipClose.Click(); 
      } 
      else 
      { 
           window.opener =null; 
           window.close(); 
      } 
 } 
 else 
 { 
  window.close() 
 } 
}

//设为首页
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("抱歉！您的浏览器不支持直接设为首页。请在浏览器地址栏输入“about:config”并回车然后将[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);
                 }
        }
}

//关闭错误
//window.onerror = function()
//{
//		return true;
//}

//函数名：strByteLength 
//功能介绍：返回字符串的字节长度 
//参数说明：str    要检查的字符串
//返回值：字符串长度
function strByteLength(str) 
{ 
    var i,sum; 
    sum=0; 
    for(i=0;i<str.length;i++) 
    { 
        if ((str.charCodeAt(i)>=0) && (str.charCodeAt(i)<=255)) 
            sum=sum+1; 
        else 
            sum=sum+2; 
    }
    return sum;
}

//函数名：fucCheckLength 
//功能介绍：检查表单是否符合规定的长度 
//参数说明：obj    要检查的表单对象
//        name   对象名称
//        length 规定长度
//返回值：true(符合) or false(不符)  
function fucCheckLength(obj , name , length) 
{ 
    var i,sum; 
    sum=0; 
    var strTemp = obj.value;
    for(i=0;i<strTemp.length;i++) 
    { 
        if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255)) 
            sum=sum+1; 
        else 
            sum=sum+2; 
    }
    if(sum<=length)
    {
        return true;
    }
    else
    {
        alert(name+"超出规定长度！最长允许"+length+"个字符(中文算2位)！");
        obj.focus();
        return false;
    }
}

//检测电子邮件是否合法
function checkEmail(Object)
{
    var pattern = /^[.-_A-Za-z0-9]+@([-_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
    var strValue=Object.value;
    if(strValue.match(pattern)==null){
       alert("Email不合法，请重新填写！");
       Object.focus();
        return false;
     }else{
     return true;
     }
}

//0-9，A-Z，a-z规范字符判断
function isChar(Str){
    var regu = "^([0-9a-zA-Z]+)$";
    var re = new RegExp(regu);
    if (Str.search(re) != -1){
        return true;
    }
    return false;
}

//判断是否数字
function IsNum(Str){
    var regu = "^([0-9]+)$";
    var re = new RegExp(regu);
    if (Str.search(re) != -1)
        return true;
    {
        return false;
    }
}

//函数名：funcIsNotEmpty
//功能介绍：检查字符串是否为空
//参数说明：str 字符串
//返回值：true：不为空    false：为空
function funcIsNotEmpty(str){
    var s = /\S/;
    if(str==null){
        return false;
    }
    return s.test(str);
}

//函数名：fucCheckLength 
//功能介绍：检查表单是否符合规定的长度 
//参数说明：objValue    要检查的表单对象的数值
//        name   对象名称
//        minLen 最小长度
//        maxLen 最大长度
//返回值：true(符合) or false(不符)  
function fucCheckLengthB(objValue , minLen , maxLen) 
{ 
    var i,sum; 
    sum=0; 
    var strTemp = objValue;
    for(i=0;i<strTemp.length;i++) 
    { 
        if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255)) 
            sum=sum+1; 
        else 
            sum=sum+2; 
    }
    if(sum<=maxLen && sum >= minLen)
    {
        return true;
    }
    else
    {
        return false;
    }
}

//函数名：fucCheckMaxLength
//功能介绍：检查表单是否符合规定的长度 
//参数说明：objValue    要检查的表单对象的数值
//        name   对象数值
//        maxLen 最大长度
//返回值：true(符合) or false(不符)  
function fucCheckMaxLength(objValue , maxLen) 
{ 
    return fucCheckLengthB(objValue, 0 ,maxLen );
}

//函数名：fucCheckMaxLength
//功能介绍：检查指定对象的数值是否符合规定的长度 
//参数说明：objValue    要检查的表单对象的数值
//        name   对象
//        maxLen 最大长度
//返回值：true(符合) or false(不符)  
function fucCheckObjMaxLength(obj , maxLen) 
{
    if (obj == null) {
        return false;
    }
    return fucCheckLengthB(obj.value, 0 ,maxLen );
}

//sDate1和sDate2是2002-12-18格式 
function funDateDiff(sDate1, sDate2){ 
    var aDate, oDate1, oDate2, iDays ;
    aDate = sDate1.split("-") ;
    //转换为12-18-2002格式 
    oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); 
    aDate = sDate2.split("-") ;
    oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) ;
    //把相差的毫秒数转换为天数 
    iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24); 
    //如果开始时间小于结束时间
    if (sDate1 > sDate2)
    {
        return (-1 * iDays);
    }
    return iDays;
}

/**
 * 判断指定的ID的对象的最大长度是否正确
 * param: objId 对象ID
 *        maxLength  最大长度
 * return: true 正确 ， false 不正确
 */
function lengthMaxCheckMsg(objId, maxLength, objName ,needFocus, showMsg) {
    //个人信息check
    var obj = document.getElementById(objId);
    if (!fucCheckObjMaxLength(obj, maxLength)) {
        if (showMsg == null || showMsg== "") {
            alert(objName + "最多只能输入" + (maxLength/2) + "个汉字（或" + maxLength + "个英文数字）");
        } else {
            alert(showMsg);
        }
        if (needFocus) {
            obj.focus();
        }
        return false;
    }
    return true;
}