jQuery.cookie = function(name, value, options) { if (typeof value != 'undefined') {if (value === null) {value = '';options.expires = -1;}var expires = '';if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {var date;if (typeof options.expires == 'number') {date = new Date();date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));} else {date = options.expires;}expires = '; expires=' + date.toUTCString(); }var path = options.path ? '; path=' + (options.path) : '';var domain = options.domain ? '; domain=' + (options.domain) : '';var secure = options.secure ? '; secure' : '';document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');} else {var cookieValue = null;if (document.cookie && document.cookie != '') {var cookies = document.cookie.split(';');for (var i = 0; i < cookies.length; i++) {var cookie = jQuery.trim(cookies[i]);if (cookie.substring(0, name.length + 1) == (name + '=')) {cookieValue = decodeURIComponent(cookie.substring(name.length + 1));break;}}}return cookieValue;}};

//Dessa variabler blir automatiskt överskridna vid onLoad.
var sprakKod = "sv";
var cookieCurrencyMult = 1;
var visaExklMoms = "0";
var priserSparadeExklMoms = "0";
var cookieCurrencyPrintFormat = "";

var animationSettings = 
{
	aktivt : 1,
	targetX : -40,
	targetY : 10	
};

var VAT_FORCE_INCL = 1;
var VAT_FORCE_EXCL = 2;

var slideShowRunning = false;

$(document).ready(function()
{
	var korgparams = $("#korgparams");
	if (korgparams.length > 0)
	{
		sprakKod = korgparams[0].sprakkod.value;
		cookieCurrencyMult = parseFloat(korgparams[0].currencymult.value);
		cookieCurrencyPrintFormat = korgparams[0].currencyprintformat.value;		
		visaExklMoms = korgparams[0].visaexklmoms.value;
		priserSparadeExklMoms = korgparams[0].prisersparadeexklmoms.value;
		animationSettings.aktivt = parseInt(korgparams[0].animprod.value);		
	}
	
	// Alla köpknappar i en produktruta:
	$(".buybuttonRuta").click(function(event)
	{
		// Stoppa klick på eventuell omslutande ruta
		event.stopImmediatePropagation();
		
		// Om animationen är avstängd, använd länkens HREF istället
		if (animationSettings.aktivt == 0)
			return true;
				
		// Produktens kombinations-ID finns i attributet "rel"
		var kID = $(this).attr('rel');		
		
		// Skicka iväg bilden!
		var imageHolder = $(this).parent().parent().find('#image-holder-'+kID+' img:first');
		animate(kID, imageHolder);
		
		// Stäng av HREF för länken
		return false;
	});
	
	// Alla köpknappar i listläge
	$(".buybuttonLista").click(function(event)
	{
		// Stoppa klick på eventuell omslutande ruta
		event.stopImmediatePropagation();
		
		// Om animationen är avst?ngd, använd länkens HREF istället
		if (animationSettings.aktivt == 0)
			return true;
				
		// Produktens kombinations-ID finns i attributet "rel"
		var kID = $(this).attr('rel');		
		
		// Skicka iväg bilden!
		var imageHolder = $(this).parent().parent().find('img.produktbildLista:first');
		if (!imageHolder.length) return true;
		
		animate(kID, imageHolder);
		
		// Stäng av HREF för länken
		return false;
	});
	
	// Om vi är på "visa_produkt"
	$(".visaprodBuyButton").click(function(event)
	{
		// Kolla att det är OK att köpa önskat antal (funktion i js_visaprod.js)
		if (finnsAntaletILager(true) == false)
			return false;
		
		// Stoppa klick på eventuell omslutande ruta
		event.stopImmediatePropagation();
		
		// Om animationen är avstängd, använd länkens HREF istället
		if (animationSettings.aktivt == 0)
			return true;
		
		// Produktens kombinations-ID
		var kID = document.addToBasketForm.valdKombination.value;
		var antal = document.addToBasketForm.antal.value;
		
		// Skicka iväg bilden!
		var imageHolder = $("#currentBild img:first");
		animateBig(kID, imageHolder, antal);
		
		// Stäng av default action för knappen
		return false;
	});
	
	// Eventuellt bildspel
	var slideShowParams = $("#slideshowparams");
	if (slideShowParams.length > 0)
	{
		slideShowRunning = true;
		
		if (parseInt(slideShowParams[0].numpics.value)==1)
		{
			$("#slideshow-image-list").hide();
		}
		else
		{		
			$("#slideshow-image-list a").click(function(event)
			{
				slideShowRunning = false;
		
				var active = $("#slideshow-image-list li.active");
				active.removeClass("active");
						
				$(this).parent().addClass("active");
		
				slideShow_switchImage($(this).attr("name"), $(this).attr("href"));
		
				event.preventDefault();
			});
			
			setInterval("slideShow_switchSlide()", parseInt(slideShowParams[0].milli.value));
		}		
	}
});


/*

Funktion som tar in pris inkl/exkl moms och returnerar exkl/inkl moms beroende på inställningar.
Inpriset ska vara avrundat till max 2 decimaler.
Resultatet avrundas till max 2 decimaler om det har förändrats från inpriset.

*/
function momsFilter(pris, momssats, flags)
{
	switch(flags)
	{
		case 0:		
			if (priserSparadeExklMoms == "1")
			{
				if (visaExklMoms == "1")
					return pris;	//priset är sparat exkl moms och ska visas så
				else
					return myRound(pris * (1 + 0.01 * momssats), 2);	//priset är sparat exkl moms men ska visas inkl
			}
			else
			{
				if (visaExklMoms == "1")
					return myRound(pris / (1 + 0.01 * momssats), 2);	//priset är sparat inkl moms men ska visas exkl moms
				else
					return pris;	//priset är sparat inkl moms och ska visas så
			}	
			break;
			
		case VAT_FORCE_INCL:
			if (priserSparadeExklMoms == "1")
				return myRound(pris * (1 + 0.01 * momssats), 2);	//priset är sparat exkl moms men ska visas inkl
			else
				return pris;	//priset är sparat inkl moms och ska visas så
			break;
			
		case VAT_FORCE_EXCL:
			if (priserSparadeExklMoms == "1")
				return pris;	//priset är sparat exkl moms och ska visas så
			else
				return myRound(pris / (1 + 0.01 * momssats), 2);	//priset är sparat inkl moms men ska visas exkl moms
			break;
	}
}

function animate(kID, imageHolder)
{
	var cartPos  = $('#varukorgtop').offset();
	var imagePos = imageHolder.offset();
	var absPos = imageHolder.position();
	
	var kopia = imageHolder.clone().attr('alt','').appendTo('body');
	
	kopia.css(
	{
		'z-index' : '1000',
		'position' : 'absolute',
		'margin':0,
		'padding':0,
		'left' : imagePos.left,
		'top' : imagePos.top
	});	
	
	kopia.animate(
	{
		left: cartPos.left + animationSettings.targetX ,
		top:  cartPos.top + animationSettings.targetY
	}, 1500);

	kopia.animate(
	{
		height: 0,
		opacity: 0.0
	}, 640, null, function(foo)
	{
		kopia.remove();
		
		$.ajax(
		{
			url: "/varukorg_visa.asp?lang=" + sprakKod,
			global: false,
			type: "POST",
			data: (
			{
				'action': "nyvara",
				'valdKombination': kID,
				'antal': "1",
				'fromanimate':1
			}),
			dataType: "text",
			success: function(svaret)
			{
				if (svaret.substring(0,4)=="NONR")
				{
					failVarukorgen(felaVarukorg);
				} else {
					refreshVarukorgen(blinkaVarukorg);
				}
			}
		});		
	});
}

function animateBig(kID, imageHolder, antal)
{
	var cartPos  = $('#varukorgtop').offset();
	var imagePos = imageHolder.offset();
	var absPos = imageHolder.position();

	var kopia = imageHolder.clone().attr('alt','').appendTo('body');
	
	var dataStr = "action=nyvara&valdKombination="+kID+"&antal="+antal+"&fromanimate=1";
	
	var fritextfalt = $("input.fritextfalt");
	for (var i = 0; i < fritextfalt.length; i++)
	{
		dataStr += "&" + fritextfalt[i].name + "=" + encodeURIComponent(fritextfalt[i].value)
	}	
	
	kopia.css(
	{
		'z-index' : '1000',
		'position' : 'absolute',
		'margin':0,
		'padding':0,
		'left' : imagePos.left,
		'top' : imagePos.top
	});	
	
	kopia.animate(
	{
		left: cartPos.left + animationSettings.targetX ,
		top:  cartPos.top + animationSettings.targetY
	}, 1500);

	kopia.animate(
	{
		height: 0,
		opacity: 0.0
	}, 640, null, function(foo)
	{
		kopia.remove();
		
		$.ajax(
		{
			url: "/varukorg_visa.asp?lang=" + sprakKod,
			global: false,
			type: "POST",
			data: dataStr,
			dataType: "text",
			success: function(svaret)
			{
				if (svaret.substring(0,4)=="NONR")
				{
					failVarukorgen(felaVarukorg);
				} else {
					refreshVarukorgen(blinkaVarukorg);
				}
			}
		});		
	});
}

function refreshVarukorgen(callback)
{
	$("#varukorgtopholder").load("/ajax_top_varukorg_html.asp?meddela=1&lang=" + sprakKod, {'rnd' : Math.random()}, callback);
}

var blinkaVarukorg = function()
{
	$("#varukorgtop_text").css('backgroundColor','#66FF66');
	setTimeout("$('#varukorgtop_text').css('backgroundColor','');",500);
}

var felaVarukorg = function()
{
	$("#varukorgtop_text").css('backgroundColor','#CC0005');
	setTimeout("$('#varukorgtop_text').css('backgroundColor','');",500);
}

function failVarukorgen(callback)
{
	$("#varukorgtopholder").load("/ajax_top_varukorg_html.asp?meddela=2&lang=" + sprakKod, {'rnd' : Math.random()}, callback);

	// setTimeout(refreshVarukorgen(null),1500);
}

function goToURL(x)
{
	this.location.href=x;
}

function setCurrency(x)
{
	$.get("/ajax_korgparams.asp?q=setcurrency&x="+x, function(data)
	{
		window.location.reload();
	});	
}

function getPhrase(keyname,p)
{
	var result = "";
	var post = fras[keyname];
	if (post != undefined)
	{
		if (post.length > 0)
			result = post;
	}	
	if (p.length > 0)
	{
		var pArr = p.split("|");
		for (var i=0; i<pArr.length;i++)
		{
			eval("result = result.replace(/%%"+(i+1)+"/gi, pArr[i]);")
		}
	}
	if (result == "%%NULL")
		result = "";
	return result;
}

function getFracPart(x)
{
	var xStr = x.toString();
	var punktPos = xStr.indexOf(".");
	if (punktPos == -1)
		return "00";
	else
		return xStr.substr(punktPos + 1);
}

function myRound(x,y)	//rundar x till y decimaler. Vid 0.5, runda alltid uppåt.
{
	var tmp = x * Math.pow(10,y);	
	if (Math.floor(tmp) == tmp)
		return tmp / Math.pow(10,y);
	else if (Math.floor(tmp * 2) == tmp * 2)
		return (tmp + 0.5) / Math.pow(10,y);
	else
		return Math.round(tmp) / Math.pow(10,y);
}

//Omvandlar till rätt valuta och rundar med max 2 decimaler
function myMultCurrency(x)
{
	return myRound(cookieCurrencyMult * parseFloat(x), 2);
}

//Formatterar en redan omvandlad summa (ändrar bara strängen alltså)
function myFormatCurrencyStr(x)
{
	var frac, resultat;
	
	frac = getFracPart(x);
		
	if (frac.length == 1)
		frac = frac + "0";
	
	if (frac == "00")
	{
		resultat = cookieCurrencyPrintFormat.replace(/%1/, Math.floor(x).toString());
		resultat = resultat.replace(/\.%2/, "");
		return resultat.replace(/\,%2/, "");
	}
	else
	{
		resultat = cookieCurrencyPrintFormat.replace(/%1/, Math.floor(x).toString());
		return resultat.replace(/%2/, frac);
	}
}

//Tar in ett värde i SEK och ger en formatterad sträng med rätt valutaomvandling
function myFormatCurrency(x)
{
	return myFormatCurrencyStr(myMultCurrency(x));
}

// Sortering av varugrupp
function sorteraGrupp(x)
{
	$.get("/ajax_korgparams.asp?q=sortering&x="+x, function(data)
	{
		window.location.reload();
	});	
}

// Visa inkl/exkl moms
function setVATSetting(x)
{
	$.get("/ajax_korgparams.asp?q=visaexklmoms&x="+(x == 'exkl' ? '1' : '0'), function(data)
	{
		window.location.reload();
	});	
}

// För bildspelet
function slideShow_switchSlide()
{
	if (slideShowRunning == false) return;
	var active = $("#slideshow-image-list li.active");
	var next   = active.next();

	// Om active är den sista bilden -> sätt next till default-bilden
	if(next.length == 0)
	{
		next = $("#slideshow-image-list .default");
	}

	active.removeClass("active");
	next.addClass("active");

	slideShow_switchImage(next.find("a").attr("name"), next.find("a").attr("href"));
}
function slideShow_switchImage(image, link)
{
	var frontbuffer = $("#slideshow-image-holder .frontbuffer");
	var backbuffer  = $("#slideshow-image-holder .backbuffer");

	backbuffer.css({opacity: 0.0});

	frontbuffer.css({opacity: 1.0}).animate({opacity: 0.0}, 300, function()
	{
		backbuffer.attr("src", image);
		backbuffer.parent().attr("href", link);		
		frontbuffer.parent().attr("href", "javscript:void(0)");

		backbuffer.animate({opacity: 1.0}, 300, function()
		{
			backbuffer.removeClass("backbuffer");
			frontbuffer.removeClass("frontbuffer");

			backbuffer.addClass("frontbuffer");
			frontbuffer.addClass("backbuffer");

			frontbuffer.css({opacity: 0.0});
		});
	});
}
