function log(){
    if (window && window.console && window.console.log) 
        for (var i = 0, len = arguments.length; i < len; i++) 
            console.log(arguments[i]);
}

/*******************************************************************************
 * all the things that have to be done on document load
 * requires JQuery 1.3 !!!!!!
 *
 * @return void
 ******************************************************************************/

$(function(){
    try {
        init();
    } 
    catch (e) {
        log("Thrown error: " + e.message);
    }
});
function init(){
    try {
        $("a.fancybox, a.thickbox, a.colorbox").fancybox({
            overlayOpacity: 0.8,
            titlePosition: "inside"
        });
    } 
    catch (e) {
        log("Thrown error: " + e.message);
    }
    try {
        $("a.extern").click(function(){
            window.open($(this).attr("href"));
            return false;
        });
    } 
    catch (e) {
        log("Thrown error: " + e.message);
    }
    
    initSlider();
    $(".sliderPlus").click(function() {
    	var jthis = $(this);
    	andy = jthis;
    	var slider = $('.slider', jthis.parent().parent());
    	var value = slider.slider('value');
    	slider.slider("value", value + 1);
    	handleSlider();
    	return false;
    });
    
    $(".sliderMinus").click(function() {
    	var jthis = $(this);
    	var slider = $('.slider', jthis.parent().parent());
    	var value = slider.slider('value');
    	slider.slider("value", value - 1);
    	handleSlider();
    	return false;
    });

	handleCarousel();
	handleFancyBox();

}

function getInitialValue(jelement) {
	var classes = $(jelement).attr('class').split(' ');
	var suchwort = 'slider-init-value-';
	var init = 2;
	for(var i=0; i<classes.length; i++) {
		var cl = classes[i];
    	if(cl.search(suchwort) > -1) {
    		init = cl.replace(suchwort, '');
    	}
    }
	
	return init;
}

function initSlider() {
	var slider = $( ".slider" );
	
	slider.each(function(index, element) {
		var jelement = $(element);
		var initial_value = getInitialValue(jelement);
		jelement.slider({ 
	    	max: 3,
	    	min: 1,
	    	value: initial_value,
	    	start: function(event, ui) {
	    		jthis = $(this);
	    		jthis.attr('startValue', ui.value);
	    	},
	    	change: function(event, ui) {
	    		
	    	},
	    	stop: function(event, ui) {
	    		jthis = $(this);
	    		var startValue = jthis.attr('startValue');
	    		//Pruefen ob der Wert auch geändert wurde, erst dann neue Reisen holen
	    		if(ui.value == startValue) {
	    			log('gleich');
	    		} else {
	    			log('ungleich');
	    			handleSlider();
	    		}
	    	}
	    });
	});
	handleSlider();
}

function initImageFlow() {
	var imageFlow = new ImageFlow();
	var jImageFlow = $('#imageflow');
	
	imageFlow.init({ ImageFlowID: 'imageflow',
                      circular: false,
                      reflections: false,
                      reflectionP: 0.4,
                      slider: false,
                      captions: true,
                      opacity: true,
                      xStep: 100,
                      imageFocusM: 1.4,
											imageCursor: 'pointer',
                      startID: 0 });
											
  var caption = $('#imageflow_caption').clone();
	$('#imageflow_caption').remove();
	
	$('#imageflow_captiontext').empty().append(caption);
	imageFlow.captionDiv = document.getElementById('imageflow_caption');
	
	$('#imageflow_results').css('padding-top', '8px');
	
	return true;
}

function handleSlider() {
//	var url = $('.sliderPlus img').attr('rel');
	if($('#tour_finder').length == 0) {
		return false;
	}
	var url = location.href;
	var slider = $('.slider-wrapper .slider');
	var data = {};
	data.A = 'refreshTourFinder'; 
	slider.each(function(index, element) {
		jelement = $(element);
		var value = jelement.slider('value');
		var tech_id = '';
		
  var classes = jelement.attr('class').split(' ');
  var suchwort = 'c_';
  for(var i=0; i<classes.length; i++) {
    var cl = classes[i];
      if(cl.search(suchwort) > -1) {
        tech_id = cl;
      }
    }
//		url_add = url_add + '&' + tech_id + '=' + value;
		data[tech_id] = value;
	});
//	log(data);
//	var ajax_url = handleUrl(url, url_add); 
	if(url.length > 0) {
		$.ajax({
			type		: "GET",
			cache	: false,
			url		:url,
			data		: data,
			success: function(data) {
				if(data.status == 'ok' && data.data.length > 0) {
					var imageflow_caption = $('#imageflow_caption');
					var imageflow_captionholder =  $('#imageflow_captionholder');
					var imageflow_captiontext = $('#imageflow_captiontext');
					var imageflow = $('#imageflow');
					
					var width = imageflow.width();
					imageflow_caption.remove();
					imageflow.empty().html(data.data);
					if(data.found > 1) {
						imageflow.addClass('imageflow');
						initImageFlow();
						imageflow_captionholder.show();
					}
					if(data.found == 1) {
						imageflow_captionholder.show();
						var p = $('<p></p>');
						var img = $(data.data);
						var caption = img.attr('alt');
						img.css('visibility', 'visible');
						var link = $('<a href="'+img.attr('longdesc')+'" title="'+escape(caption)+'"></a>');
						link.html(img);
						p.addClass('single_image').html(link);
						imageflow.html(p).removeClass('imageflow');
						imageflow_captiontext.width(width).html($('<div id="imageflow_caption">'+caption+'</div>')).css('padding-top', '8px');
					}
					if(data.found == 0) {
						imageflow_captionholder.hide();
					}
				}
			}
		});
	}
	return true;
}

function handleUrl(url, search) {
	var url_ret = false;
	if(search.length > 1 && url.length > 1) {
		if(search[0] == '&') {
			search = search.substr(1);
		}
		if(url[url.length-1] == '?') {
			url = url + search;
		} else {
			url = url + '?' + search;
		}
		url_ret = url;
	}
	return url_ret;
}

function handleCarousel() {
  var galleryview = $('#galleryview');
	
  if(galleryview != null) {
    galleryview.jcarousel({initCallback: carouselButton, scroll: 1, offset: 0, visible: 6});
  }
	
  return true;
}

function carouselButton(carousel)
{
	  initcarouselHover(carousel);
	
    // Pause autoscrolling if the user moves with the cursor over the clip.
    carousel.clip.hover(function() {
//        carousel.stopAuto();
				
		initcarouselHover(carousel);
				
    }, function() {
        
    });
};

function initcarouselHover(carousel){

	var li = $('#galleryview li');
	
	if (li != null) {
	
		li.each(function(){
		
			$(this).hover(function(){
			
				var offset = $(this).offset();
				var border = $('<div />');
				
				border.css('left', Math.floor(offset.left - 14)).addClass('galleryview-hover');
				
				var newa = $(this).children(':first-child').clone();
				
				border.append($('<div />').append(newa));
				
				border.append($('<div />').addClass('galleryview-desc').text(newa.attr('title')))
				
				border.hover(function(){
				}, function(){
				
					$('.galleryview-hover').remove();
//					carousel.startAuto();
					
				});
				
				
				$('body').append(border);
				//border.style.
			
			}, function(){
			
			});
		});
		
	}
	
}


function handleFancyBox() {
	$("a.content_gallery").fancybox({overlayOpacity: 0.8});
}

function handleAccordion() {
	var tour = $('#tour-overview');
	if(tour.length > 0) {
		tour.accordion({ collapsible: true, active: false, autoHeight: false });
	}
	return true;
}

