/**
 * Konfigurator JavaScript Functions
 * needs prototype.js
 */

c = 0;
sc = 0;

/**
 * Ort und Messeauswahl Funktionen
 */

function loadOrtBox (defaultValue) {
   if (!defaultValue) {
      defaultValue = "";      
   }
   var optionen = {
      parameters: {
         locale: locale,
         defaultOID: defaultValue
      }
   };
   optionen.onComplete = function(transport) {
      updateMesseSelectBox ();
   };
   
   var zielElement = "ortSelectContainer";
   var formularURL = "ort-select-box.xml";
   new Ajax.Updater(zielElement, formularURL, optionen);
}


function loadMesseBox (defaultValue) {
   var optionen = {
      parameters: {
         locale: locale,
         mid: defaultValue
      }
   };
   optionen.onComplete = function(transport) {
      updateMesseSelectBox ();
   };
   
   var zielElement = "hiddenMesseSelectContainer";
   var formularURL = "messe-select-box.xml";
   new Ajax.Updater(zielElement, formularURL, optionen);
}

function updateMesseSelectBox (changed) {
   var selectElement = $('messeSelect');
   if (changed) {
      Form.Element.setValue(selectElement, "");      
   }
   // remove alls
   var sM = $$('option.added');
   sM.invoke('remove');

   // show selected
   var oid = $F('oid');
   sM = $$('option.' + oid);
   for (var i = 0; i < sM.length; i++) {
      var cpOpt = sM[i].cloneNode(true);
      cpOpt.addClassName('added');
      selectElement.insert(cpOpt);            
   }
}



/**
 *  Warenkorb Funktion mögliche Aktionen:
 *  Parameter aktion:
 *	  - addArtikel
 *  	- removeArtikel
 *	  - changeArtikel
 *  - contentUpdate gibt an ob die Ansicht "Aktuelle Konfiguration upgedatet werden soll
 */



function updateWarenkorb (aktion, artikelID, menge, contentUpdate) {
  var optionen = {
    parameters: {
      locale: locale
    }
  };
  if (aktion) {
    optionen = {
      parameters: {
        artikel: aktion,
        id: artikelID,
        menge: menge,
        locale: locale,
        bk: bk,
        c: c,
        sc: sc
      }
    };
  }
 	var urlKlein = "warenkorb_klein.xml";
 	var urlGross = "warenkorb_gross.xml";
  if (jsessionid) {
 		urlKlein = "warenkorb_klein.xml;jsessionid=" + jsessionid;
 		urlGross = "warenkorb_gross.xml;jsessionid=" + jsessionid;
  }
  if (contentUpdate) {
    optionen.onSuccess = function(transport) {
      new Ajax.Updater("standkonfiguration", urlGross, {parameters: {locale: locale, bk: bk, c:c, sc:sc}});
    }
  }

  new Ajax.Updater("warenkorbKlein", urlKlein, optionen);
}

function showShortly(spanId) {
	$(spanId).show();
	window.setTimeout("$('" + spanId + "').hide()", 2000);
}





/**
 *  Zusatzinfo Funktionen zur Blendenpreisberechnugn
 */
function addBlendeListener () {
	$$('input[name="zusatz-info/blende/text"]')[0].observe('keyup', updateBlendenPreis);
	$$('input[name="zusatz-info/blende/text"]')[0].observe('blur',  updateBlendenPreis);
	$$('input[name="zusatz-info/blende/text"]')[0].observe('focus', updateBlendenPreis);
}

/**
 *  entfernt Blanks aus einem String
 */
function removeSpaces(string) {
  return string.split(' ').join('');
}

/**
 *  Aktualisiert den Blendenpreis nach Eingabe von Buchstaben
 */
function updateBlendenPreis(event){
	var blendenText = removeSpaces($$('input[name="zusatz-info/blende/text"]')[0].value);
	var textSize = (blendenText.length - gratisBuchstaben);
  // darf nicht negativ werden
	if (textSize < 0) {
	  textSize = 0;
  }
  // Wert setzen und runden auf zwei Dezimalstellen
  $('aktuellerBlendenPreis').innerHTML = Math.round(textSize * preisProbuchstabe * curFaktor * anzahlSeiten * 100) / 100;
}
/**
 * bestimmt die Anzahl der Seiten eines Standes anhand der Standart
 */
function getAnzahlSeiten (standArt) {
  var anzahlSeiten = 0;
  if(standArt == "reihe") anzahlSeiten = 1;
  if(standArt == "eck")   anzahlSeiten = 2;
  if(standArt == "kopf")  anzahlSeiten = 3;
  if(standArt == "insel") anzahlSeiten = 4;
  return anzahlSeiten;
}
