﻿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;}};

var cookieLanguage = $.cookie("lang");
var cookieLanguageStandard = $.cookie("langStandard");
var cookieLanguageKod = $.cookie("langKod");
var cookieCurrencyMult = parseFloat($.cookie("currencyMult").replace(/,/,"."));

var visaExklMoms = $.cookie("visaexklmoms");
var priserSparadeExklMoms = $.cookie("priserSparadeExklMoms");

var animationSettings = 
{
	aktivt : parseInt($.cookie('animprod')),
	targetX : -40,
	targetY : 0	
};

function setVATSetting(x)
{
	$.cookie('visaexklmoms',(x == 'exkl' ? '1' : '0'),{path:'/'});
	window.location.reload();
}

var VAT_FORCE_INCL = 1;
var VAT_FORCE_EXCL = 2;

/*

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;
	}
}

$(document).ready(function()
{
	// 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);
		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');
		animateBig(kID, imageHolder, antal);
		
		// St?ng av default action f?r knappen
		return false;
	});
});

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",
			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().empty().appendTo(imageHolder.parent());
	
	kopia.css(
	{
		'z-index' : '1000',
		'position' : 'absolute',
		'left' : absPos.left,
		'top' : absPos.top
	});
	
	kopia.animate(
	{
		left: cartPos.left - imagePos.left + animationSettings.targetX ,
		top:  cartPos.top - imagePos.top + animationSettings.targetY,
		height: 0,
		width: 0
		
	}, 1500, null, function(foo)
	{
		kopia.remove();
		
		$.ajax(
		{
			url: "/varukorg_visa.asp",
			global: false,
			type: "POST",
			data: (
			{
				'action': "nyvara",
				'valdKombination': kID,
				'antal': antal,
				'fromanimate':1
			}),
			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?1", {'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?2", {'rnd' : Math.random()}, callback);

	// setTimeout(refreshVarukorgen(null),1500);
}

function meddelaAvtalskund(x, namn)
{
	if (x == 1)
	{
		alert(getPhrase("avtalskund_js_loggedin",""));
	}
	if (x == 2)
	{
		alert(getPhrase("avtalskund_js_loggedout",""));
	}
}

function goToURL(x)
{
	this.location.href=x;
}

function setLanguage(x)
{
	getAjaxLangValue("setlanguage&x="+x, true, false);
}

function setCurrency(x)
{
	getAjaxLangValue("setcurrency&x="+x, true, false);
}

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));
}

function getAjaxLangValue(x, doReload, doAlert)
{
	$.get('/ajax_language.asp?q='+x, function(data)
	{
		if (doReload==true)
			window.location.reload();
		
		if (doAlert==true)
			alert(data);
	});
}

// Sortering av varugrupp
function sorteraGrupp(x)
{
	document.cookie="sortering=" + x +";path=/";
	window.location.reload();
}
