var toggleProductImage = function(imageSrc) {
	jQuery("div.afbeelding img").attr("src", imageSrc);
};

var registerNavigationEvents = function() {
	var eventHandler = function(e) {
		e.preventDefault();
		if(jQuery(this).hasClass('disabled') == false) {
			var href = jQuery(this).attr('href');
			searchFlowers(href);
		}
	};
	
	jQuery("div#producten a.navigation").click(eventHandler);
	jQuery("div#product_detail a.navigation").click(eventHandler);
	
};

var registerFilterEvents = function() {
	jQuery("form#filterform").submit(function(){return false;}); // disable default submit events
	
	jQuery("form#filterform select").keypress(function(eventObject) {
		// for better keyboard navigation
		if(eventObject.which == '13') { 
			filterChanged();
		}
	});
	
	jQuery("div#zoekfilter input[type=text]").keyup( function(eventObject) {
		freeTextFilterChanged(jQuery(this));
	});
	
	jQuery("div#zoekfilter select").change( function(eventObject) {
		filterChanged();
	});
	
	jQuery("div#zoekfilter input[type=radio]").change( function(eventObject) {
		filterChanged();
	});
	
}

var registerEndOfConversationEvent = function() {
	jQuery("div.menucontainer a").click( function(eventObject) {
		jQuery("input#conversationKey").val(jQuery("input#contentConversationKey").val());
		jQuery.post(jQuery("form#filterform").attr("action") + "?stopconversation", jQuery("form#filterform").serializeArray());
	});
}

var registerProductImagePopup = function(orientation) {

	var width = orientation == 'breed' ? 627 : 414;
	var height = orientation == 'breed' ? 562 : 636;
	
	var applyAutoDimensions = true;
	// in ie7 auto dimension is not working properly
	if (jQuery.browser.msie && jQuery.browser.version == '7.0') {
		applyAutoDimensions = false;
	}

	jQuery("a.popup").fancybox({
		'zoomOpacity'			: true,
		'overlayColor' 			: '#000',
		'overlayShow'			: true,
		'overlayOpacity' 		: 0.75,
		'padding' 				: 0,
		'enableEscapeButton'	: true,
		'centerOnScroll'  		: false,
		'titleShow'				: false,
		'showCloseButton'		: true,
		'scrolling'				: 'no',
		'hideOnContentClick'	: false,
		'autoDimensions'		: applyAutoDimensions,
		'width'					: width,
		'height'				: height
	});
};


/*
	AJAX SEARCH FILTER
*/
var searchFilterTimer;

var freeTextFilterChanged = function(obj) {
	
	//jQuery("div#zoekfilter div.ajax-loading").show();
	var lastValue = jQuery("div#zoekfilter input#lastsearched").val();
	var value = obj.val();
	
	if (lastValue != value) { // only submit search if the searchfield changed 
		if(searchFilterTimer) {
			clearTimeout(searchFilterTimer);
		}
	
		searchFilterTimer = setTimeout(function() {
			searchFilterTimer = undefined;
			searchFlowers(null);
			jQuery("div#zoekfilter input#lastsearched").val(value);
		}, 500);
	} 
};

var filterChanged = function() {
	
	//jQuery("div#zoekfilter div.ajax-loading").show();
	
	if(searchFilterTimer) {
		clearTimeout(searchFilterTimer);
	}

	searchFilterTimer = setTimeout(function() {
		searchFilterTimer = undefined;
		searchFlowers();
	}, 500);
};



var searchFlowers = function(href) { 
	var target = href ? href : jQuery("form#filterform").attr("action");
	jQuery("input#conversationKey").val(jQuery("input#contentConversationKey").val());
	jQuery("div#content").load(target, jQuery("form#filterform").serializeArray(), function(data) {
		registerNavigationEvents();
		
		registerProductImagePopup(jQuery("input#productOrientation").val());
		//jQuery(".ajax-loading").hide();
	});
	
};

