﻿function getParkSubTypes(parkId, orgFhlocation, parkName, pageType) 
{
    if(siteId == 2)
    {
        jQuery('#orangebackright' + parkId).css('background', 'url(images/utils/show_accom_right_open.gif) no-repeat');
	}
    var url = 'ajaxmethods/methods.ashx';
    var pars = 'method=getParkSubTypes&parkId=' + parkId + '&parkName=' + parkName.replace("'", "\\'") + '&fhlocation=' + getURLParam('fh_location') + '&orgfhlocation=' + orgFhlocation;
    
    var hidValue = jQuery('#collapseText'+parkId).attr('value');     
    jQuery('#collapseText'+parkId).attr('value', jQuery('#changeText'+parkId).text());
    jQuery('#changeText'+parkId).text(hidValue);
    
    jQuery('#orangebackLink' + parkId).attr('href', 'javascript: hideParkSubTypes(' + parkId + ', \'' + orgFhlocation + '\', \'' + parkName.replace("'", "\\'") + '\',\'' + pageType + '\')');
    
    var myAjax = new Ajax.Request(
		    url,
		    {
			    method: 'get',
			    parameters: pars,
			    onComplete: showResponse
		    });
}

function showResponse(originalRequest)
{ 
    if(originalRequest.responseText != '')
    {       
        var parlSubTypes = originalRequest.responseText;
        var a_parlSubTypes = parlSubTypes.split(']');
        var parkId = a_parlSubTypes[0];
        var parkName = a_parlSubTypes[2];
        var supplier  = a_parlSubTypes[3].split(';');
            var supplierId = supplier[0];
            var supplierName = supplier[1];
            
        var html = '';
        var shortDescr = '';
        
        var collapseValue = jQuery('#collapseText'+parkId).attr('value');
        var nrAccommodations = parseInt(collapseValue.substring(collapseValue.indexOf('(')+1, collapseValue.indexOf(')')),10);
        var subtypes = a_parlSubTypes[1].split('|');
        for(var i=0;i<subtypes.length;i++)
        {
            var attributes = subtypes[i].split('~');
            var objectid = attributes[0];
            var name = attributes[1];
            var description = attributes[2];
            var regularprice = attributes[3];
            var price = attributes[4];
            var startdateSplit = attributes[5].split('-');
            var startdate = new Date(startdateSplit[0], (parseInt(startdateSplit[1],10) -1), startdateSplit[2]);
            var days = parseInt(attributes[6], 10);
            var enddate = new Date(startdateSplit[0], (parseInt(startdateSplit[1],10) -1), startdateSplit[2]);
            enddate.setDate(enddate.getDate()+days);
            var priceperiod = attributes[7];
            var maxpersons = attributes[8];
            var photo = attributes[9];
            var availid = attributes[10];
            var countryCode = attributes[11]; 
            var tooltip = attributes[12];
            var priceStyle = ( parseInt(regularprice,10) == 0 || siteId == 2 ) ? "greenback" : "greenback orangebackbutton" ;                 
            if(supplierId == '6' || supplierName == 'Eurovilla')
            {
                var text = description.split(' ');
                
                for(var word = 0; word < text.length; ++word )
                {
                    if(shortDescr.length < 70)
                    {
                      shortDescr += text[word];
                      shortDescr += " ";                      
                    }                    
                }    
                var lastChar = shortDescr.charAt((shortDescr.length - 2));                            
                if(lastChar == ',' || lastChar == '.')
                {
                     shortDescr = shortDescr.substring(0,shortDescr.length - 2);                     
                }
                shortDescr += "...";               
                description = shortDescr;
                shortDescr = " ";
            } 
            html += '<div class="accomodationitem" onclick="document.location.href=\'' + AddWhitelabelQueryStringJS('detail.aspx?object_id=' + objectid) + '\'" style="cursor: pointer;cursor:hand;" >'+                                                 
                        '<div class="accomphoto"><img src="'+photo+'" alt="" /></div>'+
                        '<div class="accominfo">'+
                            '<a href="' + AddWhitelabelQueryStringJS('detail.aspx?object_id='+objectid)+'">'+name+'</a><br/>'+
                            '<span class="accominfopers">' + maxpersons+' '+transPersonen+ '</span>' +
                        '</div>'+
                        '<div class="accomtext">'+ description + 
                        '</div>';
                        if( partnerid != '')
                        {
                            html += '<a href="' + AddWhitelabelQueryStringJS('detailprijs.aspx?avail_id='+availid+'&alt_id='+objectid)+'"><div class="' + priceStyle + '" onmouseover="TipProxy(\' ' + tooltip + ' \', OFFSETY, 0)">'+
                            transVanafPrijs+price+
                            '<span>'+transPerPeriode+' '+priceperiod+'</span>'+
                            '</div></a>';
                        }
                        else if( siteId == 2)
                        {
                            html += '<a href="' + AddWhitelabelQueryStringJS('detailprijs.aspx?avail_id='+availid+'&alt_id='+objectid)+'"><div class="' + priceStyle + '" onmouseover="TipProxy(\' ' + tooltip + ' \', OFFSETY, 0)">'+
                            transVanafPrijs+price+
                            '<span>'+transPerPeriode+' '+priceperiod+'</span>'+
                            '</div></a>';
                        }
                        else
                        {
                            html += '<a href="' + AddWhitelabelQueryStringJS('detailprijs.aspx?avail_id='+availid+'&alt_id='+objectid)+'"><div class="' + priceStyle + '" onmouseover="TipProxy(\' ' + tooltip + ' \')">'+
                            transVanafPrijs+price+
                            '<span>'+transPerPeriode+' '+priceperiod+'</span>'+
                            '</div></a>';
                        }
                        html += '<div class="accomitembottom"></div>' +
                    '</div>';
        }
        if(nrAccommodations > subtypes.length){
            var width2 = 561;
            if(siteId == 2)
            {
                width2 = 539;
            }
            html += '<div class="accomodationitem" onclick="document.location.href=\'' + AddWhitelabelQueryStringJS('detailaccommodaties.aspx?object_id=' + parkId) + '\'" style="cursor: pointer;cursor:hand;width:' + width2 + 'px;font-weight:bold;text-decoration:underline;padding-left:45px;" >'+                                                 
                        transToonMeer+' ('+nrAccommodations+')'+
                        '<div class="accomitembottom"></div>' +
                    '</div>';
        } 
        jQuery('#accom'+parkId).hide().html(html).show('slow');
		
		if(partnermap == 'test1')
		{
		    jQuery('.accomodationitem').hover(
			    function()
			    {
				    jQuery(this).css('background-color', '#81ff81');
			    },
			    function()
			    {
				    jQuery(this).css('background-color', '#caffca');
			    }
		    );
		}
		else if(partnermap == 'kras')
		{
		    jQuery('.accomodationitem').hover(
			    function()
			    {
				    jQuery(this).css('background-color', '#c0c0c0');
			    },
			    function()
			    {
				    jQuery(this).css('background-color', '#e3e3e3');
			    }
		    );
		}
		else if(partnermap == 'top')
		{
		    jQuery('.accomodationitem').hover(
			    function()
			    {
				    jQuery(this).css('background-color', '#ecf1c4');
			    },
			    function()
			    {
				    jQuery(this).css('background-color', '#eff1e0');
			    }
		    );
		}
		else if(partnermap == 'basis')
		{
		    jQuery('.accomodationitem').hover(
			    function()
			    {
				    jQuery(this).css('background-color', '#c0c0c0');
			    },
			    function()
			    {
				    jQuery(this).css('background-color', '#f1f1f1');
			    }
		    );
		}
		else if(siteId == 2)
		{
		    jQuery('.accomodationitem').hover(
			    function()
			    {
				    jQuery(this).css('border-color', '#262262');
			    },
			    function()
			    {
				    jQuery(this).css('border-color', '#b7b5b5');
			    }
		    );
		}
		else
		{
		    jQuery('.accomodationitem').hover(
			    function()
			    {
				    jQuery(this).css('background-color', '#c0c0c0');
			    },
			    function()
			    {
				    jQuery(this).css('background-color', '#f1f1f1');
			    }
		    );
		}
    }
}

function hideParkSubTypes(parkId, orgFhlocation, parkName, pageType){
	if(siteId == 2)
    {
        jQuery('#orangebackright' + parkId).css('background', 'url(images/utils/show_accom_right_closed.gif) no-repeat');
	}
	jQuery('#accom'+parkId).hide('slow');
	
	var hidValue = jQuery('#collapseText'+parkId).attr('value');     
    jQuery('#collapseText'+parkId).attr('value', jQuery('#changeText'+parkId).text());
    jQuery('#changeText'+parkId).text(hidValue);
    
    jQuery('#orangeback' + parkId + ' a').attr('href', 'javascript: getParkSubTypes(' + parkId + ', \'' + orgFhlocation + '\', \'' + parkName.replace("'", "\\'") + '\', \'' + pageType + '\');pageTracker._trackPageview("/zoeken/' + pageType + '/typesuitklappen");');
        
}

function removeZero(addToValue){
    if(addToValue.substring(0,1) == '0')
        return addToValue.substring(1,2);
    return addToValue;
}
function addZeros(addToValue){
    if(addToValue < 10)
        return '0'+addToValue;
    return addToValue;
}
function setCalendarsDates(){
    var fhlocation = URLDecode(getURLParam('fh_location'));
    var dateIs = false;
    var startdateIndex = fhlocation.indexOf('>startdate>');
    if(startdateIndex == -1)
    {
        dateIs = true;
        startdateIndex = fhlocation.indexOf('startdate=');
    }
    if(startdateIndex != -1){
        var arrivalDate = fhlocation.substring(startdateIndex+11,startdateIndex+11+8);
        var departDate = fhlocation.substring(startdateIndex-8,startdateIndex-8+8);
        if(dateIs == true)
        {
            arrivalDate = fhlocation.substring(startdateIndex+10,startdateIndex+10+8);
            departDate = fhlocation.substring(startdateIndex+10,startdateIndex+10+8);
        }
        var newArrivalDate = new Date();
        newArrivalDate.setFullYear(arrivalDate.substring(0, 4),parseInt(removeZero(arrivalDate.substring(4, 6)),10)-1,parseInt(removeZero(arrivalDate.substring(6, 8)),10));
        var year = (newArrivalDate.getFullYear()).toString();
        var month = (addZeros(parseInt(newArrivalDate.getMonth(),10)+1)).toString();
        var day = (addZeros(newArrivalDate.getDate())).toString();
        arrivalDate = year+month+day;
        startdateCalarrival = arrivalDate;
        enddateCaldepart = departDate;
    }
   
}
function submitCalSearch(cultureCode){
    var arrivalDate = (removeZero(startdateCalarrival.substring(6)) + '-' + removeZero(startdateCalarrival.substring(4,6)) + '-' + startdateCalarrival.substring(0,4)).split('-');
    var departDate = (removeZero(enddateCaldepart.substring(6)) + '-' + removeZero(enddateCaldepart.substring(4,6)) + '-' + enddateCaldepart.substring(0,4)).split('-');
    var newArrivalDate = new Date();
    newArrivalDate.setFullYear(arrivalDate[2],arrivalDate[1]-1,parseInt(arrivalDate[0],10));
    var year = (newArrivalDate.getFullYear()).toString();
    var month = (addZeros(parseInt(newArrivalDate.getMonth(),10)+1)).toString();
    var day = (addZeros(newArrivalDate.getDate())).toString();
    
    var startDateSearch = departDate[2]+addZeros(departDate[1])+addZeros(departDate[0])+'>startdate>'+year+month+day; 
    var fhlocation = URLDecode(getURLParam('fh_location'));
    var startDateIndex = fhlocation.indexOf('>startdate>');
    if(startDateIndex == -1)
    {
        startDateIndex = fhlocation.indexOf('startdate=');
    }
    if(fhlocation == '' || startDateIndex == -1){
        fhlocation = fhlocation == '' ? '//hogenboom/' + cultureCode : fhlocation;
    } else {
        var startIndex = fhlocation.substring(0,startDateIndex).lastIndexOf('/');
        var endIndex = fhlocation.substring(startDateIndex).indexOf('/');
        var partOne = fhlocation.substring(0,startIndex);
        var partTwo = endIndex == -1 ? '' : fhlocation.substring(startDateIndex+endIndex);
        fhlocation = partOne+partTwo;
    }
    var sortBy = getURLParam('fh_sort_by');
    if(sortBy != '')
        sortBy = '&fh_sort_by='+sortBy;
    document.location.href = AddWhitelabelQueryStringJS(displayPage + '?fh_location='+URLEncode(fhlocation+'/'+startDateSearch)+/*offerId+*/sortBy);
}

function submitCalRemove(cultureCode){
    var fhlocation = URLDecode(getURLParam('fh_location'));
    var startDateIndex = fhlocation.indexOf('>startdate>');
    if(startDateIndex == -1)
    {
        startDateIndex = fhlocation.indexOf('startdate=');
    }
    if(fhlocation == '' || startDateIndex == -1){
        fhlocation = fhlocation == '' ? '//hogenboom/' + cultureCode : fhlocation;
    } else {
        var startIndex = fhlocation.substring(0,startDateIndex).lastIndexOf('/');
        var endIndex = fhlocation.substring(startDateIndex).indexOf('/');
        var partOne = fhlocation.substring(0,startIndex);
        var partTwo = endIndex == -1 ? '' : fhlocation.substring(startDateIndex+endIndex);
        fhlocation = partOne+partTwo;
    }
    var sortBy = getURLParam('fh_sort_by');
    if(sortBy != '')
        sortBy = '&fh_sort_by='+sortBy;
    if(startDateIndex != -1)
    {
        document.location.href = AddWhitelabelQueryStringJS(displayPage + '?fh_location='+URLEncode(fhlocation)+/*offerId+*/sortBy);
    }
}

function submitKeywordSearch(cultureCode)
{
   // Without keyevent or when pressed enter
   var keywordBox = document.getElementById('keyword');
       
    if(keywordBox.value)
    {
        var skeyword    = keywordBox.value.replace("%", "").replace("#", "").replace("&", "").replace(";", "").replace("<", "").replace(">", "");       
        
        var fh_location = URLDecode(getURLParam('fh_location'));
        if(fh_location)
        {
            if(fh_location.indexOf('/$s') != -1 )
            {                     
                var startOfS = fh_location.indexOf('/$s');
                var endOfs =   fh_location.indexOf('/', startOfS + 1);
                if( endOfs == - 1)
                   fh_location = fh_location.substring(0,startOfS);
                else
                    fh_location = fh_location.substring(0,startOfS) + fh_location.substring(endOfs);

                 fh_location  = fh_location + '/$s=' + skeyword;
            }
            else
                fh_location += '/$s=' + skeyword;
        }
        else
        {
            fh_location = '//hogenboom/' + cultureCode;
            var sortBy = getURLParam('fh_sort_by');
            if(sortBy != '')
            {
                sortBy = '&fh_sort_by='+sortBy;
            }
            fh_location = fh_location + '/$s='  + skeyword + sortBy; 
         }
        document.location.href = AddWhitelabelQueryStringJS(displayPage + '?fh_location=' + URLEncode(fh_location));
    }
}

function textSearchPageKeyDown(cultureCode, evt){
    var keyCode = evt ? (evt.which ? evt.which : evt.keyCode) : event.keyCode;
      if (keyCode == 13)   //13 = the code for pressing ENTER 
      {
         if(evt)
         {
            evt.cancelBubble = true;
            evt.returnValue = false;
         }
         else
         {
            event.cancelBubble = true;
            event.returnValue = false;
         }
         submitKeywordSearch(cultureCode);
         return false;
      }
      return true;
}
addEvent(document, "onkeydown", textSearchPageKeyDown);

function doSortSearch(){
    var sorting = 'prioriteit';
    var selectedValue = $('sortSearch').options[$('sortSearch').options.selectedIndex].value;
    if(selectedValue == '2'){
        sorting = 'price';
    } else if(selectedValue == '3'){
        sorting = '-price';
    } else if(selectedValue == '4'){
        sorting = 'accommodationname';
    } else if(selectedValue == '1'){
            sorting = 'prioriteit';
    }
    var fhlocation = getURLParam('fh_location');
    if(fhlocation != '')
        location.href = AddWhitelabelQueryStringJS(displayPage+'?fh_location='+fhlocation+'&fh_sort_by='+sorting);
    else
        location.href = AddWhitelabelQueryStringJS(displayPage+'?fh_sort_by='+sorting);
}
function setSelectSort(){
    var sorting = getURLParam('fh_sort_by');
    if(sorting != ''){
        if(sorting == 'price'){
            $('sortSearch').options[1].selected = true;
        } else if(sorting == '-price'){
            $('sortSearch').options[2].selected = true;
        } else if(sorting == 'accommodationname'){
            $('sortSearch').options[3].selected = true;
        } else if(sorting == 'prioriteit'){
            $('sortSearch').options[0].selected = true;
        }
    }
}

function setBigPic(smallPicId, bigPicId)
{
    var strSmallPic = document.getElementById(smallPicId).src;
    var strBigPic = document.getElementById(bigPicId).src;
    
    strSmallPic = strSmallPic.replace('klein','standaard');
    document.getElementById(bigPicId).src = strSmallPic;
    
    strBigPic = strBigPic.replace('standaard','klein');
    document.getElementById(smallPicId).src = strBigPic;
}

/**
* Returns the week number for this date. dowOffset is the day of week the week
* "starts" on for your locale - it can be from 0 to 6. If dowOffset is 1 (Monday),
* the week returned is the ISO 8601 week number.
* @param int dowOffset
* @return int
*/
Date.prototype.getWeek = function (dowOffset) {
/*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.meanfreepath.com */

    dowOffset = typeof(dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero
    var newYear = new Date(this.getFullYear(),0,1);
    var day = newYear.getDay() - dowOffset; //the day of week the year begins on
    day = (day >= 0 ? day : day + 7);
    var daynum = Math.floor((this.getTime() - newYear.getTime() -
    (this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1;
    var weeknum;
    //if the year starts before the middle of a week
    if(day < 4) {
        weeknum = Math.floor((daynum+day-1)/7) + 1;
        if(weeknum > 52) {
            nYear = new Date(this.getFullYear() + 1,0,1);
            nday = nYear.getDay() - dowOffset;
            nday = nday >= 0 ? nday : nday + 7;
            /*if the next year starts before the middle of
            the week, it is week #1 of that year*/
            weeknum = nday < 4 ? 1 : 53;
        }
    }
    else {
        weeknum = Math.floor((daynum+day-1)/7);
    }
    return weeknum;
};