function SmartForm(n,t){this.$form=$(n);this.$submit=this.$form.find(":submit");this.$vcode=this.$form.find("img.js-code");this.$wait=$("<img/>",{src:"/images/loading.gif",width:"37px",height:"37px"});this.codeSrc=this.$vcode.attr("src");this.errorCls=t;this.$agree=$("#agree");this.init()}function SiteHome(){this.init()}function TourInfo(){this.$imgBox=$("#imgBox");this.init()}function Album(){this.init()}function Tailor(){this.$form=$("#frmTailor");this.$agree=$("#agree");this.$simple=$("#IsSimple");this.$entryDate=$("#EntryDate");this.$exitDate=$("#ExitDate");this.$submit=$(":submit",this.$form);this.$vcode=$("#vcode");this.codeSrc=this.$vcode.attr("src");this.$wait=$("<img/>",{src:"/images/loading.gif",width:"37px",height:"37px"});this.init()}function Ship(n){this.$showprice=$("#showprice");this.$dateBox=$("#dateBox");this.shipId=n;this.init()}function InteTrainTickeSearch(){this.$inteForm=$("#frmSearchIntenate");this.$inteDepart=this.$inteForm.find("#inteDepart");this.$inteArrival=this.$inteForm.find("#inteArrival");this.$inteDate=this.$inteForm.find("#inteDate");this.init()}function TrainTicketSearch(){this.$form=$("#frmTrainSearch");this.$addSearch=this.$form.find("#addSearch");this.$removeSearch=this.$form.find("#removeSearch");this.init()}function BookInteTrainTicket(){this.init()}function TrainTicketHandler(n,t,i){this.$trainBox=$("#train_search_box");this.depart=n;this.arrival=t;this.date=i;this.init()}function BookTour(){this.$form=$("#frmBook");this.$submit=this.$form.find(":submit");this.$vcode=$("#vcode");this.$wait=$("<img/>",{src:"/images/loading.gif",width:"37px",height:"37px"});this.codeSrc=this.$vcode.attr("src");this.errorCls=".js-err-box";this.$agree=$("#agree");this.init()}SmartForm.prototype={constructor:SmartForm,init:function(){this.$agree.click($.proxy(this.agree,this));this.initValidate();this.$vcode.click($.proxy(this.changeCode,this)).css("cursor","pointer")},changeCode:function(){this.$vcode.attr("src",this.codeSrc+"&"+Math.random())},agree:function(){this.$submit.prop("disabled",!this.$agree.prop("checked"))},initValidate:function(){var n=this;this.$form.validate({errorClass:"error",errorElement:"p",errorPlacement:function(t,i){if($element=$(i),n.errorCls){var r=$element.closest(n.errorCls);$element.closest(r).find("p.error").remove();$(t).appendTo(r)}else $element.closest("div").siblings("p").remove(),$(t).appendTo($element.closest("li"))},submitHandler:function(t,i){i.preventDefault();n.submit()}});this.$submit.removeClass("btn-disable").prop("disabled",!1)},submit:function(){this.$wait.show().insertAfter(this.$submit);this.$submit.prop("disabled",!0).hide();this.$form.find(":text").prop("readonly",!0);var n=this;$.ajax({url:n.$form.attr("action"),data:n.$form.serializeArray(),dataType:"json",type:n.$form.attr("method"),success:function(t){if(t.IsSuccess){if($(":text",n.$form).val(""),$("textarea",n.$form).val(""),t.Url){document.location.href=t.Url;return}}else n.$wait.hide();n.$wait.hide();n.$submit.prop("disabled",!1).show();n.$form.find(":text").prop("readonly",!1);n.changeCode();alert(t.Message)},error:function(){n.$submit.prop("disabled",!1).show();n.$wait.hide();n.changeCode();n.$form.find(":text").prop("readonly",!1);alert("error")}})}};SiteHome.prototype={constructor:SiteHome,init:function(){this.initScroll();$.utils.initLazyload();new SmartForm("#frmInquire");$(".online-service .weixin a").click(function(){$(this).siblings("div.online-hiddle").show()});$(".online-service .weixin .online-hiddle .icon-close").click(function(){$(this).closest(".online-hiddle").hide()})},initScroll:function(){new Swiper(".swiper-container",{pagination:{el:".swiper-pagination",clickable:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},lazy:{loadOnTransitionStart:!0},loop:!0,autoplay:!0})}};TourInfo.prototype={constructor:TourInfo,init:function(){this.initScroll();this.initTab()},initScroll:function(){new Swiper(".swiper-container",{pagination:{el:".swiper-pagination",clickable:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},lazy:{loadOnTransitionStart:!0},loop:!0,autoplay:!1})},initTab:function(){$(".tabs-tit h2").click(function(){var n=$(this).addClass("on").siblings().removeClass("on").end().index(),t=$(".tabs-cn").hide().eq(n).show();$.utils.initLazyload(t)}).eq(0).trigger("click")}};Album.prototype={constructor:Album,init:function(){var n=new Swiper(".album-thumb",{spaceBetween:10,slidesPerView:6,freeMode:!0,watchSlidesProgress:!0,lazy:{loadOnTransitionStart:!0}});new Swiper(".album",{pagination:{el:".swiper-pagination",clickable:!0},lazy:{loadOnTransitionStart:!0},loop:!1,autoplay:!1,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},thumbs:{swiper:n}});$.utils.initLazyload()}};Tailor.prototype={constructor:Tailor,init:function(){this.initTab();this.initSelectItem();this.$vcode.click($.proxy(this.changeCode,this)).css("cursor","pointer");this.initValidate();this.$agree.click($.proxy(this.agree,this))},initTab:function(){var n=this;$(".tabs-tit>h2").click(function(){var t=$(this).addClass("on").siblings().removeClass("on").end().index();$("div.tabs-cn").hide().eq(t).show();n.$simple.val(t==0?"Simple":"Detail")}).eq(0).trigger("click")},initSelectItem:function(){$(".dl-city dd").click(function(){var n=$(this);n.hasClass("on")?n.find(":hidden").val(""):n.find(":hidden").val(n.find("span").text());n.toggleClass("on")})},initValidate:function(){var n=this;this.$submit.removeClass("btn-disable");this.$form.validate({debug:!1,errorClass:"error",errorElement:"p",rules:{EntryDate:{required:function(){return n.$simple.val().toLowerCase()=="false"}},ExitDate:{required:function(){return n.$simple.val().toLowerCase()=="false"}}},errorPlacement:function(n,t){$element=$(t);t.is("#VerifyCode")?($element.closest("div.clearfix").siblings("p").remove(),$(n).insertAfter($element.closest("div.clearfix"))):($element.closest("div").siblings("p").remove(),$(n).insertAfter($element.closest("div")))},submitHandler:function(t,i){i.preventDefault();n.submit()}})},submit:function(){var t,n;this.$wait.show().insertAfter(this.$submit);this.$submit.prop("disabled",!0).hide();t=this.$form.serialize();this.$form.find("input:text,textarea").prop("readonly",!0);this.$form.find("select,input:checkbox,input:radio").prop("disabled",!0);n=this;$.post(this.$form.attr("action"),t,function(t){t.IsSuccess?document.location.href=t.Url:(alert(t.Message),n.$wait.hide(),n.$submit.prop("disabled",!1).show(),n.$form.find("input:text,textarea").prop("readonly",!1),n.$form.find("select,input:checkbox,input:radio").prop("disabled",!1))},"json").error(function(){n.$submit.prop("disabled",!1).show();n.$wait.hide();n.changeCode();n.$form.find("input:text,textarea").prop("readonly",!1);n.$form.find("select,input:checkbox,input:radio").prop("disabled",!1);alert("error")})},agree:function(){this.$submit.prop("disabled",!this.$agree.prop("checked"))},changeCode:function(){this.$vcode.attr("src",this.codeSrc+"&"+Math.random())}};Ship.prototype={constructor:Ship,init:function(){$.utils.initLazyload();this.initTab();this.$showprice.click($.proxy(this.showPrice,this));this.initPrice()},initTab:function(){$(".tabs-tit h2").click(function(){var n=$(this).addClass("on").siblings().removeClass("on").end().index();$(".tabs-cn").hide().eq(n).show()}).first().trigger("click")},showPrice:function(){$(".tabs-tit h2:eq(1)").trigger("click")},initPrice:function(){var r=this,n=(new Date).getMonth(),i="span",t;n>0&&(i+=":gt("+(n-1)+")");t=$(i,this.$dateBox);t.each(function(){var n=$(this),t=n.text();n.empty().append($("<a/>",{href:"javascript:;",text:t}))}).click(function(i){var f,u;i.preventDefault();f=n+1+t.index(this);$(this).addClass("on").siblings().removeClass("on");u=$("#priceBox");$("table",u).each(function(){$("tr:gt(0)",this).remove()});$("<tr/>").append($("<td/>",{colspan:"6",text:"Loading..."}).css({color:"red"})).appendTo(u.find("table"));$.ajax({url:"/yangtze/getprice",data:{id:r.shipId,month:f},dataType:"html",type:"post",success:function(n){u.html(n)},error:function(){$("table",u).each(function(){$("tr:gt(0)",this).remove()});$("<tr/>").append($("<td/>",{colspan:"6",text:"Корабль недоступен "}).css({fontWeight:"bold"})).appendTo("#ship_price_list>table")}})}).eq(0).trigger("click")}};var InternationalTrainCities=[{Key:"北京",Name:"Beijing",Pinyin:"beijing",City:"北京"},{Key:"上海",Name:"Shanghai",Pinyin:"shanghai",City:"上海"},{Key:"广州",Name:"Guangzhou",Pinyin:"Guangzhou",City:"广州"},{Key:"常平",Name:"Changping",Pinyin:"Changping",City:"常平"},{Key:"佛山",Name:"Foshan",Pinyin:"Foshan",City:"佛山"},{Key:"肇庆",Name:"Zhaoqing",Pinyin:"Zhaoqing",City:"肇庆"},{Key:"香港",Name:"Hong Kong (Hung Hom)",Pinyin:"Hong Kong (Hung Hom)",City:"香港"},{Key:"南宁",Name:"Nanning",Pinyin:"Nanning",City:"南宁"},{Key:"集宁南",Name:"Jining Nan (South)",Pinyin:"Jining Nan (South)",City:"集宁"},{Key:"乌鲁木齐南",Name:"Urumqi Nan (South)",Pinyin:"Urumqi Nan (South)",City:"乌鲁木齐"},{Key:"蒙古国乌兰巴托",Name:"Ulan-Bator",Pinyin:"Ulan-Bator",City:"蒙古国乌兰巴托"},{Key:"莫斯科",Name:"Moscow",Pinyin:"Moscow",City:"莫斯科"},{Key:"越南嘉林",Name:"Gia Lam, Vietnam",Pinyin:"Gia Lam, Vietnam",City:"越南嘉林"}];InteTrainTickeSearch.prototype={constructor:InteTrainTickeSearch,init:function(){var n=this;this.$inteDepart.add(this.$inteArrival).dropDownCity({data:InternationalTrainCities,next:n.$inteArrival,hotValue:["beijing","shanghai","hongkong","guangzhoudong","wulanbatuo","erlian","mosike","henei","nanning","wulumuqi","foshan","changping","jining"],dataFormat:{name:"Key",text:"Name",pinyin:"Pinyin"}});this.$inteForm.bind("submit",$.proxy(this.inteSubmit,this));this.$inteForm.find(":submit").removeClass("btn-disable")},inteSubmit:function(n){if(!this.validateInteCity(this.$inteDepart.val())){n.preventDefault();this.$inteDepart.trigger("click");return}if(!this.validateInteCity(this.$inteArrival.val())){n.preventDefault();this.$inteArrival.trigger("click");return}if(this.$inteArrival.val().trim()==this.$inteDepart.val().trim()){n.preventDefault();this.$inteArrival.trigger("click");return}if(this.$inteDate.val().blank()){n.preventDefault();this.$inteDate.trigger("show");return}},validateInteCity:function(n){if(!n||n.blank())return!1;n=n.trim().toLowerCase();var t=!1;return $.each(InternationalTrainCities,function(i,r){if(r.Name.toLowerCase().trim()==n)return t=!0,!1}),t}};TrainTicketSearch.prototype={constructor:TrainTicketSearch,init:function(){this.initSearchTab();this.$addSearch.bind("click",$.proxy(this.addSearch,this));this.$removeSearch.bind("click",$.proxy(this.removeSearch,this));this.$form.bind("submit",$.proxy(this.submit,this));this.$form.find(":submit").removeClass("btn-disable");var n=this;this.$form.find("ul,dl").each(function(t,i){n.initData(i)});new InteTrainTickeSearch;$.utils.initLazyload()},initData:function(n){var t=$(n);t.find(".js-depart,.js-arrival").dropDownCity({data:TrainCities,next:t.find(".js-arrival"),dataFormat:{name:"Key",text:"Name",pinyin:"Pinyin"}})},initSearchTab:function(){$("div.train-search>div.train-search-tit>h2").click(function(){var n=$(this).addClass("on").siblings().removeClass("on").end().index();$("div.train-search>div.train-search-con").hide().eq(n).show()})},addSearch:function(){var t=this.$form.find("ul"),n,i;t.length>=10||(n=t.last().clone().insertAfter(t.last()),i=t.length+1,n.find("label.train-title-tip").text("Train "+i+":From"),n.find("input.js-depart").val("").attr("name","depart_"+i),n.find("input.js-arrival").val("").attr("name","arrival_"+i),n.find(".js-date").val(""),this.initData(n))},removeSearch:function(){var n=this.$form.find("ul");n.length<=1||n.last().remove()},submit:function(n){var r=this.$form.find("ul,dl"),t,i;if(r.length==0){n.preventDefault();return}if(t=this,i=!1,r.each(function(r,u){var o=$(u),f=o.find("input.js-depart"),e=o.find("input.js-arrival"),s=o.find("input.js-date");if(!f.val().blank()||!e.val().blank()||!s.val().blank())if(i=!0,t.validateCity(f.val()))if(t.validateCity(e.val())&&f.val().trim()!=e.val().trim()){if(s.val().blank())return n.preventDefault(),s.trigger("click"),!1}else return n.preventDefault(),e.trigger("click"),!1;else return n.preventDefault(),f.trigger("click"),!1}),!i){n.preventDefault();this.$form.find("input.js-depart:eq(0)").trigger("click");return}},validateCity:function(n){if(!n||n.blank())return!1;n=n.trim().toLowerCase();var t=!1;return $.each(TrainCities,function(i,r){if(r.Name.toLowerCase().trim()==n)return t=!0,!1}),t}};BookInteTrainTicket.prototype={constructor:BookInteTrainTicket,init:function(){new InteTrainTickeSearch;new SmartForm("#frmBookInternationalTicket")}};TrainTicketHandler.prototype={constructor:TrainTicketHandler,init:function(){new TrainTicketSearch;this.searchTrain();this.initViewTrain();this.initSelectTrain()},searchTrain:function(){var n=this;$.ajax({url:"/train/searchtrain",data:{depart:n.depart,arrival:n.arrival,date:n.date},dataType:"html",type:"post",success:function(t){n.$trainBox.html(t);n.scheduleFilter()},error:function(){n.$trainBox.empty();alert("Error")}})},scheduleFilter:function(){if($("train_sort").length!=0){var n=$("#train_sort .search-train-type :checked").val(),i=$("#train_sort .search-train-time :checked").val(),t=i.split("-"),r=parseInt(t[0],10),u=parseInt(t[1],10);$(".trainlist-box>tbody>tr:gt(0)").each(function(){var t=$(this),i=t.attr("data-train"),e=t.attr("data-time"),f=parseInt(e.replace(":",""),10);($.trim(n)==""||i==n||n=="O"&&i!="D"&&i!="G")&&f>=r&&f<=u?t.show():t.hide()})}},initViewTrain:function(){this.$trainBox.on("click",".train-number>a",function(n){n.preventDefault();var t=$(this),i=t.closest("td").find("form"),r=i.serialize();$.post("/train/addtraindetail",r,function(){window.open(t.attr("href"))},"json").error(function(){window.open(t.attr("href"))})})},initSelectTrain:function(){var n=this;this.$trainBox.on("click",".js-book",function(n){var t,i,r;n.preventDefault();t=$(this);i=t.closest("td").siblings("td:eq(0)").find("form");i.find(".js-seat").val(t.attr("data-seat"));i.find(".js-price").val(t.attr("data-price"));r=i.serialize();$.post("/train/updateticket",r,function(n){n.IsSuccess?($("body").append("<form method='post' action='/train/search' id='frmTemp'><\/form>"),$("#frmTemp").trigger("submit")):alert(n.Message)}).error(function(){alert("error")})})}};BookTour.prototype={constructor:BookTour,init:function(){this.$agree.click($.proxy(this.agree,this));this.initValidate();this.$vcode.click($.proxy(this.changeCode,this)).css("cursor","pointer");this.initDate()},changeCode:function(){this.$vcode.attr("src",this.codeSrc+"&"+Math.random())},agree:function(){this.$submit.prop("disabled",!this.$agree.prop("checked"))},initDate:function(){$("#rbtTimeFix,#rbtTimeFlex").change(function(){$("#dateFix,#dateFlex").hide();$($(this).attr("data-for")).show()})},initValidate:function(){var n=this;this.$form.validate({errorClass:"error",errorElement:"p",rules:{tourstartdate:{required:function(){return $("#rbtTimeFix").prop("checked")}},tourenddate:{required:function(){return $("#rbtTimeFix").prop("checked")}}},errorPlacement:function(t,i){if($element=$(i),n.errorCls){var r=$element.closest(n.errorCls);$element.closest(r).find("p.error").remove();$(t).appendTo(r)}else $element.closest("div").siblings("p").remove(),$(t).appendTo($element.closest("li"))},submitHandler:function(t,i){i.preventDefault();n.submit()}});this.$submit.removeClass("btn-disable").prop("disabled",!1)},submit:function(){this.$wait.show().insertAfter(this.$submit);this.$submit.prop("disabled",!0).hide();this.$form.find(":text").prop("readonly",!0);var n=this;$.ajax({url:n.$form.attr("action"),data:n.$form.serializeArray(),dataType:"json",type:n.$form.attr("method"),success:function(t){if(t.IsSuccess){if($(":text",n.$form).val(""),$("textarea",n.$form).val(""),t.Url){document.location.href=t.Url;return}}else n.$wait.hide();n.$wait.hide();n.$submit.prop("disabled",!1).show();n.$form.find(":text").prop("readonly",!1);n.changeCode();alert(t.Message)},error:function(){n.$submit.prop("disabled",!1).show();n.$wait.hide();n.changeCode();n.$form.find(":text").prop("readonly",!1);alert("error")}})}}