
var ajax_requests = new Array();

function ajax_cancel()
{
   for (var i = 0; i < ajax_requests.length; i++)
   ajax_requests[i].abort();
}

// Requestobjekt initialisieren
function ajax_init_object()
{
   var a;

   var msxmlhttp = new Array(
                    'Msxml2.XMLHTTP.5.0',
                    'Msxml2.XMLHTTP.4.0',
                    'Msxml2.XMLHTTP.3.0',
                    'Msxml2.XMLHTTP',
                    'Microsoft.XMLHTTP');
    
   for (var i = 0; i < msxmlhttp.length; i++) {

      try {
          a = new ActiveXObject(msxmlhttp[i]);
      } catch (e) {
          a = null;
      }
   }

   if(!a && typeof XMLHttpRequest != "undefined")
   a = new XMLHttpRequest();

   if (!a)
   alert("XMLHttpRequest-Objekt konnte nicht erstellt werden, bitte lassen Sie im Internet Explorer 6 ActiveX-Objekte zu bzw. verwenden Sie einen anderen Browser wie bspw. Firefox.");

   return a;
   
}




// Zurücksetzen der Felder Versandadresse
function clearForm()
{
	document.LAYOUTFORMULAR.apname.value = "";
  document.LAYOUTFORMULAR.firma.value = "";
  document.LAYOUTFORMULAR.strasse.value = "";
  document.LAYOUTFORMULAR.plz.value = "";
  document.LAYOUTFORMULAR.ort.value = "";
  document.LAYOUTFORMULAR.email.value = "";
  
  document.LAYOUTFORMULAR.tabindex.value = "";
  document.LAYOUTFORMULAR.vaid.value = "";
  
  document.LAYOUTFORMULAR.katfeld1.value = "";
  document.LAYOUTFORMULAR.prodfeld1.value = "";
  document.LAYOUTFORMULAR.menge1.value = "";

  document.LAYOUTFORMULAR.katfeld2.value = "";
  document.LAYOUTFORMULAR.prodfeld2.value = "";
  document.LAYOUTFORMULAR.menge2.value = "";

  document.LAYOUTFORMULAR.katfeld3.value = "";
  document.LAYOUTFORMULAR.prodfeld3.value = "";
  document.LAYOUTFORMULAR.menge3.value = "";

  document.LAYOUTFORMULAR.katfeld4.value = "";
  document.LAYOUTFORMULAR.prodfeld4.value = "";
  document.LAYOUTFORMULAR.menge4.value = "";

}


// ueberprueft ob die angegebene Selectbox ueberhaupt Eintraege enthaelt
function hasOptions (obj)
{
   if (obj!=null && obj.options!=null) { return true; }
   return false;
}


// fuegt eine neue Option zu einer Selectbox hinzu
function addOption(obj,text,value,selected)
{
   if (obj!=null && obj.options!=null)
   {
      obj.options[obj.options.length] = new Option(text, value, false, selected);
   }

}






// Funktion für Selectbox musterbeschreibung, je nach Auswahl wird Selectbox artikelnr neu geladen
function sndReqKATdesc()
{
   var resObjekt;
   resObjekt = ajax_init_object();
   
	 var kategorie = document.getElementById('kategorie').value;
	 
	 kategorie=special_encoding(kategorie);
	
   resObjekt.open('post', 'produktselect.php?beschreib='+kategorie, true);
   
   ajax_requests[ajax_requests.length] = resObjekt;
   
   resObjekt.onreadystatechange = function()
                                  {
                                     if(resObjekt.readyState == 4){
                                        var update = new Array();
                                        
                                        var response = resObjekt.responseText;
                                        response=unescape(response);

                                        var listbox_prod = document.getElementById('produkt');
                                        
                                        // schaut nach ob die Listbox ueberhaupt Optionen hat, wenn nicht, bricht er die Funktion ab
                                        if (!hasOptions(listbox_prod))
                                        {
                                           return;
                                        }

                                        // Jetzt durch alle Optionen von hinten durchgehen und die Option-Elemente loeschen - muss so gemacht werden, weil sich wenn du es von vorn nach hinten machst, ja jedes Mal der Index verschiebt
                                        for (var i=(listbox_prod.options.length-1); i>=0; i--)
                                        {
                                        listbox_prod.options[i] = null;
                                        }

                                        if(response.indexOf('||' != -1)) {
                                           update = response.split('||');

                                           for (var i = 0; i < update.length; ++i)
                                           {
                                               addOption (listbox_prod, update[i], update[i], false);
                                           }
                                        }


                                      }
                                  
                                  
                                  }

   resObjekt.send(null);
   delete resObjekt;

}


// Funktion für Selectbox artikelnr, je nach Auswahl wird Wert in Selectbox musterbeschreibung selektiert
function sndReqProdukt()
{
   var resObjekt;
   resObjekt = ajax_init_object();

   var prod = document.getElementById('produkt').value;
   
   prod=special_encoding(prod);

   resObjekt.open('post', 'kategorieselect.php?produkt='+prod, true);

   ajax_requests[ajax_requests.length] = resObjekt;
   
   resObjekt.onreadystatechange = function()
                                  {
                                     if(resObjekt.readyState == 4){

                                        var response = resObjekt.responseText;
                                        response=unescape(response);

                                        var listbox_k = document.getElementById('kategorie');
                                        
                                        if (!hasOptions(listbox_k)) { return; }

                                           for (var i=0; i<listbox_k.options.length; i++)
                                           {
                                              if (listbox_k.options[i].value == response)
                                              {
                                                 listbox_k.options[i].selected = true;
                                              }
                                           }
                                           
                                     }

                                  }

   resObjekt.send(null);
   delete resObjekt;

}


// Funktion: alle Artikelnummern in Selectbox laden
function sndReqallprod()
{
   var resObjekt;
   resObjekt = ajax_init_object();

   resObjekt.open('post', 'allprod.php', true);

   ajax_requests[ajax_requests.length] = resObjekt;

   resObjekt.onreadystatechange = function()
                                  {
                                     if(resObjekt.readyState == 4){
                                        var update = new Array();
                                        var response = resObjekt.responseText;
                                        response=unescape(response);

                                        var listbox_prod = document.getElementById('produkt');

                                        // schaut nach ob die Listbox ueberhaupt Optionen hat, wenn nicht, bricht er die Funktion ab
                                        if (!hasOptions(listbox_prod))
                                        {
                                           return;
                                        }

                                        // Jetzt durch alle Optionen von hinten durchgehen und die Option-Elemente loeschen - muss so gemacht werden, weil sich wenn du es von vorn nach hinten machst, ja jedes Mal der Index verschiebt
                                        for (var i=(listbox_prod.options.length-1); i>=0; i--)
                                        {
                                        listbox_prod.options[i] = null;
                                        }


                                        if(response.indexOf('||' != -1)) {

                                           update = response.split('||');

                                           for (var i = 0; i < update.length; ++i)
                                           {
                                              addOption (listbox_prod, update[i], update[i], false);
                                           }
                                        }

                                        sndReqProdukt();

                                      }

                                  }

   resObjekt.send(null);
   delete resObjekt;

}


function sndReqAUSWAHLinsert()
{


   var sel_kat = document.getElementById('kategorie').value;
   var sel_prod = document.getElementById('produkt').value;
   var sel_menge = document.getElementById('menge').value;

   var ti = document.LAYOUTFORMULAR.tabindex.value;

   if(ti=="")
   {
   document.LAYOUTFORMULAR.katfeld1.value = sel_kat;
   document.LAYOUTFORMULAR.prodfeld1.value = sel_prod;
   document.LAYOUTFORMULAR.menge1.value = sel_menge;

   document.LAYOUTFORMULAR.tabindex.value = "1";
   }

   if(ti=="1")
   {
   document.LAYOUTFORMULAR.katfeld2.value = sel_kat;
   document.LAYOUTFORMULAR.prodfeld2.value = sel_prod;
   document.LAYOUTFORMULAR.menge2.value = sel_menge;

   document.LAYOUTFORMULAR.tabindex.value = "2";
   }

   if(ti=="2")
   {
   document.LAYOUTFORMULAR.katfeld3.value = sel_kat;
   document.LAYOUTFORMULAR.prodfeld3.value = sel_prod;
   document.LAYOUTFORMULAR.menge3.value = sel_menge;

   document.LAYOUTFORMULAR.tabindex.value = "3";
   }

   if(ti=="3")
   {
   document.LAYOUTFORMULAR.katfeld4.value = sel_kat;
   document.LAYOUTFORMULAR.prodfeld4.value = sel_prod;
   document.LAYOUTFORMULAR.menge4.value = sel_menge;

   document.LAYOUTFORMULAR.tabindex.value = "4";
   }

   if(ti=="4")
   {
   alert("Keine weiteren Spalten zur Verfügung!");
   }


}


function sndReqAUSWAHLclear()
{

   var ti = document.LAYOUTFORMULAR.tabindex.value;

   if(ti=="1")
   {
   document.LAYOUTFORMULAR.katfeld1.value = "";
   document.LAYOUTFORMULAR.prodfeld1.value = "";
   document.LAYOUTFORMULAR.menge1.value = "";

   document.LAYOUTFORMULAR.tabindex.value = "";

   }

   if(ti=="2")
   {
   document.LAYOUTFORMULAR.katfeld2.value = "";
   document.LAYOUTFORMULAR.prodfeld2.value = "";
   document.LAYOUTFORMULAR.menge2.value = "";

   document.LAYOUTFORMULAR.tabindex.value = "1";

   }

   if(ti=="3")
   {
   document.LAYOUTFORMULAR.katfeld3.value = "";
   document.LAYOUTFORMULAR.prodfeld3.value = "";
   document.LAYOUTFORMULAR.menge3.value = "";

   document.LAYOUTFORMULAR.tabindex.value = "2";

   }

   if(ti=="4")
   {
   document.LAYOUTFORMULAR.katfeld4.value = "";
   document.LAYOUTFORMULAR.prodfeld4.value = "";
   document.LAYOUTFORMULAR.menge4.value = "";

   document.LAYOUTFORMULAR.tabindex.value = "3";

   }


}



// Prueft die Felder für die Erstellung der Versandanweisung
function chkFormforVA()
{

   if((document.LAYOUTFORMULAR.apname.value == "") && (document.LAYOUTFORMULAR.firma.value == "")) {
      alert("Bitte Namen oder Firma eingeben!");
      document.LAYOUTFORMULAR.apname.focus();
   return false;
   }
   
   if(document.LAYOUTFORMULAR.strasse.value == "") {
      alert("Bitte Strasse eingeben!");
      document.LAYOUTFORMULAR.strasse.focus();
   return false;
   }

   if(document.LAYOUTFORMULAR.plz.value == "") {
      alert("Bitte PLZ eingeben!");
      document.LAYOUTFORMULAR.plz.focus();
   return false;
   }

   if(document.LAYOUTFORMULAR.ort.value == "") {
      alert("Bitte Ort eingeben!");
      document.LAYOUTFORMULAR.ort.focus();
   return false;
   }

   var chk_kat1 = document.LAYOUTFORMULAR.katfeld1.value;
   var chk_prod1 = document.LAYOUTFORMULAR.prodfeld1.value;
   var chk_menge1 = document.LAYOUTFORMULAR.menge1.value;

   if((chk_kat1 == "") || (chk_prod1 == "") || (chk_menge1 == "")){
      alert("Bitte wählen Sie mindestens ein Produkt aus!");
   return false;
   }

}


// Prueft die Felder für die Erstellung der Versandanweisung
function chkEmail()
{

   if(document.LAYOUTFORMULAR.email.value == "") {
     alert("Bitte Ihre E-Mail-Adresse eingeben!");
     document.LAYOUTFORMULAR.email.focus();
     return false;
   }
   if(document.LAYOUTFORMULAR.email.value.indexOf('@') == -1) {
     alert("Keine gültige E-Mail-Adresse!");
     document.LAYOUTFORMULAR.email.focus();
     return false;
   }

}


// Funktion: Erstellen und Anzeigen der Versandanweisung
function sndReqVAload()
{
   if(chkFormforVA()!=false)
   {
   var resObjekt;
   resObjekt = ajax_init_object();

	 var var1 = document.LAYOUTFORMULAR.apname.value;	
	 var var2 = document.LAYOUTFORMULAR.firma.value;
	 var var3 = document.LAYOUTFORMULAR.strasse.value;
	 var var4 = document.LAYOUTFORMULAR.plz.value;
	 var var5 = document.LAYOUTFORMULAR.ort.value;
	 var var6 = document.LAYOUTFORMULAR.email.value;

   var var7 = document.LAYOUTFORMULAR.katfeld1.value;	
	 var var8 = document.LAYOUTFORMULAR.prodfeld1.value;
	 var var9 = document.LAYOUTFORMULAR.menge1.value;
	
   var var10 = document.LAYOUTFORMULAR.katfeld2.value;	
	 var var11 = document.LAYOUTFORMULAR.prodfeld2.value;
	 var var12 = document.LAYOUTFORMULAR.menge2.value;
	
   var var13 = document.LAYOUTFORMULAR.katfeld3.value;	
	 var var14 = document.LAYOUTFORMULAR.prodfeld3.value;
	 var var15 = document.LAYOUTFORMULAR.menge3.value;
	
   var var16 = document.LAYOUTFORMULAR.katfeld4.value;	
	 var var17 = document.LAYOUTFORMULAR.prodfeld4.value;
	 var var18 = document.LAYOUTFORMULAR.menge4.value;


   var vaform = var1+'||'+var2+'||'+var3+'||'+var4+'||'+var5+'||'+var6+'||'+var7+'||'+var8+'||'+var9+'||'+var10+'||'+var11+'||'+var12+'||'+var13+'||'+var14+'||'+var15+'||'+var16+'||'+var17+'||'+var18;

   vaform=special_encoding(vaform);

   resObjekt.open('post', 'vaviewload.php?vaform='+vaform, true);

   ajax_requests[ajax_requests.length] = resObjekt;

   resObjekt.onreadystatechange = function()
                                  {
                                     if(resObjekt.readyState == 4){

                                        var vaform="";
                                        var response = resObjekt.responseText;
                                        var formid="";

                                        response=unescape(response);

                                        
                                        formid=response;
                                        document.LAYOUTFORMULAR.vaid.value = response;

                                        var vapage = window.open("vashow.php?vaid="+formid, "Versandanweisung", "width=800,height=1000,scrollbars=yes");
                                        vapage.focus();
                                     }


                                  }


   resObjekt.send(null);
   delete resObjekt;

   }

}



// Funktion prüft ob Dateien zum Senden vorhanden sind
function chkFiles()
{
   var resObjekt;
   resObjekt = ajax_init_object();
 	
	 var meldung = "Bitte erstellen Sie zuerst die Versandanweisung!";

   var vanr = document.LAYOUTFORMULAR.vaid.value;

   resObjekt.open('post', 'filecheck.php?vaid='+vanr, true);

   ajax_requests[ajax_requests.length] = resObjekt;

   resObjekt.onreadystatechange = function()
                                  {
                                     if(resObjekt.readyState == 4){

                                        var response = resObjekt.responseText;

                                        if(response=="false")
                                        {

                                        alert(meldung);

                                        return false;
                                        }

                                        else
                                        {
                                        return true;
                                        }

                                     }


                                  }


   resObjekt.send(null);
   delete resObjekt;


}



// Funktion prüft ob Dateien zum Senden vorhanden sind
function chkFilesAndSend()
{
   if((chkEmail()!=false) && (chkFiles()!=false))
   {
   var resObjekt;
   resObjekt = ajax_init_object();

   var vanr = document.LAYOUTFORMULAR.vaid.value;
   var email = document.LAYOUTFORMULAR.email.value;

   resObjekt.open('post', 'vasend.php?vaid='+vanr+'&email='+email, true);

   ajax_requests[ajax_requests.length] = resObjekt;

   resObjekt.onreadystatechange = function()
                                  {
                                     if(resObjekt.readyState == 4){

                                        var response = resObjekt.responseText;

                                        if(response=="true")
                                        {
                                        alert("Ihre Versandanweisung wurde erfolgreich versendet. Sie erhalten Ihr Muster per E-Mail.");
                                        clearForm();
                                        }

                                        else
                                        {
                                        alert("Fehler beim Senden!");

                                        return false;
                                        }


                                     }


                                  }


   resObjekt.send(null);
   delete resObjekt;
   
   }

}


function special_encoding(encstring) {

   var unreserved = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.~";
   var hexnum = "0123456789ABCDEFabcdef";

   var orig = encstring;
   var enc = "";
   for (var i = 0; i < orig.length; i++ ) {
       var val = orig.charAt(i);
       // character auf reservierung prüfen:
       if (unreserved.indexOf(val) != -1) {
         enc = enc + val;
       } else {
          // position des character in ASCII/Unicode tabelle:
          var valCode = val.charCodeAt(0);
          // wenn position größer 255, dann nicht ASCII sondern Unicode:
          if (valCode > 255) {
            alert("Das Unicode-Zeichen " + val + " kann nicht URL-kodiert werden.\n" + "Ein Leerzeichen (%20) wird statt dessen eingefügt.");
            enc = enc + "%20";
          } else {
          enc = enc + "%" + hexnum.charAt(Math.floor(valCode/16)) + hexnum.charAt(valCode - (Math.floor(valCode/16) * 16));
          }
       }
   }
   return enc;
}

