/* @Author : Tosom s.r.l. @version : 1.0 @notes : Js for handling cruises advanced search module. @requires : lovely_ajax.js general.js cruises_cookie.js GLOBAL VAR lastCruiseSearch */ function setFormParams( params ) { var p = unescape( params ) ; var pt = p.split("&"); var fields = new Array() ; var values = new Array() ; // Curr Param ,Data var cp = "" ; var cpd = "" ; // Curr Field Name,Value var cfn = "" ; var cfv = "" ; var form = document.forms["advanced_search"] ; // WRAP PARAMS for( var i=0 ; i1 ) { // truncate digits if( tmp[1].length>2 ) tmp[1] = tmp[1].substring(0,2); val = tmp[0]+"."+tmp[1]; // reset elem value elem.value = val; } var exp = new RegExp("^[0-9]*\\.?[0-9]{1,2}$") ; if( exp.test(val) ) { chkdVal = parseFloat(val) ; changeClass( elem , "border_blue" ); } else changeClass( elem , "border_red" ); } } function changeAdvSearchDeparture(type) { /* var form = document.forms["advanced_search"] ; var elem = null ; var dest = form.destination ; var port = form.dep_port ; if(type==0) { port.disabled=true; dest.removeAttribute("disabled") ; dest.focus(); } else if(type==1) { dest.disabled=true; port.removeAttribute("disabled") ; port.focus(); } form.departure_from.value=type; */ } function toggleSearchResult() { var pnl = getId("adv_search_result") ; if(pnl.style.display=="block") hideSearchResults(); else showSearchResults(); } function showMiniLoader() { writePanel( "more_adv_options_box" , "" ); writePanel( "more_adv_options_box" ," "+"Loading"+"" ); } function hideSearchResults() { writePanel( "more_adv_options_box" , "" ); writePanel( "more_adv_options_box" ," "+"Show search results"+"" ); hidePanel("adv_search_result"); } function showSearchResults() { writePanel( "more_adv_options_box" , "" ); writePanel( "more_adv_options_box" ," "+"Hide search results"+"" ); showPanel("adv_search_result"); } function clearSearchResults() { writePanel( "adv_search_result" , "" ); writePanel( "more_adv_options_box" , "" ); writePanel( "more_adv_options_box" ," "+"No search param"+"" ); hidePanel("adv_search_result"); } function checkAndSendAdvSearch(form) { // Close quick menu panels if any if( (f2 && f2.fadeType==1) || ( f3 && f3.fadeType==1) ) { if( f3 && f3.fadeType==1) closeStep3() ; if( f2 && f2.fadeType==1 ) closeStep2() ; } // FIELDS CHECKING var depType = 0 ; var dest = "" ; var port = "" ; var from = "" ; var fromDD = "" ; var fromYear = "" ; var fromMonth = "" ; var company = "" ; var ship = "" ; /* var to = "" ; var toDD = "" ; var toYear = "" ; var toMonth = "" ;*/ var tolerance = 0 ; var min = "" ; var max = "" ; var p = "" ; var q = false ; var tmp = null ; // DEPARTURE TYPE depType = form.departure_from.value ; if(depType==1) {//DEPARTURE PORT port = form.dep_port[ form.dep_port.selectedIndex ].value; } else {// DESTINATION dest = form.destination[ form.destination.selectedIndex ].value ; } //MIN-MAX PRICES //min = form.min_price.value ; max = form.max_price.value ; /*if( isNaN(min) ) { alert( "Wrong min price" ) return false; }*/ if( isNaN(max) ) { alert( "Wrong max price" ) return false; } // DATE REFORMAT fromYear = form.period_from_year[form.period_from_year.selectedIndex].value ; fromMonth = form.period_from_month[form.period_from_month.selectedIndex].value ; tolerance = form.period_tolerance[form.period_tolerance.selectedIndex].value ; /*toYear = form.period_to_year[form.period_to_year.selectedIndex].value ; toMonth = form.period_to_month[form.period_to_month.selectedIndex].value ; */ fromDD = new Date( fromYear , fromMonth-1 , 01 ); //toDD = new Date( toYear , toMonth , 0 ); tmp = fromDD.getTime()+( ( tolerance*31*86400)*1000 ) ; toDD = new Date(); toDD.setTime( tmp ) ; tmp = toDD.getMonth()+1 ; // ==0 ? "12" : toDD.getMonth() ; toDD = new Date( toDD.getFullYear() , ( tmp <10 ? "0" : "" )+tmp , 0 ); from = fromYear+"-"+fromMonth+"-"+fromDD.getDate() ; to = toDD.getFullYear()+"-"+( tmp <10 ? "0" : "" )+tmp+"-"+toDD.getDate() ; // COMPAGNIA if( form.company ) { company = form.company[ form.company.selectedIndex ].value ; } // NAVE if( company!="" ) { if( form.ship && form.ship.length>0 ) { ship = form.ship[ form.ship.selectedIndex ].value ; } } if(depType==1) p = "action=searchByField&sb_fields="+escape( "departure_port,period,max_price,company,ship" )+"&sb_values="+escape( port+","+from+"|"+to+","+max+","+company+","+ship ) ; else p = "action=searchByField&sb_fields="+escape( "destination_label,period,max_price,company,ship" )+"&sb_values="+escape( dest+","+from+"|"+to+","+max+","+company+","+ship ) ; q = new ajaxCaller(); writePanel("adv_search_result" , "" ) ; hidePanel("adv_search_result"); showPanel("adv_search_loader"); showMiniLoader(); q.query("./ajax_launcher.php" , p , "get" , "json" , "checkAndSendAdvSearchHandleResult" , { "destCode" : dest , "cp" :p } ); // TO AVOID FORM AUTO SUBMISSIONS return false; } function checkAndSendAdvSearchHandleResult(data,type,obj) { hidePanel("adv_search_loader"); showSearchResults(); if(type=="text") writePanel("adv_search_result" , "
"+unescape(data)+"
") ; else { if(data.result=="success") { var res = data.data ; //CREATE NEW OR RESET SEARCH COOKIE DATA var cname = "lovely_last_search_cruises" ; var ck = readCookie(cname) ; var cavl = "" ; lastCruiseSearch = res ; if(ck) { ereaseCookie(cname); } createCookie(cname, obj.cp ,48) ; var str = cookieValToHtml( lastCruiseSearch , "1" ); writePanel("adv_search_result" , str[0] ); handleSearchResultLabel(str[1]); } else { writePanel("adv_search_result" , "
"+unescape(data.message)+"
" ) ; } } showPanel("adv_search_result"); } function loadShipsByComp() { var form = document.forms["advanced_search"] ; var sel = form.company; var compCode = sel[ sel.selectedIndex ].value; if(!compCode) { var data = new Array(); data[0] = { value : "" , label : "All ships" } svuotaSelect(form.ship) ; popolaSelect(form.ship,data) ; return; } var qs = new ajaxCaller(); var p = "action=loadShipsByComp&cc="+compCode ; qs.query("./ajax_launcher.php" , p , "get" , "json" , "loadShipsByCompHandleResult" , { "compCode" : compCode , "form":form} ); } function loadShipsByCompHandleResult(data,type,obj) { if(type=="text") { alert(data);return; } if(data.result=="success") { var ships = new Array(); ships[0] = { value : "" , label : "All ships" } for( var i=0 ; i