   var request = false;
   var _allElements;
   var _next;
   var _canReOrder;
   var _discounts  = {
      Set : function(foo,bar) {this[foo] = bar;},
      Get : function(foo) {return this[foo];}
     }
   
   var _itemsOnStock  = {
      Set : function(key,amount) {this[key] = amount;},
      Get : function(key) {return this[key];}
     }
     
   var _nextSelection  = {
      Set : function(key,next) {this[key] = next;},
      Get : function(key) {return this[key];}
     }
     
   var _itemOnStockDeliveryTag;
   var _itemOutOfStockDeliveryTag;
   var _current;  
 
   function getVariantInfo(id) {
     _current = id;

     var stockAmount = _itemsOnStock.Get(id);
     if(stockAmount<=0)
     {
	    line = '<div style="background-image: url(template/status_yellow.png); background-repeat: no-repeat; background-position: right center; text-align: right;	padding-right: 20px; height: 16px;">Ikke på lager:</div>';
		document.getElementById("stock_icon").innerHTML = line;
        document.getElementById("deliverytag").innerHTML = _itemOutOfStockDeliveryTag;
     }
     else
	 {
	    line = '<div style="background-image: url(template/status_green.png); background-repeat: no-repeat; background-position: right center; text-align: right;	padding-right: 20px; height: 16px;">På lager:</div>';
		document.getElementById("stock_icon").innerHTML = line;
        document.getElementById("deliverytag").innerHTML = _itemOnStockDeliveryTag;
	 }
	 onstockText = 'Lagerbeholdning: ';
	 amount = _itemsOnStock.Get(id+"");
	 if(amount!=null)
	   onstockText += amount;
     document.getElementById("amounttag").innerHTML = onstockText;
     updateSelection(_nextSelection.Get(id));
     
   }
   
   function updateSelection(nameList)
   {
      if(_next==''||nameList==null) 
        return;
      //document.getElementById(_next).add(new Option('', -1));
      nameIdArray = nameList.split("$$");
      for (var i=0; i<nameIdArray.length; i++)
      {
         var nameIdStr = nameIdArray[i];
         vars =  nameIdStr.split("%%");
         
         varId = vars[0];
         text = vars[1];
         option = new Option(text, varId);
		 try{
           document.getElementById(_next).add(option,null);
		 }
         catch(e){ //the microsoft way
		   document.getElementById(_next).add(option);
		 }
      }
	  
	  
   }
   
   function updateNext(current,next) {
     var nextselect=document.getElementById(next)
     _next = next;
     var currentselect=document.getElementById(current)
     var id=0;
     try{
       var _clear = false;
       
       for (var i=0; i<_allElements.length; i++){// remove all options on next an onvards element
         if(_clear==true||_allElements[i]==_next)
         {
            var select=document.getElementById(_allElements[i])
            select.options.length=1
            _clear = true;
         }
         
           
       }

       for (var i=0; i<currentselect.options.length; i++){
         if (currentselect.options[i].selected==true){
           id=currentselect.options[i].value;
           break;
         }
       }

       //get name and id's from server
       getVariantInfo(id.toString());
       
       }
       catch(e){ //in IE, try the below version instead of add()
          alert("status is " + e.toString());
          nextselect.add(new Option("error", "4")); //add new option to end of "sample"
       }
       
                 
     }
     
     function updateprize(prize)
     {
        sum=document.getElementById('textfield').value;
		if(sum=='')
		return;
        itemsOnStock = _itemsOnStock.Get(_current)+'';
		sum = parseInt(sum);
		itemsOnStock = parseInt(itemsOnStock);
		
        if(sum>itemsOnStock)
        {
           if(_canReOrder=='')
           {
             sum = itemsOnStock;
             document.getElementById('textfield').value = sum;
             alert("Der er desværre kun " + sum +" på lager\nVaren kan ikke genbestilles");
           }
           else
           {
		     line = '<div style="background-image: url(template/status_yellow.png); background-repeat: no-repeat; background-position: right center; text-align: right;	padding-right: 20px; height: 16px;">Ikke på lager:</div>';
		     document.getElementById("stock_icon").innerHTML = line;
             document.getElementById("deliverytag").innerHTML = _itemOutOfStockDeliveryTag;
           }
        }
		else
		{
		   line = '<div style="background-image: url(template/status_green.png); background-repeat: no-repeat; background-position: right center; text-align: right;	padding-right: 20px; height: 16px;">På lager:</div>';
		   document.getElementById("stock_icon").innerHTML = line;
		   document.getElementById("deliverytag").innerHTML = _itemOnStockDeliveryTag;
		}
        
        if(sum!=0)
        {
		
          var discount = _discounts.Get(sum);
		  if(discount==null)
		  {
		     tmpsum = sum-1;
			 tmpsum = parseInt(tmpsum);
			 while (tmpsum!=0)
			 {
			   discount = _discounts.Get(tmpsum);
			   if(discount!=null)
			     break;
			   tmpsum = tmpsum-1;
			 }
		  }
		  
          if(discount!=null&&discount!=0)
          {
             prize = prize-(prize*discount/100);
          }
          var prizetag=document.getElementById('prizetag')
          var finalPrize = new String(format_number(prize*sum,2));
		  var split = finalPrize.split('.');
		  var decimals = split[1];
		  var hole =  split[0];
		  //insert thusents dot
		  if(hole.length>3)
		  {
		    dotIndex = hole.length-3;
		    before = hole.substring(0,dotIndex);
			after =	hole.substring(dotIndex,hole.length);
			hole = before+"."+after;
		  }
		  finalPrize = hole+','+decimals;  
          prizetag.innerHTML= finalPrize;
        }
     }
     
     function format_number(pnumber,decimals){ 
       if (isNaN(pnumber)) { return 0}; 
       if (pnumber=='') { return 0}; 
       var snum = new String(pnumber); 
       var sec = snum.split('.'); 
       var whole = parseFloat(sec[0]); 
       var result = ''; 
       if(sec.length > 1){ 
           var dec = new String(sec[1]); 
           dec = String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals))); 
           dec = String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals)); 
           var dot = dec.indexOf('.'); 
           if(dot == -1){ 
              dec += '.'; 
              dot = dec.indexOf('.'); 
            } 
            while(dec.length <= dot + decimals) { dec += '0'; } 
            result = dec; 
        } else{ 
          var dot; 
          var dec = new String(whole); 
          dec += '.'; 
          dot = dec.indexOf('.');        
          while(dec.length <= dot + decimals) { dec += '0'; } 
          result = dec; 
        }    
        return result; 
      }
	  
	  function doSubmit()
	  {

		 name = document.item.variantName.value;

		 if(name=='')
		 {
		   document.item.submit();
		   
		   return;
		 }
		 
		 selectedItem = document.getElementById(name).value;

		 if(selectedItem==-1||selectedItem=='')
		 { 
		   alert('Formularen er ikke udfyldt korrekt, du skal udfylde til og med '+name);
		   return false;
		 }
		 else
		   document.item.submit();
		   
	  }
	  
	  function doSubmitButton()
	  {

		 name = document.item.variantName.value;

		 if(name=='')
		 {
		   document.item.submit();
		   
		   return;
		 }
		 
		 selectedItem = document.getElementById(name).value;

		 if(selectedItem==-1||selectedItem=='')
		 { 
		   alert('Formularen er ikke udfyldt korrekt, du skal udfylde til og med '+name);
		 }
		 else
		   document.item.submit();
		   
	  }
