/**
 * 启用open
 * @param {Object} input
 */
function changeOpen(input) {
	if(input.checked == true) {
		document.getElementById('backDateIntl').value = "";
		document.getElementById('back_date_text').style.display = 'none';
		document.getElementById('back_date_input').style.display = 'none';
	}else {
		document.getElementById('back_date_text').style.display = "";
		document.getElementById('back_date_input').style.display = "";
	}
}

/**
 * 查询结果页面启用open
 */
function changeOpen2(tag, index) {
	var div = $(tag).parent().parent();
//	$('.backDateSpanOff', div).toggle();		//显示open
	if($('.datePannel', div).css('display') == 'none') {
		$('.datePannel', div).css('display','inline');				//隐藏日期
	}else {
		$('.datePannel', div).css('display','none');				//隐藏日期
	}
	$('.researchButton', div.parent().parent()).toggle();
	$('#date' + index).val("");					//日期属性置空
	
	var div2 = div.parent().parent().parent().parent();
	$('.datatableheader', div2).toggle();		//隐藏航班表头
	$('.datatablecontent_flight', div2).toggle();//隐藏航班表体
	
	$('.alertLabel', div2).toggle();
	
	//若open，将该航段所有已选择的航段的checked取消
	if($(tag).attr('checked') == true) {
		$('.segmentRadio', div2).each(function() {
			if($(this).attr('checked') == false);
		});
	}
	//更新底部已选择的航班信息展示
	$('.returnInfoSpan', div2.parent()).html("<span class=\"orange\">您选择的是回程open"+ $('#validDate' + index).html() +"</span>");
}

/**
 * 查询航班
 */
function doIntlSearch(){
    var isRT = $$('routeTypeRTIntl').checked;
  
    $$('depIntl').value = $$('depIntl').value.toUpperCase().trim();
    $$('arrIntl').value = $$('arrIntl').value.toUpperCase().trim();
      
    if ($$('depIntl').value == "") {
        richAlert("请输入出发地中文名称或三字码！");
        return ;
    }
    
    if ($$('arrIntl').value == "") {
        richAlert("请输入抵达地中文名称或三字码！");
        return ;
    }

	
    
    
    if ($$('depIntl').value.toUpperCase().trim() == $$('arrIntl').value.toUpperCase().trim()) {
        richAlert("出发地不能与抵达地相同！");
        return ;
    }
    
    //以下一段js代码判断所选日期是否大于等于今天
    var d = $$("depDateIntl").value;
    var toCompare = new Date();
    toCompare.setDate(toCompare.getDate() - 1);
    if ((new Date(d.replace(/-/g, "\/"))) < toCompare) {
        richAlert("出发日期必须大于等于今天");
        return ;
    }
     
    if (isRT && $$('backDateIntl').value != "") {
        if (new Date($$('backDateIntl').value.replace(/-/g, "\/")).getTime() < new Date($$('depDateIntl').value.replace(/-/g, "\/")).getTime()) {
            richAlert("回程日期必须大于去程日期！")
            return ;
        }
    }
    if($$("depDateIntl").value==""){//判断出发日期是否为空
    	richAlert("请输入出发日期");
    	return;
    }
    if(isRT){
		if($$('backDateIntl').value =="" && document.getElementsByName('wantOpen')[0].checked == false){//判断出发日期是否为空
	    	richAlert("请输入返程日期");
	    	return;
	    }
	}
 //   $$("btnSearch").disabled = "true";
   
    document.searchIntl.submit();
    var v=document.searchIntl.elements; 
	for(var i=0;i<v.length;i++) 
	{ 
		if(v[i].type=="radio") 
		{ 
			v[i].value=""; 
		} 
	} 
}

/**
 * 2009-10-10
 * @param {Object} dateStr
 */
function toDate(dateStr){
    var d = new Date(dateStr.replace(/-/g, "\/"));
    return d;
    
}

////////////////////////////////////查询航班部分 开始////////////////////////////////////////

var searchWhere = "";

/**
 * 查询航班(点击查询航班)
 * @param {Object} index 页面上运价序号
 */
function avSeg(index,wantOpen){
    var avParams = $$("avParams" + index).value;
	searchWhere = "avSearch";
    intlSearch(avParams, index ,wantOpen,searchWhere);
}

//此值为下方法中判断是否已经
var qTaxFlag;
/**
 * 当前运价的q税是否成功
 * @param {Object} index	当前运价索引
 * @return true/false	若成功，返回true，否则返回false
 */
function checkQTaxSuccess(index) {
	var adultTaxInput = $('#adultTaxInput' + index);
	var childTaxInput = $('#childTaxInput' + index);
	//如果当前q税没有值
	if((adultTaxInput.val() == null || adultTaxInput.val() <= 0) || ($('#chdPricePar' + index).val() != null && $('#chdPricePar' + index).val() > 0 && (childTaxInput.val() == null || childTaxInput.val() <= 0))) {
		return false;
	}else {	//已经有值
		return true;
	}
}


/**
 * 查询航班 和 重新查询 调用此方法
 * 获取航班数据
 * @param {Object} avParams
 * @param {Object} index
 */
var _index;
var _wantOpen;	//此二参数若有值，代表从查询航班触发的查询q税，需要 在q税完毕后继续进行查询航班的操作
function intlSearch(avParams, index ,wantOpen,searchWhere){
	    startSearch(index);
		var successFlag = checkQTaxSuccess(index);		//如果q税已经生成成功
		if(successFlag == true) {
			realIntlSearch(avParams, index ,wantOpen,searchWhere);
		}else {
			//否者先调用q税接口，最后回调查询航班
			_index = index;
			_wantOpen = wantOpen;
			$('#childTaxButton' + index).length > 0 ? $('#childTaxButton' + index).click() : $('#adultTaxButton' + index).click();
		}
}

//具体执行查询航班操作
function realIntlSearch(avParams, index ,wantOpen,searchWhere) {
	codeOfAirline = avParams.split("\|")[0].split(",")[2];
//	richAlert(avParams+" "+index +" "+searchWhere);
	document.forms["hidenIntlSearch"+index].avParams.value=avParams;
	document.forms["hidenIntlSearch"+index].index.value=index;
	document.forms["hidenIntlSearch"+index].wantOpen.value=wantOpen;
  	document.forms["hidenIntlSearch"+index].target = "flightFrame"+index;
	document.forms["hidenIntlSearch"+index].action="/intlFlight/getIntlFlightInfoList.htm";
	document.forms["hidenIntlSearch"+index].submit();	
}

/**
 * dwr请求错误 * @param {Object} msg */
function onError(msg){
    hideWaiting2();
    richAlert("系统繁忙，请稍候重试。");
}

/**
 * dwr访问出错时的处理
 */
function hideWaiting2(){
    for (var i = 1;; i++) {
        var waitDiv = $$("waitDiv" + i);
        if (waitDiv) {
            if (waitDiv.style.display != "none") {
                waitDiv.style.display = "none";
                break;
            }
        } else {
            break;
        }
    }
    for (var i = 1;; i++) {
        var mButton = mainButton(i);
        if (mButton) {
            mButton.disabled = false;
        } else {
            break;
        }
    }
    for (var i = 1;; i++) {
        var bButton = bookButton(i);
        if (bButton) {
//            bButton.disabled = false;
        } else {
            break;
        }
    }
    for (var i = 1;; i++) {
        var rButton = reseachButton(i);
        if (rButton) {
            rButton.disabled = false;
        } else {
            break;
        }
    }
}

function mainButton(index){
    return $$("main" + index);
}

function bookButton(index){
    return $$("book" + index);
}

function reseachButton(index){
    return $$("research" + index);
}

/** * 开始查询航班
 * @param {Object} index
 */
function startSearch(index){
    var waitDiv = $$("waitDiv" + index);
    waitDiv.style.display = "";
    $$("segmentDiv" + index).style.display = "none";
    
    for (var i = 1;; i++) {
        var mButton = mainButton(i);
        if (mButton) {
            if (mButton.value == "查看航班") {
                mButton.disabled = true;
            }
        } else {
            break;
        }
    }
    for (var i = 1;; i++) {
        var bButton = bookButton(i);
        if (bButton) {
//            bButton.disabled = true;
        } else {
            break;
        }
    }
    for (var i = 1;; i++) {
        var rButton = reseachButton(i);
        if (rButton) {
            rButton.disabled = true;
        } else {
            break;
        }
    }
}

/**
 * 查询航班结束
 * @param {Object} index
 */
function finishedSearch(index){
    var waitDiv = $$("waitDiv" + index);
    waitDiv.style.display = "none";
    $$("segmentDiv" + index).style.display = "";
    
    for (var i = 1;; i++) {
        var mButton = mainButton(i);
        if (mButton) {
            mButton.disabled = false;
        } else {
            break;
        }
    }
    for (var i = 1;; i++) {
        var bButton = bookButton(i);
        if (bButton) {
//            bButton.disabled = false;
        } else {
            break;
        }
    }
    for (var i = 1;; i++) {
        var rButton = reseachButton(i);
        if (rButton) {
            rButton.disabled = false;
        } else {
            break;
        }
    }
    var mButton = mainButton(index);
    
    // 修改按钮的事件
    mButton.onclick = function(){
        toggle(index)
    };
    mButton.value ='隐藏航班';
    
    
}

/**
 * 控制航班信息的显示及隐藏
 * @param {Object} index
 */
function toggle(index){
    var div = $$('segmentDiv' + index);
    div.style.display = div.style.display == '' ? 'none' : '';
    var mButton = mainButton(index);
    mButton.value = div.style.display == '' ? '隐藏航班' : '查看航班';
}

/**
 * 航段信息列表的表头
 */
var segmentTH = '<tr class="main_query_color">\r\n		<td height="24">序号</td>\r\n<td>航班号</td>\r\n		<td>舱位</td>\r\n	<td>座位数</td>\r\n		<td>机型</td>\r\n			<td>出发时间</td>\r\n		<td>抵达时间</td>\r\n		<td>飞行时长</td>\r\n		<td>选择</td>\r\n</tr>';

/**
 * 构造一行完整的航班信息
 * @param {Object} segment
 * @param {Object} date 本航段的出发日期
 * @param {Object} type addOnGO,addOnBack,fareRecordGo,fareRecordBack
 */
function buildSegmentTr(segment, date, type){	
    var numPattern = /[1-9]/;
    var a = "";
    if(segment.arr == "PVG"){
    	var a = '<tr bgColor=#9696CB>';		
    }else{
    	var a = '<tr>';	
    }
    a += '<td>' + segment.sn + '</td>';
    a += '<td>' + segment.codeShare + segment.flightNo + '</td>';
    a += '<td>' + segment.seat + '</td>';
    a += '<td>' + segment.seatStatus + '</td>';
    a += '<td>' + segment.planeModel + '</td>';
    a += '<td>' + segment.depTime + '</td>';
    a += '<td>' + segment.arrTime + '</td>';
    a += '<td>' + segment.flyingTime + '</td>';
    a += '<td>'
    a += '<input type="radio"  style="border:0;display:none;" id="' + segment.key + '" name="' + segment.radioName + '" value="' + segment.key + '"';
    a += ' time="' + date + '_' + segment.depTime + '_' + segment.arrTime + '"';
    a += ' stype="' + type + '"';
    a += ' bookParams="' + segment.bookParams + '" />';
    a += '<label id="i' + segment.key + '"  class="' + ((!numPattern.exec(segment.seatStatus)||segment.flightNo.indexOf(codeOfAirline)<0) ? 'disable' : '') + '" name="i' + segment.radioName + '" onclick="checkRadio(this);"></label>';
		a += '</td></tr>';
    return a;
}



 


/**
 * 点击重新查询时 ，根据修改后的时间重新构造avParams(传给dwr查询航班的条件)
 * @param {Object} index
 */
function reBuildAvParams(index){
    var avParams = $$("avParams" + index);
    // 页面上每段的日期
    var tempArray = new Array();
    for (var i = 1; i < 16; i++) {    
        var temp = $$("date"  + index + "" + i);
              if (temp) {
            tempArray.push(temp.value);
        } else {
            break;
        }
    }
    
    var a = avParams.value;
    
    // 将原始的avParams（点击查询航班时使用的avParams）中的日期更新成用户选择的新日期
    var avParamsArray = a.split("|");
    
    for (var i = 0; i < tempArray.length; i++) {
    	if(tempArray[i] != null && tempArray[i].length > 0) {
	        avParamsArray[i] = avParamsArray[i].replace(/[0-9]{4}[-][0-9]{2}[-][0-9]{2}/, tempArray[i]);
    	}
    }
    
    a = "";
    for (var i = 0; i < avParamsArray.length; i++) {
        a += avParamsArray[i] + "|";
    }
    
    avParams.value = a.substring(0, a.length - 1);
}

/**
 * 重新查询时检查 新的查询日期是否符合国际段运价的有效期（有效期可是多个多段的日期段）
 * @param {Object} index
 * @param {Object} dateLimit
 */
function checkDepDateLimit(index , dateLimit,result){
	var select = false;
	var limit = dateLimit.split("/");//分割多个有效期
	 for (var i = 0; i <= result.length; i++) {
	 	if (result[i].type == "fareRecordGo"){
        	var temp = $$("date"  + index + "" + i);
			var cDate = temp.value;
			var eDate = cDate.replace(/\-/g, "\/");
			var oDate2 = new Date(eDate);//重新查询转化成日期内型
			for (var j = 0; j < limit.length; j++) {
				var limit1 = limit[i].split(" ");
				var depDate1=limit1[0];
				var depDate2=limit1[1];
				var date11 = strToDate(depDate1);//日期范围
				var date22 = strToDate(depDate2);//日期范围
				if(!(oDate2>=date11 && oDate2<=date22)){
					select = true;
					$$("book"+ index).style.display="none";
					$$("dlimit"+ index).style.display="";
				}
			}
			if(select){
				break;
			}
		}
    }
}

/**
 * 重新查询
 * @param {Object} index
 */
function reSearch(index){
    reBuildAvParams(index);
	searchWhere = "againSearch";
    var avParams = $$("avParams" + index).value;
    intlSearch(avParams, index ,'F',searchWhere);
}

//获取验证码的script
function  reloadVerifyCode(){
	var timenow = new Date().getTime();                        
    document.getElementById("safecode").src="/verifyCode.htm?d="+timenow;
}

/**
 * 验证登陆
 * @param {Object} index
 */
function isLogin(index){
	dwr.engine.setAsync(false);
	var data = CheckUserIsLogin.isUserLogin(function(data){return data});
	dwr.engine.setAsync(true);
	if(!data){
			$("#domid").val(index);
			popDiv('loginbox','closebtn',714,300);
			return true;
	}else{
			return false;
	}
	
}
/**
 * 预订
 * @param {Object} index
 */
function book(index){
	
    var msg = isValidSegment(index);
    if (msg == "GO_NOT_ENOUGH") {
        richAlert("请选择去程航班");
        return;
    } else if (msg == "RETURN_NOT_ENOUGH") {
        richAlert("请选择回程航班");
        return;
    } else if (msg == "CANCEL") {
        return;
    } else if (msg != "") {
        richAlert(msg);
        return;
    }else if(isLogin(index)){
    	return ;
    }
    //已经更改逻辑，查航班的时候一定会先查q税，所以此时q税一定查完毕
//    if($$("aduTax" + index).value==""||$$("chdTax" + index).value==""){
//    	   richAlert("请先查询得到税金金额，再进行预订！");
//    	   return;
//    }

   	var params = buildParams(index);
    window.location.href = "/intlFlight/intlBooking.htm?" + params;
}
/**
 * 登陆
 * @param {Object} index
 */
function checkLogin(){
	
		var account=$$("loginname").value;
		var pwd=$$("password").value;
		dwr.engine.setAsync(false);
		var loginmark = QuickLoginAndRegister.quickLogin(account,pwd,function(codedata){return codedata})
		var textDiv = document.getElementById("alert_info_login");
		
		if(account.length <= 0 || pwd.length <=0){
			textDiv.innerHTML="用户名密码不能为空";
			document.getElementById("loginname").focus();
			return;
		}
		
		if(loginmark=="wrong"){
			textDiv.innerHTML="你输入的用户名和密码错误";
			document.getElementById("loginname").focus();
			return;
		}
		dwr.engine.setAsync(true);
		
	    var index = $$("domid").value;
		var params = buildParams(index);
    	window.location.href = "/intlFlight/intlBooking.htm?" + params;
	}
/**
 * 登陆
 * @param {Object} index
 */
function checkRegistValues(){
			
			var regtelephone = $$("QuickRegtelephone").value;
			var textDiv = document.getElementById("alert_info");
			var mark = isMobel(regtelephone);
			if(!mark){
      			textDiv.innerHTML="手机号填写错误，请您重新填写！";
      			document.getElementById("QuickRegtelephone").focus();
				return;
			}
			
			var authcode = $$("authcode").value;
			dwr.engine.setAsync(false);
			var codemark = CheckUserExist.isCheckverifeCode(authcode,function(codedata){return codedata})
			if(!codemark){
    			textDiv.innerHTML ="请输入正确验证码";
    			document.getElementById("authcode").focus();
    			return ;
			}
			
			var date = QuickLoginAndRegister.quickRegist(regtelephone,function(data){return data});
			if(date=="exits"){
				textDiv.innerHTML="您已为注册用户，请您在左侧登陆";
				var username = document.getElementById("loginname");
				document.getElementById("QuickRegtelephone").value ="";
				document.getElementById("authcode").value ="";
				username.focus();
				return;
			}else if(date=="faild"){
				textDiv.innerHTML="注册失败，请重新注册";
				document.getElementById("QuickRegtelephone").focus();
				return;
			}
			dwr.engine.setAsync(true);
			
			var index = $$("domid").value;
			var params = buildParams(index);
    		window.location.href = "/intlFlight/intlBooking.htm?" + params;
		}
	 //校验手机格式
   function checkMobile(obj){
		dwr.engine.setAsync(false);
		if(obj.value.length<11){
			mobile=false;
			document.getElementById("alert_info").innerHTML="请输入正确的手机号码！";
		}else if(isMobel(obj.value)){
			if(CheckUserExist.isMobileExisted(obj.value,function(data){return data})==true){
				mobile=false;
				document.getElementById("alert_info").innerHTML="您输入的手机号已被使用，请重新填写";
			}else{
				mobile=true;	
				document.getElementById("alert_info").innerHTML="手机号填写正确";
			}
		}else{
			mobile=false;
			document.getElementById("alert_info").innerHTML="手机号填写错误，请重新填写";
		}
		dwr.engine.setAsync(true);
	}

/**
 * 检查航段是否可用
 *  2小时的 confirm
 * @param {Object} index
 */
function isValidSegment(index){
  //  var form = document.search;
    var errorMsg = "";
    var confirmMsg = "";
    for (var i = 1;; i++) {
        var radios = document.getElementsByName(index + "_" + i);
        if (radios && radios.length > 0) {
            var select = false;
            for (var j = 0; j < radios.length; j++) {
                var r = radios[j];
                // 是回城并且选择了回程OPEN
                if (isOpen(index) && $(r).parent().parent().parent().css('display') == "none") {
                    select = true;
                    break;
                } else if (r.checked) {
                    select = true;
                   
                    if (r.sclass == "invalid") {
//                        errorMsg += "第" + (i) + "航段和第 " + (i - 1) + "航段的换机时间小于4小时\r";
                        errorMsg += "换乘时间不能小于4小时，请重新选择。\r";
                    } else if (r.sclass == "warn") {
                        confirmMsg += "第" + (i) + "航段和第 " + (i -1) + "航段的换机时间小于6小时\r";
                    }
                }
            }
            if (!select) {
            	if(i == 1) {
			        return "GO_NOT_ENOUGH";
            	}else {
			        return "RETURN_NOT_ENOUGH";
            	}
		    }
        } else {
            break;
        }
    }
    
    
    if (errorMsg == "" && confirmMsg != "") {
        if (!confirm(confirmMsg + "您要预订此行程吗?")) {
            return "CANCEL";
        }
    }
    
    return errorMsg;
}

var invalidTime = 1000 * 60 * 60 * 4;
var warnTime = 1000 * 60 * 60 * 6;

/**
 * radion的onclick方法
 * @param {Object} label
 */
function checkRadio(r, avResultCurrentCount, index){
    
//	不确定是否要
//	if(r.sclass == "disable") {
//		return ;
//	}
    var radios = document.getElementsByName(r.name);
    for (var i = 0; i < radios.length; i++) {
        if (radios[i].id != r.id) {
            radios[i].checkd = false;
			if(radios[i].sclass != "disable") {
	            radios[i].sclass = "";
			}
        }
    }
     
    
    /////////////////////检查前后连续性 并设置不同的样式
    var index = r.name.substring(0, r.name.indexOf("_"));
    var preName = index + "_" + (parseInt(r.name.substring(r.name.indexOf("_") + 1)) - 1);
    var nextName = index + "_" + (parseInt(r.name.substring(r.name.indexOf("_") + 1)) + 1);
    
    var preSegment = getCheckedRadio(preName);
    var nextSegment = getCheckedRadio(nextName);
    var pre = new SegmentDate(preSegment);
    var current = new SegmentDate(r);
    var next = new SegmentDate(nextSegment);
    
    if (pre && pre.arrTime()) {
        if (current.depTime() - pre.arrTime() < invalidTime) {
            r.sclass = "invalid";
        } else if (current.depTime() - pre.arrTime() < warnTime) {
            r.sclass = "warn";
        } else {
            r.sclass = "valid";
        }
    }
    if (next && next.depTime()) {
        var nextLabel = $(next.radioObj().id);
        if (next.depTime() - current.arrTime() < invalidTime) {
            nextLabel.sclass = "invalid";
        } else if (next.depTime() - current.arrTime() < warnTime) {
            nextLabel.sclass = "warn";
        } else {
            nextLabel.sclass = "valid";
        }
    }
    
    
    if (r.sclass == "") {
        r.sclass = "valid";
    }
   
    //更新剩余座位信息
    var seatStatus = $('.seatStatusSpan', $(r).parent().parent()).text();
    if(avResultCurrentCount == 1) {
    	$('#goSeats' + index).val(seatStatus);
    }else {
    	$('#returnSeats' + index).val(seatStatus);
    }
    
    //更新底部已选择的航班信息展示条
    var spanHtml = $('.airlineNameSpan', $(r).parent().parent()).html() 
    			+ '<b>' 
    			+ $('.flightNoSpan', $(r).parent().parent()).html() 
    			+ " " 
    			+ $('.depDateTimeSpan', $(r).parent().parent().parent().parent().parent()).html()
    			+ $('.depArrCitySpan', $(r).parent().parent().parent().parent().parent()).html()
    			+ "</b>";
    if($(r).attr('name').split('_')[1] == "1") {
    	$('.goInfoSpan', $(r).parent().parent().parent().parent().parent().parent()).html(spanHtml);
    }else {
    	$('.returnInfoSpan', $(r).parent().parent().parent().parent().parent().parent()).html(spanHtml);
    }
}

function getCheckedRadio(name){
    var radios = document.getElementsByName(name);
    if (radios && radios.length > 0) {
        for (var i = 0; i < radios.length; i++) {
            // 是回城并且选择了回程OPEN
            if (isOpen(radios[i].name.substring(0, radios[i].name.indexOf("_"))) && radios[i].stype.indexOf("Back") > 0 || radios[i].checked) {
                return radios[i];
            }
        }
    }
    return false;
}

/**
 * str格式为2009-10-10_1010_1315+1
 * 日期_出发时间_抵达时间
 */
function SegmentDate(obj){
    if (!obj) {
        return false;
    }
    this.radio = obj;
    var index = this.radio.name.substring(0, this.radio.name.indexOf("_"));
    this.is_open = isOpen(index) && this.radio.stype.indexOf("Back") > 0 ? "OPEN" : "NOT_OPEN";
    
    var temp = this.radio.time.replace("/[ ]/g", "").split("_");
    var d = temp[0];
    var dt = temp[1];
    var at = temp[2];
    this.depDate = toDate(d);
    this.depDate.setHours(dt.substring(0, 2));
    this.depDate.setMinutes(dt.substring(2, 4));
    
    
    this.arrDate = toDate(d);
    this.arrDate.setHours(at.substring(0, 2));
    this.arrDate.setMinutes(at.substring(2, 4));
    
    // 处理有 +或- 的情况
    if (at.length == 6) {
        if (at.indexOf("+") > 0) {
            this.arrDate.setDate(this.arrDate.getDate() + eval(at.substring(5, 6)));
        } else if (at.indexOf("-") > 0) {
            this.arrDate.setDate(this.arrDate.getDate() - eval(at.substring(5, 6)));
        }
    }
    // richAlert(this.is_open + "   " + this.depDate + " ))))" + this.arrDate);

}

SegmentDate.prototype.depTime = function(){
    try {
        return this.depDate.getTime();
    } catch (e) {
        return null;
    }
    
    
};
SegmentDate.prototype.arrTime = function(){
    try {
        return this.arrDate.getTime();
    } catch (e) {
        return null;
    }
    
    
};
SegmentDate.prototype.isOpen = function(){
    return this.is_open == "OPEN";
};
SegmentDate.prototype.radioObj = function(){
    return this.radio;
};

/**
 * 查询条件
 */
function buildFormParams(){
    var p = "dep=" + $$("depBook").value;  
    p += "&airlineCode=" + $$("airlineCodeBook").value;
    p += "&arr=" + $$("arrBook").value;
    p += "&seatLevel=" + $$("seatLevelBook").value;
    p += "&depDate=" + $$("depDateBook").value;
    p += "&back=" + $$("backBook").value;
    p += "&passengerType=" + $$("psgTypeBook").value;
    p += "&psgNum=" + $$("psgNumBook").value;
      p += "&routeTypeBook=" + $$("routeTypeBook").value;  
    p += "&backDate=" + $$("backDateBook").value;
    p += "&direct=1" ;
    return p;
    
}

/**
 * Q税用到的参数
 * @param {Object} index
 */
function buildTaxParams(index){
    var t = "&seats=" + $$("seats" + index).value;
    t += "&airlines=" + $$("airlines" + index).value;
    t += "&flightCourse=" + $$("flightCourse" + index).value;
    t += "&minPsg=" + $$("minPsg" + index).value;
    t += "&maxPsg=" + $$("maxPsg" + index).value;
    return t;
}

/**
 * 判断用户是否选择了回程open
 * @param {Object} index
 */
function isOpen(index){
    return $$("open" + index) && $$("open" + index).checked;
}

/**
 * 构造预订所需要的参数
 * @param {Object} index
 */
function buildParams(index){
    var params = buildFormParams() + buildTaxParams(index);
    params += "&aduTaxId=" + $$("aduTax" + index).value;
    params += "&aduTaxValue=" + $$("aduTaxValue" + index).value;
    params += "&chdTaxValue=" + $$("chdTaxValue" + index).value;
    params += "&chdTaxId=" + $$("chdTax" + index).value;
    params += "&aduPricePar=" + $$("aduPricePar" + index).value;
    params += "&chdPricePar=" + $$("chdPricePar" + index).value;
    params += "&psgrTypes=" + $$("psgrTypes" + index).value;
    params += "&index=" + index;//当前运价的个数位置
    params += "&goSeats=" + $('#goSeats' +index).val();//去程的剩余座位信息
    params += "&returnSeats=" + $('#returnSeats' +index).val();//返程的剩余座位信息
    
     
    for (var i = 1;; i++) {
        var radios = document.getElementsByName(index + "_" + i);
        if (radios && radios.length > 0) {
            for (var j = 0; j < radios.length; j++) {
                // 是回城并且选择了回程OPEN
                if (isOpen(index) && $(radios[i]).parent().parent().parent().css('display') == "none") {
                    //params += "&" + radios[j].bookParams;
                    break;
                } else if (radios[j].checked) {
                    params += "&" + radios[j].bookParams;
                }
            }
        } else {
            break;
        }
    }
    
    if (isOpen(index)) {
        params += "&isOpen=true";
    }
    return params;
}

////////////////////////////////////查询航班部分 结束////////////////////////////////////////
//将下成员变量更改为局部变量
//var q_pegType = -1;
function showFares(aId, abId, fId, fbId){
    OW('/manage/showFareInfo.in?addOnGoId=' + aId + '&addOnBackId=' + abId + '&fareGoId=' + fId + '&fareBackId=' + fbId, '', false, 900, 450);
}

/**
 * 查询税金的预处理
 * @param {Object} tag		当前被点击的按钮元素
 * @param {Object} index	当前运价的索引
 * @param {Object} objId
 * @param {Object} airlineCodes
 * @param {Object} seats
 * @param {Object} flightCourse
 * @param {Object} depDateStr
 * @param {Object} backDateStr
 * @param {Object} passengerType
 */
function QIntlTaxPrepare(tag, index, objId, airlineCodes, seats, flightCourse, depDateStr, backDateStr, passengerType) {
	QIntlTaxGo(tag.parent().html(), objId, airlineCodes, seats, flightCourse, depDateStr, backDateStr, passengerType);
	if(passengerType == 2) {
		$('.childTaxButton', $('#QTd' + index)).click();
	}else if(passengerType == 1) {
		$('.adultTaxButton', $('#QTd' + index)).click();
	}
}

/**
 * q税
 * @param {Object} objId
 * @param {Object} airlineCodes
 * @param {Object} seats
 * @param {Object} flightCourse
 * @param {Object} depDateStr
 * @param {Object} backDateStr
 * @param {Object} passengerType
 */
function QIntlTaxGo(outerHTML, objId, airlineCodes, seats, flightCourse, depDateStr, backDateStr, passengerType1){
	var passengerType = passengerType1;
    var dwrIdStr = objId;
    var airlineStr = airlineCodes;
    var seatsStr = seats;
    var flightCourseStr = flightCourse;
    var dateDepStr = depDateStr;
    var dateBackStr = backDateStr;
    //以上是原先的全局变量
    var spanIds = new Array();
    if (passengerType == 2) {
        spanIds = adult_idStr.split("--");
    }
    if (passengerType == 1) {
        spanIds = chd_idStr.split("--");
    }
    if (spanIds.length > 0) {
        for (var i = 0; i < spanIds.length - 1; i++) {
            if (dwrIdStr.split("_")[1] == spanIds[i].split("_")[1]) {
            	try{
	            	document.getElementById(spanIds[i]).innerHTML = "<font color=green><b>查询中…</b></font>"; 
            	}catch(e) {
            		
            	}
            }
        }
    }
  //  showDivDisplay();
 
 //   showProcessDiv(butObj);
      QIntlTax.watchAndHandleIntlTax(airlineCodes, seats, flightCourse, depDateStr, backDateStr, passengerType, 
    	  function(result) {
	    	  showThisResults(result, passengerType, dwrIdStr, airlineStr, seatsStr, flightCourseStr, dateDepStr, dateBackStr, outerHTML);
    	  });			
}

/**
 * 显示q税结果
 * @param {Object} result
 */
function showThisResults(result, passengerType, dwrIdStr, airlineStr, seatsStr, flightCourseStr, dateDepStr, dateBackStr, outerHTML){
	//  divDisplayNone();
    if (result == "NO_PERMISSION") {
        richAlert("您还没有登录，无法进行此操作！");
        revertBut(passengerType, dwrIdStr, airlineStr, seatsStr, flightCourseStr, dateDepStr, dateBackStr, outerHTML);
    } else if (result == "PID_ERROR") {
        richAlert("配置繁忙，请稍后重试！");
        revertBut(passengerType, dwrIdStr, airlineStr, seatsStr, flightCourseStr, dateDepStr, dateBackStr, outerHTML);
    } else if (result == "INF_SEAT_CLASS_NULL") {
        richAlert("查询婴儿税金时没有提供舱位信息，系统出错！");
        revertBut(passengerType, dwrIdStr, airlineStr, seatsStr, flightCourseStr, dateDepStr, dateBackStr, outerHTML);
    } else if (result == "NULL_NEED_CHECK") {
        richAlert("抱歉！没有查询到符合条件的航班，请稍后重新查询，或修改日期后再次查询。。");
        revertBut(passengerType, dwrIdStr, airlineStr, seatsStr, flightCourseStr, dateDepStr, dateBackStr, outerHTML);
    } else if (result == "Q_ERROR" || result == "" || result == null) {
        richAlert("系统访问出错，请稍后重试！");
        revertBut(passengerType, dwrIdStr, airlineStr, seatsStr, flightCourseStr, dateDepStr, dateBackStr, outerHTML);
    } else {
        //richAlert( "税金：" + result.split("/")[1] + "，含Q值：" + result.split("/")[2] + "\r\r点击确定后，若页面没有显示税金，\r请刷新页面！");
        var spanIds = new Array();
        if (passengerType == 2) {
            spanIds = adult_idStr.split("--");
        }
        if (passengerType == 1) {
            spanIds = chd_idStr.split("--");
        }
        if (spanIds.length > 0) {
            for (var i = 0; i < spanIds.length - 1; i++) {
                var temp = spanIds[i].split("_");
              //  richAlert(temp);
              // richAlert(dwrIdStr);
              //  richAlert(result.split("/")[1]);
                if (dwrIdStr.split("_")[1] == temp[1]) {
                	try{
	            		document.getElementById(spanIds[i]).innerHTML = ""+Math.round(new Number(result.split("/")[1])); 
	            	}catch(e) {
	            		
	            	}
                    var index = temp[2];
                    if (passengerType == 2) {
                        $$("aduTax" + index).value = result.split("/")[0];
                        $$("aduTaxValue" + index).value = result.split("/")[1];
                        $$("hidenIntlSearch" + index).adultTax.value = result.split("/")[1];
                        
                        //zhaocong新加：查看税金完成后新加的参数
                        $('#adultTaxInput' + index).val(result.split("/")[1]);	//查航班用参数
                        $('#adultTotalPrice' + index).text(new Number(result.split("/")[1]) + new Number($('#aduPricePar' + index).val()));	//运价的结算价
                    }
                    if (passengerType == 1) {
                        $$("chdTax" + index).value = result.split("/")[0];
                        $$("chdTaxValue" + index).value = result.split("/")[1];
                        $$("hidenIntlSearch" + index).childTax.value = result.split("/")[1];

                        //zhaocong新加：查看税金完成后新加的参数
                        $('#childTaxInput' + index).val(result.split("/")[1]);	//查航班用参数
                        $('#childTotalPrice' + index).text(new Number(result.split("/")[1]) + new Number($('#chdPricePar' + index).val()));	//运价的结算价
                    }
                    //此时成人或者儿童的q税已经处理成功，判断是否是从查询航班进入的q税流程，若是，则继续查询航班操作
                    if(checkQTaxSuccess(index) == true) {	//如果当前q税成功
                    	if(_index != null && _index.length > 0) {	//如果确实是从查询航班进入
                    		if(_index == index)	{//如果要查询航班的运价id == 当前正遍历到的运价id
                    			avSeg(_index,_wantOpen);
                    		}
                    	}
                    }
                }
            }
        }
    }
    //无论当前查询税金是否成功，最后一定要将全局变量 _index _wantOpen 置空
    _index == null;
    _wantOpen = null;
    return false;
}

function revertBut(passengerType, dwrIdStr, airlineStr, seatsStr, flightCourseStr, dateDepStr, dateBackStr, outerHTML){
    var spanIds = new Array();
    if (passengerType == 2) {
        spanIds = adult_idStr.split("--");
    }
    if (passengerType == 1) {
        spanIds = chd_idStr.split("--");
    }
    if (spanIds.length > 0) {
        for (var i = 0; i < spanIds.length - 1; i++) {
            if (dwrIdStr.split("_")[1] == spanIds[i].split("_")[1]) {
//              document.getElementById(spanIds[i]).innerHTML = "<input type=button onclick=QIntlTaxGo(this,dwrIdStr,airlineStr,seatsStr,flightCourseStr,dateDepStr,dateBackStr,q_pegType) class='q_button cursor_sx' title='查看税金' />";
//                document.getElementById(spanIds[i]).innerHTML = "<img src=\"/skin"+ skin_path +"/images/icon_chakanshuijin.gif\" onClick=\"javaScript: QIntlTaxGo(\""+ dwrIdStr +"\",\""+ airlineStr +"\",\""+ seatsStr +"\",\""+ flightCourseStr +"\",\""+ dateDepStr +"\",\""+ dateBackStr +"\","+ passengerType +");\"/>";
                try{
            		document.getElementById(spanIds[i]).innerHTML = outerHTML; 
            	}catch(e) {
            	}
            }
        }
    }
}

function showProcessDiv(obj){
    showDiv('floatDiv', obj.onclick);
}

// Q税金进度层用1
function showDivDisplay(){
    document.getElementById('floatDiv').style.display = "";
    document.getElementById('processDiv').style.display = "none";
    document.getElementById('proDescribe').style.display = "";
    document.getElementById('processDiv').style.valign = "middle";
    document.getElementById('proDescribe').style.valign = "middle";
    document.getElementById('processDiv').style.display = "";
    document.getElementById('divContentBye').style.display = "";
}

// Q税金进度层用2
function divDisplayNone(){
    document.getElementById('overlay').style.display = "none";
    document.getElementById('overlay').id = "floatDiv";
    document.getElementById('processDiv').style.display = "none";
    document.getElementById('floatDiv').style.display = "none";
    document.getElementById('proDescribe').style.display = "none";
    document.getElementById('divContentBye').style.display = "none";
}

// yyyyMMdd转换成Date
function strToDate(str){ 
  var d1 = str.substring(0,4);
  var d2 = str.substring(4,6);
  var d3 = str.substring(6,8);
  var newDate=new Date(d1+"/"+d2+"/"+d3); 
  return newDate; 
} 



