// (MS) 02.07.2009

/*
(DS) 13.11.2009
alle globalen Variablen, die in der Seite stehen, beginnen mit "page_"
*/
var ajax_debug = false;
var preiseErsetzt = false;
jQuery(document).ready(
   function()  {
      jQuery("#debug").hide();
      jQuery("select").change(
         
         function(){
            this.blur();
            dropDownHandling( this);
         });
   }
)
function dropDownHandling( dropDown)  {
   
   
   
   var aTest = /ausw/;
   if( aTest.test("'"+dropDown.id+"'")) {
      var aktAusfuehrung = 0;
      var aktAusfuehrungSich = 0;
      // Bestimmen der akt. Ausfuehrung
      
      var all_variants_completed = true;
      
      var aktTest = /([0-9]+)/;
      var test = aktTest.exec( dropDown.id);
      aktAusfuehrung = test[0];
      aktAusfuehrungSich = test[0];
      tmpAusfuehrung = aktAusfuehrung-1;
      if( document.getElementById("hiddenausw"+tmpAusfuehrung))
         document.getElementById("hiddenausw"+tmpAusfuehrung).value = dropDown.value;
      // Bestimmen des Suchstring (komplett!)
      lastAusfIndex = "";
      for( i = 1; i <= page_maxAusfuehrungen; i++) {//page_maxAusfuehrungen muss auf der seite gesetzt sein
         var v = jQuery("#ausw"+i).val();
         if( v)  {
            v = v.replace( /^[0-9]+:/, "");
            if(v.indexOf('xxnoinputxx') ==0)all_variants_completed = false;
            lastAusfIndex += v+".";
         }
      }

      //jQuery("#debug").show();
      //jQuery("#debug").html( "#"+dropDown.id+" '"+dropDown.options[dropDown.selectedIndex].text+"': '"+dropDown.value+"' selected #MA:"+page_maxAusfuehrungen+" LKI:"+lastAusfIndex+" AKT:"+aktAusfuehrung );
      
       var variant_id = dropDown.options[dropDown.selectedIndex].value;
       var variant_ok = (!variant_id.indexOf('xxnoinputxx') ==0);
      
      staffelrechner(0);
      
      if(aktAusfuehrung == 1 && !variant_ok ) {

         showAmpel("#ampel_"+page_ampelStr);
         
         
         resetPageCacheVars();//artikelDetail.js
      }

      // wenn dies die erste Ausfuehrung ist, dann Ampel, Verfügbarkeit, Lieferzeit setzen
      if( aktAusfuehrung == 1 && variant_ok) {
         resetPageCacheVars();//artikelDetail.js
         staffelrechner(0,'loading');
         //wenn alle dropdowns gefuellt sind, muss der zweite ajax-call warten, bis der erste zurück ist:
         var wait = all_variants_completed;
         
         callAjaxArtikelDetail(
               {action:'getAusfuehrungen',lastAusfIndex:lastAusfIndex},
                {callback: setAusfInfos, debug:ajax_debug, wait:wait}
                );
      }
      if(  all_variants_completed)   {
         staffelrechner(0,'loading');
         getAusfKomplett( lastAusfIndex, "NORMAL");
      }
   }
}
var AusfOk = false;
function getAusfKomplett( lastAusfIndex, aufruf)   {   // aufruf kann NORMAL oder BILD sein

   callAjaxArtikelDetail(
               {action:'getAusfuehrungPreis',lastAusfIndex:lastAusfIndex},
               {callback: setAusfPreisInfos, debug:ajax_debug}
               );
   
}
function setAusfPreisInfos( jsonDaten)  {
   
   var ausfOk = jsonDaten["ausfOk"];
   if( !ausfOk)
      alert( "Ausfuehrung gibts wohl nicht! "+lastAusfIndex);
   if( ausfOk)   {
      
      var has_staffel = (typeof(page_has_staffel) != 'undefined' && page_has_staffel);
      initPageCacheVars();

      for( p in jsonDaten)   {
         if( p != "ausfOk" && p != "darfBestellen"){
            
            //oberen preis nur, wenn keine staffeln:
            /*
            if(has_staffel && p =='einzelPreis')continue;
            if(has_staffel && p =='einzelPreisNw')continue;
            if(has_staffel && p =='strAbPreis')continue;
            */
            
            //oberen Preis nicht:
            if( p =='einzelPreis')continue;
            if( p =='einzelPreisNw')continue;
            if( p =='strAbPreis')continue;
            if( p == 'inhalt'){
                page_variante_inhalt = jsonDaten[p];    
            }
            if( p == 'divisor'){
                page_variante_divisor = jsonDaten[p];    
            }
            jQuery("#"+p).html(jsonDaten[p]);
         }
      }
      var menge = (el('wkmenge'))?el('wkmenge').value:1;
      staffelrechner(menge);
   }
}
function setAusfInfos( jsonDaten)  {
   //for( p in jsonDaten)   {
   //   alert( p+" == "+jsonDaten[p]);
   //}
   staffelrechner(0);
   ausfOk = jsonDaten["ausfOk"];
   if( !ausfOk)
      alert( "Ausfuehrung gibts wohl nicht! "+lastAusfIndex);
   if( ausfOk)   {
      
      var ampel = "#ampel_"+jsonDaten["ampelStr"];
      showAmpel(ampel);
      jQuery("#lieferzeitStr").html(jsonDaten["lieferzeitStr"]);
      if( jsonDaten["darfBestellen"] > 0)
         showBestellEingabe();
      else
         hideBestellEingabe();
   }
}


