function $F(objIdString){
	return document.getElementById(objIdString).value
}
//公用非空验证
function isNull(strTemp){
		if( trim(strTemp) == "" ){
			return true;
		}
		else{
			return false ;			
		}		
}
function CheckChinaZipCode(zipcode){	 
	 var filter=/\d{6}/;//  /^[1-9]\d{5}$/  
   return(new RegExp(filter).test(zipcode));
}
 
var flightAlert=new function()
{
	var TrPrefix="Tr_";
	var SpanPrefix="Span_";
	var showedControlList ="";
	var GatherMsg="";
	var isIE =(navigator.appVersion.indexOf('MSIE')>=0);
	var firstObj = "";
	this.alertResult = true;
	this.alert=function( controlId, Msg )
	{
		if ( firstObj=="" ) firstObj = controlId;
		this.alertResult = false;		
		var AlertTr = document.getElementById( TrPrefix + controlId );
		var AlertSpan = document.getElementById( SpanPrefix + controlId );
		if ( checkShowed( controlId ) ) return false;
		showedControlList += controlId + ";"
		if ( AlertTr!=null && AlertSpan!=null)
		{
			if ( isIE ) AlertTr.style.display = 'block'
			else AlertTr.removeAttribute("style");
			AlertSpan.innerHTML = Msg;
		}else { GatherMsg+= Msg==""?Msg:Msg + "\n\n"; }
		return false;
	}
	this.retract=function( controlId )
	{
		if ( checkShowed( controlId ) ) return false;
		var AlertTr = document.getElementById( TrPrefix + controlId );
		var AlertSpan = document.getElementById( SpanPrefix + controlId );
		if ( AlertTr!=null )AlertTr.style.display = 'none';
		if ( AlertSpan!=null ) AlertSpan.innerHTML = "";
		return true;
	}
	this.execute = function ( exp, controlId , msg)
	{
		if ( !exp ){this.retract( controlId );}
		else{this.alert(controlId, msg);}
		return !exp;
	}
	this.showSkipMsg=function()
	{
		if ( GatherMsg!="" )
		{
			 var msg=GatherMsg;
			 this.dispose();
			 window.alert ( msg );
		}
	}
	this.dispose = function()
	{
		 var obj = document.getElementById( firstObj );
		 if ( obj!=null ) obj.focus();
		 firstObj = "";	
		 GatherMsg = "";
		 showedControlList = "";
		 this.alertResult = true;
	}
	var checkShowed = function( controlId ){
		var controlList;
		if ( showedControlList=="" ) return false;
		controlList = showedControlList.split(';');
		for ( var i=0; i<controlList.length-1; i++)
		{
			if ( controlId ==controlList[i] ) return true;
		}
		return false;
	}
}

/* 0:CN;1:EN;2:Big5;10:AP_CN;11:AP_EN;12:AP_BIG5 */
function GetVersionValue()
{
	var vsion = document.getElementById("flightversion");
	if ( vsion!=null )
		vsion = vsion.value;
	else
		vsion = "0";
	return vsion;
}

function IsEnVersion()
{
	var vs = GetVersionValue();
	return vs == "1" || vs == "11";
}

function IsCnVersion()
{
	return ! IsEnVersion();
}

function check_text(who,display)
{
	if(who.value == "")
	{
		if (display!=null && display!="") alert(display);
		who.focus();
		return (false);
	}
	return (true);
}

function check_radio(curForm,who,display)
{
	if(!AnySelected(curForm, who))
	{
		if (display!=null && display!="") alert(display);
		return (false);
	}
	return (true);
}

function check_select(who,nullval,display)
{
	if(who.value == nullval)
	{
		if (display!=null && display!="") alert(display);
		who.focus();
		return (false);
	}
	return (true);
}

function check_num(val,display)
{
	var i,word;
	for(i=0;i<val.length;i++)
	{
		word=val.substring(i,i+1);
		c=word.charCodeAt(0);
    if(c<48 || c>57)
		{
			if ( display!=null && display!="") alert(display);
			return false;
			break;
		}
	}
	return (true);
}

String.prototype.Trim = function()
{
	return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.LTrim = function()
{
	return this.replace(/(^\s*)/g, "");
}
String.prototype.Rtrim = function()
{
	return this.replace(/(\s*$)/g, "");
}

function SetRadio(name)
{
	var obj = document.getElementById(name);
	if ( obj == null )
	{
	}
	else
	{
		obj.checked = true;
	}
}
function SetCheck(name)
{
	var obj = document.getElementById(name);
	if ( obj == null )
	{
	}
	else
	{
		if ( obj.checked )
		{
			obj.checked = false;
		}
		else
		{
			obj.checked = true;
		}
	}
}

/** 
IsDate: 用于判断一个字符串是否是日期格式的字符串 

返回值： 
true或false 

参数： 
DateString： 需要判断的字符串 
Dilimeter ： 日期的分隔符，缺省值为′-′ 

Author: PPDJ 
sample: 
var date = ′1999-1-2′; 
if (IsDate(date)) 
{ 
alert(′You see, the default separator is "-"); 
} 
date = ′1999/1/2"; 
if (IsDate(date,'/')) 
{ 
alert(′The date′s separator is "/"); 
} 
*/ 
function IsDate(DateString , Dilimeter) 
{
		if (DateString==null) return false; 

		if (Dilimeter=='' || Dilimeter==null) 
			Dilimeter = '/'; 
			
		var tempy=''; 
		var tempm=''; 
		var tempd=''; 
		
		var tempArray; 
		
		if (DateString.length<8 && DateString.length>10) 
			return false;  
			
		tempArray = DateString.split(Dilimeter); 
		
		if (tempArray.length!=3) 
			return false; 
		if (tempArray[0].length==4) //yyyymmdd
			{ 
				tempy = tempArray[0]; 
				tempd = tempArray[2]; 
				tempm = tempArray[1]; 
			} 
		else //mmddyyyy
			{ 
				tempy = tempArray[2]; 
				tempd = tempArray[1]; 
				tempm = tempArray[0]; 
			} 
		tempd= (tempd.substr(0,1)=='0')?tempd.substr(1,1):tempd;
		tempm= (tempm.substr(0,1)=='0')?tempm.substr(1,1):tempm;

		var tempDate = new Date(tempy, parseInt(tempm)-1, tempd, "8"); 

		if (isNaN(tempDate)) 
			return false; 

		if (((tempDate.getUTCFullYear()).toString()==tempy) && (tempDate.getMonth()==parseInt(tempm)-1) && (tempDate.getDate()==parseInt(tempd))) 
			{ 
				return true; 
			} 
			else 
			{ 
				return false; 
			} 
} 

function isDateString(str) {
	var reg=/^(\d{1,2})(-|\/)(\d{1,2})\2(\d{1,4})$/;
	return reg.test(str);
}

function stringToDate(sDate, bIgnore)
{	
    var bValidDate, year, month, day
	var iaDate = new Array(3)
	
	if (bIgnore) bValidDate = true
	else bValidDate = isDateString(sDate)
	
	if (bValidDate) //mmddyyyy
	{  
	    iaDate = sDate.toString().split("/")
		year = parseFloat(iaDate[2])
		month = parseFloat(iaDate[0]) - 1
		day=parseFloat(iaDate[1])
		var newDate = new Date();
		newDate.setFullYear(year, month, day);
		return newDate;
		//return (new Date(month,day,year))		
	}
	else return (new Date(1900,0,1))
}
function dateToString( sDate,formatstring )
{
    if( formatstring == "-" )
    {
        return sDate.getFullYear() + "-" + eval(sDate.getMonth()+1) + "-" + sDate.getDate();
    }
    else
    {
        return eval(sDate.getMonth()+1) + "/" + sDate.getDate() + "/" + sDate.getFullYear()
    }
    return "1900-1-1";
} 
//去掉字串两端的空格
function trim(str) {
	var SubStr;
	SubStr=str;
	while (SubStr.length>0) {
   		if (SubStr.charAt(0)==" "){
			SubStr=SubStr.slice(1);
		}else{
			break;
		}
  	}
	while (SubStr.length>0) {
   		if (SubStr.charAt(SubStr.length-1)==" "){
			SubStr=SubStr.substr(0,SubStr.length-1);
		}else{
			break;
		}
  	}
  	return SubStr;
}

//验证是否包含中文字符
function CheckCnStr(str)
{
    var filter=/[^\x00-\xff]/gi;
    if (str=='')return false;
    if (filter.test(str))return true;
    return false;
}
//验证是否全部包含中文字符
function CheckAllCnStr(str) {
    var filter = /[^\u4e00-\u9fa5]/;
    if (str == '') return false;
    if (!filter.test(str)) return true;
    return false;
}
//验证是否只包含英文字符
function CheckEnStr(str) {
    var filter = /^[a-zA-Z]+$/;
    if (str == '') return false;
    if (filter.test(str)) return true;
    return false;
}
//替换所有空格
function TrimAll(str)
{
//	str = str.replace(' ','');
//	str = str.replace('　','');
    str = str.replace(/\s/g, "");
	return str;
}
function CheckName(GuestName) {
	var ErrStr;
	var ErrChar;
	var ArryErrStr;

//	ErrChar="!@#$%^&*()_+|-=\\~`;'[]{}\"':,;.<>?～！@#￥％^&×（）……＋|－＝、〔〕｛｝：“；‘《》？，。、0123456789";

//allow input '-';(20050818 Wangyi)
	ErrChar="!@#$%^&*()_+|=\\~`;'[]{}\"':,;.<>?～！@#￥％^&×（）……＋|－＝、〔〕｛｝：“；‘《》？，。、0123456789";
	
	ErrStr=FLIGHT_REQUEST_FILTERSTRING;
	
	ArryErrStr = ErrStr.split(",");
	
	//是否含有非法字符
	for(var k=0;k<GuestName.length;k++){
		if(ErrChar.indexOf(GuestName.charAt(k))>-1){
			return false;
		}
	}
	//是否含有非法字符串
	if ( ErrStr!=null && ErrStr!="" )
	{
		for (k=0; k<ArryErrStr.length; k++){
			if (GuestName.indexOf(ArryErrStr[k])>-1){
				return false;
			}
		}
	}
	return true;
}

//验证有效字符串.
function ValidatorSpecialString(value) {
	var ErrStr;
	var ErrChar;
	var ArryErrStr;
		
	 if (value.length == 0) 
        return false;

	ErrChar="%^&*_+|=\\~`'[]{}\"'/<>～￥％^&×……＋|＝、｛｝“‘《》";
	ErrStr="虚拟,傻冒,先生,小姐,代订";
	
	ArryErrStr = ErrStr.split(",");
	
	//是否含有非法字符
	for(var k=0;k<value.length;k++){
		if(ErrChar.indexOf(value.charAt(k))>-1){
			return false;
		}
	}
	//是否含有非法字符串
	for (k=0; k<ArryErrStr.length; k++){
		if (value.indexOf(ArryErrStr[k])>-1){
			return false;
		}
	}
	return true;
}

function CheckMobile(Mobile) {
    var filter = /^13[0123456789]{1}[0-9]{8}$/;
    var filter2 = /^15[0123456789]{1}[0-9]{8}$/;
    var filter3 = /^18[0123456789]{1}[0-9]{8}$/;
    if (!filter.test(Mobile) && !filter2.test(Mobile) && !filter3.test(Mobile)) return false;
    return true;
}

function CheckMobileEn(Mobile) {
    // 英文网的手机验证
    if (Mobile == undefined || Mobile == "") {
        return false;
    }
    var len = Mobile.length;
    var flag = true;
    for (var i = 0; i < len; i++) {
        var moValue = Mobile.substring(i, i + 1);
        if (isNaN(moValue)) {
            if (moValue != "+" && moValue != "-") {
                flag = false;
                break;
            }
        }
    }
    if (flag == true) {
        return true;
    } else {
        return false;
    }
}

function CheckPhone(Phone) {
    // 国内座机010-58206688或者010-58206688-6885
    var regexp1 = /^([0-9]{1,6}\-)?([1-9][0-9]{6,7})+(\-[0-9]{1,4})?$/;
    // 国际座机86-010-58206688或者86-010-58206688-6885
    var regexp2 = /^([0-9]{1,6}-)?([0-9]{1,4}\-)?([1-9][0-9]{3,7})+(\-[0-9]{1,4})?$/;
    if (!regexp1.test(Phone) && !regexp2.test(Phone)) return false;
    return true;
}

function CheckEmail(Email)
{
	return (Email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1);
}
function CheckDate(val,whodate)
{
  var date_array="";
  var get_input_date_str = val;
  var seperate;

  if(get_input_date_str == "")
  {
		return true;
  }
  if ( isDateString( val ) == false )
  {
	if ( whodate!=null && whodate!="") alert( whodate );
	return false;
  }
  if (get_input_date_str.indexOf("-") != -1)
  {
      seperate = "-";
  }
  else if (get_input_date_str.indexOf("/") != -1)
  {
      seperate = "/";
  }
  else if (get_input_date_str.indexOf(".") != -1)
  {
      seperate = ".";
  }
  date_array = get_input_date_str.split(seperate);

  if(date_array.length != 3)
  {
		if ( whodate!=null && whodate!="") alert(whodate + FLIGHT_REQUEST_ERRDATEFORMAT);
		return (false); 
  }
  if(date_array[2].length < 4)
  {
		if ( whodate!=null && whodate!="") alert(whodate + FLIGHT_REQUEST_ERRDATEFORMAT);
		return (false); 
  }
  
  date_array[1] = date_array[1] - 1;
  var get_input_date = new Date(date_array[2], date_array[0], date_array[1]);
  get_input_date.setHours(8);//加八小时是因为我们处于东八区 
  var get_input_year = get_input_date.getUTCFullYear();
  var get_input_month = get_input_date.getMonth() + 1;
  var get_input_day = get_input_date.getDate();

  var month2 = get_input_month;
  var day2 = get_input_day;

  if(get_input_year<1000)
  {
		get_input_year=1900 + get_input_year;
  }
  if(get_input_month<10)
  {
		get_input_month="0" + get_input_month;
  }
  if(get_input_day<10)
  {
		get_input_day="0" + get_input_day;
  }

  if( !IsDate( val ,seperate) )//get_input_year + seperate + get_input_month + seperate + get_input_day) != get_input_date_str && (get_input_year + seperate + month2 + seperate + day2) != get_input_date_str)
  {
		if ( whodate!=null && whodate!="") alert(whodate + FLIGHT_REQUEST_ERRDATEFORMAT);
		return (false); 
  }
  return (true);

}

function TodayToStr()
{
  var dt = new Date();
  var str = DateToStr(dt);
  return str;
}
function DateToStr(get_input_date)
{
  get_input_date.setHours(8);//加八小时是因为我们处于东八区 
  var get_input_year = get_input_date.getUTCFullYear();
  var get_input_month = get_input_date.getMonth() + 1;
  var get_input_day = get_input_date.getDate();

  if(get_input_year<1000)
  {
		get_input_year=1900 + get_input_year;
  }
  if(get_input_month<10)
  {
		get_input_month="0" + get_input_month;
  }
  if(get_input_day<10)
  {
		get_input_day="0" + get_input_day;
  }
  var dt = get_input_month + "/" + get_input_day  + "/" + get_input_year;
  return dt;
}

function RebuildDate(val)
{
  var date_array="";
  var get_input_date_str = val;
  var seperate;

  if(get_input_date_str == "")
  {
		return true;
  }
  
  if (get_input_date_str.indexOf("-") != -1)
  {
      seperate = "-";
  }
  else if (get_input_date_str.indexOf("/") != -1)
  {
      seperate = "/";
  }
  else if (get_input_date_str.indexOf(".") != -1)
  {
      seperate = ".";
  }
  date_array = get_input_date_str.split(seperate);

  if(date_array.length != 3)
  {
		return ""; 
  }
  if(date_array[2].length < 4) //mmddyyyy
  {
		return ""; 
  }
  
  date_array[0] = date_array[0] - 1;
  var get_input_date = new Date(date_array[2], date_array[0], date_array[1]);
  var dt = DateToStr(get_input_date);
  return dt;
 }

 function RebuildPassengerDate(val, year) {
     var date_array = "";
     var get_input_date_str = val;
     var seperate;

     if (get_input_date_str == "") {
         return true;
     }

     if (get_input_date_str.indexOf("-") != -1) {
         seperate = "-";
     }
     else if (get_input_date_str.indexOf("/") != -1) {
         seperate = "/";
     }
     else if (get_input_date_str.indexOf(".") != -1) {
         seperate = ".";
     }
     date_array = get_input_date_str.split(seperate);

     if (date_array.length != 3) {
         return "";
     }
     if (date_array[2].length < 4) {
         return "";
     }
     var yearNew = Number(date_array[2]) + year;
     date_array[0] = date_array[0] - 1;
     if (Number(date_array[1]) == 2) {
         if (!IsDate(date_array[0] + "/" + date_array[1] + "/" + yearNew, "/")) {
             date_array[1] = 28;
         }
     }
     var get_input_date = new Date(yearNew, date_array[0], date_array[1]);
     var dt = DateToStr(get_input_date);
     return dt;
 }
 
/// 比较date1和date2: date1大于date2返回1, 相等返回0, 小于返回-1.
function CompareDate(date1, date2)
{
	if ( date1=="" || date2=="") return -1;
	var dt1 = RebuildDate(date1);
	var dt2 = RebuildDate(date2);
	
	var dt1_array = dt1.split('/');
	var dt2_array = dt2.split('/');
  
    dt1 = dt1_array[2] + '/' + dt1_array[0] + '/' + dt1_array[1];
    dt2 = dt2_array[2] + '/' + dt2_array[0] + '/' + dt2_array[1];
    
	if ( dt1 > dt2 ) return (1);
	else if ( dt1 == dt2 ) return (0);
	else return (-1);
}

// 比较birthday和serverDate: birthday+12年小于serverDate返回true, 相等或大于返回false.
function CompareAdultDate(birthday, serverDate) {
    var dt1 = RebuildPassengerDate(birthday, 12);
    var dt2 = RebuildDate(serverDate);
    
    var dt10 = stringToDate(dt1, "/");
    var dt20 = stringToDate(dt2, "/");
    if (dt10 >= dt20) {
        return false;
    } else {
        return true;
    }
}

// 比较birthday和serverDate: birthday+2 小于serverDate，且birthday+12大于等于serverDate，返回true，否则返回false
function CompareChildDate(birthday, serverDate) {
    var dt12 = RebuildPassengerDate(birthday, 12);
    var dt2 = RebuildPassengerDate(birthday, 2);
    var dt3 = RebuildDate(serverDate);

    var dt120 = stringToDate(dt12, "/");
    var dt20 = stringToDate(dt2, "/");
    var dt30 = stringToDate(dt3, "/");
    if (dt120 >= dt30 && dt20 < dt30) {
        return true;
    } else {
        return false;
    }
}

function CompareToday(date1)
{
	var seperate;

	if(date1 == "")
	{
		return true;
	}
	if (date1.indexOf("-") != -1)
	{
		seperate = "-";
	}
	else if (date1.indexOf("/") != -1)
	{
		seperate = "/";
	}
	else if (date1.indexOf(".") != -1)
	{
		seperate = ".";
	}
	var dt1 = stringToDate( date1, seperate);
	var dt2 = new Date();
	dt1.setHours(8);
	dt2.setHours(8);
	if ( dt1.getUTCFullYear()==dt2.getUTCFullYear() && dt1.getMonth()==dt2.getMonth()&&dt1.getDay()==dt2.getDay()) return 0;
	else if (dt1>dt2) return (1);
	else return (-1);
}
function strlenB(str)
{
	var len;
	var i;
	len = 0;
	for (i=0;i<str.length;i++)
	{
		if (str.charCodeAt(i)>255) len+=2; else len++;
	}
	return len;
}
function getActiveElement( evt )
{
	var target; //initialisation
	if ("activeElement" in document)
	{ 
	target = document.activeElement; //Si IE
	} 
	else  { 
	target = evt ? evt.explicitOriginalTarget : null;  // Si Firefox
	}
	return target;
}
function moveFocus( evt )
{
	this.callBack=null;
	evt = (evt) ? evt : (window.event) ? event : null;
	var target = getActiveElement( evt );
	if ( target==null ) return true;
	var objId = target.id;
	var inputs = document.getElementsByTagName("*");
	var buttonIndex=0;
	if ( evt.keyCode==13){
		for( var index=0; index<inputs.length; index++){
			if ( !isValidFocusObj( inputs[index] )) continue;
			if ( objId==inputs[index].id ){
				if ( inputs[index].type=="button" ) {
					if (this.callBack!=null) callBack();
					return true;
				}
				while( index++ < inputs.length-1){
					if ( (inputs[index].type=="text"||inputs[index].type=="select-one") && visible(inputs[index]) ){
						inputs[index].focus();
						if (inputs[index].type=="text") inputs[index].select();
						return false;
					}
					else if ( inputs[index].type=="button" ) buttonIndex=index;
				}
				if ( visible(inputs[buttonIndex])) inputs[buttonIndex].focus();
			}
		}
		return false;
	}
	return true;
}
function isValidFocusObj(obj)
{
	if ( obj.type=="button" || obj.type=="select-one" || obj.type=="text") return true;
	return false;
}
function visible( obj )
{

		var p = obj;
		while(p&&p.tagName!="BODY")
		{
			if ( p.style==null ) return true;
			if ( p.style.display=="none") return false
			p = p.parentNode;
		}	
		return true;
}

/*added by zhen.lei for select
1.判断select选项中 是否存在value="paravalue"的item
2.向select选项中 加入一个item
3.从select选项中 删除一个item
4.修改select选项中 value="paravalue"的text为"paratext"
5.设置select中text="paratext"的第一个item为选中
------------------------------------------------
*/
//1.判断select选项中 是否存在value="paravalue"的item
function jsselectisexititem(objselect,objitemvalue)
{
     var isexit = false;
     for(var i=0;i<objselect.options.length;i++)
     {
		if(objselect.options[i].value == objitemvalue)
		{
			isexit = true;
			break;
		}
     }      
     return isexit;
} 

//2.向select选项中 加入一个item
function jsadditemtoselect(objselect,objitemtext,objitemvalue)
{
     //判断是否存在
     if(jsselectisexititem(objselect,objitemvalue))
     {
		return false;
     }
     else {
         // 进行中文解码操作
         var objitemtextNew = unencodeValue(objitemtext);
         var varitem = new Option(objitemtextNew, objitemvalue);
         objselect.options.add(varitem);
         return true;
     }    
}

//3.从select选项中 删除一个item
function jsremoveitemfromselect(objselect,objitemvalue)
{
     //判断是否存在
     if(jsselectisexititem(objselect,objitemvalue))
     {
		for(var i=0;i<objselect.options.length;i++)
		{
			if(objselect.options[i].value == objitemvalue)
			{
				objselect.options.remove(i);
				break;
			}
		}  
		return true;     
     }
     else
     {
		return false;
     }    
}

//4.修改select选项中 value="objitemvalue"的text为"objitemtext"
function jsupdateitemtoselect(objselect,objitemtext,objitemvalue)
{
     //判断是否存在
     if(jsselectisexititem(objselect,objitemvalue))
     {
		for(var i=0;i<objselect.options.length;i++)
		{
			if(objselect.options[i].value == objitemvalue)
			{
			objselect.options[i].text = objitemtext;
			break;
			}
		}  
		return true;    
     }
     else
     {
		return false;
     }    
}
  
//5.设置select中text="paratext"的第一个item为选中
function jsselectitembyvalue(objselect,objitemtext)
{    
     //判断是否存在
     var isexit = false;
     for(var i=0;i<objselect.options.length;i++)
     {
		if(objselect.options[i].text == objitemtext)
		{
			objselect.options[i].selected = true;
			isexit = true;
			break;
		}
     }      
     //show出结果
     if(isexit)
     { 
		return true;   
     }
     else
     {
		return false;
	}    
}
//4.修改select选项中 value="objitemvalue"的value为"objitemtnewvalue"
function jsupdatevaluetoselect(objselect,objitemtnewvalue,objitemvalue)
{
     //判断是否存在
     if(jsselectisexititem(objselect,objitemvalue))
     {
		for(var i=0;i<objselect.options.length;i++)
		{
			if(objselect.options[i].value == objitemvalue)
			{
			objselect.options[i].value = objitemtnewvalue;
			break;
			}
		}  
		return true;    
     }
     else
     {
		return false;
     }    
}

//获得控件在页面上的绝对位置
function getAbsolutePos(obj) {
    var pos = { x: 0, y: 0 };

    var sObjOffsetTop = 0;      //事件源的垂直距离
    var sObjOffsetLeft = 0;     //事件源的水平距离

    /* 获取事件源对象的偏移量 */
    var tempObj = obj; //用于计算事件源坐标的临时对象
    while (tempObj && tempObj.tagName.toUpperCase() != "BODY") {
        sObjOffsetTop += tempObj.offsetTop;
        sObjOffsetLeft += tempObj.offsetLeft;
        tempObj = tempObj.offsetParent;
    }
    tempObj = null;
    pos.x = sObjOffsetLeft;
    pos.y = sObjOffsetTop;
    return pos;
}
//身份证15位转成18位
function convertIdCard15to18(cardID15) 
{ 
    var v = new Array(); 
    var vs = "10X98765432";
    v.push(2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9, 7); 
    var cardID = cardID15;
    //alert(checkDay(year,month,day)); 
    //将15位的号码转换位17位 
    var cardID17 = cardID.substring(0,6)+"19"+cardID.substring(6); 
    var N = 0; 
    var R = -1; 
    var T = '0';//储存最后一个数字 
    var j = 0; 
    var cardID18=""; 
    //计数出第18位数字 
    for (var i = 16; i >= 0; i--) 
    { 
        N += parseInt(cardID17.substring(i, i + 1)) * v[j]; 
        j++; 
    } 
    R = N % 11; 
    T = vs.charAt(R); 
    cardID18 = cardID17 + T; 
    return cardID18; 
} 
  
//提取18位身份证号的出生日期
function getBirthdayByIdCard(idCardNo)
{
    var year,month,day;
    year = parseFloat(idCardNo.substring(6, 10));
    month = parseFloat(idCardNo.substring(10, 12));
    day = parseFloat(idCardNo.substring(12, 14));
    return new Date(year,--month,day);
}
