var ssgmod_gmap_key = ''; var ssgmod_plugin_path = '/plugins/'; var ssgmod_relative_path = ''; var u = document.location.href; var i = u.indexOf('://'); i = u.indexOf('/',i+3); // first slash after domain var j = u.lastIndexOf('/'); // last slash if (j>i && i>0) ssgmod_relative_path = u.substr(i, j-i+1); if (ssgmod_relative_path=='') ssgmod_relative_path = '/lodges/'; //var ssgmod_relative_path = '/lodges/'; if (ssgmod_relative_path.indexOf('wg-ssgmod_relpath-wg')==1 || ssgmod_relative_path=='') ssgmod_relative_path = '/apartments/'; var uri = location.href; /* check if this looks like a landing page or seo apartment details page, than need re-load search form with counters */ var uri_rewritten = (((uri.indexOf('.html')==uri.length-5) || (uri.indexOf('.htm')==uri.length-4)) && (uri.indexOf(ssgmod_relative_path)>0)); function gde(id) { return document.getElementById(id); } /* gde-gde.. v zhope! */ function addSSGParamsToUrl(u, skipnames) { if (skipnames==undefined) skipnames = "tagname;mod;type;template"; if (!skipnames) skipnames = "tagname;mod;type;template"; skipnames = skipnames.split(';'); if (ssgmod_relative_path!='/apartments/') { if (u.indexOf(ssgmod_plugin_path)>0) { var i = u.indexOf('://'); i = u.indexOf('/',i+3); // first slash after domain var j = u.indexOf(ssgmod_plugin_path) + ssgmod_plugin_path.length; if (j>=u.length) u = u.substr(0, i)+ssgmod_relative_path; else u = u.substr(0, i)+ssgmod_relative_path+u.substr(j); } } var nv, n, v, qs = document.location.href; var j, i = qs.indexOf('?'); if (i>-1) qs = qs.substr(i+1); else qs = ''; i = qs.indexOf('#'); if (i==0) return u; if (i>0) qs = qs.substr(0, i); // add params from friendly urls, which loaded from db var fqs = gde('friendlyqs'); if (fqs) fqs = fqs.value; if (fqs) { i = fqs.indexOf('?'); if (i && fqs.length>i+1) fqs = fqs.substr(i+1); fqs = fqs.split('&'); for(i=0; i0) {} else { if (qs) qs+='&'; qs+=nv; } } } } //window.open(u); //alert(u+'\r\n\r\n'+ssgmod_relative_path); // proccess query string qs = qs.split('&'); if (u.indexOf('?')==-1) u+='?'; var uqi = u.indexOf('?'); for(i=0; iuqi) u+='&'; u+=qs[i]; } } } return u; } function getQSParam(paramname) { try { var u = document.location.href; var i = u.indexOf('?'); if (i<0 || i==u.length-1) return ''; u = u.substr(i+1); paramname = escape(paramname) + '='; if (u.indexOf(paramname)==-1) return ''; var pairs = u.split('&'); for(i=0; iPlease, wait.. (loading)'); //$('.main_content_holder').html('Gonna load urls:
' + uCounts + u + '
' + uList + u); // if apartment details were opened with areas in search form, turn all back to search mode //$('#searchfilteroptions').toggle(true); //$('#billcheckholder').toggle(false); $('#searchfilteroptions').show(1000); $('#billcheckholder').hide(1000); // invoke GA stat call var d = 'www.amsterdamlodging.com'; var ru = ssgmod_relative_path + '?' + u; var i = ru.indexOf(d); if (i>-1) ru = ru.substr(i+d.length+1); if (_gaq) { _gaq.push(['_trackPageview', ru]); //alert('reusing GA for:\r\n'+ru); } else { var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-00000-0']); _gaq.push(['_setSiteSpeedSampleRate', 15]); /* ok we don't really need this? */ _gaq.push(['_trackPageview', ru]); //alert('new GA created for:\r\n'+ru); } // fetch aps list(or city map) and set HTML, recalc prices(if not map, but list) $.get(uList + u, function(data) { $('.main_content_holder').html(data); HideSearchLoading(); $('#searchFormAdvancedParams').show(); if (uList.indexOf('ssg.citymap.html')==-1) invokePricesReCalc(); } ); // fetch numbers and set in spans $.get(uCounts + u, function(data) { var n, v, nv, pairs = data.split('&'); for(i=0; i5 && d.length>5) ad = 'arrival='+escape(a)+'&departure='+escape(d); else return; } } else ad = 'arrival='+escape(date2eu(a))+'&departure='+escape(date2eu(d)); if (loadAllAtOnce) { if (codes && $) { // must have codes list and jQuery dollar defined var between = ''; var u = ssgmod_relative_path+'default.aspx?qsn=&template=ssg.search.item.price.html&between='+escape(between)+'&'+ad+'&apcodelist='; var i, j, k, n, c, item; for(i=0; i0) u+=';'; u+=codes[i]; } //alert(u); $.get(u, function(data) { if (data.indexOf('Error')>0) alert('ERROR while requesting prices:\n\n' + html2text(data)); else { i = 0; n = 0; j = data.indexOf(between); while (j>i) { n++; item = data.substr(i, j-i); k = item.indexOf('!'); if (k) { c = item.substr(0, k); h = item.substr(k+1); $('#apartment_prices_'+c).html(h); if (h.indexOf('Discount (0,0%)')==-1) { $('#specialicondiv'+c).html(''); } } i = j + between.length; if (i > data.length-1) break; else j = data.indexOf(between, i); } if (i < data.length) { item = data.substr(i); k = item.indexOf('!'); if (k) { c = item.substr(0, k); h = item.substr(k+1); $('#apartment_prices_'+c).html(h); if (h.indexOf('Discount (0,0%)')==-1) { $('#specialicondiv'+c).html(''); } } } } } ); } } else { var u = ssgmod_plugin_path+'ajaxtag.aspx?tagname=mod&mod=ssg&type=template&template=ssg.search.item.price.html'; u = collectSearchFormParams(u) + '&code='; if (codes && $) { // must have codes list and jQuery dollar defined var i, c; for(i=0; i0) $(harrimg).attr('src', src.replace('arrow_down','arrow_up')); else $(harrimg).attr('src', src.replace('arrow_up','arrow_down')); } catch (e) {} } function clearSearchPan(idpostname) { try { var e = gde('div'+idpostname); var n = _clearSearchPanSubChecks(e.childNodes, 0); if (n>0) onSSGSearchFormChange(); } catch (e) {} } function _clearSearchPanSubChecks(children, depth) { var n = 0, i; for(i=0; i < children.length; i++) { //tn = ''; //try { tn = children[i].tagName.toLowerCase(); } catch(e) {} //if (tn=='li' || tn=='ul' || tn=='input' || tn=='span') { tp = ''; try { tp = children[i].type; } catch(e) {} if (tp == "checkbox") { if (children[i].checked) { n++; children[i].checked = false; } } else { if (depth<10) // && tn!='input') n+=_clearSearchPanSubChecks(children[i].childNodes, depth+1); } //} } return n; } function _switchShowAllChecks(children, dv) { for (var i=0; i < children.length; i++) { if (children[i].tagName == "LI" || children[i].tagName == "li") { children[i].style.display = dv; } else { _switchShowAllChecks(children[i].childNodes, dv); } } } function invokeDatePicker(name) { var mindate = '+1d'; if (name=='departure') { var minnights = 0; try{ minnights = num(document.ssgsearch.minnights.value); } catch(e) {} if (minnights<1) minnights = 2; mindate = '+'+(minnights+1)+'d'; // check if we "know" arrival date already var a = selects2date('arrival'); if (a) mindate = new Date(a.valueOf() + 60*60*24*1000*minnights); } // assign datepicker if not assigned yet if ($('#'+name+'dp').length) { var d = selects2date(name); // initialize if not done yet //if (!$('#'+name+'dp').attr("datepicker-assigned")) { $('#'+name+'dp').datepicker({ minDate: mindate, inline: true, changeMonth: true, changeYear: true, gotoCurrent: true, defaultDate: d?d:'+1d', maxDate: '+2y', dateFormat: 'dd/mm/yyyy', /* EU format for hidden text box*/ onClose: function(dateText, inst) { // set new date into select boxes var date = $('#'+name+'dp').datepicker('getDate'); if (date) { date2selects(date, name); onSSGSearchDatesChange(name+'y', date.getFullYear()); } else { date2selects(0, name); } } }); //$('#'+name+'dp').attr("datepicker-assigned", "true"); // mark it as initialized //} else alert('Already SET!'); // show date picker //d = date2eu(d); //$('#'+name+'dp').val(d); //$('#'+name+'dp').val(''); // set to empty so we can detect "cancel" $('#'+name+'dp').datepicker('show'); } else alert('ERROR! [invokeDatePicker] #'+name+'dp - not found in the current HTML!'); } function loadBillCheckIfDetails() { $(window).ready(function () { // hide some search options/blocks if we are on the home page of the web site var u = location.href; var im = u.indexOf('/', 10); var il = u.lastIndexOf('/'); var iq = u.lastIndexOf('?'); if (im==il && iq==-1) { // we are on the home page of the web site.. hide things $('#searchFormAdvancedParams').hide(); } else { $('#searchFormAdvancedParams').show(); } var adc = ''; try { adc = document.getElementById('apdetailscode').value; } catch(e) {} if (adc) { var a = selects2date("arrival"); var d = selects2date("departure"); loadSearchBillCheck(adc, a, d); } }); } function loadSearchBillCheck(code, a, d) { var u = ssgmod_plugin_path+'ajaxtag.aspx?skip=first&tagname=mod&mod=ssg&type=template&template='; //alert(a+'\n'+d); if (a && d) { u+='ssg.details.bill.html&ifna=ssg.notavailable.html'; //u+='&arrival='+escape(date2eu(a))+'&departure='+escape(date2eu(d)); } else u+='ssg.nodates.bill.html'; u = addSSGParamsToUrl(u); if (a && d) { u=u.replace('&arrival=','&xa=')+'&arrival='+escape(date2eu(a)); u=u.replace('&departure=','&xd=')+'&departure='+escape(date2eu(d)); } if (code) u+='&code='+escape(code)+'&apcodelist='+escape(code); //alert(u); $.get(u, function(data) { $('#searchfilteroptions').toggle(false); //$('#searchfilteroptions').hide(1000); $('#billcheckholder').html(data); $('#billcheckholder').toggle(true); //$('#billcheckholder').show(1000); }); } function showAlternativeAps() { var d = gde('alternativeslist'); if (d) { if (d.innerHTML.length==0) { $('#alternativeslist').html("Loading... please, wait"); var u = ssgmod_plugin_path+'ajaxtag.aspx?skip=first&tagname=mod&mod=ssg&type=template&template=ssg.alternatives.html'; $.get(addSSGParamsToUrl(u), function(data) { $('#alternativeslist').html(data); } ); } } } function daysFromToday(any_date) { var date = toDate(any_date); try { return Math.floor( (date.valueOf() - (new Date()).valueOf()) / ( 1000 * 60 * 60 * 24 ) ); } catch(err) { return 0; } } function daysBetween(any_x, any_y) { var x = toDate(any_x); var y = toDate(any_y); try { return Math.floor( (x.valueOf() - y.valueOf()) / ( 1000 * 60 * 60 * 24 ) ); } catch(err) { return 0; } } function selects2date(name) { try { var y = num($('#'+name+'y').val()); var m = num($('#'+name+'m').val()); var d = num($('#'+name+'d').val()); if (!y || !m || !d) return 0; else return new Date(y, m-1, d); } catch(err) { return 0; } } function date2selects(any_date, name) { if (any_date) { var date = toDate(any_date); try { $('#'+name+'d').val(twodig(date.getDate())); $('#'+name+'m').val(twodig(date.getMonth()+1)); // 0..11 => 1..12 $('#'+name+'y').val(date.getFullYear()); } catch(err) { $('#'+name+'d').val(0); $('#'+name+'m').val(0); $('#'+name+'y').val(0); } } else { $('#'+name+'d').val(0); $('#'+name+'m').val(0); $('#'+name+'y').val(0); } } function twodig(n) { if (n<10) return '0'+n; else return ''+n; } function date2eu(any_date) { if (any_date) { var date = toDate(any_date); try { return twodig(date.getDate())+"/"+twodig(date.getMonth()+1)+"/"+date.getFullYear(); } catch(err) { return ''; } } else return ''; } function isDateObject(d) { try { return (date.getDate()!=0); } catch(err) { return false; } } function uni2date(sdt) { sdt = sdt.toString(); return new Date(num(sdt.substr(0,4)),num(sdt.substr(4,2))-1,num(sdt.substr(6,2))); } function date2uni(dt) { return dt.getFullYear().toString()+twodig(dt.getMonth()+1)+twodig(dt.getDate()); } function date2euro(dt) { return twodig(dt.getDate())+'/'+twodig(dt.getMonth()+1)+'/'+dt.getFullYear().toString(); } function euro2date(dt) { var s = dt.toString(); s = replaceAll(s, '.', '/'); s = replaceAll(s, '-', '/'); var parts = s.split('/'); if (parts.length>2) { var y = num(parts[2]); var m = num(parts[1])-1; /* 0..11 */ var d = num(parts[0]); if (y>2000 && m<12 && d<32 && m>-1 && d>0) return new Date(y, m, d, 0, 0, 0, 0); } return 0; } // int, str or date will become date function toDate(d) { if (d) { if (isDateObject(d)) return d; if (typeof(d)!='string') return new Date(d); try { var s = d.toString(); s = replaceAll(s, '.', '/'); s = replaceAll(s, '-', '/'); s = replaceAll(s, '\\', '/'); if (s.indexOf('/')) return euro2date(s); if (s.length>7) return uni2date(s); return new Date(d); } catch(err) { return new Date(); } } else return new Date(); } function replaceAll(src, replace_what, replacer) { while(src.indexOf(replace_what)>-1) src = src.replace(replace_what, replacer); return src; } function num(x) { try { return parseInt(x, 10); } catch(err) { return 0; } } function html2text(html) { var tmp = document.createElement("DIV"); tmp.innerHTML = html; return tmp.textContent || tmp.innerText; } var gavu = document.location.href; //'/english/AMSTERDAM/'; var gavb = ''; var ge = gde('gavirtbu'); if (ge) gavb = ge.value; //''; var d = 'www.amsterdamlodging.com'; var i = gavu.indexOf(d); if (i>-1) try { gavu = gavu.substr(i+d.length+1); } catch(e){} //alert("GA: "+gavu); // this page tracking var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-00000-0']); _gaq.push(['_setSiteSpeedSampleRate', 15]); /* ok we don't really need this? */ if (gavu || gavb) { //alert('gavu ['+gavu+']\ngavb['+gavb+']'); if (gavb) { _gaq.push(['_trackPageview', gavb]); _gaq.push(['_trackEvent', 'Booking', 'Booking', gavb]); //alert('gavb sent to GA!'); } else _gaq.push(['_trackPageview', gavu]); // check if we also need track ecommerce transaction if (0) { _gaq.push(['_addTrans', '', // order ID - required gavb, // affiliation or store name '', // total - required '', // tax '0', // shipping '', // city '', // state or province '' // country ]); _gaq.push(['_trackTrans']); } } else _gaq.push(['_trackPageview']); function invokeTrackPath(uu) { //alert('Gonna push into GA:\n'+u); var d = 'www.amsterdamlodging.com'; var i = uu.indexOf(d); if (i>-1) uu = gavu.substr(i + d.length + 1); _gaq.push(['_trackTrans', uu]); } function invokeTrackQSParam(qsp) { invokeTrackPath(addSSGParamsToUrl(ssgmod_relative_path)+qsp.replace('#','&')); } (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; if (!s) s = document.getElementsByTagName('meta')[0]; /* added by Nikita in case there's no scripts*/ if (!s) s = document.getElementsByTagName('title')[0]; /* added by Nikita in case there's no scripts and no metas, damn! :) */ s.parentNode.insertBefore(ga, s); })();