

function addToWK(artikelnr, menge, id_afr, felgenartikelnr, reifenartikelnr, bfelgenartikel, bkomplettradartikel, id_kfz, wk_aktionskundennr, wk_awstnr)
{
   if (typeof(id_kfz) == 'undefined')              id_kfz = '-1';
   if (typeof(bkomplettradartikel) == 'undefined') bkomplettradartikel = false;
   if (typeof(bfelgenartikel) == 'undefined')      bfelgenartikel = false;
   if (typeof(reifenartikelnr) == 'undefined')     reifenartikelnr = '';
   if (typeof(felgenartikelnr) == 'undefined')     felgenartikelnr = '';
   if (typeof(id_afr) == 'undefined')              id_afr = '';
   if (typeof(wk_aktionskundennr) == 'undefined')  wk_aktionskundennr = '';
   if (typeof(wk_awstnr) == 'undefined')  		   wk_awstnr = '';

   addTo('wk', artikelnr, menge, id_afr, felgenartikelnr, reifenartikelnr, bfelgenartikel, bkomplettradartikel, id_kfz, wk_aktionskundennr, wk_awstnr);
}
function addToMZ(artikelnr, id_afr, felgenartikelnr, reifenartikelnr, bfelgenartikel, bkomplettradartikel, id_kfz, wk_awstnr)
{
   if (typeof(id_kfz) == 'undefined')              id_kfz = '-1';
   if (typeof(bkomplettradartikel) == 'undefined') bkomplettradartikel = false;
   if (typeof(bfelgenartikel) == 'undefined')      bfelgenartikel = false;
   if (typeof(reifenartikelnr) == 'undefined')     reifenartikelnr = '';
   if (typeof(felgenartikelnr) == 'undefined')     felgenartikelnr = '';
   if (typeof(id_afr) == 'undefined')              id_afr = '';
   if (typeof(wk_awstnr) == 'undefined')           wk_awstnr = '';

   addTo('mz', artikelnr, 1, id_afr, felgenartikelnr, reifenartikelnr, bfelgenartikel, bkomplettradartikel, id_kfz, '', wk_awstnr);
}

function addTo(to, artikelnr, menge, id_afr, felgenartikelnr, reifenartikelnr, bfelgenartikel, bkomplettradartikel, id_kfz, wk_aktionskundennr, wk_awstnr)
{
     var f = document.frmWk;

     if (!isNumeric(menge))
        {alert("Bitte gültige Menge eingeben");return;}

     f.wk_artikelnr.value = artikelnr;
     f.wk_menge.value = menge;
     f.wk_felgenartikelnr.value = felgenartikelnr;
     f.wk_reifenartikelnr.value = reifenartikelnr;
     f.wk_id_afr.value = id_afr;
     f.wk_felgenartikel.value = bfelgenartikel;
     f.wk_komplettradartikel.value = bkomplettradartikel;
     f.wk_id_kfz.value = id_kfz;
     f.wk_aktionskundennr.value = wk_aktionskundennr;
     f.wk_awstnr.value = wk_awstnr;
     f.todo.value = 'add';
     f.hdl.value = to;
     f.action = removeHdl(removeTodo(document.location.href));
     var url= '/inc/wk-mz/addto.jsp?wk_artikelnr=' + f.wk_artikelnr.value
 	+ '&wk_menge=' + f.wk_menge.value + '&wk_felgenartikelnr=' + f.wk_felgenartikelnr.value
 	+ '&wk_reifenartikelnr=' + f.wk_reifenartikelnr.value + '&wk_id_afr=' + f.wk_id_afr.value
 	+ '&wk_felgenartikel=' + f.wk_felgenartikel.value + '&wk_komplettradartikel=' + f.wk_komplettradartikel.value
 	+ '&wk_id_kfz=' + f.wk_id_kfz.value + '&wk_aktionskundennr=' + f.wk_aktionskundennr.value
 	+ '&wk_awstnr=' + f.wk_awstnr.value
 	+ '&todo=' + f.todo.value + '&hdl=' + f.hdl.value;

      if(to == 'wk')
      {
      	  sndReq(url, handleAddToWK);
    	  url = '/inc/wk-mz/wkchange.jsp?wk_artikelnr=' + f.wk_artikelnr.value;
    	  sndReq(url, handleWkChange);
      } else {
      	  sndReq(url, handleAddToMZ);
      }
}
function handleAddToWK()
{
	if(http.readyState == 4){
		var response = http.responseText;
		SlideWK("2");
   	}
}
function handleAddToMZ()
{
	if(http.readyState == 4){
		var response = http.responseText;
		SlideMZ("2");
   	}
}

function handleWkChange()
{
	 if(http.readyState == 4)
	{
		var response = http.responseText;
		var layer = document.getElementById('layer_wkchange');
		if(layer)
		{
			document.getElementById('wkchangeBox').innerHTML = response;
			layer.style.display = 'block';
			window.location.href='#ankerWKLayer';
		}
	}
}

function logout(action)
{
  var f = document.frmLog;
  f.todo.value = "logout";
  f.hdl.value  = "logout";
  if(action != "") {
  	f.action     = action;
  } else {
  	f.action = removeHdl(removeTodo(document.location.href));
  }
  f.submit();
}
function removeHdl(s)
{
  s2 = s.replace(/&hdl=.+?&/, "&"); //? damit nicht greedy
  s2 = s2.replace(/\?hdl=.+?&/, "?");
  return s2;
}
function removeTodo(s)
{
  s2 = s.replace(/&todo=.+?&/, "&"); //? damit nicht greedy
  s2 = s2.replace(/\?todo=.+?&/, "?");
  return s2;
}

//================================================================
//================================================================
//================================================================


function checkADACNr(strNr)
{
	if(isNumeric(strNr) == false) { return false; }
	if(strNr.length != 9) { return false; }

	var iGewicht = 2;
	var iErg = 0;

	//Nr von hinten abarbeiten, aber ohne letzte ziffer, diese ist pr?fziffer:
	for(i = 7; i >= 0; i--) {
		//Einzelne Zahlen gewichten: 2, 3, 4, 5, 6, 7, 2, 3
		if(iGewicht == 8) { iGewicht = 2; }
		iErg = iErg + (strNr.substring(i,i+1) * iGewicht);
		iGewicht++;
	}
	//11 - Modulo 11 muss gleich der Pr?fziffer sein:
	iErg = 11 - iErg % 11;
	if(iErg >= 10) {
		iErg = 0;
	}
	if(iErg != strNr.substring(8,9)) { return false; }
	return true;
}
//================================================================

function checkSum(cardnumber)
{
    var gewicht = "121212121212121212";
    var len = cardnumber.length;
    if(len != 19) return false;

    var i = 0;
    var sum = 0;
    var singleval = 0;
    var rest = 0;
    var pruef = 0;
    while (i < 18) {
    	singleval = cardnumber.substring(i, i+1) * gewicht.substring(i, i+1);
    	sum = sum + singleval;
    	if(singleval > 9) {
    		sum = sum -9;
    	}
    	i = i + 1;
    }
    rest = sum % 10;
    if(rest == 0) {
    	rest = 10;
    }
    pruef = 10-rest;
    return (pruef == cardnumber.substring(18, 19));
}

//================================================================
/** Ermittelt die Value eines Radio-Feldes */

function getRadioWert(rObj)
{
    if(isNaN(rObj.length)) return rObj.value;
    for (var i=0; i<rObj.length; i++) if (rObj[i].checked) return rObj[i].value;
    return "";
}

/** oeffnet ein Popup-Fesnter */


  function popup(strUrl, strName, nWidth, nHeight, strFeature)
  {
    // Korrekturfaktor Fensterraender
    dX = 5;
    dY = 30;

    if (-1 == nWidth)
       nWidth = screen.availWidth;

    if (-1 == nHeight)
       nHeight = screen.availHeight;

    if ("" != strFeature)
       strFeature += ", ";

    strFeature += "width=" + nWidth + ", height=" + nHeight;

    wnd = window.open(strUrl, strName, strFeature);
    wnd.moveTo( ((screen.availWidth - nWidth) / 2) - dX, ((screen.availHeight - nHeight) / 2) - dY );
    //if (arguments.length == 6)
    //   wnd.scrollbars.visible = arguments[5];


    wnd.focus();
  }

//================================================================
/** Prueft ob das Datum korrekt ist, FormatMode ist optional */
function isDate(sDatum,FormatMode)
{
   if (FormatMode!=0) {FormatMode=1}
   if (sDatum.indexOf(".")==-1) {return false};
   var ArrayDate = sDatum.split(".");
   if ((ArrayDate.length!=3) || (isNaN(ArrayDate[0])) || (ArrayDate[0]=="") || (isNaN(ArrayDate[1])) || (ArrayDate[1]=="") || (isNaN(ArrayDate[2])) || (ArrayDate[2]=="")) {return false};
   var daysInMonth = new Array(0,31,29,31,30,31,30,31,31,30,31,30,31);
   if ((parseInt(ArrayDate[1 - FormatMode],10)<1) || (parseInt(ArrayDate[1 - FormatMode],10)>daysInMonth[parseInt(ArrayDate[0 + FormatMode],10)])) {return false};
   if ((parseInt(ArrayDate[0 + FormatMode],10)==2) && (parseInt(ArrayDate[1 - FormatMode],10)>GetDaysInFebruary(parseInt(ArrayDate[2],10)))) {return false};
   if ((parseInt(ArrayDate[0 + FormatMode],10)<1) || (parseInt(ArrayDate[0 + FormatMode],10)>12)) {return false};
   //Jahreszahl muss > 1900 sein:
   if (parseInt(ArrayDate[2], 10) < 1900) {return false};
   return true;
}
//================================================================
/** Liefert die Anzahl der Tage im Februar */
function GetDaysInFebruary(year) {return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 )}

//================================================================
/** Selektiert aus einer Radiogroup den angegebenen Value */
function selectRadioByValue(radio, value)
{
   i = 0;
   while(i < radio.length)
   {
      if(radio[i].value == value)
      {
         radio[i].checked = true;
         return true;
      }
      i++;
   }
   return false;
}

//================================================================
/** Selektiert aus einer ComboBox den angegebenen Value */
function selectCboByValue(cbo, value)
{
   i = 0;
   while(i < cbo.options.length)
   {
      if(cbo.options[i].value == value)
      {
         cbo.options[i].selected = true;
         return true;
      }
      i++;
   }
   return false;
}
//================================================================
/** Selektiert aus einer ComboBox den angegebenen Value */
function selectCboByText(cbo, txt)
{
   i = 0;
   while(i < cbo.options.length)
   {
      if(cbo.options[i].text == txt)
      {
         cbo.options[i].selected = true;
         return true;
      }
      i++;
   }
   return false;
}

//================================================================
function checkSonderzeichen( strSonderzeichen, strCheck)
{
  //pr?ft, ob in String strCheck eines der Sonderzeichen aus strSonderzeichen vorkommt:
  var b = true;
  var i = 0;
  while(i<strCheck.length) {
     var c = strCheck.charAt(i);
     if(strSonderzeichen.indexOf(c) != -1) {
       b = false;
     }
     i++;
  }
  return b;
}
//================================================================
function isEMail(str)
{
	var a = false;
	var res = false;

	if(typeof(RegExp) == 'function')
	{
		// RegEx funktionieren erst ab JS 1.2
		var b = new RegExp('abc');
		if(b.test('abc') == true){a = true;}
	}

	if(a == true)
	{
		reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
			'(\\@)([a-zA-Z0-9\\-\\.]+)([a-zA-Z0-9\\-]{1})'+	// letztes Zeichen vor der TLD darf kein Punkt sein.
			'(\\.)([a-zA-Z]{2,4})$');
		res = (reg.test(str));
	}
	else
	{
		res = (str.search('@') >= 1 &&
			str.lastIndexOf('.') > str.search('@') &&
			str.lastIndexOf('.') >= str.length-5)
	}
	return(res);
}
//================================================================
function isTelefonNr(str) // by [SD]
{

 var a = false;
 var res = false;
 if(typeof(RegExp) == 'function')
 {
  var b = new RegExp('abc');
  if(b.test('abc') == true){a = true;}
 }
 if(a == true)
 {
  reg = new RegExp('^[0-9]+[-/0-9]?[0-9]+$');
  res = (reg.test(str));
 }
 else
 {
   //res = (str.search('@') >= 1 &&
   //      str.lastIndexOf('.') > str.search('@') &&
   //      str.lastIndexOf('.') >= str.length-5)
   res = true;
 }
 return(res);
}
//================================================================
function isNumeric(str) // by [SD]
{
  var str2 = String(str).replace(/^\s*|\s*$/g,"");
  if(str2.length == 0) return false;
  return (Number(str)==str);
}
//================================================================
function isTooShort(str,minimum) // by [SD]
{
  return (str.length<minimum);
}
//================================================================
function NumandCharOnly(a_oEvent)
{
    var iKeyCode;
    if (!document.all) {
        iKeyCode = a_oEvent.which; //Firefox
    } else {
        iKeyCode = a_oEvent.keyCode; //IE
    }

  // nur Steuerzeichen und Zahlen zulassen
  if (iKeyCode == 0					//alle m?glichen Tasten zur Navigation (Tab, Pfeiltasten,...)
      ||   iKeyCode == 8                                 // BackSpace
      ||   iKeyCode == 9                                 // TAB
      ||   iKeyCode == 13                                // ENTER
      ||   iKeyCode == 37                                // Left
      ||   iKeyCode == 39                                // Right
      ||   iKeyCode == 46                                // Entf
      ||   iKeyCode == 109                               // Num -
      ||   iKeyCode == 189                               // -
      || ( iKeyCode > 47 && iKeyCode < 58 )      // 0..9 Tastatur
      || ( iKeyCode > 64 && iKeyCode < 91 )      // Buchstaben
      || ( iKeyCode > 95 && iKeyCode < 106 ) )   // 0..9 NumBlock
  {
       // auch die nicht zulassen, wenn mit shift, alt, ctrl
       if ( !iKeyCode.shiftKey && !iKeyCode.altKey && !iKeyCode.ctrlKey ) {
         return true;
       }
  }
  return false;   // Eingabe ignorieren
}
//================================================================
function NumOnly(a_oEvent)
{
    var iKeyCode;
    if (!document.all) {
        iKeyCode = a_oEvent.which; //Firefox
    } else {
        iKeyCode = a_oEvent.keyCode; //IE
    }

  if (iKeyCode == 0					//alle m?glichen Tasten zur Navigation (Tab, Pfeiltasten,...)
    ||   iKeyCode == 8                                 // BackSpace
    ||   iKeyCode == 9                                     // TAB
    ||   iKeyCode == 13                                    // ENTER
    //||   iKeyCode == 37                                  // Left
    //||   iKeyCode == 39                                  // Right
    //||   iKeyCode == 46                                  // Entf
    || ( iKeyCode > 47 && iKeyCode < 58 )      // 0..9 Tastatur
    //|| ( iKeyCode > 95 && iKeyCode < 106 )    // 0..9 NumBlock
    )
    {
       // auch die nicht zulassen, wenn mit shift, alt, ctrl
       if ( !iKeyCode.shiftKey && !iKeyCode.altKey && !iKeyCode.ctrlKey ) {
         return true;
       }
    }

    return false; // Eingabe ignorieren
}
//================================================================
function Trim(TRIM_VALUE)
{
  if(TRIM_VALUE.length < 1)
    return"";

  TRIM_VALUE = RTrim(TRIM_VALUE);
  TRIM_VALUE = LTrim(TRIM_VALUE);
  return TRIM_VALUE;
}
//================================================================
function RTrim(VALUE)
{
  var w_space = String.fromCharCode(32);
  var v_length = VALUE.length;
  var strTemp = "";
  if(v_length < 0){
    return"";
  }
  var iTemp = v_length -1;

  while(iTemp > -1){
    if(VALUE.charAt(iTemp) == w_space){}
    else{
      strTemp = VALUE.substring(0,iTemp +1);
      break;
    }
    iTemp = iTemp-1;
  } //End While

  return strTemp;

} //End Function
//================================================================
function LTrim(VALUE)
{
  var w_space = String.fromCharCode(32);
  if(v_length < 1){
    return"";
  }
  var v_length = VALUE.length;
  var strTemp = "";

  var iTemp = 0;

  while(iTemp < v_length){
    if(VALUE.charAt(iTemp) == w_space){}
    else{
      strTemp = VALUE.substring(iTemp,v_length);
      break;
    }
    iTemp = iTemp + 1;
  } //End While

  return strTemp;
} //End Function
//******************************************************************************
function TelefonOnly(a_oEvent)
{
  var iKeyCode;
  if (!document.all)
      iKeyCode = a_oEvent.which;
  else iKeyCode = a_oEvent.keyCode;
  //alert(window.event.keyCode);
  // nur Steuerzeichen und Zahlen zulassen
  if ( iKeyCode == 8                                     // BackSpace
      ||   iKeyCode == 9                                     // TAB
      ||   iKeyCode == 45                                    // -
      ||   iKeyCode == 47                                    // /
      ||   iKeyCode == 40                                    // (
      ||   iKeyCode == 41                                    // )
      ||   iKeyCode == 43                                    // +
      ||   iKeyCode == 13                                    // ENTER
      ||   iKeyCode == 37                                    // Left
      ||   iKeyCode == 39                                    // Right
      ||   iKeyCode == 46                                    // Entf
      || ( iKeyCode > 47 && iKeyCode < 58 )      // 0..9 Tastatur
      //|| ( iKeyCode > 95 && iKeyCode < 106 )    // 0..9 NumBlock
      )
  {
     // auch die nicht zulassen, wenn mit shift, alt, ctrl
     if ( !a_oEvent.shiftKey && !a_oEvent.altKey && !a_oEvent.ctrlKey || a_oEvent.keyCode == 47
          || iKeyCode == 40 || iKeyCode == 41)
          return true;
  }

  return false;   // eingabe ignorieren
}
//******************************************************************************

function lpad(s, n, c)
{
  while (s.length < n)
    s = c + s;
  return s;
}
//******************************************************************************


