var JS_BOOKING_OK = 'Az Ön foglalását rögzítettük, rövidesen visszaigazoló e-mailt fog kapni, a válasz:'; var JS_NAME_MANDATORY = 'A név megadása kötelező!'; var JS_ADDRESS_MANDATORY = 'A cím megadása kötelező!'; var JS_PHONE_MANDATORY = 'A telefonszám megadása kötelező!'; var JS_EMAIL_MANDATORY = 'Az email cím megadása kötelező!'; var JS_ADULTS_MANDATORY = 'A felnöttek számának megadása kötelező!'; var JS_AGREE_MANDATORY = 'Önnek el kell fogadnia a használati elveket!'; var JS_EMAIL_FORMAT = 'Az email cím helytelen, kérem javítsa!'; var JS_ADULTS_FORMAT = 'A felnőttek mező értéke nem egy egész szám!'; var JS_CHILDS_FORMAT = 'A gyerekek mező értéke nem egy egész szám!'; var JS_PETS_FORMAT = 'A háziállatok mező értéke nem egy egész szám!'; var JS_PERSONS_EXCEEDS = 'A szállás kevesebb férőhellyel rendelkezik, mint a foglalni kívánt férőhelyek!'; var JS_ADULTS_EXCEEDS = 'A szállás kevesebb felnőtt férőhellyel rendelkezik, mint a foglalni kívánt férőhelyek!'; var JS_RESERVATION_OVERLAP = 'Az Ön által kiválasztott időpontban a szállás már foglalt. Kérjük válasszon más időpontot!'; var JS_RESERVATION_INTERVAL_ERROR = 'Ön hibásan adta meg az érkezés és távozás napjainak értékét!'; var JS_PERSONS_ADULTS_UNDERSEEDS = 'A szállásfoglaláshoz legalább egy felnőtt is szükséges!'; var JS_PERSONS_PERSONS_UNDERSEEDS = 'A szállás foglaláshoz szükséges létszámot nem érte el!\nKérjük bővítse a létszámot, vagy válasszon másik szállást!'; var BNR_CONTACT = 'Kérjük, hogy adja meg a hirdető kapcsolattartóját.'; var BNR_VALID_EMAIL = 'Kérjük, hogy adja meg a hirdető érvényes e-mail címét.'; var BNR_CLIENT = 'Kérjük, hogy adja meg a hirdetőt.'; var BNR_NAME = 'Kérjük, hogy adja meg a hirdetés nevét.'; var BNR_IMAGE = 'Kérjük, hogy adja meg a hirdetés képét.'; var BNR_URL = 'Kérjük, hogy adja meg a hirdetés hivatkozását/egyéni kódját.'; var MAIL_CUSTOMER_SUBJECT_REGOK = 'Hollókői foglalás'; var MAIL_CUSTOMER_SUBJECT_REG_NOK = 'Hollókői foglalás - sikertelen'; var NJFOGLNEV = 'Név'; var NJFOGLCIM = 'Cím'; var NJFOGLTELEFON = 'Telefonszám'; var NJFOGLEMAIL = 'E-mail'; var NJFOGLFELNOTTEKSZAMA = 'Felnöttek száma'; var NJFOGLGYEREKEKSZAMA = 'Gyerekek száma'; var NJFOGLKERTAKARITASTESAGYHUZAST = 'Kér takarítást és ágyhúzást'; var NJFOGLNEM = 'Nem'; var NJFOGLIGEN = 'Igen'; var NJFOGLNAGYCSALADOSKEDVEZMENYTKER = 'Nagycsaládos kedvezményt kér'; var NJFOGLHAZIALLATOKSZAMA = 'Háziállatok száma'; var NJFOGLERKEZESNAPJA = 'Érkezés napja'; var NJFOGLTAVOZASNAPJA = 'Távozás napja'; var NJFOGLFOGLALANDOEJSZAKAKSZAMA = 'Foglalandó éjszakák száma'; var NJFOGLVARHATOVEGOSSZEG = 'Várható végösszeg (Forint)'; var NJFOGLFIZETESMODJA = 'Fizetés módja'; var NJFOGLUTALAS = 'Utalás'; var NJFOGLKESZPENZ = 'Készpénz'; var NJFOGLUDULESICSEKK = 'Üdülési csekk'; var NJFOGLNAPTARMEGTEKINTESE = 'Naptár megtekintése'; var NJFOGLALAS = 'Foglalás'; var NJFOGLELOLVASTALINK = 'Elolvasta és elfogadja az onlne foglalás = 2 felnott es >= 3 gyerek) var NagyCsaladosAr = 18000; // idegenforgalmi ado var IFA = 300; function GetXmlHttpObject() { var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); return false; } } } return xmlHttp; } function njSubmitBookingRegistration(thisForm) { /* url amit el kell kuldeni, locationID az az Id aminek a tartalma a valaszt fogja tartalmazni */ var xmlHttp; xmlHttp = GetXmlHttpObject(); var div = document.getElementById("njSubmitBookingRegistration"); /* Validacio itt tortenik - B */ if(thisForm.nev.value == "") { alert(JS_NAME_MANDATORY); thisForm.nev.focus(); return false; } if(thisForm.cim.value == "") { alert(JS_ADDRESS_MANDATORY); thisForm.cim.focus(); return false; } if(thisForm.telefon.value == "") { alert(JS_PHONE_MANDATORY); thisForm.telefon.focus(); return false; } if(thisForm.email.value == "") { alert(JS_EMAIL_MANDATORY); thisForm.email.focus(); return false; } if(thisForm.felnottek.value == "") { alert(JS_ADULTS_MANDATORY); thisForm.felnottek.focus(); return false; } /* Szemelyek szamanak tesztelese - B */ if(checkPersons(thisForm) == false) { return false; } /* Szemelyek szamanak tesztelese - E */ /* datumok relativ elhelyezkedesenek tesztelese - N */ if(parseInt(thisForm.tol.value) >= parseInt(thisForm.ig.value) ) { alert(JS_RESERVATION_INTERVAL_ERROR); return false; } /* datumok relativ elhelyezkedesenek tesztelese - E */ /* datumok utkozesenek tesztelese - B */ if(Foglalas.length > 0) { for(var j = 0; j < Foglalas.length; j++) { if( ( ( parseInt(Foglalas[j][4]) <= parseInt(thisForm.tol.value) ) && ( parseInt(thisForm.tol.value) < parseInt(Foglalas[j][5]) ) ) || ( ( parseInt(Foglalas[j][4]) <= parseInt(thisForm.ig.value) ) && ( parseInt(thisForm.tol.value) < parseInt(Foglalas[j][5]) ) ) ) { alert(JS_RESERVATION_OVERLAP); return false; } } } /* datumok utkozesenek tesztelese - E */ if(! thisForm.elfogadja.checked) { alert(JS_AGREE_MANDATORY); return false; } if( reCalc(thisForm)== false ) { return false; } var the_url = "/administrator/components/com_foglalas/assets/helpers/njWriteBookingRegistration.php?"; the_url += "nev="+Base64.encode(thisForm.nev.value); the_url += "&cim="+thisForm.cim.value; the_url += "&telefon="+thisForm.telefon.value; the_url += "&email="+thisForm.email.value; the_url += "&felnottek="+thisForm.felnottek.value; the_url += "&gyerekek="+thisForm.gyerekek.value; the_url += "&haziallatok="+thisForm.haziallatok.value; the_url += "&takaritas="+thisForm.takaritas.value; the_url += "&tol="+thisForm.tol.value; the_url += "&ig="+thisForm.ig.value; the_url += "&ig="+thisForm.ig.value; the_url += "&mitfoglal="+thisForm.mitfoglal.value; the_url += "&szallas="+thisForm.szallas.value; the_url += "&nagycsalados="+thisForm.nagycsalados.checked; the_url += "&megjegyzes="+Base64.encode(thisForm.megjegyzes.value); the_url += "&szallasneve="+Base64.encode(thisForm.szallas_neve.value); the_url += "&napok="+thisForm.napok.value; the_url += "&vegosszeg="+thisForm.vegosszeg.value; the_url += "&fizmodja="+Base64.encode(thisForm.fizmodja.options[thisForm.fizmodja.selectedIndex].value); //alert(the_url); if (xmlHttp==null) { alert ("Your browser does not support AJAX!"); return false; } // van xmlHttp objekt xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { response = xmlHttp.responseText; //div.innerHTML = JS_BOOKING_OK+ response; div.innerHTML = response; } } xmlHttp.open("GET",the_url,true); xmlHttp.send(null); return false; } function CalcDays(thisForm) { /* url amit el kell kuldeni, locationID az az Id aminek a tartalma a valaszt fogja tartalmazni */ var xmlHttp; xmlHttp = GetXmlHttpObject(); var the_url = "/administrator/components/com_foglalas/assets/helpers/njGetNumberOfDays.php?"; the_url += "tol="+thisForm.tol.value; the_url += "&ig="+thisForm.ig.value; if (xmlHttp==null) { alert ("Your browser does not support AJAX!"); return false; } // van xmlHttp objekt xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { response = xmlHttp.responseText; document.getElementById("napokszama").value = response; } } xmlHttp.open("GET",the_url,true); xmlHttp.send(null); return false; } /* ujraszamolja a vegosszeget, a Szallas[] parameterek alapjan */ function reCalc(thisForm) { //alert("RECALC"); // for(var i=0;i < 1000;i++) { // for(var j=0;j < 5000;j++) { // } // } if(ValidateControlTypes ( thisForm ) == false) { return false; // azaz a tipusok nem megfeleloek } /* szallas egzsegarak beallitasa - B */ var FelnottAr = Szallas[thisForm.szallas.value][9]; // felnott ar var GyerekDiakAr = Szallas[thisForm.szallas.value][10]; // diak/gyerek ar var ado = 0; var NoDays = parseInt(thisForm.napok.value); var felnottek = parseInt(thisForm.felnottek.value); if(Szallas[thisForm.szallas.value][8] == 1) { // turistahazrol van szo, azaz a gyerekek diakok if( thisForm.takaritas[1].checked == true) { // van takaritas var FelnottAr = Szallas[thisForm.szallas.value][6]; // felnott ar takaritassal var GyerekDiakAr = Szallas[thisForm.szallas.value][7]; // diak/gyerek takaritassal } } // felnott ar korrigalasa az IFA-val //FelnottAr += IFA; // idegenforgalmi ado /* szallas egzsegarak beallitasa - E */ if( (thisForm.napok.value == "") || (thisForm.napok.value == NaN) ) { thisForm.napok.value = 0; } if(checkPersons(thisForm) == true) { if( ( parseInt(thisForm.gyerekek.value) >= 3 ) && ( parseInt(thisForm.felnottek.value) >= 2 ) && (thisForm.nagycsalados.checked == true) && (Szallas[thisForm.szallas.value][8] == 0) /* udulohazrol van szo */ ){ // nagycsaladosok udulohazban , akkor nagycsalados kedvezmenyt kalkulalunk thisForm.vegosszeg.value = NagyCsaladosAr + (parseInt(thisForm.felnottek.value) -2)*FelnottAr + ( parseInt(thisForm.gyerekek.value) - 1 ) * GyerekDiakAr + 500 * parseInt(thisForm.haziallatok.value);// itt modositottunk } else { if( (Szallas[thisForm.szallas.value][8] == 0 /* udulorol van szo */ ) && (felnottek >= Szallas[thisForm.szallas.value][11]/* elertuk a min felnottek szamat*/) ) { // ( (felnottek * FelnottAr) > Szallas[thisForm.szallas.value][5] /* tulleptuk a hazarat */ ) // udulo eseteben a hazarat kalkulaljuk // hazar kalkulacio , ha szukseges thisForm.vegosszeg.value = Szallas[thisForm.szallas.value][5] + parseInt(thisForm.gyerekek.value) * GyerekDiakAr + 500 * parseInt(thisForm.haziallatok.value); } else if(Szallas[thisForm.szallas.value][8] == 0) { if((felnottek == 1) && (Szallas[thisForm.szallas.value][1] == 1)) { felnottek = 2; // 1 szemely esetben felarat kell fizetnie thisForm.vegosszeg.value = parseInt(GyerekDiakAr)* parseInt(thisForm.gyerekek.value) + FelnottAr * parseInt(felnottek) + 500 * parseInt(thisForm.haziallatok.value); } else { // udulo egyszeru esete thisForm.vegosszeg.value = parseInt(GyerekDiakAr)* parseInt(thisForm.gyerekek.value) + FelnottAr * parseInt(thisForm.felnottek.value) + 500 * parseInt(thisForm.haziallatok.value); } } else { // turistahaz thisForm.vegosszeg.value = parseInt(GyerekDiakAr)* parseInt(thisForm.gyerekek.value) + FelnottAr * parseInt(thisForm.felnottek.value) + 500 * parseInt(thisForm.haziallatok.value); } } ado = IFA * felnottek; // itt osszesitjuk a napok szama szerint thisForm.vegosszeg.value = thisForm.vegosszeg.value * NoDays + ado * NoDays; return true; } else { thisForm.vegosszeg.value = 0; return false; } } function ValidateControlTypes ( thisForm ) { if( ! isPosInteger(thisForm.felnottek.value)) { alert(JS_ADULTS_FORMAT); thisForm.felnottek.value = ""; return false; } if( ! isPosInteger(thisForm.gyerekek.value) ) { alert(JS_CHILDS_FORMAT); thisForm.gyerekek.value = ""; return false; } if(parseInt(Szallas[thisForm.szallas.value][4]) > 0) { // van a formon haziallatok mezo if( ! isPosInteger(thisForm.haziallatok.value)) { alert(JS_PETS_FORMAT); thisForm.haziallatok.value = ""; return false; } } return true; } function checkPersons(thisForm) { // if( ! ValidateControlTypes ( thisForm ) ) { // return false; // // azaz a tipusok nem megfeleloek // } if( parseInt(thisForm.felnottek.value) > parseInt(Szallas[thisForm.szallas.value][3]) ) { alert(JS_ADULTS_EXCEEDS +"\n (rendelkezésre áll " +Szallas[thisForm.szallas.value][3]+ " felnőtt férőhely, le kíván foglalni "+thisForm.felnottek.value+" felnőtt helyet)"); return false; } if( (parseInt(thisForm.felnottek.value) + parseInt(thisForm.gyerekek.value) ) > parseInt(Szallas[thisForm.szallas.value][2]) ) { alert(JS_PERSONS_EXCEEDS +"\n(rendelkezésre áll " +Szallas[thisForm.szallas.value][2]+ " férőhely, le kíván foglalni "+thisForm.felnottek.value+" felnőtt, és " + thisForm.gyerekek.value + " gyerek helyet)"); return false; } if( (parseInt(thisForm.felnottek.value) + parseInt(thisForm.gyerekek.value) ) < parseInt(Szallas[thisForm.szallas.value][1]) ) { alert(JS_PERSONS_PERSONS_UNDERSEEDS); return false; } if(parseInt(thisForm.felnottek.value) == 0 ) { alert(JS_PERSONS_ADULTS_UNDERSEEDS); return false; } return true; } // //function reCalcByDate(thisForm) { // // CalcDays(thisForm); // // // reCalc(thisForm); //} function isPosInteger(inputStr) { // var re = /^[-]?\d*$/; var re = /^\d*$/; if(inputStr != undefined) { inputStr = inputStr.toString(); } else { return false; } if(inputStr == "") return false; if(! inputStr.match(re)) { return false; } else { return true; } } /** * * Base64 encode / decode * http://www.webtoolkit.info/ * **/ var Base64 = { // private property _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", // public method for encoding encode : function (input) { var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = Base64._utf8_encode(input); while (i < input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); } return output; }, // public method for decoding decode : function (input) { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) { enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } output = Base64._utf8_decode(output); return output; }, // private method for UTF-8 encoding _utf8_encode : function (string) { string = string.replace(/\r\n/g,"\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; }, // private method for UTF-8 decoding _utf8_decode : function (utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while ( i < utftext.length ) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } }