

if(!window.console) {
  // firebug not installed or disabled
  window.console = new function() {
    this.log = function(str) {};
    this.dir = function(str) {};
    this.debug = function(str) {};
  };
}

/*-------------------------GLOBALS-------------------------*/
$(document).ready(function () {

	var cache = false;

	$.plugin('datepicker', { files:['/basewebinterface/com/scripts/jquery/plugins/date/date.js', '/basewebinterface/com/scripts/jquery/plugins/date/date-de.js', '/basewebinterface/org/js/jquery/1.7.2/plugins/datepicker/css/datePicker.css', '/basewebinterface/org/js/jquery/1.7.2/plugins/bgiframe/jquery.bgiframe.js', '/basewebinterface/org/js/jquery/1.7.2/plugins/datepicker/jquery.datePicker.js'], selectors: ['.datepicker', 'input.TypeDate', 'input.TypeDateTime', 'input.TypeDateRaw'], callback : function(){ /*$('.datepicker').datePicker();*/ }, cache:true } );
	$.plugin('date', { files:['/basewebinterface/com/scripts/jquery/plugins/date/date.js', '/basewebinterface/com/scripts/jquery/plugins/date/date-de.js', '/basewebinterface/com/scripts/jquery/plugins/date/jquery.date.js'], selectors: ['.datepicker', 'input.TypeDate', 'input.TypeDateTime', 'input.TypeDateRaw'], callback : function(){  }, cache:true } );
	$.plugin('accordion', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/accordion/css/jquery.accordion.css','/basewebinterface/org/js/jquery/1.7.2/plugins/easing/jquery.easing.js','/basewebinterface/org/js/jquery/1.7.2/plugins/accordion/jquery.accordion.js'], selectors: ['.accordion'], callback : function(){ /*$('.accordion').accordion();*/ }, cache:cache } );
	// '/basewebinterface/org/js/jquery/1.7.2/plugins/dimensions/jquery.dimensions.js',
	
	$.plugin('lightbox', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/lightbox/jquery.lightbox.js', '/basewebinterface/org/js/jquery/1.7.2/plugins/lightbox/css/lightbox.css'], selectors: ['.lightbox'], callback : function(){ $('.lightbox').lightbox(); }, cache:cache } );
	//$.plugin('fancybox', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/fancybox/jquery.fancybox-1.2.6.pack.js', '/basewebinterface/org/js/jquery/1.7.2/plugins/fancybox/jquery.fancybox-1.2.6.css','/basewebinterface/org/js/jquery/1.7.2/plugins/easing/jquery.easing.js'], selectors: ['.lightbox'], callback : function(){ $('.lightbox').fancybox(); }, cache:cache } );
	$.plugin('fancybox', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/fancybox/jquery.fancybox-1.3.1.pack.js', '/basewebinterface/org/js/jquery/1.7.2/plugins/fancybox/jquery.fancybox-1.3.1.css','/basewebinterface/org/js/jquery/1.7.2/plugins/easing/jquery.easing.js'], selectors: ['.lightbox'], callback : function(){ $('.lightbox').fancybox(); }, cache:cache } );
	$.plugin('swfobject', { files:['/basewebinterface/org/js/swfobject/2.0/swfobject.js'], selectors: ['div#flashcontent'], callback : function(){ /* */ }, cache:cache } );
	//$.plugin('sexycombo', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/sexycombo/css/sexy.css', '/basewebinterface/org/js/jquery/1.7.2/plugins/sexycombo/css/jquery.sexy-combo.css', '/basewebinterface/org/js/jquery/1.7.2/plugins/bgiframe/jquery.bgiframe.js', '/basewebinterface/org/js/jquery/1.7.2/plugins/sexycombo/jquery.sexy-combo-2.1.2.js'], selectors: ['select.TypeSelect'], callback : function(){ /**/ }, cache:cache } );
	$.plugin('scrollable', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/tools.scrollable.min.js', '/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/css/scrollable-vertical.css', '/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/css/scrollable-horizontal.css', '/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/css/scrollable-buttons.css', '/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/css/scrollable-navigator.css'], selectors: ['.scrollable'], callback : function(){ /* */ }, cache:cache } );
	$.plugin('overlay', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/tools.overlay.min.js','/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/css/overlay-minimal.css'], selectors: ['.overlay'], callback : function(){ /* */ }, cache:cache } );
	//$.plugin('tooltip', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/tools.tooltip.min.js','/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/css/tooltip.css'], selectors: ['.tooltip'], callback : function(){ /* */ }, cache:false } );
	$.plugin('tooltip', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/bgiframe/jquery.bgiframe.js','/basewebinterface/org/js/jquery/1.7.2/plugins/tooltip/jquery.tooltip.js','/basewebinterface/org/js/jquery/1.7.2/plugins/tooltip/css/jquery.tooltip.css'], selectors: ['.tooltip'], callback : function(){ /* */ }, cache:cache } );
	// '/basewebinterface/org/js/jquery/1.7.2/plugins/dimensions/jquery.dimensions.js',
	
	//$.plugin('tabs', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/tools.tabs.js','/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/css/tabs.css'], selectors: ['.tabs'], callback : function(){ /* */ }, cache:cache } );
	$.plugin('tabs', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/tools.tabs.min.js','/basewebinterface/org/js/jquery/1.7.2/plugins/fptools/css/tabs.css'], selectors: ['.tabs'], callback : function(){ /* */ }, cache:cache } );
	
	$.plugin('thickbox', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/thickbox/thickbox-compressed.js','/basewebinterface/org/js/jquery/1.7.2/plugins/thickbox/thickbox.css'], selectors: ['.thickbox'], callback : function(){ /* */ }, cache:cache } );
	$.plugin('flowplayer', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/flowplayer/flowplayer-3.1.2.min.js'], selectors: ['.flowplayer'], callback : function(){ /* */ }, cache:cache } );
	$.plugin('reflection', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/reflection/reflection.js'], selectors: ['.reflection'], callback : function(){ /* */ }, cache:cache } );
	$.plugin('pageflip', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/pageflip/jquery.pageflip.js','/basewebinterface/org/js/jquery/1.7.2/plugins/pageflip/css/pageflip.css'], selectors: ['.pageflip'], callback : function(){ /* */ }, cache:cache } );
	$.plugin('quickflip', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/pageflip/jquery.quickflip.js'], selectors: ['.quickflip'], callback : function(){ /* */ }, cache:cache } );
	$.plugin('jgrowl', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/jgrowl/jquery.jgrowl.css','/basewebinterface/org/js/jquery/1.7.2/plugins/jgrowl/jquery.jgrowl.js'], selectors: ['.jgrowl'], callback : function(){ /* */ }, cache:cache } );
	$.plugin('supersized', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/supersized/jquery.supersized.js','/basewebinterface/org/js/jquery/1.7.2/plugins/supersized/jquery.supersized.css'], selectors: ['.supersized'], callback : function(){ /* */ }, cache:cache } );
	
	$.plugin('jcarousel', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/jcarousel/jquery.jcarousel.pack.js','/basewebinterface/org/js/jquery/1.7.2/plugins/jcarousel/skins/tango/skin.css'], selectors: ['.jcarousel'], callback : function(){ /* */ }, cache:cache } );
	$.plugin('crossslide', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/cross-slide/jquery.cross-slide.js',], selectors: ['.crossslide'], callback : function(){ /* */ }, cache:cache } );
	$.plugin('simplyscroll', { files:['/basewebinterface/org/js/jquery/1.7.2/plugins/simplyscroll/jquery.simplyscroll.min.js','/basewebinterface/org/js/jquery/1.7.2/plugins/simplyscroll/css/jquery.simplyscroll.css'], selectors: ['.simplyscroll'], callback : function(){ /* */ }, cache:cache } );
	
	
	// load default
	/*$.plugin('datepicker').get();*/
	//$.plugin('lightbox').get();
	//$.plugin('fancybox').get();
	$.plugin('thickbox').get();
	$.plugin('jgrowl').get();
	$.plugin('date', function ()  {
		$('input.TypeDate').date();
	});

});
 

/*---------------------------------------------------------------*/

function windowOpenBooking(url) {
    // used for donna-hotels.com
	window.open(url,'','directories=0,location=0,menubar=0,resizable=1,scrollbars=1,status=0,toolbar=0,width=640,height=520,left=50,top=50');
	return null;
}

function navigationSelectbox_goToPage(select) {
   var path = select.options[select.options.selectedIndex].value;
   document.location.href = path;
}

function field_addCSSClassName(object, className) {
    object.className = object.className + ' ' + className;
}

function field_removeCSSClassName(object, className) {
    classArray = object.className.split(" ");
    object.className = '';
    for(i=0;i<classArray.length;i++) {
        if (classArray[i] != className) {
            object.className = object.className + ' ' + classArray[i];
        }
    }
    return;
}

function preloadImages(src) {
	if (document.images)
	{
	  image     = new Image(); 
	  image.src = src; 
	}
	return;
}

function changeImage(key, newSrc) {
    // by id
	image = document.getElementById(key);
    if (!image) { 
       // by class-key
	   element = document.getElementsByClassName(key)
       image   = document.getElementsByTagName('img', element)[0];
    }
	image.src = newSrc;
	return;
}


function changeImageByClassKey(classKey, newSrc) {
	element = document.getElementsByClassName(classKey)
	image   = document.getElementsByTagName('img', element);
	image[0].src = newSrc;
	return;
}

function removeElementById(elementId) {
  var base = document.getElementById('cmsskin');
  var toDelete = document.getElementById(elementId);
  base.removeChild(toDelete);
}

function showElementById(elementId) {
	var element = document.getElementById(elementId);
	if(element) {	
		element.style.visibility = 'visible';
	} else {
		alert('Element not found! (id='+elementId+')');
	}
}
function hideElementById(elementId) {
	var element = document.getElementById(elementId);
	if(element) {
		element.style.visibility = 'hidden';
	} else {
		alert('Element not found! (id='+elementId+')');
	}
}

function showBalloon(elementId) {
	setBalloonPosition(elementId, 'bottom-left');
	showElementById(elementId)
}

function setBalloonPosition(elementId, type) {
	var balloon = document.getElementById(elementId);
    var element = document.getElementById(elementId+'-offset');
	var width   = element.offsetWidth;
	var height  = element.offsetHeight;
	
	if(type=='bottom-left') {
		balloon.style.left = -6 ;
		balloon.style.top  = ( height - 18 ) * -1 ;
	} 
	if(type=='top-left') {
		balloon.style.left = -6 ;
		balloon.style.top  = ( 6 ) * -1 ;
	} 
}



function portletGetContent(baseUrl, languageKey, slotKey, pageUID, cacheManagerId, portletUID, parameters) {			
		
	if (portletUID == null) { 
		var onCompleteFunction = function(responseData) {
			if (responseData['html'] != null) {
				$('#portletslot-'+slotKey).html(responseData['html']);
			}
			eval(responseData['javascript']);
		}
	} else {
		var onCompleteFunction = function(responseData) {
			if (responseData['html'] != null) {
				$('#portlet-'+portletUID+' .base-portlet-content').html(responseData['html']);
			}
			eval(responseData['javascript']);
		}
	}

	url = baseUrl + '/' + languageKey + '/portlets/' + slotKey + '__' + pageUID;
	
	if (portletUID != null) {
		url += '__' + portletUID;
	} 
	
	if (parameters != null) {
		url += '.phtml';
		postData = ''+parameters;
		methodType = 'POST';
	} else {
		url += '.html';
		postData = null;
		methodType = 'GET';
	}

	if (cacheManagerId != undefined && cacheManagerId != null) {
		url += '?CM_ID=' + cacheManagerId;
	}

    var myAjax = $.ajax({
    	url:url, 
    	type:methodType,
    	data:postData,
    	success:onCompleteFunction,
    	dataType:'json',
    	processData:false
    });

    
    return void(0);
}

function wait(millis)
{
	var date = new Date();
	var curDate = null;	
	do { curDate = new Date(); }
	while(curDate-date < millis);
}


function leafletAddItem(baseUrl, languageKey, slotKey, pageUID, cacheManagerId, portletUID, parameters) {
	
	sessvars.loadPricemanagerLeafleat = true;
	
	$.jGrowl.defaults.closer   = false;
	$.jGrowl.defaults.position = 'top-right';
	
	// check if portlet is loaded
	if(!($('#leaflet-portlet').length > 0))  {
		$.jGrowl('Bitte warten bis das Merkblatt geladen ist.', { theme:'notice', header:'Bitte warten...'});
		return void(0);
	}			
	
	// check leaflet size		
	leafletSize = $('.leaflet-list-portlet table tr.leaflet-item').size();
	if ( leafletSize == 0 ) {
		$('.leaflet-list-portlet table').show();
		$('#leaflet-empty-message').hide();
	}
	if ( leafletSize > 15) {
		$.jGrowl('Sie können maximal 15 Elemente zum Merkblatt hinzufügen.', { theme:'notice', header:'Merkblatt ist begrenzt'});
		return void(0);
	}	
	
	// duplicate check
	rowId    = 'row-'+parameters['id'].toString();
	if (parameters['type']=='offer') { rowId += parameters['offerId'].toString(); }
	if($('.leaflet-list-portlet table tr#'+rowId).get(0)){
		$.jGrowl(parameters['caption']+'<br>'+parameters['caption2']+'<br>'+parameters['price'], { theme:'notice', header:'Bereits gemerkt...'});
		return void(0);
	}
	
	$('#leaflet-empty-message').hide();
		
	parameterString = "'"+baseUrl+"', '"+languageKey+"',  '"+slotKey+"', '"+pageUID+"', '"+cacheManagerId+"', '"+portletUID+"', { type:'"+parameters['type']+"', id:'##LEAFLET_ITEM_ID##', caption:'"+parameters['caption']+"', caption2:'"+parameters['caption2']+"', price:'"+parameters['price']+"' }";
	rowHtml = '';
	rowHtml += '<tr class="leaflet-item leaflet-item-new" id="'+rowId+'">';
	rowHtml += '<td class="column-amount"><span class="amount">1</span><br><a href="javascript:leafletDeleteItem('+parameterString+')" class="delete-item-link"><img src="/basewebinterface/org/images/icons/16x16/delete-x.png" title="Entfernen" alt="Entfernen" align="center"/></a></td>';
	rowHtml += '<td class="column-caption"><span class="caption">'+parameters['caption']+'</span><br><span class="caption2">'+parameters['caption2']+'</span></td>';
	rowHtml += '<td class="column-price"><span class="single-price">'+parameters['price']+'</span><span class="price">'+parameters['price']+'</span></td>';
	rowHtml += '</tr>';
	
    $('.leaflet-list-portlet table tr.leaflet-sum').before(rowHtml);
    
    if (parameters['type']=='offer') {
    	portletGetContent(baseUrl, languageKey, slotKey, pageUID, cacheManagerId, portletUID, 'action=add&type='+parameters['type']+'&id='+parameters['id']+'&offerId='+parameters['offerId']+'&stayTime='+parameters['stayTime']);
    	$.plugin('jgrowl', function() {
   			$.jGrowl(parameters['caption']+'<br>'+parameters['caption2']+'<br>'+parameters['price'], { theme:'accept', header:'Angebot hinzugefügt'});
   		});
    } else {
    	portletGetContent(baseUrl, languageKey, slotKey, pageUID, cacheManagerId, portletUID, 'action=add&type='+parameters['type']+'&id='+parameters['id']);
    	$.plugin('jgrowl', function() {
   			$.jGrowl(parameters['caption']+'<br>'+parameters['caption2']+'<br>'+parameters['price'], { theme:'accept', header:'Paket hinzugefügt'});
   		});
    }
    leafletCalculateSum();
    return void(0);
}

function leafletDeleteItem(baseUrl, languageKey, slotKey, pageUID, cacheManagerId, portletUID, parameters) {
	
	$.plugin('jgrowl', function() {

		$.jGrowl.defaults.closer   = false;
		$.jGrowl.defaults.position = 'top-right';	
		
		// check if portlet is loaded
		if(!($('#leaflet-portlet').length > 0))  {
			$.jGrowl('Bitte warten bis das Merkblatt geladen ist.', { theme:'notice', header:'Bitte warten...'});
			return void(0);
		}			
		
		rowClass = 'row__leaflet-'+parameters['type']+'-'+parameters['id'];    
	    $('.leaflet-list-portlet .'+rowClass).remove().fadeOut();
	    $('.leaflet-list .'+rowClass).remove().fadeOut();
	            
	    portletGetContent(baseUrl, languageKey, slotKey, pageUID, cacheManagerId, portletUID, 'action=delete&type='+parameters['type']+'&id='+parameters['id']);
	    if(parameters['type']=='offer') {
	    	$.plugin('jgrowl', function() { 
	    		$.jGrowl(parameters['caption']+'<br>'+parameters['caption2']+'<br>'+parameters['price'], { theme:'error', header:'Angebot gelöscht'});    		
	   		});
	    } else {
	    	$.plugin('jgrowl', function() {
	    		$.jGrowl(parameters['caption']+'<br>'+parameters['caption2']+'<br>'+parameters['price'], { theme:'error', header:'Paket gelöscht'});
	    	});
	    }
	    leafletCalculateSum();
	    
		
		// check leaflet size		
		leafletSize = $('.leaflet-list-portlet table tr.leaflet-item').size();
		if ( leafletSize == 0 ) {
			$('.leaflet-list-portlet table').hide();
			$('#leaflet-empty-message').show();
			sessvars.loadPricemanagerLeafleat = false;
		} else {
			sessvars.loadPricemanagerLeafleat = true;
		}
	});
	
    return void(0);
}

function leafletCalculateSum() {        
    var summe = 0.0;
    jQuery.each($(".leaflet-list-portlet .leaflet-item"), function() {
    	rawAmount    = $('.amount', this).html();
        rawPrice     = $('.single-price', this).html();
        pricePerDay  = $('.price-per-day', this).html();
        nights       = $('.nights', this).html();
        
        amount       = parseFloat(rawAmount);
        pricePerDay  = parseInt(pricePerDay);
        nights       = parseInt(nights);
        
        price    = rawPrice.replace(/€/g, '');
        price    = price.replace(/,/g, '.');
        price    = price.replace(/--/g, '00');
        price    = parseFloat(price);
        tmp      = price*amount;
        if (pricePerDay) { tmp = tmp*nights; } 
        summe   += tmp;
    });
    summe = summe.toFixed(2);
    summe = summe.replace(/.00/,',--');
    summe = summe.replace(/\./,',');        
    $(".leaflet-list .sum-value").html('&euro;' + summe.toString());
    $(".leaflet-list-portlet .sum-value").html('&euro; ' + summe.toString());
    return void(0);
}


function fieldDatePicker_open(fieldUniqueId, args) {
	$.plugin('datepicker', function(){
		args.createButton = false;
		args.verticalOffset = 25;
		args.horizontalOffset = 60;
		Date.format = 'dd.mm.yyyy';
		if (args.startDate) args.startDate = Date.calculateString(args.startDate).asString();
		$('input[name=\'' + fieldUniqueId + '\']').datePicker(args);
		$('input[name=\'' + fieldUniqueId + '\']').dpDisplay();
	});
	return void (0);
}


function quickrequestSetDefaultDates(selectorArrival, selectorDeparture, interval, arrivalDateAddDays) {
		
	var arrivalDate = new Date();
	if(!interval)     { interval  = 5; }	
	if(arrivalDateAddDays)        { arrivalDate = new Date(arrivalDate.getTime()+(parseInt(arrivalDateAddDays)*24*60*60*1000)); }
	
	var departureDate = new Date(arrivalDate.getTime()+(parseInt(interval)*24*60*60*1000));
			
	$(selectorArrival).attr('value', baseFormatDate(arrivalDate));
	$(selectorDeparture).attr('value', baseFormatDate(departureDate));
}


function baseFormatInt(value, len) {
	strInt = '' + value;
	iMax = len - strInt.len;
	for (i=0;i < iMax;i++) {
		strInt = '0' + strInt;
	}
	return strInt;
}

function baseFormatDate(rawDate, format) {

	if(!format) { format = 'dd.mm.yyyy'; }

	year  = rawDate.getYear();
	if (year < 999) { year += 1900; }
	month = rawDate.getMonth()+1;
	day   = rawDate.getDate();

	var outputDate = '';
	outputDate = baseFormatInt(day, 2) + '.' + baseFormatInt(month, 2) + '.' + baseFormatInt(year, 2);
	return outputDate;
}
