var zubehoer = new Array();
var gPreis = 0;
zubehoer[0] = {"preis":17.9,"name":"Spray Applicator","aid":"507000","tooltip":"Einheit: 1 Stück"};
zubehoer[1] = {"preis":15,"name":"Hair Fattener","aid":"510004","tooltip":"Inhalt: 118ml<br>Einheitspreis: 0,13€/ml"};
zubehoer[2] = {"preis":9.9,"name":"Fixier Spray","aid":"510001","tooltip":"Inhalt: 200ml<br>Einheitspreis: 0,05€/ml"};
zubehoer[3] = {"preis":9,"name":"Optimizer Kamm","aid":"522050","tooltip":"Einheit: 2 Stück<br>Einheitspreis: 4,50€/Kamm"};

function toppik(_name, _groesse, _preis, _artnrs)
{
	this.name= _name;
	this.groesse = _groesse;
	this.preis = _preis;
	this.ids = _artnrs;
	this.artikel = 
	{
		0:["mittelbraun","07"],
		1:["dunkelbraun","08"],
		2:["rotbraun","05"],
		3:["schwarz","02"],
		4:["weiss","01"],
		5:["grau","09"],
		6:["blond","10"],
		7:["hellbraun","06"]
	}
	this.stueck = 1; 
	this.pPreis = 0; 
	this.Artikelnummer = function(i,g)
	{
		if(!g)
		{
			g = this.pPreis;
		}
		return this.ids[g]+"--"+this.artikel[i][1];
	}
	this.arr2preis = function(arr)
	{
		var preis =0; 
		for(i=0;i<arr.length;i++)
		{
			preis += this.preis[arr[i]] *arr[i];
		}
		return preis;
	}
	this.findNext = function(g)
	{
		if(g === undefined){ 
			g= this.stueck;
		};
		this.pPreis = g;
		for(i in this.preis)
		{
			if(i<=g)
			{
				this.pPreis = i;
			}
		}
		return parseInt(this.pPreis);
	};
	this.Preis = function(g)
	{
		var preis =0; 
		if(!g){
			g=this.stueck; 
		}
		var arr = this.Kombi2(g,this.findNext(g),0);
		for(i=0;i<arr.length;i++)
		{
			preis += this.preis[arr[i]] *arr[i];
		}
		return preis;
	};
	this.Kombi = function(g)
	{
		if(!g)
		{
			g= this.stueck;
		}
		var check,curr,mom = parseInt(this.findNext(g)); 
		start = mom;
		curr = mom;
		check = mom+1; 
		var arr = [mom];
		while(curr != g)
		{
			mom = this.findNext(check-1);
			if(curr+mom<=g)
			{
				curr+=mom;
				arr.push(mom);			
			}else{
				check = mom; 
			}
		}
		return arr;
	};
	this.Kombi2 = function(max,step,mom)
	{
		var arr = [], arr1 = [];
		var x = this.findNext(step);
		var y = this.findNext(x-1);		
		if(mom == max) return arr;
		arr.push(x);
		if(mom >= max || step ==0)return arr;		
		arr = arr.concat(this.Kombi2(max,x,mom+x)); 
		arr1 = arr1.concat(this.Kombi2(max,y,mom));
		if( this.arr2preis(arr) > this.arr2preis(arr1))
		{
			arr = arr1;
		}
		return arr;
	};
	this.Einheitspreis = function(g)
	{
		if(!g)
		{
			g= this.stueck;
		}
		return this.Preis(g)/(this.Masse(g));
	}
	this.Masse = function(g)
	{
		if(!g)
		{
			g = this.stueck;
		}
		return this.groesse*g;
	}
	this.Gespart = function(g)
	{
		if(!g)
		{
			g=this.stueck; 
		}
		var einheit1 = 3.16;
		if(this.name != "Toppik mini"){
		einheit1 = 2.5;
		}
		var einheit2 = this.Einheitspreis(g);	
		var sparpotenzial = (einheit1-einheit2)*this.groesse;
		return sparpotenzial*g;
	};
}

function summe(arr)
{
	var s= 0; 
	for(i =0; i< arr.length;i++)
	{
		s+=arr[i];
	}
	return s;
}

var produkte = [];
produkte[0] = new toppik("Toppik mini", 2.5,{1:7.9,3:7},{1:"501500",3:"505050"});
produkte[1] = new toppik("Toppik 10g",10,{1:25,2:23,3:21.334},{1:"502000",2:"505100",3:"505150"});
produkte[2] = new toppik("Toppik 25g",25,{1:42.5,2:37.5,3:33,4:32,5:31,8:30,10:28},{1:"503000",2:"505200",3:"505250",4:"505260",5:"505270",8:"505280",10:"505290"});
produkte[3] = new toppik("Toppik 50g",50,{1:79,2:64,3:60,5:57.6,10:52},{1:"508000",2:"505350",3:"505360",5:"505370",10:"505380"});

function getSelection(g)
{
	var i, j = 0; 
	i = $("#farben span").index($('#farben .current'));
	j = $("#groessen span").index($('#groessen .current'));
	var s = produkte[j]; 
	
	if(g == null){
		g = $("#konfslider").slider("value");
	}
	s.stueck = g;
	$("#setgroesse").html("Setgröße: "+g + " Dose"+((g>1)?"n":""));
	var prods = s.Kombi2(g,g,0);
	var preis = s.Preis();
	var spar = s.Gespart();

	var artikel =[];
	var a = "", t = "";

	var last = prods[0]; 
	var count = 0;
	for(f=0; f<prods.length;f++)
	{
		count++;
		if(last != prods[f+1] || f == prods.length-1){
			t+= count + "x "+ last + "er Sparpaket<br>";
			last = prods[f+1]; 
			artikel.push([s.Artikelnummer(i,prods[f]),count]);
			count = 0; 
		}
	}
	$("#konfpreis .preis").attr("title","<b>Toppik:</b><br>Gesamt Gewicht: "+s.Masse().toFixed(2).replace(".",",")+"g<br>Einheitspreis:  "+s.Einheitspreis().toFixed(2).replace(".",",")+"€/g");

	a += "+ <a class=\"vtip\" title=\""+t+"\">"+g+"x "+s.name+"</a><br/>";
	a+= "+ Farbe: "+s.artikel[i][0];
	if(spar > 0){
		$(".gespart").html("<b class=\"vtip\" title=\"Im Vergleich zum Kauf der selben Menge Toppik in unserem kleinsten Paket\">Sie sparen: "+ spar.toFixed(2).replace(".",",") + " €</b>");
	}else{$(".gespart").html("");}
	$("#zubehoer .current").each(function()
	{
		pos = $("#zubehoer span").index(this);
		preis += zubehoer[pos].preis;
		artikel.push([zubehoer[pos].aid, 1]);
		$("#konfpreis .preis").attr("title",$("#konfpreis .preis").attr("title")+"<br><b>"+zubehoer[pos].name+"</b><br>"+zubehoer[pos].tooltip);
		a += "<br/>+ "+ zubehoer[pos].name;
	});
	$("#selection").html(a);
	$("#konfpreis .preis").html(preis.toFixed(2).replace(".",",")+" €");
	$("#konfbestellen").attr("href", shopurl+getUrl(artikel));
	$("#konfbestellen").attr("data-preis", preis.toFixed(2));
	glPreis = preis.toFixed(2);
}

function getUrl(a)
{
	var url = ""; 
	var n = 0; 
	for(i = 0; i< a.length; i++)
	{
		url += "&artnum["+n+"]="+a[i][0]+"&am["+n+"]="+a[i][1];
		n++;
	}
	return url; 
}

$(document).ready(function() {
	$("#konfigurator").hrzAccordion(
	{
		containerClass		: "konfigurator",
		listItemClass		: "listItem",					
		contentWrapper		: "contentWrapper",
		contentInnerWrapper	: "contentInnerWrapper",
		handleClass			: "handle",
		handleClassOver		: "handleOver",
		handleClassSelected	: "handleSelected",
		handlePosition		: "left",
		openOnLoad			: 1,
		hashprefix			: "tab"
	});
	$("#farben span").click(function()
	{
		$("#farben span").removeClass("current");
		$(this).addClass("current");
		getSelection();
		vtip();	
	});
	$("#groessen span").click(function(){
		$("#groessen span").removeClass("current");
		$(this).addClass("current");
		getSelection();
		vtip();	
	});	
	$("#zubehoer span").click(function(){
		$(this).toggleClass("current");
		getSelection();
		vtip();	
	});
	$( "#konfslider" ).slider({
		value:0,
		min: 1,
		max: 10,
		slide: function( event, ui ) {
			getSelection(ui.value);
		},
		change: function(evetn, ui){
		vtip();
		}
	});
	/*$("#konfbestellen").attr('onclick', null).click(function() {
		piwikTracker.trackGoal(3, $("#konfbestellen").attr('data-preis'));
	});*/
	getSelection();
	vtip();
});

