$(document).ready(function() {
	$("#leveringsdato").datepicker({
		showOn: 'button', 
		buttonImage: 'bilder/bilder/struktur_element/ikonKalender.png', 
		buttonImageOnly: true, 
		showWeek: true, 
		firstDay: 1, 
		changeMonth: true, 
		changeYear: true,
		minDate: '0'
	});

	// Sett inn dato en uke frem i tid automatisk
	var nydato 	= new Date ();
	var idag 	= nydato.getDate ();
	idag = (idag<10) ? '0'+idag : idag;
	var mnd 	= nydato.getMonth () + 1;
	var aar 	= nydato.getFullYear ();
	nydato 		= idag + "." + mnd + "." + aar;
	$("#leveringsdato").val(nydato);
	
	// Fixed handlekurv
	if ($('#fixedwrap').length) {
		var top = $('#fixedwrap').offset().top - parseFloat($('#fixedwrap').css('marginTop').replace(/auto/, 0));
		$(window).scroll(function (event) {
			// what the y position of the scroll is
			var y = $(this).scrollTop();
			// whether that's below the form
			if (y >= top) {
			// if so, ad the fixed class
				$('#fixedwrap').addClass('fixed');
			} else {
			// otherwise remove it
				$('#fixedwrap').removeClass('fixed');
			}
		});
	}
});





var sokAvansertTekst		= "Utvidet søk";
var sokAvansertLukkTekst	= "Lukk utvidet søk";
var leggIListeTekst			= "";
var iListeTekst				= "";

var breddeDialogBoks		= 400;

var ajax_url = "ajax.php";

var fokusPunkt;
var markertTekst;

$(document).ready(function() {
	$.alerts.cancelButton = 'Avbryt';
	oppdaterKasse();

	$("#kasseLeveringsadresser:has(select)").parents("tr").show();

	$("#sendPassord").click(function () {
		eksisterende = $("#eksisterendePassord").val();
		nyttPassord = $("#nyttPassord").val();
		bekreftPassord = $("#bekreftPassord").val();

		sett = "passord";
		$.post(ajax_url, { valg: "kontakt", sett: sett, eksisterende: eksisterende, nyttPassord: nyttPassord, bekreftPassord: bekreftPassord }, function(data){
			if (data.success) {
				alertBoks("Passordet er endret.", "Passord");
				eksisterende = $("#eksisterendePassord").val("");
				nyttPassord = $("#nyttPassord").val("");
				bekreftPassord = $("#bekreftPassord").val("");
			} else {
				alertBoks(data.errors.clientCode, "Feil");
			}
		}, "json");
	});

	$(".kjopKnapp").click(function (data) {
		var kjopAntall = $(this).siblings(".kjopAntall");
		var	produkt_nr = $(this).siblings(".produkt_nr").val();
		kjop(produkt_nr, kjopAntall, true);
		return false;
	});
	
	/* HURTIGKJØP */
	$(".hurtigKjopKnapp").click(function (data) {
		var form 		= $(this).parents("form");
		var produkt_nr 	= form.find(".hurtigregistreringProduktNr");
		var antall 		= form.find(".kjopAntall");
		hurtigkjop (produkt_nr, antall);
		return false;
	});

	/* BESTILLINGSLISTER */

	$("#kjopSortimentliste").click(function (data) {
		counter = 0;
	    $("#innhold .produktListe").each(function() {
			produkt_nr = $(this).contents().find(".produkt_nr").val();
			antall = $(this).contents().find(".kjopAntall");

			if (parseInt(antall.val()) && parseInt(antall.val()) > 0) {
				resultat = kjop(produkt_nr, antall, false);
				if (resultat) {
					counter++;
				}
			}
	    });
		alertBoks(counter + " Varer ble lagt i handlevognen", "Sortimentliste");
	});

	$(".tilSortimentlistePD").click(function (data) {
		produkt_nr = $(this).siblings(".produkt_nr").val();
		visSortimentlisteDialog(produkt_nr);
	});
	
	$(".fjernFraSortiment").click(function (data) {
		produkt_nr = $(this).siblings(".produkt_nr").val();
		bestillingsliste_nr = $(this).siblings(".bestliste_nr").val();
		$(this).parent().parent().parent().parent().parent().parent().parent().parent().parent().fadeOut("slow", function() { // wow..
	        $(this).remove();
		});
		slettFraSortimentliste(produkt_nr, bestillingsliste_nr);
	});
	
	// ny sortimentslisteting
	$(".nySortimentslisteDiv").addClass("hiddenForm");
	$("#nyListeSkjema").click(function() {
		$(".nySortimentslisteDiv").toggleClass("hiddenForm");
	});
	
	$("#bestillingsListeNy").click(function (data) {
		kontakt_nr = $("#kontakt_nr").val();
		navn = $("#bestillingsliste_navn").val();
		beskrivelse = $("#bestillingsliste_beskrivelse").val();
		sett = "nyBestillingsliste"
		$.post(ajax_url, { valg: "butikk", sett: sett, navn: navn, beskrivelse: beskrivelse }, function(data){
			if (!data.success) {
				alertBoks(data.errors.clientCode, "Feil");
			} else {
				$("#bestillingslister").append('<a href="index.php?mapping=42&bestliste_nr=' + data['nyBestillingsliste']['id'] + '" type="a">' + data['nyBestillingsliste']['navn'] + '</a>');
				$(".nySortimentslisteDiv").addClass("hiddenForm");
			}
		}, "json");
	});
});

function loggUt() {
	$.post(ajax_url, { valg: "butikk", logout: "" }, function(data){
		if (!data.success) {
			alertBoks("Kunne ikke logge ut.<br/>Vennligst lukk nettleseren.", "Feil");
		} else {
			window.location = "index.php";
		}
	}, "json");
}

function hurtigregistrering() {
	var kjopAntall = $(".kjopAntall");
	var	produkt_nr = $(".hurtigregistreringProduktNr");

	if (!produkt_nr.val()) {
		fokusPunkt = produkt_nr;
		markertTekst = produkt_nr;

		alertBoks("Vennligst oppgi produktnummer.", "Feil");
		return;
	} else if (!Number(kjopAntall.val())) {
		fokusPunkt = kjopAntall;
		markertTekst = kjopAntall;
		alertBoks("Vennligst oppgi antall.", "Feil");
		kjopAntall.val("0");
		return;
	} else {
		kjop(produkt_nr.val(), kjopAntall, true);
		kjopAntall.val("0");

		fokusPunkt = produkt_nr;
		markertTekst = produkt_nr;

		settFokusTimeout(fokusPunkt);
		settMarkertTekstTimeout(markertTekst);
	}
	oppdaterHandlevogn();
}

function hurtigkjop (produkt_nr, antall) {
	if (!produkt_nr.val() || produkt_nr.val() == "Angi varenummer her..") {
		fokusPunkt = produkt_nr;
		markertTekst = produkt_nr;
		produkt_nr.css("border-color", "#ff0000");
		return;
	} else if (!Number(antall.val())) {
		fokusPunkt = antall;
		markertTekst = antall;
		antall.css("border-color", "#ff0000");
		antall.val("0");
		return;
	} else {
		produkt_nr.css("border-color", "#D5D5D5");
		antall.css("border-color", "#D5D5D5");
		retur = hurtigkjopKjop (produkt_nr, antall);
		console.log (retur);
		if (retur ==  true) {
			// vis at alt gikk bra på en eller annen fancy måte
			oppdaterHandlevogn();
		} else {
			// vis at det ikke gikk så bra på en eller annen fancy måte
		}

		antall.val("0");

		fokusPunkt = produkt_nr;
		markertTekst = produkt_nr;

		settFokusTimeout(fokusPunkt);
		settMarkertTekstTimeout(markertTekst);
	}
}

function tilSortimentliste(produkt_nr, bestillingsliste_nr, dialogBoksLinje) {
		sett = "produktTilBestillingsliste";
		$.post(ajax_url, { valg: "butikk", sett: sett, produkt_nr: produkt_nr, bestillingsliste_nr: bestillingsliste_nr }, function(data){
			status = true;
			if (data.success) {
				dialogBoksLinje.attr("class", "knapp iListe");
				dialogBoksLinje.text(iListeTekst);
				dialogBoksLinje.unbind("click");
			} else {
				alertBoks(data.errors.clientCode, "Feil");
			}
		}, "json");
}

function slettFraSortimentliste(produkt_nr, bestillingsliste_nr) {
	sett = "produktFraBestillingsliste";
	$.post(ajax_url, { valg: "butikk", sett: sett, produkt_nr : produkt_nr, bestillingsliste_nr: bestillingsliste_nr }, function(data){
		status = true;
		if (data.success) {
			//alert("Alt gikk ok");
			/*
			dialogBoksLinje.attr("class", "knapp fraListe");
			dialogBoksLinje.text(fraListeTekst);
			dialogBoksLinje.unbind("click"); */
		} else {
			alertBoks(data.errors.clientCode, "Feil");
		}
	}, "json");
}

function visSortimentlisteDialog(produkt_nr) {
	hent = "bestillingslister";
	$.post(ajax_url, { valg: "butikk", hent: hent }, function(data){
		if (data.bestillingslister) {
			dialogBoks = $("<div />").attr("id", "dialogBoks");

		    jQuery.each(data.bestillingslister.kontakt, function(id) {
				dialogBoksLinjeTittel = $("<h3 />");
				dialogBoksLinje = $("<a />");
				dialogBoksLinje.attr("class", "knapp");

				if (this.liste && (jQuery.inArray(produkt_nr, this.liste) > -1)) {
					dialogBoksLinje.attr("class", "knapp iListe");
					dialogBoksLinje.text(iListeTekst);
				} else {
					dialogBoksLinje.click(function(){
						tilSortimentliste(produkt_nr, id, $(this));
				    });
					dialogBoksLinje.text(leggIListeTekst);
				}

				dialogBoks.append(dialogBoksLinje);
				
				dialogBoksLinjeTittel.text(this.tittel);
				dialogBoks.append(dialogBoksLinjeTittel);
				
				dialogBoksLinjeBeskrivelse = $("<p />");
				dialogBoksLinjeBeskrivelse.text(this.beskrivelse);
				dialogBoks.append(dialogBoksLinjeBeskrivelse);
		    });			
			options = { title: "Bestillingslister", width: breddeDialogBoks };
			$("#dialogBoks").remove();
			dialogBoks.dialog(options);
		} else {
			alertBoks("Det eksisterer ingen bestillingslister.", "Bestillingslister");
		}
	}, "json");
}

function oppdaterKasse() {
	hent = "kurv,vogn";
	$.post(ajax_url, { valg: "butikk", hent: hent }, function(data){
		$("#kasseHandlekurv #kasseOrdreSum").html(nrFormat(data.kurv.kurvsumEKSmva));
		$("#kasseHandlekurv .kasseVare").remove();
	    jQuery.each(data.vogn, function() {
			knapp = '<a class="slett peiker" onclick="fjernlinje(\'index.php?mapping=36&flnr=' 
				  + this.ordrelinje_nr + '\');" value="Fjern" title="Fjern">Fjern</a>'
			kasseVare = '<tr class="kasseVare">'
					  + '	<td class="varenummer">' + this.produkt_nr + '</td>'
					  + '	<td>' + this.produkt_navn + '</td>'
					  + '<td><span class="paaLager"><img src="bilder/bilder/struktur_element/' + (this.produkt_felt_int_6 !== "0" ? 'ikon_paa_lager.gif' : 'ikon_ikke_paa_lager.gif') + '" alt=""></span></td>'
					  + '	<td><input type="text" value="' + this.antall + '" class="kasseAntall" name="antall"/><a class="oppdaterAntall peiker" title="Oppdater"><span class="oppdaterAntallTekst">Oppdater</span></a></td>'
					  + '	<td class="hoyreTekst">' + nrFormat(this.pris_ordinar) + '</td>'
					  + '	<td class="hoyreTekst">' + nrFormat(this.linjesum) + '</td>'
					  + '	<td>' + knapp + '</td>';
					  //+ '	<td><a class="tilSortimentliste peiker" title="Legg i sortimentsliste"><span class="tilSortimentlisteTekst">Til Sorti- ment</span></a></td>'
					  + '</tr>';
			$("#kasseHandlekurv #kasseVaretitler").after(kasseVare);
	    });

		$(".oppdaterAntall").click(function () {
			var nyttAntall = $(this).siblings(".kasseAntall");
			var produktNr  = $(this).parent().siblings(".varenummer").text();
			oppdaterProduktAntallVogn (produktNr, nyttAntall);
		});

		$(".tilSortimentliste").click(function (data) {
			produkt_nr = $(this).parent("td").parent("tr").children(".varenummer").text();
			visSortimentlisteDialog(produkt_nr);
		});
	}, "json");
	oppdaterHandlevogn();
}

function oppdaterProduktAntallVogn(produkt_nr, kjopAntall) {
	var	antall = kjopAntall.val();
	var	egenskap_type = 14;

	fokusPunkt = kjopAntall;
	markertTekst = kjopAntall;

	hent = "vareforsalg,vareivogn";
	$.post(ajax_url, { valg: "butikk", hent: hent, produkt_nr : produkt_nr, type: egenskap_type }, function(data){
		if (data.success == false) {
			alertBoks(data.errors.clientCode, "Feil");
		} else if (!data.forsalg) {
			alertBoks("Varen kan ikke bestilles", "Feil");
		} else {
			function settProduktAntallVogn() {
				sett = "produktAntallVogn";
				$.post(ajax_url, { valg: "butikk", sett: sett, produkt_nr : produkt_nr, antall: antall }, function(data){
					if (!data.success) {
						alertBoks("Antallet kunne ikke oppdateres.", "Feil");
					} else {
						oppdaterKasse();
					}
				}, "json");		
			}
			if (!data.vareivogn) {
				alertBoks("Varen ligger ikke i handlekurven");
			}
			
			/*else if (data.egenskaper[0] && data.egenskaper[0].verdi) {
				var verdi = Number(data.egenskaper[0].verdi);
				if ((verdi != antall) || (antall % verdi)) {
					if (verdi > antall) {
						tilnermaVerdi = Math.floor(antall / verdi) * verdi;
					} else {
						tilnermaVerdi = Math.ceil (antall / verdi) * verdi;
					}
					alertBoks("Varen kan kun bestilles i antall av " + data.egenskaper[0].verdi, "Feil antall");
					kjopAntall.val(tilnermaVerdi);
				} else {
					settProduktAntallVogn();
				}
			}  */
			else {
				settProduktAntallVogn();
			}
		}
	  }, "json");
}

function vareKjopt(produkt_nr, kjopAntall)
{
	//animer produkt fra liste til handlevogn
	animerVareTilHandlevogn(produkt_nr);
	
	//oppdater handlevogn
	oppdaterHandlevogn(produkt_nr, kjoptAntall);
}

function animerVareTilHandlevogn(produkt_nr)
{
	
}

//fjernlinje('index.php?mapping=36&flnr=21867');
function oppdaterHandlevognEvents() {
	jQuery('li.produktCell').mouseenter(function() {
		var temp = jQuery(this).find('div.produktBeskrivelseCell');
		if (temp.length) {
			jQuery(temp[0]).removeClass('hide');
		}
	});
	jQuery('li.produktCell').mouseleave(function() {
		var temp = jQuery(this).find('div.produktBeskrivelseCell');
		if (temp.length) {
			jQuery(temp[0]).addClass('hide');
		}
	});
};

function oppdaterHandlevogn()
{
	if (!jQuery('div#HandlekurvBoks div.boksInnhold p').length) {
		return;
	}
	var settings = {
		'url' : ajax_url,
		'data' : { valg: "butikk", hent: "kurv,nyvogn" },
		'type' : 'POST',
		'success' : function(data) {
			var html = '<div class="kurvliste">';
			var htmlInnhold = '';
			var htmlProduktliste = '';
			var vogn = data.vogn;
			var kurv = data.kurv;
			
			var produktAntall = parseInt(kurv.antalllinjer);
			var vareAntall = parseInt(kurv.antallenheter);
			
			if (produktAntall > 0) {
				/* skriv ut handlevogn data */
				htmlProduktliste += '<ul class="produktliste">';
				for (var i in vogn) {
					var produkt = vogn[i];
					
					htmlProduktliste += 
						'<li class="produktCell"><div class="produktNavnCell">' +
						'<a href="http://marinor.no/index.php?mapping=38&produkt_nr=' + 
						produkt.produkt_nr + 
						'&gruppe_nr=' +
						produkt.produktgrupper[0] + 
						'" class="produktNavn">' + 
						produkt.produkt_navn +
						'</a></div>';
					if (produkt.produkt_felt_tekst_3
					 && produkt.produkt_felt_tekst_3.length) {
						htmlProduktliste += 
							'<div class="produktBeskrivelseCell hide"><span class="produktBeskrivelse">' +
							produkt.produkt_felt_tekst_3 +
							'</span></div>';
					}
					htmlProduktliste +=
						'<div><div class="produktAntallCell"><span class="produktAntall">' + 
						produkt.antall + 
						'</span>&nbsp;<span class="produktEnhet">' + 
						produkt.produkt_felt_tekst_4 + 
						'</span></div>&nbsp;<div class="produktSumCell"><span class="produktValuta">kr</span>&nbsp;<span class="produktSum">' + 
						produkt.linjesum.replace(".", ",").replace(",00", ",-") + 
						'</span></div></div></li>';
				}
				htmlProduktliste += '</ul>';
				htmlInnhold += 
					'<div class="antallVarer">Antall&nbsp;varer&nbsp;' + vareAntall + 
					'</div><div class="antallProdukt">Antall&nbsp;produkt&nbsp;' + produktAntall + 
					'</div>'
			} else {
				/* tom */
				var p = jQuery('div#HandlekurvBoks div.kurvliste');
				if (p.length > 0) {
					jQuery(p).remove();
				}
				return;
			}
			html += htmlProduktliste + htmlInnhold + '</div>';
			
			var p = jQuery('div#HandlekurvBoks div.kurvliste');
			if (p.length == 0) {
				p = jQuery('div#HandlekurvBoks div.boksInnhold p')[0];
				html = html + jQuery(p).html();
			} else {
				p = p[0];
			}
			jQuery(p).html(html);
			
			if (produktAntall > 0) {
				oppdaterHandlevognEvents();
			}
		},
		'dataType' : 'json',
		'cache' : false
	};
	var res = jQuery.ajax(settings);
	//console.log('jquery ajax result');
}

function kjop(produkt_nr, kjopAntall, feilmelding) {
	var	antall = kjopAntall.val();
	var	egenskap_type = 14;
	var feilet = false;

	fokusPunkt = kjopAntall;
	markertTekst = kjopAntall;

	//hent = "vareforsalg,egenskaper,vareivogn,vareiordre";
	hent = "vareforsalg,vareivogn,vareiordre";
	$.post(ajax_url, { valg: "butikk", hent: hent, produkt_nr : produkt_nr, type: egenskap_type }, function(data){
		if (data.success == false) {
			alertBoks(data.errors.clientCode, "Feil");
			feilet = true;
		} else if (!data.forsalg) {
			alertBoks("Varenummer eksisterer ikke, eller varen er ikke for salg", "Feil");
			feilet = true;
		} else {
			function vareTilVognOgKasse() {
				//egenskaper = data.egenskaper[0];
				sett = "vareTilVogn";
				$.post(ajax_url, { valg: "butikk", sett: sett, produkt_nr : produkt_nr, antall: antall }, function(data){
					if (!data.success) {
						if (feilmelding) {
							alertBoks(data.errors['clientCode']);
						}
						feilet = true;
						kjopAntall.val(antall);
						return false;
					} else {
						hent = "kurv";
						$.post(ajax_url, { valg: "butikk", hent: hent }, function(data){
							if (data.kurv && data.kurv.kurvsumEKSmva) {
								$("#HandlekurvBoks #handlevognOrdreSum").html(nrFormat(data.kurv.kurvsumEKSmva));
								//console.log ("kurvsumEKSmva: " + kurvsumEKSmva);
							} else {
								alertBoks("Kurvsum er ikke funnet.", "Feil");
							}
						}, "json");
						oppdaterKasse();			
					}
				}, "json");
				return true;
			}

			if ((data.vareivogn || data.vareiordre) && feilmelding) {
				$.alerts.okButton = 'Ja';
				if (data.vareivogn ) mld = 'Produktet ligger allerede i handlevognen.<br />Vil legge til ' + antall + ' stk.?';
				else if (data.vareiordre ) mld = 'Produktet ligger allerede i en ordre under behandling.<br />Vil likevel kjøpe ' + antall + ' stk. nå?';
				jConfirm(mld, 'Bekreft kjøp',
					function(r) { 
						if (r == true) {					
							vareTilVognOgKasse();
							kjopAntall.val(0);

							if (fokusPunkt) {
								settFokusTimeout(fokusPunkt);
							}
							if (markertTekst) {
								settMarkertTekstTimeout(markertTekst);
							}
						}
						return false;
					}
				);					
			} else {
				vareTilVognOgKasse();
			}
		}
	}, "json");
	return (feilet) ? false : true;
}


/**
 * hurtigkjopKjop
 * 	Egen kjøpfunksjon for hurtigkjøp på Marinor. 
 * 	Returnerer true om alt ok, feilmelding om feil
 * @param produkt_nr
 * @param kjopAntall
 * @returns bool if ok, string if fail
 */
function hurtigkjopKjop (produkt_nr, kjopAntall) {
	var produktnummer 	= produkt_nr.val()
	var	antall 			= kjopAntall.val();
	var	egenskap_type 	= 14;
	var retVal 			= "";

	hent = "vareforsalg,vareivogn,vareiordre";
	$.post(ajax_url, { valg: "butikk", hent: hent, produkt_nr : produktnummer, type: egenskap_type }, function(data){
		if (data.success == false) {
			retVal = data.errors.clientCode;
		} else if (!data.forsalg) {
			if ($(".varenummer_eksisterer_ikke").length == 0) {
				produkt_nr.before('<span class="varenummer_eksisterer_ikke">Varenummer eksisterer ikke</span>');
			}
			produkt_nr.css("border-color", "#ff0000");
			retVal = false;
		} else {
			$(".varenummer_eksisterer_ikke").remove();
			function vareTilVognOgKasse() {
				var sett = "vareTilVogn";
				$.post(ajax_url, { valg: "butikk", sett: sett, produkt_nr : produktnummer, antall: antall }, function(data){
					if (!data.success) {
						retVal = data.errors['clientCode'];
					} else {
						hent = "kurv";
						$.post(ajax_url, { valg: "butikk", hent: hent }, function(data){
							if (data.kurv && data.kurv.kurvsumEKSmva) {
								$("#HandlekurvBoks #handlevognOrdreSum").html(nrFormat(data.kurv.kurvsumEKSmva));
							} else {
								retVal = "Kurvsum er ikke funnet.";
							}
						}, "json");
						oppdaterKasse();
						retVal = true;
					}
				}, "json");
				return retVal;
			}

			if ((data.vareivogn || data.vareiordre)) {
				$.alerts.okButton = 'Ja';
				if (data.vareivogn ) mld = 'Produktet ligger allerede i handlevognen.<br />Vil legge til ' + antall + ' stk.?';
				else if (data.vareiordre ) mld = 'Produktet ligger allerede i en ordre under behandling.<br />Vil likevel kjøpe ' + antall + ' stk. nå?';
				jConfirm(mld, 'Bekreft kjøp',
					function(r) { 
						if (r == true) {					
							retVal = vareTilVognOgKasse();
							kjopAntall.val(0);

							if (fokusPunkt) {
								settFokusTimeout(fokusPunkt);
							}
							if (markertTekst) {
								settMarkertTekstTimeout(markertTekst);
							}
						}
						return false;
					}
				);					
			} else {
				vareTilVognOgKasse();
			}
		}
	}, "json");
	return retVal;
}




function sokBoksAvansertToggle() {
	var tagText = ($(".sokTypeLink").text() == sokAvansertTekst) ? sokAvansertLukkTekst : sokAvansertTekst;
	if (tagText == sokAvansertTekst) $("#sokBoksAvansertEgenskaper").empty();
	$(".sokTypeLink").text(tagText);
}

function fjernlinje(url) {
	$.alerts.okButton = 'Ja';
	jConfirm('Vil du fjerne denne' + ' linjen?', 'Bekreft sletting',
		function(r) { 
			if (r) { window.location=url; }
		}
	); 
}

function alertBoks (innhold, tittel) {
	$.alerts.okButton = 'Ok';
	jAlert(innhold, tittel, function(r) {
		if (r == true) {
			if (fokusPunkt) {
				settFokusTimeout(fokusPunkt);
			}
			if (markertTekst) {
				settMarkertTekstTimeout(markertTekst);
			}
		}
		return false;
	});
}

function settFokusTimeout(fokusPunkt) {
	setTimeout(function(){
		fokusPunkt.focus();
	}, 250 );
}

function settMarkertTekstTimeout(markertTekst) {
	setTimeout(function(){
		markertTekst.select(); 
	}, 450 );
}

/**
 * Pricecalc
 */

var pricecalcIds = 0;

function pricecalcGetPrice(element) {
	return jQuery(element).parents(".ProdVariant").find(".pricecalcValue").text();
}

function pricecalcGetTitle(element) {
	return jQuery(element).parents(".ProdVariant").find(".pricecalcTitle").text();
}

function pricecalcGetMva(element) {
	return '25';
}

function stringToNum(num) {
	return num.replace(/,/, '.');
}

function numToString(num) {
	num = '' + num;
	return num.replace(/\./, ',');
}

function custRound(x,places) {
	// Created 1997 by Brian Risk.  http://brianrisk.com
	return (Math.round(x*Math.pow(10,places)))/Math.pow(10,places)
}

jQuery(function() {
	jQuery('.pricecalcOpen').bind("click", function(e) {
		title	= pricecalcGetTitle(this);
		price	= pricecalcGetPrice(this);
		//mva 	= pricecalcGetMva(this);

		/*
		position = new Array();
		position.push(e.pageX);
		position.push(e.pageY);
		*/
		
		pricecalcIds = jQuery('#pricecalcId').val();
		pricecalcIds = parseInt(pricecalcIds) + 1;
		jQuery('#pricecalcId').val(pricecalcIds);
		id = 'pricecalc' + pricecalcIds;
		
		priceCalcDialog = jQuery('pricecalcBlock').html();
		if ((priceCalcDialog == undefined) || 
			(priceCalcDialog.length < 1)) {
			priceCalcDialog = '<form onsubmit="return false;">'
							+ '	<div class="formContainer"><div class="formTittel">Innkjøpspris</div><div class="formVerdi"><input type="text" name="inPrice" disabled="disabled"/></div></div>'
							+ '	<div class="formContainer"><div class="formTittel">Faktor innkjøpspris</div><div class="formVerdi"><input type="text" name="factor"/></div></div>'
							+ '	<div class="formContainer"><div class="formTittel">Prosent til innkjøpspris</div><div class="formVerdi"><input type="text" name="percent"/></div></div>'
							+ '	<div class="formContainer"><div class="formTittel">Fortjeneste</div><div class="formVerdi"><input type="text" name="profit"/></div></div>'
							+ '	<div class="formContainer"><div class="formTittel">Utsalgspris</div><div class="formVerdi"><input type="text" name="outPrice"/></div></div>'
							+ '</form>';
		}

		jPriceCalcDialog = jQuery('<div title="Priskalkulator" />').attr("id", "pricecalcBlock");
		jPriceCalcDialog.append(priceCalcDialog);

		jPriceCalcDialog.find('.pricecalcTitle').text(title);

		jPriceCalcDialog.find('input[name=inPrice]').val(numToString(price));
		jPriceCalcDialog.find('input[name=factor]').val(numToString(1.3));

		jPriceCalcDialog.find('input[type=text]').bind('keypress', function(e) {
			if (e.which == 13) {
				pricecalcProcess(this);
			} else {
				//console.log('press ' + e.which);
			}
		});
		
		pricecalcProcess(jPriceCalcDialog.find('input[name=factor]'));
		
		//{ 'position': position, 'title': title, 'dialogClass': 'pricecalc'});
		options = { 'title': title, 'dialogClass': 'pricecalc'};
		jPriceCalcDialog.dialog(options);
	});
});

function pricecalcProcess(element) {
	form = new PriceCalcElement(element);
	priceCalc = new PriceCalc(form.getInPrice(), form.getPercentage(), form.getFactor(), form.getMva(), form.getProfit(), form.getOutPrice());
	priceCalc.calculateByName(form.name);
	form.setPercentage(priceCalc.percent);
	form.setFactor(priceCalc.factor);
	form.setOutPrice(priceCalc.outPrice);
	form.setProfit(priceCalc.profit);
}

function PriceCalcElement(element)
{
	this.form;
	this.name;
	
	this.setFormElement = function(element)
	{
		element = jQuery(element);
		this.form = element.parents('form');
		this.name = element.attr('name');
		//return this;
	};
	
	this.setFormElement(element);
	
	this.setInPrice = function(value)
	{
		this.form.find('input[name=inPrice]').val(numToString(value));
		return this;
	};
	
	this.getInPrice = function()
	{
		value = this.form.find('input[name=inPrice]').val();
		value = value.replace(/\s+/g, '');
		//console.log ('getInPrice' + value);
		//console.log('getPercentage ' + value + ' stringToNum ' + stringToNum(value));
		return stringToNum(value);
	};
	
	this.setPercentage = function(value)
	{
		//console.log('setPercentage ' + value + ' numToString ' + numToString(value));
		value = custRound(value, 2);
		this.form.find('input[name=percent]').val(numToString(value));
		return this;
	};
	
	this.getPercentage = function()
	{
		value = this.form.find('input[name=percent]').val();
		if (value == undefined) {
			value = '';
		}
		//console.log('getPercentage ' + value + ' stringToNum ' + stringToNum(value));
		return stringToNum(value);
	};
	
	this.setFactor = function(value)
	{
		//console.log('setFactor ' + value + ' numToString ' + numToString(value));
		value = custRound(value, 3);
		this.form.find('input[name=factor]').val(numToString(value));
		return this;
	};
	
	this.getFactor = function()
	{
		value = this.form.find('input[name=factor]').val();
		if (value == undefined) {
			value = '';
		}
		//console.log('getPercentage ' + value + ' stringToNum ' + stringToNum(value));
		return stringToNum(value);
	};
	
	this.setProfit = function(value)
	{
		//console.log('setProfit ' + value + ' numToString ' + numToString(value));
		value = custRound(value, 2);
		this.form.find('input[name=profit]').val(numToString(value));
		return this;
	};
	
	this.getProfit = function()
	{
		value = this.form.find('input[name=profit]').val();
		if (value == undefined) {
			value = '';
		}
		//console.log('getProfit ' + value + ' stringToNum ' + stringToNum(value));
		return stringToNum(value);
	};
	
	this.setOutPrice = function(value)
	{
		//console.log('setOutPrice ' + value + ' numToString ' + numToString(value));
		value = custRound(value, 2);
		this.form.find('input[name=outPrice]').val(numToString(value));
		return this;
	};
	
	this.getOutPrice = function()
	{
		value = this.form.find('input[name=outPrice]').val();
		if (value == undefined) {
			value = '';
		}
		//console.log('getOutPrice ' + value + ' stringToNum ' + stringToNum(value));
		return stringToNum(value);
	};
	
	this.setMva = function(value)
	{
		//this.form.find('input[name=outPrice]').val(numToString(value));
		return this;
	};
	
	this.getMva = function()
	{
		value = '25';
		/*
		mva = this.form.find('input[name=mva]');
		if ((mva.length > 0) && (mva.val() != '')) {
			value = mva.val();
		}
		*/
		//console.log('getMva ' + value + ' stringToNum ' + stringToNum(value));
		return stringToNum(value);
		//return this.form.find('input[name=outPrice]').val();
	};
}

function PriceCalc(pInPrice, pPercent, pFactor, pMva, pProfit, pOutPrice)
{
	this.inPrice;
	this.percent;
	this.factor;
	this.mva;
	this.profit;
	this.outPrice;
	
	this.setValues = function(pInPrice, pPercent, pFactor, pMva, pProfit, pOutPrice)
	{
		this.inPrice = parseFloat(pInPrice);
		this.percent = parseFloat(pPercent);
		this.factor = parseFloat(pFactor);
		this.mva = parseFloat(pMva);
		this.profit = parseFloat(pProfit);
		this.outPrice = parseFloat(pOutPrice);
	};
	
	this.setValues(pInPrice, pPercent, pFactor, pMva, pProfit, pOutPrice);
	
	this.calculateByName = function(name)
	{
		switch(name) {
			case 'factor':
				return this.calculateFromFactor();
			case 'percent':
				return this.calculateFromPercentage();
			case 'outPrice':
				return this.calculateFromOutPrice();
			case 'profit':
				return this.calculateFromProfit();
			default:
				return false;
		}
	};
	
	this.calculateFromFactor = function()
	{
		this.profit = (this.inPrice * this.factor) - this.inPrice;
		this.percent = (this.factor - 1) * 100;
		this.outPrice = (this.inPrice + this.profit) * percentToFactorPositive(this.mva);
		return this;
	};
	
	this.calculateFromPercentage = function()
	{
		this.factor = percentToFactorPositive(this.percent);
		this.profit = (this.inPrice * this.factor) - this.inPrice;
		this.outPrice = (this.inPrice + this.profit) * percentToFactorPositive(this.mva);
		
		return this;
	};
	
	this.calculateFromOutPrice = function()
	{
		this.profit = this.outPrice * percentToFactorNegative(this.mva) - this.inPrice;
		this.factor = (this.profit + this.inPrice) / this.inPrice;
		this.percent = positiveFactorToPercent(this.factor);
		return this;
	};
	
	this.calculateFromProfit = function()
	{
		this.factor = (this.profit + this.inPrice) / this.inPrice;
		this.percent = positiveFactorToPercent(this.factor);
		this.outPrice = (this.inPrice + this.profit) * percentToFactorPositive(this.mva);
		return this;
	};
}

function percentToFactorNegative(percent)
{
	return (100 / (1 + (percent / 100))) / 100;
}

function positiveFactorToPercent(factor)
{
	return (factor - 1) * 100;
}

function percentToFactorPositive(percent)
{
	return 1 + (percent / 100);
}


/**
 * Uhu
 */

function nrFormat(n,sep) {
	var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})'),
	sValue=n+'';

	if (sep === undefined) {sep=' ';}
	while(sRegExp.test(sValue)) {
	sValue = sValue.replace(sRegExp, '$1'+sep+'$2');
	}
	sValue=sValue.replace(".", ",");
	return sValue;
};
