You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

457 lines
22 KiB
JavaScript

$(document).ready(function(e) {
$(".adyear").html(opyear('Adult'))
$(".chyear").html(opyear('Child'))
$(".cmonth").html(opMonth());
$(".cday").html(opMonthday(31));
$(".cCountry").html(citsCountry());
$(".fuyear").html(opfuyear());
$.ajax({
url: "/js/flight/idd-code.xml",
cache: false,
dataType: "xml",
success: function(data){
var list=new Array();
$(data).find("item").each(function(i){
var Country = $(this).children("Country").text();
var TollFree = $(this).children("TollFree").text();
var TmpStr = "<option value=\""+TollFree+"\">"+ TollFree+" ("+Country +")</option>"
if($(this).children("Country").text() != ""){
list.push(TmpStr);
}
});
for(var i=0; i<=list.length; i++){
$("#iddcodephone").append(list[i]);
//$("#iddcodemobile").append(list[i]);
}
}
});
});
function opyear(t){
var d = new Date();
var temp='<option value=\"\">-yyyy-</option>';
if(t==='Adult'){
var y=d.getFullYear()-12;
var miny=y-100;
for(var i=y;i>=miny;i--)
{
temp+='<option value=\"'+i+'\">'+i+'</option>';
}
}else if(t==='Child'){
var y=d.getFullYear()-2;
var miny=y-10;
for(var i=y;i>=miny;i--)
{
temp+='<option value=\"'+i+'\">'+i+'</option>';
}
}
return temp;
}
function opfuyear()
{
var temy='';
var d = new Date();
var yy=d.getFullYear();
for(var i=0;i<=20;i++)
{
tyy=parseInt(yy)+parseInt(i);
temy+='<option value=\"'+tyy+'\">'+tyy+'</option>';
}
return temy;
}
function opMonth()
{
var tem='<option value=\"\">-mm-</option>';
var month=new Array(12)
month[0]="Jan.";
month[1]="Feb.";
month[2]="Mar.";
month[3]="Apr.";
month[4]="May.";
month[5]="Jun.";
month[6]="Jul.";
month[7]="Aug.";
month[8]="Sep.";
month[9]="Oct.";
month[10]="Nov.";
month[11]="Dec.";
for(i=0;i<12;i++)
{
tem+='<option value=\"'+parseInt(i+1)+'\">'+month[i]+'</option>';
}
return tem;
}
function opMonthday(t){
if(isNaN(t)===true){return;}
var tem='<option value=\"\">-dd-</option>';
for(var i=1;i<=t;i++)
{
if(i<10){ti='0'+i;}else{ti=i;}
tem+='<option value=\"'+ti+'\">'+ti+'</option>';
}
return tem;
}
function chkval(o)
{
if($(o).val()=='')
{
$(o).addClass("warn");
}else{
$(o).removeClass("warn")
}
}
function chkForm()
{
showload();
var nullfild=0;var y=new Array();var m=new Array();var d=new Array();
$(".chknull").each(function() {
if($(this).val()==''){
nullfild=nullfild+1;
$(this).addClass("warn");
}
});
$(".chkdate").each(function() {
if(strDateTime($(this).val())==false)
{
nullfild=nullfild+1;
$(this).addClass("warn");
$(this).val('mm/dd/yyyy');
}
});
$(".email").each(function() {
if(checkEamil( $(this).val())==false){nullfild=nullfild+1;$(this).addClass("warn");}
});
//验证日期有效性
$(".citsy").each(function(index, element) {
y.push($(this).val());
});
$(".citsm").each(function(index, element) {
m.push($(this).val());
});
$(".citsd").each(function(index, element) {
d.push($(this).val());
});
for(var i=0;i<y.length;i++){
if(!datevalid(y[i],m[i],d[i])){
nullfild+=1;
$(".citsy:eq("+i+")").addClass("warn");
$(".citsm:eq("+i+")").addClass("warn");
$(".citsd:eq("+i+")").addClass("warn");
}
}
if(nullfild!=0){$("#formloading").remove();return false;}
}
function datevalid(y,m,d){
var nd=new Date(y+'/'+m+'/'+d);
if(nd.getFullYear()!=y || nd.getMonth()!=(m-1) || nd.getDate()!=d){
return false;
}else{
return true;
}
}
function chkdate(o,p)
{
if(strDateTime($(o).val())==false)
{
$(o).addClass("warn");
if($(o).val()==''){$(o).val('mm/dd/yyyy');}
}else{$(o).removeClass("warn");}
}
function strDateTime(str)
{
var r = str.match(/^(\d{1,2})(\/)(\d{1,2})\2(\d{1,4})$/); // mm/dd/yyyy only
if(r==null)return false;
var d= new Date(r[4], r[3]-1, r[1]);
return (d.getFullYear()==r[4]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[1]);
}
function clearval(o)
{
if($(o).val()=='mm/dd/yyyy')
{
$(o).val('');
}
}
function autobirthday(o)
{
//value=value.replace(/[^0-9\/]/g,'')
var temp=$(o).val().replace(/[^0-9\/]/g,'');
$(o).val(temp);
//if(temp.length==4 || temp.length==7){$(o).val($(o).val()+"/");}
}
//验证Email
function chkmail(o)
{
if(checkEamil( $(o).val())==false){$(o).addClass("warn");}else{$(o).removeClass("warn");}
}
function checkEamil(o) {
if ( !( /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(o))) {
return false;
} else {
return true;
}
}
function cleardefault(o,vals)
{
if($(o).val()===vals){
$(o).val('');
}else{
$(o).removeClass("warn");
}
}
function defaulttext(o,vals){
if($(o).val()===''){
$(o).val(vals);
$(o).addClass("warn");
}else if($(o).val()!==vals){
$(o).removeClass("warn");
}
}
function creatinfo(t)
{
//$('<div class="'+val+'"><input type="text" value="" name="'+val+'" /></div>').appendTo($("#adult"))
if(t=='Adult'){
var parclass='passanger_a';
var idNO='adno'+$("#inta").val();
var partype="a";
}else{
var parclass='passanger_c';
var idNO='clno'+$("#intc").val();
var partype="c";
}
var tem='<ul class="'+parclass+'" id="'+idNO+'">';
tem+='<li class="passenger_lfet"><a href="javascript:;" title="Remove passenger" onclick="removesomepeople(\''+t+'\',\''+idNO+'\')">'+t+' <span class="remove">-</span></a></li>'
tem+='<li class="passenger_right"><span>'+creatTitle(t)+'</span><span><input type="text" name="GivenName_'+partype+'[]" value="Given name" onclick="cleardefault(this,\'Given name\')" onblur="defaulttext(this,\'Given name\')">-</span><span><input type="text" name="FamilyName_'+partype+'[]" value="Family name" onclick="cleardefault(this,\'Family name\')" onblur="defaulttext(this,\'Family name\')"></span><span>'+createBirthday(t)+'</span></li>';
tem+='<li class="passenger_right"><span>'+ceratePassport(t)+'</span><span>'+createExpdate(t)+'</span><span>'+createCountry(t)+'</span></li>'
tem+='</ul>';
$(tem).appendTo('#passenger')
}
//创建称谓
function creatTitle(t)
{
if(t==='Adult'){tc='a';}else{tc='c';}
var tem='<select name="title_'+tc+'[]" class="chknull" onblur="chkval(this)"><option selected="selected" value="">-Title-</option><option value="Mr">Mr.</option><option value="Mrs">Mrs</option><option value="Ms">Ms.</option></select>';
return tem
}
//创建生日
function createBirthday(t)
{
var tem='';
var temy=opyear(t);
var temm=opMonth();
var temd=opMonthday(31);
tem+='Date of birth:<select name="'+t.toLowerCase()+'m[]" class="chknull citsm" onblur="chkval(this)">'+temm+'</select><select name="'+t.toLowerCase()+'d[]" class="chknull citsd" onblur="chkval(this)">'+temd+'</select><select name="'+t.toLowerCase()+'y[]" class="chknull citsy" onblur="chkval(this)">'+temy+'</select>'
return tem;
}
//cerate Passport No.
function ceratePassport(t)
{
if(t==='Adult'){
tm="a";
}else{
tm="c";
}
var tem='<input type="text" value="Passport No. / ID No." name="'+tm+'PassportNo[]" onclick="cleardefault(this,\'Passport No. / ID No.\')" onblur="defaulttext(this,\'Passport No. / ID No.\')">'
return tem;
}
//Date of expiry
function createExpdate(t){
var tem='';
var temy='';
var d=new Date();
var yy=d.getFullYear();
for(var i=0;i<=20;i++)
{
tyy=parseInt(yy)+parseInt(i);
temy+='<option value=\"'+tyy+'\">'+tyy+'</option>';
}
var temm=opMonth();
var temd=opMonthday(31);
tem+='Date of expiry:<select name="'+t.toLowerCase()+'me[]" class="chknull citsm" onblur="chkval(this)">'+temm+'</select><select name="'+t.toLowerCase()+'de[]" class="chknull citsd" onblur="chkval(this)">'+temd+'</select><select name="'+t.toLowerCase()+'ye[]" class="chknull citsy" onblur="chkval(this)">'+temy+'</select>';
return tem
}
//Create Country
function createCountry(t){
var temC=citsCountry();
var tem='';
tem+='Country of issue:<select name="'+t.toLowerCase()+'coun[]" class="cCountry">'+temC+'</select>';
return tem;
}
//添加乘客
function addpeople(t){
if(t==='Adult'){
var inta=$("#inta").val();
if(parseInt(inta)==='NaN'){
alert('Error!');
window.close();
//window.location.href='/china-flights/flights-to-china.asp';
}else{
$('#inta').val(parseInt(inta)+1)
}
//$(".removepeo").show();
}else if(t==='Child'){
var intc=$("#intc").val();
if(parseInt(intc)==0){$(".childlist").show();}
if(parseInt(intc)==='NaN'){
alert('Error!');
window.close();
//window.location.href='/china-flights/flights-to-china.asp';
}else{
$('#intc').val(parseInt(intc)+1)
}
}
creatinfo(t);
achgprice(t);
}
//添加乘客时更改价格
function achgprice(t){
if(t==='Adult'){
var adp=$("#abp").val();
var adt=$("#abt").val();
var tall=$("#tall").html();
var anum=$("#anum").html();
var newtall=parseInt(adp)+parseInt(adt)+parseInt(tall);
var tfee=$("#tfee").html();
$("#tall").html(newtall);
$(".anum").html(parseInt(anum)+1);
$("#tfee").html(parseInt(tfee)+parseInt(adt));
}else if(t==='Child'){
var cbp=$("#cbp").val();
var cbt=$("#cbt").val();
var tall=$("#tall").html();
var cnum=$("#cnum").html();
var newtall=parseInt(cbp)+parseInt(cbt)+parseInt(tall);
var tfee=$("#tfee").html();
$("#tall").html(newtall);
$(".cnum").html(parseInt(cnum)+1);
$("#tfee").html(parseInt(tfee)+parseInt(cbt));
}
}
//减少乘客时价格更改
function mchgprice(t){
if(t==='Adult'){
var adp=$("#abp").val();
var adt=$("#abt").val();
var tall=$("#tall").html();
var anum=$("#anum").html();
var newtall=parseInt(tall)-parseInt(adp)-parseInt(adt);
var tfee=$("#tfee").html();
$("#tall").html(newtall);
$(".anum").html(parseInt(anum)-1);
$("#tfee").html(parseInt(tfee)-parseInt(adt));
}else if(t==='Child'){
var cbp=$("#cbp").val();
var cbt=$("#cbt").val();
var tall=$("#tall").html();
var cnum=$("#cnum").html();
var newtall=parseInt(tall)-parseInt(cbp)-parseInt(cbt);
var tfee=$("#tfee").html();
$("#tall").html(newtall);
$(".cnum").html(parseInt(cnum)-1);
$("#tfee").html(parseInt(tfee)-parseInt(cbt));
}
}
//删除乘客
function removepeople(t){
if(t==='Adult'){
if($("#passenger .passanger_a").length>1){
$("#passenger .passanger_a:last").remove();
mchgprice(t);
var inta=$("#inta").val();
if(parseInt(inta)==='NaN'){
alert('Error!');
window.close();
//window.location.href='/china-flights/flights-to-china.asp';
}else{
$('#inta').val(parseInt(inta)-1)
}
}else{
$(".removepeo").hide()
}
}else{
if($("#passenger .passanger_c").length>1){
$("#passenger .passanger_c:last").remove();
mchgprice(t)
}else{
$(".removepeo").hide()
}
}
}
//删除特定乘客
function removesomepeople(t,sid){
if(t=='Adult'){
$("#"+sid).remove();
mchgprice(t);
var inta=$("#inta").val();
if(parseInt(inta)==='NaN' || parseInt(inta)==1){
alert('Error!');
window.close();
//window.location.href='/china-flights/flights-to-china.asp';
}else{
$('#inta').val(parseInt(inta)-1)
}
}else if(t=='Child'){
$("#"+sid).remove();
mchgprice(t);
var intc=$("#intc").val();
if(parseInt(inta)==='NaN'){
alert('Error!');
window.close();
//window.location.href='/china-flights/flights-to-china.asp';
}else{
$('#intc').val(parseInt(intc)-1);
if(parseInt($('#intc').val())<=0){
$(".childlist").hide();
}
}
}
}
//自动填充联系人
function autoname(pid){
if(pid==='pgname'){
var gname=$('#pgname').val();
$("#ctgname").val(gname);
}else if(pid==='pfname'){
var fname=$('#pfname').val();
//var fullname=$('#ctfullname').val();
$('#ctfname').val(fname);
}
}
//下拉菜单同步
function titlesyn(pid,cid){
var pval=$('#'+pid).val();
$("#"+cid+" option").each(function(index, element) {
if($(this).val()===pval){
$(this).attr("selected","selected")
}
});
}
function showload(){
var loaddiv='<div id="formloading"><div style="background:url(/pic/flight/formload.png) no-repeat; width:758px; margin:1px auto;"><div style="padding:193px 0 0 0; width:420px; height:330px; text-align:center;"><p><img src="/pic/intlflightloading.gif" alt="loading" /></p></div></div></div>';
$(document.body).append(loaddiv);
var winh=$(window).height();
winh+=$(document).scrollTop();
var winw=$(window).width();
$("#formloading").css({
"width":winw+"px",
"height":parseInt(winh/2)+"px",
"background":"url(/pic/black10.png)",
"position":"absolute",
"z-index":"9999",
"left":"0",
"top":"0",
"text-align":"center",
"padding-top":parseInt(winh/2)+"px"
});
}
function citsCountry()
{
var tem='<option value="18">Australia</option><option value="5">Canada</option><option value="1">China</option><option value="8">France</option><option value="6">Germany</option><option value="9">Italy</option><option value="19">Malaysia</option><option value="27">Singapore</option><option value="7">United Kingdom</option><option value="3" selected="selected">United States</option><option value="">==============</option><option value="458">Afghanistan</option><option value="459">Albania</option><option value="460">Algeria</option><option value="461">American Samoa</option><option value="462">Andorra</option><option value="463">Angola</option><option value="464">Anguilla</option><option value="465">Antarctica</option><option value="466">Antigua And Barbuda</option><option value="467">Argentina</option><option value="468">Armenia</option><option value="469">Aruba</option><option value="18">Australia</option><option value="470">Austria</option><option value="471">Azerbaijan</option><option value="472">Bahamas</option><option value="473">Bahrain</option><option value="474">Bangladesh</option><option value="671">Barbadian</option><option value="475">Barbados</option><option value="476">Belarus</option><option value="477">Belgium</option><option value="478">Belize</option><option value="479">Benin</option><option value="480">Bermuda</option><option value="481">Bhutan</option><option value="482">Bolivia</option><option value="483">Botswana</option><option value="484">Bouvet Island</option><option value="38">Brazil</option><option value="485">British Indian Ocean Territory</option><option value="486">Brunei Darussalam</option><option value="487">Bulgaria</option><option value="488">Burkina Faso</option><option value="489">Burundi</option><option value="490">Cambodia</option><option value="491">Cameroon</option><option value="5">Canada</option><option value="493">Cape Verde</option><option value="494">Cayman Islands</option><option value="495">Central African Republic</option><option value="496">Chad</option><option value="497">Chile</option><option value="1">China</option><option value="10">China HK</option><option value="499">Christmas Island</option><option value="500">Colombia</option><option value="501">Comoros</option><option value="502">Congo</option><option value="504">Cook Islands</option><option value="505">Costa Rica</option><option value="506">Croatia</option><option value="507">Cuba</option><option value="508">Cyprus</option><option value="509">Czech Republic</option><option value="510">Czechoslovakia</option><option value="511">Denmark</option><option value="512">Djibouti</option><option value="513">Dominica</option><option value="514">Dominican Republic</option><option value="515">East Timor</option><option value="516">Ecuador</option><option value="517">Egypt</option><option value="518">El Salvador</option><option value="520">Equatorial Guinea</option><option value="521">Eritrea</option><option value="522">Estonia</option><option value="523">Ethiopia</option><option value="524">Falkland Islands</option><option value="525">Faroe Islands</option><option value="526">Fiji</option><option value="527">Finland</option><option value="8">France</option><option value="528">French Guiana</option><option value="529">French Polynesia</option><option value="530">Gabon</option><option value="531">Gambia</option><option value="532">Georgia</option><option value="6">Germany</option><option value="533">Ghana</option><option value="534">Gibraltar</option><option value="536">Greece</option><option value="537">Greenland</option><option value="538">Grenada</option><option value="539">Guadeloupe</option><option value="540">Guam</option><option value="670">Guatemala</option><option value="541">Guernsey</option><option value="542">Guinea</option><option value="543">Guinea-Bissau</option><option value="544">Guyana</option><option value="545">Haiti</option><option value="546">Honduras</option><option value="547">Hong Kong</option><option value="548">Hungary</option><option value="36">Iceland</option><option value="22">India</option><option
tem+='<option value="592">Namibia</option><option value="593">Nauru</option><option value="31">Nepal</option><option value="39">Netherlands</option><option value="594">Netherlands Antilles</option><option value="595">Neutral Zone</option><option value="596">New Caledonia</option><option value="20">New Zealand</option><option value="597">Nicaragua</option><option value="598">Niger</option><option value="599">Nigeria</option><option value="600">Niue</option><option value="601">Norfolk Island</option><option value="33">North Korea</option><option value="602">Northern Mariana Islands</option><option value="37">Norway</option><option value="603">Oman</option><option value="604">Pakistan</option><option value="605">Palau</option><option value="606">Panama</option><option value="607">Papua New Guinea</option><option value="608">Paraguay</option><option value="609">Peru</option><option value="23">Philippines</option><option value="610">Pitcairn</option><option value="611">Poland</option><option value="612">Portugal</option><option value="613">Puerto Rico</option><option value="614">Qatar</option><option value="615">Reunion</option><option value="616">Romania</option><option value="24">Russian Federation</option><option value="617">Rwanda</option><option value="618">Saint Helena</option><option value="619">Samoa</option><option value="620">San Marino</option><option value="621">Sao Tome and Principe</option><option value="622">Saudi Arabia</option><option value="674">Scotland</option><option value="623">Senegal</option><option value="624">Seychelles</option><option value="625">Sierra Leone</option><option value="27">Singapore</option><option value="626">Slovakia</option><option value="627">Slovenia</option><option value="628">Solomon Islands</option>'
tem+='<option value="629">Somalia</option><option value="630">South Africa</option><option value="631">South Georgia and The Sandwich</option><option value="26">Spain</option><option value="632">Sri Lanka</option><option value="633">Sudan</option><option value="634">Suriname</option><option value="635">Swaziland</option><option value="636">Sweden</option><option value="25">Switzerland</option><option value="637">Syrian Arab Republic</option><option value="638">Taiwan</option><option value="639">Tanzania</option><option value="28">Thailand</option><option value="676">The Republic of Cote d\'ivoire</option><option value="640">Togo</option><option value="641">Tokelau</option><option value="642">Tonga</option><option value="643">Trinidad and Tobago</option><option value="644">Tunisia</option><option value="645">Turkey</option><option value="646">Turkmenistan</option><option value="647">Turks and Caicos Islands</option><option value="648">Tuvalu</option><option value="649">Uganda</option><option value="650">Ukraine</option><option value="651">United Arab Emirates</option><option value="7">United Kingdom</option><option value="3">United States</option><option value="667">unknown</option><option value="652">Uruguay</option><option value="653">USSR</option><option value="654">Uzbekistan</option><option value="655">Vanuatu</option><option value="656">Vatican City State</option><option value="657">Venezuela</option><option value="30">Vietnam</option><option value="659">Virgin Islands (British)</option><option value="660">Virgin Islands (U.S.)</option><option value="661">Western Sahara</option><option value="662">Yemen</option><option value="663">Yugoslavia</option><option value="664">Zaire</option><option value="665">Zambia</option><option value="666">Zimbabwe</option>'
return tem;
}