  /* CLASSES */
  function VariantGroup(id, name) {this.Id = id;this.Name = name;this.Options=[];}
  function VariantOption(id, name) {this.Id = id;this.Name = name;}
  function VariantCombination(id) {this.Id = id;}
  function VariantSelector(){this.Groups = [];this.Combinations = [];}
  
  /* FUNCTIONS */
  function ByGroupOrder(varid)
  {
    var vars = [];
    for (g=0;g < Selector.Groups.length;g++) 
    {
		for (o=0;o < Selector.Groups[g].Options.length;o++) 
		{
			for (v=0;v < varid.length;v++) 
			{
			  if (Selector.Groups[g].Options[o].Id == varid[v])
			  {
			    vars.push(varid[v]);
			  }
			}
		}    
    }
    return vars;   
  }
  
  
  function PresetCombo(combono, value)
  {
	if(document.getElementById('COMBO' + combono)!=null) {
		document.getElementById('COMBO' + combono).value = value;
	    UpdateCombo(combono);	
	}
  }
  
  
  function CombinationExist(query)
  {
    found = false;
    for (ci=0; ci < Selector.Combinations.length;ci++)
    {
      combis = Selector.Combinations[ci].Id.split(".");
      queryfoundincombination = true;
      for (q=0;q<query.length;q++)
      {
        queryitemfoundincombination = false;
        for (cs=0;cs<combis.length;cs++)
        {
           if (combis[cs] == query[q]) queryitemfoundincombination = true;
        }
        if (!queryitemfoundincombination) queryfoundincombination = false;
      }
      if (queryfoundincombination) found = true;
    }
    return found;
  }
  
  
  function FillCombo(combono,VariantID)
  {
  
    ClearCombo(combono);
	
	if(document.getElementById('COMBO' + combono)!=null) {

		var op = document.createElement("option");
		op.text = "--- Select ---";
		op.value = "";
		document.getElementById('COMBO' + combono).options.add(op);


		for (i=0; i < Selector.Groups[combono].Options.length;i++)    
		{
		
		  option = Selector.Groups[combono].Options[i];
		  includeoption = true;
		  
		  curcombination = [];
		  for (g=0; g < combono;g++)    
		  {
			curcombination.push(document.getElementById('COMBO' + g).value);
		  }
		  curcombination.push(option.Id);
		  
		  includeoption = CombinationExist(curcombination);
		  
		  
		  if (includeoption)
		  {
			var op = document.createElement("option");
			op.text = option.Name;
			op.value = option.Id;
			if(op.value==VariantID) {
				op.selected = "true";
			}
			document.getElementById('COMBO' + combono).options.add(op);
			document.getElementById('COMBO' + combono).disabled = false;
		  }
		  
		}
	}
	
  }
  
  function ClearCombo(combono)
  {
	if(document.getElementById('COMBO' + combono)!=null) {
		while (document.getElementById('COMBO' + combono).options.length > 0)
		{
		  document.getElementById('COMBO' + combono).options[0] = null;
		}
		document.getElementById('COMBO' + combono).disabled = true;
	}
  }
  
  function UpdateCombo(combono)
  {
  
      if (combono < Selector.Groups.length-1)
      {
      
        if (document.getElementById('COMBO' + combono).value != "") FillCombo((combono+1));
	  
	    if (combono > -1)
	    { 
	      fromcombo = (document.getElementById('COMBO' + combono).value == "") ? combono+1 : combono+2;
          for (c=fromcombo;c<Selector.Groups.length;c++)
          {
            ClearCombo(c);
          }
        }
	  }
	  else
	  {
	    if (!presetting && (document.getElementById('COMBO' + (Selector.Groups.length-1)).value != "")) 
	    {
	      id = "";
          for (c=0;c<Selector.Groups.length;c++)
          {
            id += (c == 0) ? document.getElementById('COMBO' + c).value : "." + document.getElementById('COMBO' + c).value;
          }
	    
          document.location.href = Page + "&VariantID=" + id;
          
	    }
	  }
	  
  }


function setVariant(variantUrl) {
    window.location = variantUrl;
}

function setCurrency(urlvalue,activeCurrency) {
	var myCurrentURL = urlvalue;
	var myCurrencyPlace = myCurrentURL.indexOf("&currencyCode");
	var myCurrencyURL = "";
	if(myCurrencyPlace>0) {
		myCurrencyURL = myCurrentURL.substr(0,myCurrencyPlace);
	} else {
		myCurrencyURL = myCurrentURL;
	}
	
	document.write("<a href=\""+myCurrencyURL+"&currencyCode=EUR\" id=\"currence_euro\">&euro;</a>");
	document.write(" | ");
	document.write("<a href=\""+myCurrencyURL+"&currencyCode=DKK\" id=\"currence_dkk\">DKK</a>");
}

function setBigImage(elmid) {
	var imageHolder = document.getElementById("productBigImage");
	var bigImages = imageHolder.getElementsByTagName("IMG");
	for(var i=0; i<bigImages.length; i++) {
		bigImages[i].className="bigImageHidden";		
	}	
	var bigImgId = elmid.replace("thumb_","bigImage_");
	document.getElementById(bigImgId).className="bigImage";
}

/***********************************************
* Ultimate Fade-In Slideshow (v1.5): © Dynamic Drive (http://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
* Updated for better Safari and Opera 9+ Compliance
* by jscheuer1 in http://www.dynamicdrive.com/forums
***********************************************/
 

 
var fadebgcolor="transparent"
var fadeimages=new Array() 
var fadeicons=new Array() 
////NO need to edit beyond here/////////////
 
var fadearray=new Array() //array to cache fadeshow instances
var fadeclear=new Array() //array to cache corresponding clearinterval pointers
 
var dom=(document.getElementById) //modern dom browsers
var iebrowser=document.all
 
function fadeshow(theimages, fadewidth, fadeheight, borderwidth, delay, pause, displayorder){
this.pausecheck=pause
this.mouseovercheck=0
this.delay=delay
this.degree=10 //initial opacity degree (10%)
this.curimageindex=0
this.nextimageindex=1
fadearray[fadearray.length]=this
this.slideshowid=fadearray.length-1
this.canvasbase="canvas"+this.slideshowid
this.curcanvas=this.canvasbase+"_0"
this.theimages=theimages
if (typeof displayorder!="undefined")
this.theimages.sort(function() {return 0.5 - Math.random();}) //thanks to Mike (aka Mwinter) :)
this.imageborder=parseInt(borderwidth)
this.postimages=new Array() //preload images
for (p=0;p<theimages.length;p++){
this.postimages[p]=new Image()
this.postimages[p].src=this.theimages[p][0]
}
 
var fadewidth=fadewidth+this.imageborder*2
var fadeheight=fadeheight+this.imageborder*2
 
if (iebrowser&&dom||dom) //if IE5+ or modern browsers (ie: Firefox)
document.write('<div id="master'+this.slideshowid+'" style="clear:both;width:'+fadewidth+'px;height:'+fadeheight+'px;overflow:hidden;"><div id="'+this.canvasbase+'_0" style="position:absolute;width:'+fadewidth+'px;height:'+fadeheight+'px;top:0;left:0;filter:progid:DXImageTransform.Microsoft.alpha(opacity=10);opacity:10;-moz-opacity:10;-khtml-opacity:10;background-color:'+fadebgcolor+'"></div><div id="'+this.canvasbase+'_1" style="position:absolute;width:'+fadewidth+'px;height:'+fadeheight+'px;top:0;left:0;filter:progid:DXImageTransform.Microsoft.alpha(opacity=10);opacity:10;-moz-opacity:10;background-color:'+fadebgcolor+'"></div></div>')
else
document.write('<img name="defaultslide'+this.slideshowid+'" src="'+this.postimages[0].src+'">')
 
if (iebrowser&&dom||dom) //if IE5+ or modern browsers such as Firefox
this.startit()
else{
this.curimageindex++
setInterval("fadearray["+this.slideshowid+"].rotateimage()", this.delay)
}
}

function fadepic(obj){
if (obj.degree<100){
obj.degree+=10
if (obj.tempobj.filters&&obj.tempobj.filters[0]){
if (typeof obj.tempobj.filters[0].opacity=="number") //if IE6+
obj.tempobj.filters[0].opacity=obj.degree
else //else if IE5.5-
obj.tempobj.style.filter="alpha(opacity="+obj.degree+")"
}
else if (obj.tempobj.style.MozOpacity)
obj.tempobj.style.MozOpacity=obj.degree/101
else if (obj.tempobj.style.KhtmlOpacity)
obj.tempobj.style.KhtmlOpacity=obj.degree/100
else if (obj.tempobj.style.opacity&&!obj.tempobj.filters)
obj.tempobj.style.opacity=obj.degree/101
}
else{
clearInterval(fadeclear[obj.slideshowid])
obj.nextcanvas=(obj.curcanvas==obj.canvasbase+"_0")? obj.canvasbase+"_0" : obj.canvasbase+"_1"
obj.tempobj=iebrowser? iebrowser[obj.nextcanvas] : document.getElementById(obj.nextcanvas)
obj.populateslide(obj.tempobj, obj.nextimageindex)
obj.nextimageindex=(obj.nextimageindex<obj.postimages.length-1)? obj.nextimageindex+1 : 0
setTimeout("fadearray["+obj.slideshowid+"].rotateimage()", obj.delay)
}
}
 
fadeshow.prototype.populateslide=function(picobj, picindex){
var slideHTML=""
if (this.theimages[picindex][1]!="") //if associated link exists for image
slideHTML='<a href="'+this.theimages[picindex][1]+'" target="'+this.theimages[picindex][2]+'">'
slideHTML+='<img src="'+this.postimages[picindex].src+'" border="'+this.imageborder+'px">'
if (this.theimages[picindex][1]!="") //if associated link exists for image
slideHTML+=''
picobj.innerHTML=slideHTML
}
 
 
fadeshow.prototype.rotateimage=function(){
if (this.pausecheck==1) //if pause onMouseover enabled, cache object
var cacheobj=this
if (this.mouseovercheck==1)
setTimeout(function(){cacheobj.rotateimage()}, 100)
else if (iebrowser&&dom||dom){
this.resetit()
var crossobj=this.tempobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
crossobj.style.zIndex++
fadeclear[this.slideshowid]=setInterval("fadepic(fadearray["+this.slideshowid+"])",50)
this.curcanvas=(this.curcanvas==this.canvasbase+"_0")? this.canvasbase+"_1" : this.canvasbase+"_0"
}
else{
var ns4imgobj=document.images['defaultslide'+this.slideshowid]
ns4imgobj.src=this.postimages[this.curimageindex].src
}
this.curimageindex=(this.curimageindex<this.postimages.length-1)? this.curimageindex+1 : 0
}
 
fadeshow.prototype.resetit=function(){
this.degree=10
var crossobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
if (crossobj.filters&&crossobj.filters[0]){
if (typeof crossobj.filters[0].opacity=="number") //if IE6+
crossobj.filters(0).opacity=this.degree
else //else if IE5.5-
crossobj.style.filter="alpha(opacity="+this.degree+")"
}
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=this.degree/101
else if (crossobj.style.KhtmlOpacity)
crossobj.style.KhtmlOpacity=this.degree/100
else if (crossobj.style.opacity&&!crossobj.filters)
crossobj.style.opacity=this.degree/101
}
 
 
fadeshow.prototype.startit=function(){
var crossobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
this.populateslide(crossobj, this.curimageindex)
if (this.pausecheck==1){ //IF SLIDESHOW SHOULD PAUSE ONMOUSEOVER
var cacheobj=this
var crossobjcontainer=iebrowser? iebrowser["master"+this.slideshowid] : document.getElementById("master"+this.slideshowid)
crossobjcontainer.onmouseover=function(){cacheobj.mouseovercheck=1}
crossobjcontainer.onmouseout=function(){cacheobj.mouseovercheck=0}
}
this.rotateimage()
}




