if(typeof FY == "undefined" || !FY) { var FY = {}; }

FY.Event = {
	getEvent : function(e){
		return e || window.event || top.window.event;
	},
	getTarget : function(e){
		e = FY.Event.getEvent(e);
		return e.target || e.srcElement;
	},
	getkeycode : function(e){
		e = FY.Event.getEvent(e);
		var code = e.keyCode ? e.keyCode : e.witch ? e.witch : null;
		return code;
	},
	stopPropagation : function(e){
		e = FY.Event.getEvent(e);
		if(e.stopPropagation){
			e.stopPropagation();
		}else{
			e.cancelBubble = true;
		}
	},
	preventDefault : function(e){
		e = FY.Event.getEvent(e);
		if(e.preventDefault){
			e.preventDefault();
		}else{
			e.returnValue = false;
		}
	},
	stopEvent : function(e){
		e = FY.Event.getEvent(e);
		this.stopPropagation(e);
		this.preventDefault(e);
	},
	addEvent : function(obj, type, fn){
		if(obj.addEventListener){
			obj.addEventListener(type, fn, false);
		}else if(obj.attachEvent){
			obj.attachEvent("on" + type, fn);
		}else{
			obj["on" + type] = fn;
		}
	},
	delEvent : function(obj, type, fn){
		if(window.removeEventListener){
			obj.removeEventListener(type, fn, false);
		}else if(window.detachEvent){
			obj.detachEvent('on'+type,fn);
		}else{
			obj['on'+type] = null;
		}
	}
};

FY.Style = {
	hasClass : function(obj, sClass){
		var classname = obj.className, re = new RegExp("(?:^|\\s)" + sClass + "(?:\\s|$)");
		return obj && sClass && classname && re.test(classname);
	},
	removeClass : function(obj, sClass){
		var reg = new RegExp("(^|\\s)" +sClass+ "(\\s|$)");
		if(obj.className){
		    obj.className = obj.className.replace(reg, ' ');
		}else{
		    obj.className = obj.className.replace(reg, '');
		}
		
	},
	addClass: function(obj, sClass){
	    if(obj.className.length){
			var cln = obj.className.split(" ");
			cln.push(sClass);
			obj.className = cln.join(" ");
		}else{
		    obj.className = sClass;
		}
	},
	getStyle : function(obj, name){
	    if(obj.style[name]){
		    return obj.style[name];
		}else if(obj.currentStyle){
		    return obj.currentStyle[name];
		}else if(document.defaultView && document.defaultView.getComputedStyle){
		    name = name.replace(/([A-Z])/g,"-$1");
			name = name.toLowerCase();
			var s = document.defaultView.getComputedStyle(obj,"");
			return s && s.getPropertyValue(name);
		}else{
		    return null;
		}
	}
};

var boxModel = (function(){
	var div = document.createElement("div");
	div.style.width = div.style.paddingLeft = "1px";
	document.body.appendChild(div);
	var boxModel = div.offsetWidth === 2;
	document.body.removeChild(div).style.display = "none";
	div = null;
	return boxModel;
})();

var contains = function(a, b){
	if(!a) return false;
	var iscontain = false;
	if(a.contains){
		iscontain = a.contains(b);
	}else{
		iscontain = a.compareDocumentPosition(b) == 20 ? true : false;
	}
	return iscontain;
};


FY.Dom = {
    getid : function(id){return (typeof id === "string") ? document.getElementById(id) : id; },
	getbyClass : function(parent, tag, name){
		parent = parent || document;
		tag = tag || "*";
		var arr = [];
		var reg = new RegExp("(^|\\s)" +name+ "(\\s|$)");
		var ts = parent.getElementsByTagName(tag);
		for(var i=0, j=ts.length; i<j; i++){
			 if(reg.test(ts[i].className)){
				arr.push(ts[i]);
			 }
		}
		return arr;

	},	
	next : function(elem){
	    do{
		  elem = elem.nextSibling
		}while(elem && elem.nodeType !=1)
		return elem;	
	},
	prev : function(elem, dept){
	    dept = dept || 1;
		var cur = 0;
		for(;elem;elem = elem.previousSibling){
		    if(elem.nodeType === 1 && ++cur === dept){
			    break;
			}
		}
		return elem;	
	},
	remove : function(elem){
	    while(elem && elem.firstChild){
		  elem.removeChild(elem.firstChild);
		}
	},
	getoffset : function(el){
		if(!el || !el.ownerDocument){return null;}
		var pos = {
			left : 0,
			top : 0
		};
		var box = el.getBoundingClientRect(),
			root = el.ownerDocument,
			body = root.body,
			docelem = root.documentElement,
			clTop = docelem.clientTop || body.clientTop || 0,
			clLeft = docelem.clientLeft || body.clientLeft || 0;
			pos.left = box.left +(self.pageXOffset || boxModel && docelem.scrollLeft || body.scrollLeft) - clLeft;
			pos.top = box.top + (self.pageYOffset || boxModel && docelem.scrollTop || body.scrollTop) -clTop;
		return pos;

	},
	getparentoffset : function(el, parent){
	    if(!el || !el.parentNode || !el.ownerDocument){return null;}
		var ppos = {
			left : 0,
			top : 0
		};
		ppos.left = getoffset(el).left - getoffset(parent).left;
		ppos.top = getoffset(el).top - getoffset(parent).top;
		return ppos;
	}	
}
FY.ajax =(function(){
	    function handle(o, callback){
		    var poll = setInterval(function(){
			    if(o&&o.readyState == 4){
				    window.clearInterval(poll);
					if(callback){
					    callback(o);
					}
				}								
			}, 50);
		}
		
		var getxhr = function(){
		    if(typeof XMLHttpRequest != 'undefined'){
			    getxhr = function(){
				    return new XMLHttpRequest();
				};
			}else if(typeof ActiveXObject !='undefined'){
			    getxhr = function(){
				    return new ActiveXObject(
					    navigator.userAgent.indexOf('MSIE 5') >=0 ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'
					);
				};
			}else{
			    getxhr = function(){
				    throw new Error('can not create xhr!');
				};
			}
			return getxhr();
		};
		
		return function(method, uri, callback, postData){
			var http = getxhr();
			http.open(method, uri, true);
			handle(http, callback);
			http.send(postData || null);
			return http;
		};
})();

var formValid = {
    trim : function(val){
	    return val.replace(/^\s+|\s+$/g, "");
	},
    isDate : function(str){
		var reg = /(?:[19|20]\d{2})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])/;
		return reg.test(str) && str.length == 10;
	},
	compareDate : function(d1, d2, str){
	    var d1arr = d1.split(str), d2arr = d2.split(str);
		return (d2arr[0]>d1arr[0] || (d2arr[0]==d1arr[0] && d2arr[1]>d1arr[1]) || (d2arr[0]==d1arr[0] && d2arr[1]==d1arr[1] && d2arr[2]>d1arr[2])) ? 1 : 0;
	}
};

// metho and function
Function.prototype.method = function(name, fn){
    this.prototype[name] = fn;
	return this;
};

if(!Array.prototype.forEach){
    Array.method('forEach', function(fn, thisObj){
	    var scope = thisObj || window;
		for(var i=0, len=this.length; i<len; ++i){
		    fn.call(scope, this[i], i, this);
		}
	});
}

// JavaScript Document
function Selecter(target, config){
    this.target = target || null;
	this.swidth = config.swidth || 98;
	this.callback = config.callback || null;
	this.list = config.list;
	this.isopen = false;
	this.keyIndex = 0;
	this._init(); //初始化
}

Selecter.prototype = {
    _init : function(){
	    this._startEvent();
	},
	
	_createhtml : function(){
		if(FY.Dom.getid('selecter')){
			return;
		}
		if(!FY.Dom.getid('selecter')){
			var div = document.createElement('div');
			div.className = "selecter";
			div.id = "selecter";
			
			document.body.appendChild(div);
		}
		var slWrap = FY.Dom.getid('selecter');
		slWrap.innerHTML = '<div id="sltit" class="sltit">请选择</div><div id="sllist" class="sllist"></div><iframe frameborder="0" marginheight="0" marginwidth="0" id="FYiframe" style="position:absolute; left:-8px; top:-8px; overflow:hidden; width:106px; background:#fff; border:0; z-index:-1; opacity:0; filter:alpha(opacity = 0);"></iframe>';
	
	},
	_setPosition : function(el, wrap){
		 var pos = FY.Dom.getoffset(el);
		 if(!this.isopen) wrap.style.display = "block";
		 wrap.style.left = (pos.left-2) + "px";
		 wrap.style.top = pos.top + el.offsetHeight + "px";
		 this.isopen = true;
	},
	_resetPosition: function(wrap){
		 if(this.isopen) wrap.style.display = "none";
		 this.isopen = false;
	},
	_setInputValue: function(el,tag){
	     if(el.tagName =='INPUT'){
		     el.value = tag.firstChild.nodeValue;
			 el.style.color='#333333';
			 if(FY.Dom.next(el)){
			     FY.Dom.next(el).value = tag.title;
			 }
		 }
	},
	_pclick :function(e, obj){
		 var eTarget = FY.Event.getTarget(e);
		 if(eTarget.nodeName == 'A'){
			 this._setInputValue(obj, eTarget);
		 }else if(eTarget.parentNode.nodeName == 'A'){
			 this._setInputValue(obj, eTarget.parentNode);
		 }
	},
	_setSelect : function(tags, name, index){
	    for(var i=0, j=tags.length; i<j; i++){
		    FY.Style.removeClass(tags[i], name);
		}
		FY.Style.addClass(tags[index], name);

	},
	_droplist : function(){
	    var list = this.list;
	    var str = '<ul>';
		for(var i=0, len = list.length; i<len; i++){
		    str += '<li><a href="javascript:void(0);" title="'+ list[i][1] +'">'+ list[i][0] +'</a></li>'
		}
		str += '</ul>';
		return str;
	},
	_focus : function(target){
	    this._createhtml();
		FY.Dom.getid('sllist').innerHTML = this._droplist();
		var wrap = FY.Dom.getid('selecter');
		
		if(this.swidth){
			wrap.style.width = this.swidth + 'px';
		}
		
		this._setPosition(target, wrap);
		var that = this;
		wrap.onclick = function(e){
			that._pclick(e, target);
			that._resetPosition(wrap);
			FY.Event.stopEvent(e);
		}
		this.isopen = true;
		//target.blur();
		
	},
	_keyup : function(e){
	    var slList = FY.Dom.getid('sllist');
		var ekeycode = FY.Event.getkeycode(e);
		aSelect = slList.getElementsByTagName('a');
		var wrap = FY.Dom.getid('selecter');
		 switch(ekeycode){
			 case 13 : //enter
					 if(this.isopen){
						 this._setInputValue(input, aSelect[this.keyIndex]);
						 this._resetPosition(wrap);
					 }
					 FY.Event.stopEvent(e);
					 break;
			 case 27 : //esc
					 this._resetPosition(wrap);
					 break;
			 case 38 : //up
					 this.keyIndex <= 0 ? this.keyIndex = aSelect.length-1 : this.keyIndex--;
					 this._setSelect(aSelect, 'current', this.keyIndex);
					 FY.Event.stopEvent(e);
					 break;
			 case 40 : //down
					 this.keyIndex >= aSelect.length-1 ? this.keyIndex = 0 : this.keyIndex++;
					 this._setSelect(aSelect, 'current', this.keyIndex);
					 FY.Event.stopEvent(e);
					 break;
			 default :
				  break;
		 }							
	
	},
	_startEvent : function(){
	    var that = this;

	    that.target.onfocus = that.target.onclick = function(){
		    that._focus(that.target);
			
		};
		
		
		FY.Event.addEvent(document, 'click', function(e){
		    var wrap = FY.Dom.getid('selecter');
			var eTarget = FY.Event.getTarget(e);
			if(eTarget==that.target){ return false;}
			if(contains(wrap, eTarget)) return;
			that._resetPosition(wrap);

		});

	}
};

//for city drop list
FY.FYSelect = FY.FYSelect || (function(){
    var slWrap = FY.Dom.getid('FYSelect');
    var slTit = FY.Dom.getid('FYsltit');
    var slList = FY.Dom.getid('FYcitylist');
    var slIframe = FY.Dom.getid('FYiframe');

	var comList = [], allList = [];
	var inputNotes = ["中文/拼音/代码"], selectInput = [], flag, commoncitys = [], citys = [];
	var keyIndex = 0;
	var isopen = false;
	
	
	//自定义字符串方法
	if(!String.prototype.trim)
	String.prototype.trim = function(){
		return this.replace(/^\s+|\s+$/g, "");
	}
	
	//初始化输入框颜色并且获取输入框
	function setInputInit(){
	    var inputs = document.getElementsByTagName('input');
		for(var i=0, len=inputs.length; i<len; i++){
		    if(inputs[i].defaultValue === inputNotes[0]){
			     inputs[i].style.color = '#999';
			}
			if(/FYSelect/.test(inputs[i].className)){
				selectInput.push(inputs[i]);
			}
		}
		return selectInput;
	}
	
	//建立下拉框结构
	function createSelect(){
		if(FY.Dom.getid('FYSelect')) return;
		if(!FY.Dom.getid('FYSelect')){
			var div = document.createElement('div');
			div.className = "FYSelect";
			div.id = "FYSelect";
			document.body.appendChild(div);
		}
		var slWrap = FY.Dom.getid('FYSelect');
		slWrap.innerHTML = '<div id="FYsltit" class="FYsltit">中文/拼音/代码或&uarr;&darr;选择</div><div id="FYcitylist" class="FYcitylist"></div><iframe frameborder="0" marginheight="0" marginwidth="0" id="FYiframe" style="position:absolute; left:-8px; top:-8px; overflow:hidden; width:218px; background:#fff; border:0; z-index:-1; opacity:0; filter:alpha(opacity = 0);"></iframe>';
	}
	
	//判断数组类型
	function getArray(flag){
	    var selectValue = {
		    commoneArray : [],
			allArray : []
		};
		switch(flag){
		    case 'FYCarrier' :
			    selectValue.commoneArray = commonFYCarrier;
				selectValue.allArray =  FYCarrierList;
				break;
		    case 'FYInterCarrier' :
			    selectValue.commoneArray = commonFYInterCarrier;
				selectValue.allArray =  FYInterCarrierList;
				break;
			case 'FYCity' :
			    selectValue.commoneArray = commonFYCity;
				selectValue.allArray =  FYCityList;
				break;
			case 'FYInterCity' :
			    selectValue.commoneArray = commonFYInterCity;
				selectValue.allArray =  FYInterCityList;
			    break;				
			default :
			    break;			
		}
		
		return selectValue;
	}
	
	//获取常用航空公司列表
	function getCommFlightList(){
	     var flightList = "";
	     if(!commoncitys || commoncitys.constructor != Array || commoncitys.length == 0) return;
		 for(var i=0, len = commoncitys.length; i<len; i++){
		     flightList+='<a id="'+commoncitys[i][0]+'" href="#"><span>'+commoncitys[i][1]+'</span><em>'+commoncitys[i][2]+'</em></a>';
		 }
		 return flightList;
	}
	
	//动态获取列表
	function dynamicList(oInput){
	     var sVal = oInput.value;
		 var aList = "";
		 if(!sVal.trim()) return aList;
		 sVal = sVal.toUpperCase();
		 if(!citys || citys.constructor != Array || citys.length == 0) return;
		 for(var i=0, len = citys.length; i<len; i++){
		     if(getLeftStr(citys[i][3], sVal.length) == sVal || getLeftStr(citys[i][0], sVal.length) == sVal || getLeftStr(citys[i][2], sVal.length) == sVal ||(citys[i][1].indexOf(sVal) !=-1)){
			     aList+='<a id="'+citys[i][0]+'" href="#"><span>'+citys[i][1]+'</span><em>'+citys[i][2]+'</em></a>';
			 }
		    
		 }
		 if(aList.length){
		     slTit.innerHTML=''+sVal.toLowerCase()+' ,按拼音排序';
		 }else{
		     slTit.innerHTML='对不起,找不到 '+sVal.toLowerCase()+'';
			 aList = "unfound";
			 return aList;
		 }
         //console.log(aList);
		 return aList;
	}
	
	//检查输入框中字符是否在列表中
	function isListProperty(val){
	     var back = {id:'', value:''};
		 if(!citys || citys.constructor != Array || citys.length == 0) return;
		 
		 for(var i=0, len = citys.length; i<len; i++){
		     if( citys[i][1] == val || citys[i][2] == val.toUpperCase()){
			     back.id = citys[i][0];
				 back.value = citys[i][1];
				 return back;
			 }
		 }
		 return false;
	}
	
	//获取字符串左边字符
    function getLeftStr(str,len){
        if(!len){
            len = str.length;
        }else{
            if(parseInt(len)<0||parseInt(len)>str.length){
                len = str.length;
            }
        }
        return str.substring(0,len).toUpperCase();
    }
	
	//自动获取列表高度
	function setIframeH(listH, framH){
	     if(!listH || !framH) return;
	     var listHeight = listH.offsetHeight + 4;
		 framH.style.height = listHeight + "px";
	}
	
	//输入框赋值
	function setInputValue(el,tag){
	     if(el.tagName =='INPUT'){
		     el.value = tag.firstChild.firstChild.nodeValue;
			 FY.Dom.next(el).value = tag.id ;
			 el.style.color='#333333';
			 
			 if(el.id==='car_cityname'){
			     var zuchelist = getCarQu(tag.id);
				 var distr = FY.Dom.getid('distr');
				 distr.value = '';
				 FY.Dom.next(distr).value = '';
				 //console.log(zuchelist);
				 var distrs = new Selecter(distr, {list:zuchelist, swidth:203});
			 }
			 
		 }else{
		     el.innerHTML = tag.id;
		 }
	}
	
	//设置选择项
	function setSelect(tags, name, index){
	    for(var i=0, j=tags.length; i<j; i++){
		    FY.Style.removeClass(tags[i], name);
		}
		FY.Style.addClass(tags[index], name);

	}
	
	function focuscode(el){
	   　if(el.defaultValue ==inputNotes[0] && el.value == el.defaultValue){
	        el.value='';
		    el.style.color='#333333';
	   　}
	}
	function blurcode(el){
	    if(!el.value) {
		 el.value = inputNotes[0];
		 el.style.color='#999';
		}else{
		    var valid = isListProperty(el.value);
		    if(valid){
			    el.value = valid.value;
				FY.Dom.next(el).value = valid.id;
			}else{
			    el.value = el.value;
				FY.Dom.next(el).value = '';
				el.style.color='#999';
			}
		}
	}
	

    return{
	    init : function(){
             setInputInit();
             if(!selectInput.length) return;
		     createSelect();
			 this.startEvent();
		},
		fillCommListIn : function(el){
		     var list = getCommFlightList();
		     el.innerHTML = list;
			 el.firstChild.className='current';
			 slTit.innerHTML = '中文/拼音/代码或&uarr;&darr;选择';
		},
		fillDynamicIn : function(el, oInput){
		     var list = dynamicList(oInput);
			 if(list.length && list!="unfound"){
		         el.innerHTML = list;
			     el.firstChild.className='current';
			 }else if(list=="unfound"){
			     el.innerHTML = "";
			 }else{
			    slTit.innerHTML = '中文/拼音/代码或&uarr;&darr;选择';
			    this.fillCommListIn(slList);
			 }
		},
		setPosition : function(el, wrap){
		     var pos = FY.Dom.getoffset(el);
			 if(!isopen) wrap.style.display = "block";
			 wrap.style.left = (pos.left-2) + "px"; //just for index
			 wrap.style.top = pos.top + el.offsetHeight + "px";
			 isopen = true;
			 setIframeH(wrap, slIframe);
		},
		resetPosition : function(wrap){
		     if(isopen) wrap.style.display = "none";
			 isopen = false;
		},
		pclick : function(e, obj){
		     var eTarget = FY.Event.getTarget(e);
			 if(eTarget.nodeName == 'A'){
			     setInputValue(obj, eTarget);
			 }else if(eTarget.parentNode.nodeName == 'A'){
			     setInputValue(obj, eTarget.parentNode);
			 }
			 obj.blur();
		},
		startEvent : function(){
		     var that = this;
			 var aSelect = [];
		     for(var i=0, len = selectInput.length; i<len; i++){
				(function(cc){
					FY.Event.addEvent(selectInput[cc], 'focus', function(){
						var flag = selectInput[cc].getAttribute('title');
						var list = getArray(flag);
						commoncitys = list.commoneArray;
						citys = list.allArray;
					    focuscode(selectInput[cc]);
						that.fillCommListIn(slList);
						aSelect = slList.getElementsByTagName('a');
						var oldscroll = document.body.scrollWidth;
						that.setPosition(selectInput[cc], slWrap);
						if(document.body.scrollWidth != oldscroll){
						    that.setPosition(selectInput[cc], slWrap);
							oldscroll = document.body.scrollWidth;
						}
						keyIndex = 0;
						slWrap.onclick = function(e){
						    that.pclick(e, selectInput[cc]);
							that.resetPosition(slWrap);
							FY.Event.stopEvent(e);
						}
						selectInput[cc].onfocus = null;
					});
					
					
					FY.Event.addEvent(selectInput[cc], 'keyup', function(e){
					    var ekeycode = FY.Event.getkeycode(e);
						that.fillDynamicIn(slList, selectInput[cc]);
						aSelect = slList.getElementsByTagName('a');
						 switch(ekeycode){
						     case 8  :
							         that.fillDynamicIn(slList, selectInput[cc]);
									 that.setPosition(selectInput[cc], slWrap);
									 FY.Dom.next(selectInput[cc]).value = "";
									 break;
							 case 13 :
									 if(isopen && aSelect.length){
										 setInputValue(selectInput[cc], aSelect[keyIndex]);
										 that.resetPosition(slWrap);
										 
									 }else{
										 that.resetPosition(slWrap);
									 }
									 FY.Event.stopEvent(e);
									 break;
							 case 27 :
									 that.resetPosition(slWrap);
									 break;
							 case 38 :
									 keyIndex <= 0 ? keyIndex = aSelect.length-1 : keyIndex--;
									 setSelect(aSelect, 'current', keyIndex);
									 FY.Event.stopEvent(e);
								     break;
							 case 40 :
									 keyIndex >= aSelect.length-1 ? keyIndex = 0 : keyIndex++;
									 setSelect(aSelect, 'current', keyIndex);
									 FY.Event.stopEvent(e);
								     break;
							 default :
								  break;
						 }							
						
					});
					
					FY.Event.addEvent(selectInput[cc], 'blur', function(){
					    blurcode(selectInput[cc]);
					});

				})(i);
			 }

			FY.Event.addEvent(document, 'click', function(e){
				var eTarget = FY.Event.getTarget(e);
				if(eTarget.nodeName == 'INPUT' && /FYSelect/.test(eTarget.className)) return;
				if(contains(slWrap, eTarget)) return;
				that.resetPosition(slWrap);

			});
			 
		},
		al : function(){
		     alert('ok');
		}
	};	
	 
})();

FY.FYSelect.init();

function CheckTime(stValue){ 
	if(stValue.match(/^([0-1]\d|2[0-3]):([0-5]\d)$/)) {
		return true;
	} else {
		return false;
	}
}

function getCodeNameByList(Code, flag){
	var commonvalues, values, codename = "";
	if(flag != undefined && flag != null && flag == "FYCarrier"){
	   commonvalues = commonFYCarrier;
	   values = FYCarrierList;
	}else if(flag != undefined && flag != null && flag == "FYInterCarrier"){
	   commonvalues = commonFYInterCarrier;
	   values = FYInterCarrierList;
	}else if(flag != undefined && flag != null && flag == "FYCity"){
	   commonvalues = commonFYCity;
	   values = FYCityList;
	}else if(flag != undefined && flag != null && flag == "FYInterCity"){
	   commonvalues = commonFYInterCity;
	   values = FYInterCityList;
	}

	for(var i = 0, len = values.length; i<len; i++){
		if(Code == values[i][0]){
			codename = values[i][1];
			break;
		}
	}
	return codename;
}	

function isDateString(sDate){
  var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
  var iaDate = new Array(3)
  var year, month, day

  if (arguments.length != 1) return false
  iaDate = sDate.toString().split("-")
  if (iaDate.length != 3) return false
  if (iaDate[1].length > 2 || iaDate[2].length > 2) return false

  year = parseFloat(iaDate[0])
  month = parseFloat(iaDate[1])
  day=parseFloat(iaDate[2])

  if (year < 1900 || year > 2100) return false
  if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
  if (month < 1 || month > 12) return false
  if (day < 1 || day > iaMonthDays[month - 1]) return false
  return true
}

function stringToDate(sDate, bIgnore){	
	var bValidDate, year, month, day
	var iaDate = new Array(3)

	if (bIgnore) bValidDate = true
	else bValidDate = isDateString(sDate)

	if (bValidDate)
	{  iaDate = sDate.toString().split("-")
		year = parseFloat(iaDate[0])
		month = parseFloat(iaDate[1]) - 1
		day=parseFloat(iaDate[2])
		return (new Date(year,month,day))
	}
	else return (new Date(1900,1,1))
}

function changeGJVoyageType(sid){
	if (sid == "1") {
		FY.Dom.getid("id_ArrivalTime").disabled = true;
	} else if (sid == "2") {
		FY.Dom.getid("id_ArrivalTime").disabled = false;
	}
	FY.Dom.getid("id_radio").value = sid;
}

(function(){
	function getCodeByList(ListName, flag){
		var commonvalues, values, code = "";
		if(flag != undefined && flag != null && flag == "FYCarrier"){
		   commonvalues = commonFYCarrier;
		   values = FYCarrierList;
		}else if(flag != undefined && flag != null && flag == "FYInterCarrier"){
		   commonvalues = commonFYInterCarrier;
		   values = FYInterCarrierList;
		}else if(flag != undefined && flag != null && flag == "FYCity"){
		   commonvalues = commonFYCity;
		   values = FYCityList;
		}else if(flag != undefined && flag != null && flag == "FYInterCity"){
		   commonvalues = commonFYInterCity;
		   values = FYInterCityList;
		}

		for(var i = 0, len = values.length; i<len; i++){
			if(ListName == values[i][1]){
				code = values[i][0];
				break;
			}
		}
		return code;
	}	
	
	if(FY.Dom.getid('id_submitInterFlight')){
		FY.Event.addEvent(FY.Dom.getid('id_addInterFlightForm'), 'submit', function(e){
			FY.Event.preventDefault(e);
		});
	
		FY.Event.addEvent(FY.Dom.getid('id_submitInterFlight'), 'click', function(){
			var cn = FY.Dom.getid('id_CarrierName'),
			    dcn = FY.Dom.getid('id_DepartureCityName'),
			    acn = FY.Dom.getid('id_ArrivalCityName');
				fno = FY.Dom.getid('id_FlightNo');
				dtime = FY.Dom.getid('id_DepartureTime');
				atime = FY.Dom.getid('id_ArrivalTime');
				price = FY.Dom.getid('id_Price');
				tax = FY.Dom.getid('id_Tax');
				PassengerNum = FY.Dom.getid('id_PassengerNum');
				ResidenceTimeStart = FY.Dom.getid('id_ResidenceTimeStart');
				ResidenceTimeEnd = FY.Dom.getid('id_ResidenceTimeEnd');
				
			var CarrierName = cn.value,
				DepartureCityName = dcn.value,
				ArrivalCityName = acn.value;
				
			if(getCodeByList(CarrierName, "FYInterCarrier") == ""){
			   alert("请填写正确的航空公司");
			   window.setTimeout(function() { cn.focus(); }, 10);
			}else if(fno.value == ""){
			   alert("请输入航班号");
			   fno.focus();
			}else if(getCodeByList(DepartureCityName, "FYInterCity") == ""){
			   alert("请填写正确的出发城市");
			   window.setTimeout(function() { dcn.focus(); }, 10);
			}else if(getCodeByList(ArrivalCityName, "FYInterCity") == ""){
			   alert("请填写正确的到达城市");
			   window.setTimeout(function() { acn.focus(); }, 10);
			}else if(DepartureCityName == ArrivalCityName){
			   alert("出发、到达城市不能相同");
			   window.setTimeout(function() { acn.focus(); }, 10);
			}else if(dtime.value == ""){
			   alert("请输入出发时间");
			   dtime.focus();
			}else if(CheckTime(dtime.value) == false) {
			   alert("出发时间格式错误");
			   dtime.focus();
			}else if(atime.value == ""){
			   alert("请输入到达时间");
			   atime.focus();
			}else if(CheckTime(atime.value) == false) {
			   alert("到达时间格式错误");
			   atime.focus();
			}else if(price.value == ""){
			   alert("请输入价格");
			   price.focus();
			}else if(isNaN(price.value)) {
			   alert("价格错误");
			   price.focus();
			}else if(tax.value == ""){
			   alert("请输入税费");
			   tax.focus();
			}else if(isNaN(tax.value)) {
			   alert("税费错误");
			   tax.focus();
			}else if(PassengerNum.value == ""){
			   alert("请输入最少人数");
			   PassengerNum.focus();
			}else if(isNaN(PassengerNum.value)) {
			   alert("最少人数错误");
			   PassengerNum.focus();
			}else if(ResidenceTimeStart.value == ""){
			   alert("请输入停留时间");
			   ResidenceTimeStart.focus();
			}else if(isNaN(ResidenceTimeStart.value)) {
			   alert("停留时间错误");
			   ResidenceTimeStart.focus();
			}else if(ResidenceTimeEnd.value == ""){
			   alert("请输入停留时间");
			   ResidenceTimeEnd.focus();
			}else if(isNaN(ResidenceTimeEnd.value)) {
			   alert("停留时间错误");
			   ResidenceTimeEnd.focus();
			}else{
			   FY.Dom.getid('id_addInterFlightForm').submit();   
			}
		});
	} else 	if(FY.Dom.getid('id_QueryInterFlight')){
		FY.Event.addEvent(FY.Dom.getid('id_QueryInterFlightForm'), 'submit', function(e){
			FY.Event.preventDefault(e);
		});
	
		FY.Event.addEvent(FY.Dom.getid('id_QueryInterFlight'), 'click', function(){
			var dcn = FY.Dom.getid('id_DepartureCityName');
			    acn = FY.Dom.getid('id_ArrivalCityName');
				dtime = FY.Dom.getid('id_DepartureTime');
				atime = FY.Dom.getid('id_ArrivalTime');
				ra = FY.Dom.getid('id_radio');
				tod = FY.Dom.getid('id_today');
				
			var DepartureCityName = dcn.value,
				ArrivalCityName = acn.value;
				
			if(getCodeByList(DepartureCityName, "FYInterCity") == ""){
			   alert("请输入正确的出发城市");
			   window.setTimeout(function() { dcn.focus(); }, 10);
			}else if(getCodeByList(ArrivalCityName, "FYInterCity") == ""){
			   alert("请输入正确的到达城市");
			   window.setTimeout(function() { acn.focus(); }, 10);
			}else if(DepartureCityName == ArrivalCityName){
			   alert("出发、到达城市不能相同");
			   window.setTimeout(function() { acn.focus(); }, 10);
			}else if(stringToDate(dtime.value) < stringToDate(tod.value)){
			   alert("出发日期不能小于现在日期");
			   dtime.focus();
			}else if(ra.value == "2" && stringToDate(atime.value) < stringToDate(tod.value)){
			   alert("返程日期不能小于现在日期");
			   atime.focus();
			}else if(ra.value == "2" && stringToDate(atime.value) < stringToDate(dtime.value)){
			   alert("返程日期不能小于出发日期");
			   atime.focus();
			}else{
			   FY.Dom.getid('id_QueryInterFlightForm').submit(); 
			}
		});
	}
})();
