﻿/*
Copyright (c) 2008, Itour! Inc. All rights reserved.
version: 1.0
created:songzm
date:2008-1-1
*/
if(typeof Itour=="undefined"||!Itour)
{
    var Itour={};
}
var $G = function(id){return (typeof id=="object")?id:document.getElementById(id);}

String.prototype.trim = function(){ return this.replace(/(^\s*)|(\s*$)/g,"");}
String.prototype.IsPost = function(){ return new RegExp('^[0-9]{6}$').test(this)?true:false;}
String.prototype.IsInt = function(){  return new RegExp('^[1-9]{1,}[0-9]{0,}$').test(this)?true:false;}
String.prototype.IsIntAndChar = function(){ return new RegExp('^[a-zA-Z0-9]+$').test(this)?true:false;}
String.prototype.IsFloat = function(){ return new RegExp('^[0-9]{1,}[.]{0,1}[0-9]*$').test(this)?true:false;}
String.prototype.IsChar = function(){ return new RegExp('^[A-Za-z]+$').test(this)?true:false;}
String.prototype.IsPhone = function(){ return new RegExp('^0[1-9]{1,2}[0-9]{1}-[1-9]{1}[0-9]{6,7}$').test(this)?true:false;}
String.prototype.IsMobile=function(){ return new RegExp('^1[358]{1}[0-9]{1}[0-9]{8}$').test(this)?true:false;}
//String.prototype.IsMail = function(){ return new RegExp('^[a-zA-Z0-9_]{3,20}@[a-zA-Z0-9]{1,20}.(com|net|cn|com.cn|org|org.cn|cc)$').test(this)?true:false;}
String.prototype.IsMail = function(){ return new RegExp('^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$').test(this)?true:false;}

String.prototype.replaceTags = function(){
	var t = this.replace(/</g, '');
	t = t.replace(/>/g, '');
	t = t.replace(/&/g,'');
	t = t.replace(/\'/g,'');
	return t;
};
String.prototype.FullDate=function()
{
    var d1 = this.split("-");
    if (d1.length == 3)
        return d1[0] + "-" + (d1[1].length == 1?"0" + d1[1]:d1[1]) + "-" + (d1[2].length == 1?"0" + d1[2]:d1[2]);            
    else
        return this;
}
String.prototype.IsIdcard=function() {
    var Errors = new Array(
            "true",
            "身份证号码位数不对!",
            "身份证号码出生日期超出范围或含有非法字符!",
            "身份证号码校验码错误!",
            "身份证地区非法!"
            );
    var area = {11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
    var idcard = this,Y,JYM;
    var S,M;
    var idcard_array = new Array();
    idcard_array = idcard.split("");
    //地区检验
    if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4];
    //身份号码位数及格式检验
    switch (idcard.length) {
        case 15:
            if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 )) {
                ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;
                //测试出生日期的合法性
            } else {
                ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;
                //测试出生日期的合法性
            }
            if (ereg.test(idcard)) return Errors[0];
            else return Errors[2];
            break;
        case 18:
        //18位身份号码检测
        //出生日期的合法性检查
        //闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
        //平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
            if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0 )) {
                ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;
                //闰年出生日期的合法性正则表达式
            } else {
                ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;
                //平年出生日期的合法性正则表达式
            }
            if (ereg.test(idcard)) {//测试出生日期的合法性
                //计算校验位
                S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
                        + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
                        + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
                        + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
                        + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
                        + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
                        + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
                        + parseInt(idcard_array[7]) * 1
                        + parseInt(idcard_array[8]) * 6
                        + parseInt(idcard_array[9]) * 3;
                Y = S % 11;
                M = "F";
                JYM = "10X98765432";
                M = JYM.substr(Y, 1);
                //判断校验位
                if (M == idcard_array[17].toUpperCase()) return Errors[0]; //检测ID的校验位
                else return Errors[3];
            }
            else return Errors[2];
            break;
        default:
            return Errors[1];
            break;
    }
}

var Itour = {
        $ : function(id){	return (document.getElementById) ? document.getElementById(id): document.all[id]; },
        isIE : navigator.appName.toLowerCase().indexOf("explorer")!=-1?true:false,
        isFirefox : navigator.appName.toLowerCase().indexOf("netscape")!=-1?true:false,
        isOpera : navigator.userAgent.toLowerCase().indexOf("opera")!=-1?true:false,
        addEvent : function(obj,eventType,func)
                    {
                        if(obj.attachEvent){obj.attachEvent("on" + eventType,func);}
                        else{obj.addEventListener(eventType,func,false)}
                    },
	    delEvent : function(obj,eventType,func)
	                {
		                if(obj.detachEvent){obj.detachEvent("on" + eventType,func)}
		                else{obj.removeEventListener(eventType,func,false)}
		            },
		getXMLHTTP : function(method,url,issync,func)
                    {
	                    var http_request;
                    	
	                    if(window.XMLHttpRequest) { 
		                    http_request = new XMLHttpRequest();
//		                    if (http_request.overrideMimeType) {
//			                    http_request.overrideMimeType("text/xml");
//		                    }
	                    }
	                    else if (window.ActiveXObject) { 
		                    try {
			                    http_request = new ActiveXObject("Msxml2.XMLHTTP");
		                    } catch (e) {
			                    try {
				                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
			                    } catch (e) {}
		                    }
	                    }
	                    if (http_request) {		                    
	                        http_request.open(method,url,issync); 
	                        http_request.onreadystatechange = function(){
	                                if (http_request.readyState==4)
	                                 {
                                        if (http_request.status == 200)
                                            func(http_request.responseText);
				                        else
					                        func(http_request.status);
	                                 }
	                        };
	                    }
	                    else
	                        func(null);
	                    http_request.send(null);
	                    //return http_request;
                    },
         SetCookie : function (cookieName,cookieValue,nDays)
                     {
                         var today = new Date();
                         var expire = new Date();
                         if (nDays==null || nDays==0) nDays=1;
                         expire.setTime(today.getTime() + 3600000*24*nDays);
                         document.cookie = cookieName+"="+escape(cookieValue) + ";path=/;expires="+expire.toGMTString();//;domain=localhost  
                                             
                     },
         GetCookie : function(name) {
                          var arg = name + "="; 
                          var alen = arg.length;
                          var clen = document.cookie.length;
                          var i = 0;  
                          while (i < clen) {
                            var j = i + alen;
                            if (document.cookie.substring(i, j) == arg)
                            {
                                  var endstr = document.cookie.indexOf (";", j);
                                  if (endstr == -1)
                                    endstr = document.cookie.length;
                                  return unescape(document.cookie.substring(j, endstr));
                             // return getCookieVal (j);
                            }
                            i = document.cookie.indexOf(" ", i) + 1;
                            if (i == 0)
                               break;
                          }
                          return "";
                    },
        ClearCookie:function(name,path){
		    if(this.GetCookie(name)){
			    document.cookie=name+"="+((path)?"; path="+path:"; path=/") + ";expires=Fri, 02-Jan-1970 00:00:00 GMT";
		        }
	        },	    
	    SetClassName:function(id,ClassName){
	        this.$(id).className = ClassName;
	    },	    
	    Company_EN:{
"3K":"捷星亚洲航空","3U":"四川航空公司","5J":"宿务太平洋航空公司","6U":"乌克兰航空公司","7P":"印尼发达飞航空公司","8M":"缅甸航空公司","9I":"泰国天鹰航空公司","9W":"印度捷达航空公司","A7":"西班牙红风筝航空","AA":"美国美洲航空公司","AB":"德国柏林航空公司","AC":"加拿大航空公司","AF":"法国航空公司","AI":"印度航空公司","AM":"墨西哥航空公司","AO":"澳亚航空公司","AR":"阿根廷航空公司","AS":"阿拉斯加航空公司","AY":"芬兰航空公司","AZ":"意大利航空公司","B7":"立荣航空公司","BA":"英国航空公司","BD":"英国中部航空公司","BG":"孟加拉国航空公司","BI":"文莱王家航空公司","BR":"长荣航空公司","CA":"中国国际航空公司","CI":"中华航空公司","CM":"巴拿马航空公司","CO":"美国大陆航空公司","CX":"国泰航空公司","CY":"塞浦路斯航空公司","CZ":"中国南方航空公司","DL":"达美航空公司","EG":"日本亚细亚航空公司","EI":"埃及航空公司","EK":"阿联酋国际航空公司","ET":"埃塞俄比亚航空公司","EY":"阿联酋阿提哈德航空公司","FI":"冰岛航空公司","FJ":"斐济航空公司","FM":"上海航空公司","FV":"圣彼得堡航空公司","G6":"吴哥航空公司","GA":"印度尼西亚航空公司","GE":"台湾复兴航空公司","GF":"海湾航空公司","HA":"夏威夷航空公司","HM":"塞舌尔航空公司","HP":"美国美西航空公司","HU":"海南航空公司","HX":"香港航空","HY":"乌兹别克航空公司","IB":"西班牙航空公司","IY":"也门航空","JD":"日本航空系统公司","JJ":"巴西航空公司","JL":"日本航空公司","JO":"日线航空","JS":"朝鲜航空公司","KA":"港龙航空公司","KE":"大韩航空公司","KL":"荷兰皇家航空公司","KN":"中国联合航空有限公司","KQ":"肯尼亚航空公司","KU":"科威特航空公司","LA":"智利航空公司","LH":"德国汉莎航空公司","LO":"波兰航空公司","LR":"哥斯达黎加航空公司","LX":"瑞士国际航空公司","LY":"以色列航空公司","MA":"匈牙利航空公司","MD":"马达加斯加航空公司","MF":"厦门航空公司","MH":"马来西亚航空公司","MI":"胜安航空公司","MK":"毛里求斯航空公司","MS":"埃及航空公司","MT":"美斯亚太包机航空","MU":"中国东方航空","MX":"墨西哥航空公司","N8":"中富航空","NH":"全日空航空公司","NL":"沙欣国际航空","NW":"美西北航空公司","NX":"澳门航空公司","NZ":"新西兰航空公司","O8":"甘泉航空公司","OA":"希腊奥林匹克航空公司","OK":"捷克航空公司","OM":"蒙古航空公司","OS":"奥地利航空公司","OU":"克罗地亚航空公司","OX":"泰国东方航空公司","OZ":"韩亚航空公司","PG":"曼谷航空公司","PK":"巴基斯坦航空公司","PO":"中国邮政航空公司","PR":"菲律宾航空公司","PS":"乌克兰航空公司","PX":"新几内亚航空公司","QF":"澳洲航空公司","QH":"澳航假期","QM":"马拉维航空","QR":"卡塔尔航空公司","RA":"尼泊尔航空公司","RG":"巴西航空公司","RJ":"约旦航空公司","RO":"罗马尼亚航空公司","S2":"撒哈拉航空公司","S7":"新西伯利亚航空公司","SA":"南非航空公司","SC":"山东航空公司","SK":"北欧航空公司","SN":"布鲁塞尔航空公司","SQ":"新加坡航空公司","SR":"瑞士航空公司","SU":"俄罗斯国际航空公司","SV":"沙特阿拉伯航空公司","TA":"塔卡国际航空公司","TG":"泰国航空公司","TK":"土耳其航空公司","TN":"大溪地航空公司","TO":"柬埔寨总统航空公司","TP":"葡萄牙航空公司","UA":"美国联合航空公司","UL":"斯里兰卡航空公司","UM":"津巴布韦航空公司","UN":"俄罗斯全禄航空公司","UO":"港联航空","US":"美国全美航空公司","UX":"西班牙欧洲航空","VF":"惠旅航空公司","VN":"越南航空公司","VS":"维珍航空公司","VV":"空中世界乌克兰航空公司","W5":"伊朗马汉航空公司","ZG":"非凡航空公司","ZH":"深圳航空公司","KC":"阿斯塔纳航空公司","WS":"西捷航空公司","KB":"德鲁克航空公司","	IC":"印度航空公司","IR":"伊朗航空公司","DT":"安哥拉航空公司","TM":"拉姆航空","SW":"代曼机场","BP":"博茨瓦纳航空","RE":"阿伦航空"
    },
        Company_CN:{
        "3U":{"FullName":"四川航空公司","ShortName":"四川航空"},        
        "CA":{"FullName":"国际航空公司","ShortName":"国际航空"},
        "CZ":{"FullName":"南方航空公司","ShortName":"南方航空"},
        "HU":{"FullName":"海南航空公司","ShortName":"海南航空"},
        "SC":{"FullName":"山东航空公司","ShortName":"山东航空"},
        "FM":{"FullName":"上海航空公司","ShortName":"上海航空"},
        "MF":{"FullName":"厦门航空公司","ShortName":"厦门航空"},
        "ZH":{"FullName":"深圳航空公司","ShortName":"深圳航空"},
        "MU":{"FullName":"东方航空公司","ShortName":"东方航空"},
        
        "HO":{"FullName":"吉祥航空公司","ShortName":"吉祥航空"},        
        "PN":{"FullName":"西部航空公司","ShortName":"西部航空"},
        "8L":{"FullName":"祥鹏航空公司","ShortName":"祥鹏航空"},
        "EU":{"FullName":"成都航空公司","ShortName":"鹰联航空"},
        "KN":{"FullName":"联合航空公司","ShortName":"联合航空"},        
        "VD":{"FullName":"鲲鹏航空公司","ShortName":"鲲鹏航空"},
        "JD":{"FullName":"首都航空公司","ShortName":"金鹿航空"},
        "G5":{"FullName":"华夏航空公司","ShortName":"华夏航空"},
        "BK":{"FullName":"奥凯航空公司","ShortName":"奥凯航空"},        
        "NS":{"FullName":"东北航空公司","ShortName":"东北航空"},
        "CN":{"FullName":"大新华航控股公司","ShortName":"大新华航控股"},
        "GS":{"FullName":"天津航空公司","ShortName":"大新华快运航空"}
        },
        CrowdType:{"1": "散客","2":"团队","3":"劳工","4":"学生","5":"移民","6":"儿童","7":"婴儿","8":"老人","9":"海员"},
        GetWeek:{"0":"星期日","1":"星期一","2":"星期二","3":"星期三","4":"星期四","5":"星期五","6":"星期六"}
        
};

Itour.Validate={};
