if (typeof Panagora != 'object' || typeof Panagora == 'undefined')
	var Panagora = {};
	
if (typeof console != 'object')
	var console = { log: function() {}, info: function() {} }

var $j = jQuery.noConflict();

$j(document).ready(function() {

	$j(document)
		.ajaxStart(function () {
			$j('body').addClass('waiting');
			t = setTimeout(showDelayedAjaxLoader, 200);
		}).ajaxStop(function () {
			$j('body').removeClass('waiting');
			hideDelayedAjaxLoader();
		});
		
		function showDelayedAjaxLoader() {
			$j('#ajax-loader')
			.css('top', $j(window).scrollTop()+($j(window).height()/2))
			.css('left', ($j(window).width() - $j('#ajax-loader').width()) / 2)
			.show();
		}
	
		function hideDelayedAjaxLoader() {
			clearTimeout(t);
			$j('#ajax-loader').hide();
		}

	//
	// Använd den här om du vill ha autopager på söksidan
	//
	if ($j('body').is('#search-page')) {
		$j.autopager({
			// a selector that matches a element of next page link
			link: '#search-next-page',
			// a selector that matches page contents
			content: '.search-product-list-item',
			start: function (current, next) {
				current.url += '&auto=1';
				//console.log(current.url)
			}
			
		});
	}
	
	//
	// Product page: Select size and purchase
	//
	$j('.product-size-buy-info.available').live("click",function(e){
		$j('.selected').removeClass('selected');
		$j(this).addClass('selected');
		var sizeId = $j('.selected').attr('sizeId');
		var productId = $j('.selected').attr('productId');
	});	
		
	var selectedSize = 0;
	$j('#product-purchase-button').live("click",function(e){
		selectedSize = $j('.selected').attr('sizeId');
		if(selectedSize) {
			$j.ajax({
				url: "/system/cart/update.asp?a=1&s="+ selectedSize,
				method: "get",
				dataType: "html",
				success: function(data, textStatus, XMLHttpRequest) {
					$j('#cart-mini').fadeIn('fast', function() {
						$j('#cart-mini').css('z-index', '2001');
						$j.add2cart("product_main_image", "cart-mini", updateCartMini);
					});	
				}
			});
		} else {
			alert($j('#product-size-select-error').attr('message'));
		}
	});
	
	currWidth = $j(window).width();
	currHeight = $j(window).height();

	$j(window).scroll(function() {
		var currOffset = $j(window).scrollTop();
		if(currOffset > 22) {
			$j('#cart-mini').hide();
			var cartOffset = parseFloat(currOffset+18) + 'px';
			$j('#cart-mini').css({'top': cartOffset, 'right' : '0px'});
			$j('#cart-mini').css('z-index', '2000');
		}
		else {
			$j('#cart-mini').show();
			$j('#cart-mini').css({'top':'3px', 'right':'0px'});
			$j('#cart-mini').css('z-index', '100');
		}
	});	
	
	function updateCartMini() {
		$j.ajax({
			url: "/system/cart/miniCartAjax.asp?action=renew",
			method: "get",
			dataType: "html",
			success: function(data, textStatus, XMLHttpRequest) {
				$j('#cart-mini').addClass('cart-mini-has-items');
				$j('#cart-mini').html(data);
				$j("#_shadow").hide();
				$j('#product-purchase-go-to-cart').fadeIn();
				
				var currOffset = $j(window).scrollTop();
				if(currOffset > 22) {
					$j('#product_main_image_shadow').css('z-index', '102');
					$j('#product_main_image_shadow').hide();
					$j('#cart-mini').css('position', 'absolute');
					$j('#cart-mini').css('z-index', '1002');
					$j('#cart-mini').delay(1500).fadeOut('1500');
				}
			}
		});
	}
	
	
	$j('#newsletter').keypress(function(e){
		if(e.which == 13) {
			if (this.value != "" && this.value != this.defaultValue && isValidEmail(this, errorMessage)) {
				location.href = "/system/user/newsletter_save.asp?newsletter="+this.value;
			}
		}
	});
	$j('#newsletter').focus(function(e){
		if (this.value == this.defaultValue)
			this.value = ''; 
	});
	$j('#newsletter').blur(function(e){
		if (this.value == '') 
			this.value = this.defaultValue;
	});

	$j('#newsletter-signup-button').live("click",function(e){
		e.preventDefault();
		var nObj = $j("#newsletter");
		console.log(nObj)
		if (nObj[0].value != "" && nObj[0].value != nObj[0].defaultValue && isValidEmail(nObj[0], errorMessage)){
			location.href = "/system/user/newsletter_save.asp?newsletter="+ nObj[0].value;
		}
	});		
	
	$j('#top-new-logo').click(function(event) {
		location.href = '/';
	});

	//
	// Quick look product view
	//
	if ($j('body').is('#search-page')) {
		$j('.quick-look').live("click", toggleQuickLook);
	}
	$j('.quick-look-step').live("click", refillQuickLook);
	
	
	$j("#product-quick-look-close").live("click" ,(toggleQuickLook));	
	
	$j('#product-purchase-go-to-cart').live("click",function(e){
		location.href='/system/cart/cart.asp'														 
	});	
	
		
	/**
	* Function to set the new background-image on a product page
	*/
	$j('div.product_alt_image, div.product_alt_image_last').live("click", function(event){
		var id = this.id;
		$j('#product_main_image')
			.css('background-image', 'url('+ productImages.baseUrl +'/'+ productImages[id].large +')')
			.attr('href', productImages.baseUrl + "/" + productImages[id].huge);
	});
	
	$j('#product_main_image').live("click",function(event){
		event.preventDefault();
		
		var nextImageId = 0;
		var nextImage = 0;

		var currentImageId = 0;
		
		for (var i = 0; i < productImages.ids.length; i++) {
			if ($j('#product_main_image').attr('href') == productImages.baseUrl + "/" + productImages[productImages.ids[i]].huge)
				currentImageId = i;
		}

		nextImage = (currentImageId >= productImages.ids.length-1) ? 0 : currentImageId + 1;
		
		$j('#product_main_image')
			.css('background-image', 'url('+ productImages.baseUrl +'/'+ productImages[productImages.ids[nextImage]].large +')')
			.attr('href', productImages.baseUrl + "/" + productImages[productImages.ids[nextImage]].huge);
			
		return false;
	});
});


/**
	@param {DOMElement/string} toggleElement Clickable element (or id) with href containing the image link
	@param {Object} [options] See ModalWindow options (width, height and callbacks.hide will be overridden)
*/
Panagora.AddImageZoomAndStep = function(toggleElement, options) {
	function shutdown() {
		modalWindow.ShutDown();
	}

	var currentImageId = 0;

	function switchImg() {
		var nextImageId = 0;
		var nextImage = 0;
		
		for (var i = 0; i < productImages.ids.length; i++) {
			if (toggleElement.attr('href') == productImages.baseUrl + "/" + productImages[productImages.ids[i]].huge)
				currentImageId = i;
		}

		nextImage = (currentImageId >= productImages.ids.length-1) ? 0 : currentImageId + 1;
		
		var newImg = $j('<img/>')
			.attr('src', productImages.baseUrl +'/'+ productImages[productImages.ids[nextImage]].huge)
			.click(switchImg);

		modalWindow.SetContent(newImg);

		toggleElement
			.attr('href', productImages.baseUrl + "/" + productImages[productImages.ids[nextImage]].huge)
			.css('background-image', 'url('+ productImages.baseUrl + "/" + productImages[productImages.ids[nextImage]].large +')');
	}

	function open(e) {
		e.stopPropagation();
		e.cancelBubble = true;
		
		// set options
		options.width = 0;
		options.height = 0;
		options.callbacks = options.callbacks || {};
		options.callbacks.hide = shutdown;


		// create window
		toggleElement.modalWindow = modalWindow = new Panagora.ModalWindow(options);
		
		// create image element
		var image = $j('<img src="/images/wait.gif"/>').get(0);

		// load progress animation
		modalWindow.SetContent(image);
		
		// load big image (with some insane IE workarounds)
		var imgObj = new Image();

		imgObj.onload = function () {
			img = $j('<img/>')
				.load(function () {
					var dims = {
						height: imgObj.height,
						width: imgObj.width
					};
					
					if (dims.width && dims.height) {
						modalWindow.SetOptions(dims);
					}
					
					img.click(switchImg); // click to close
			
					// add image
					modalWindow.SetContent(img);
			
					// show window
					modalWindow.Show();
				});
			
			img.attr('src', imgObj.src);
		}
		imgObj.src = toggleElement.attr('href');

		return false;
	}
	
	var modalWindow;
	var toggleElement;
	
	options = options || {};

	// get link element
	toggleElement = toggleElement.tagName ? $j(toggleElement) : $j('#' + toggleElement);
	
	// declare img variable for later use
	var img;
	
	$j(document).ready(function () {
		$j('#product_image_enlarge').click(open);
	});
}



function toggleQuickLook(e)
{
	currWidth = $j(window).width();
	currHeight = $j(window).height();
	currOffset = $j(window).scrollTop();
	currOffsetWidth = $j(window).scrollLeft();

	$j("#product-quick-look").css('top', ((currHeight-252)/2+currOffset-187) + 'px' )
	$j("#product-quick-look").css('left', ((currWidth)/2)-425 + 'px' );
	
	e.preventDefault();

	if ($j("#product-quick-look").is(':visible')) 
	{
		$j("#product-quick-look").toggle();
		
		if($j("#product-quick-look").is(':hidden'))
			$j("body > div.overlay").remove();
		
		return false;
	}

	var pid = $j(this).attr('productid');
	
	if (!pid) return false;
	
	var rnum = $j(this).attr('rnum');
	var query = $j(this).attr('query');
	
	$j("body").append('<div class="overlay"></div>');
	$j("body > div.overlay").click(toggleQuickLook);

	$j.ajax({
		url: "/system/search/product-quick-look.asp?id="+pid+"&rnum="+rnum+"&"+query,
		dataType: 'html',
		success: function(data) {
			if(data.indexOf("<!DOCTYPE") != -1)
			{
				location.reload();
			}
			else
			{				
				$j("#product-quick-look").html(data);
				$j("#product-quick-look>a.close").click(toggleQuickLook);
				$j("#product-quick-look").show();
			}
		}
	});
	
  	return false;
}

function refillQuickLook()
{
	var pid = $j(this).attr('productid');
	var rnum = $j(this).attr('rnum');
	var query = $j(this).attr('query');
	
	$j.ajax({
		url: "/system/search/product-quick-look.asp?id="+pid+"&rnum="+rnum+"&"+query,
		dataType: 'html',
		success: function(data) {
			if(data.indexOf("<!DOCTYPE") != -1)
			{
				location.reload();
			}
			else
			{				
				$j("#product-quick-look").html(data);
				$j("#product-quick-look>a.close").click(toggleQuickLook);
				$j("#product-quick-look").show();
			}
		}
	});

	return false;
}
