// VARIABLEN

var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzöäüß"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÜ"
var defaultEmptyOK = false

// whitespace characters
var whitespace = " \t\n\r";

function showNummer(nr){
	alert("Die aktuelle Hotline-Nummer ist : "+nr);
}

function chkRechner()
{
  if (! checkStandards(document.forms.frmRechner)) return (false);
  return true;
}

function reCalcSumme(){

  var lizenz="Ihre Lizenzwahl : IOS2000 ";
  var gp=0;
  
	var pIOS1=79;
	var pIOS2=159;
	var pIOS3=69;

  var clD1=1;
  var clD2=10;
  var clD3=99;

	var pB1=39;
	var pB2=3;

	var pS1=0;
	var pS2=35;
	var pS3=55;
	var pEP=39;
	var pCL1=3;
	var pCL2=3;
	var pK1=39;
	var pW1=9;
	var pW2=29;
	var pW3=19;
	var pW4=19;
	var pW5=39;

	var pW6=59;
	var pW7=19;
	var pW8=19;

	var pF1=9;
  var pL1=19;
  var pL2=19;
  var pSE=19;
  var pPPS=49;
  var pH2=39;         // cloud								
	var pH2m=15;								
  var pZ1=9;
  var pZ2=9;
  var cl=1;
  var eg=0;


  var c1=39;
  var c2=49;
  
        
	var Netto=pIOS1;
	if(getEl("base")){
    getEl("base").innerHTML=format2(Netto);
  }

  getEl("egw5").innerHTML="Einmalige Einrichtungsgebühr " + format2(390) + " €*";
  getEl("egw6").innerHTML="Einmalige Einrichtungsgebühr " + format2(390) + " €*";
  getEl("egw7").innerHTML="Einmalige Einrichtungsgebühr " + format2(150) + " €*";
  getEl("egw8").innerHTML="Einmalige Einrichtungsgebühr " + format2(1290) + " €*";

  getEl("sB2").disabled=false;
  	
  var filialen = eval(document.frmRechner.SE.value);

    // GP-Umsteiger 
  	if (document.frmRechner.D3.checked) {
		  Netto = pIOS3;
	 	  getEl("sB1").value = 0;
	 	  document.frmRechner.D1.checked=false;
	 	  document.frmRechner.D2.checked=false;
	 	  document.frmRechner.K1.checked=true;
      pK1=0;	 	  
      cl=clD3; 
      lizenz += " BASIS-VERSION für GP-Umsteiger ";
		}

	if (document.frmRechner.D1.checked) {
      Netto = pIOS1;
	 	  document.frmRechner.D2.checked=false;
	 	  getEl("sB2").value = 0;
      var uB1=parseInt(document.frmRechner.sB1.value);
	 	  if (uB1 > 0){
    		  Netto=Netto + (uB1 * pB1);
       }
      cl=eval(clD1 + uB1); 
      lizenz += " STARTER VERSION";
	 	  document.frmRechner.sB1.value=uB1;
		}

	if (document.frmRechner.D2.checked) {
		  Netto = pIOS2;
	 	  getEl("sB1").value = 0;
	 	  document.frmRechner.D1.checked=false;
      var uB2=parseInt(document.frmRechner.sB2.value);
	 	  if (uB2 > 0){
    		  Netto=Netto + (uB2 * pB2);
       }
      cl=eval(clD2 + uB2); 
      lizenz += " BASIS-VERSION";
	 	  document.frmRechner.sB2.value=uB2;
		}


  getEl("base").innerHTML=format2(Netto);

	if (document.frmRechner.P1.checked) {
		  Netto=Netto + pPPS;
      eg = eg + 300;
		}

  if (document.frmRechner.H2.checked){
		  Netto = Netto + pH2;
      eg = eg + 95;
      getEl("sB2").disabled=true;
      lizenz += ", zzgl. 95,- €* Hosting-Einrichtungsgebühr";
	  }		

	if (document.frmRechner.K1.checked) {
      Netto=Netto + pK1;
      cl=cl+1;
      lizenz += ", Online-Kasse";
		}

    lizenz += ", "+cl+" Benutzer";

	if (document.frmRechner.W5.checked) {
      document.frmRechner.W4.checked=false;
      document.frmRechner.W6.checked=false;
		  Netto=Netto + pW5;
      eg = eg + 390;
      lizenz += ", zzgl. 390,- €* einmalige Shop-Einrichtungsgebühr (Standarddesign)";
		}


	if (document.frmRechner.W6.checked) {
      document.frmRechner.W4.checked=false;
      document.frmRechner.W5.checked=false;
      eg = eg + 390;
      lizenz += ", zzgl. 390,- €* einmalige Shop-Einrichtungsgebühr (Standarddesign)";
		  Netto=Netto + pW6;
		}

	if (document.frmRechner.W7.checked) {
      if (!document.frmRechner.W5.checked && !document.frmRechner.W6.checked){
        alert("Wählen Sie bitte vorher eine Shop-Option aus !");
        document.frmRechner.W7.checked=false;
      }else{
  		  Netto=Netto + pW7;
        eg = eg + 150;
        lizenz += ", zzgl. 150,- €* B2B-Einrichtungsgebühr";
      }
		}

	if (document.frmRechner.W8.checked) {
      if (!document.frmRechner.W5.checked && !document.frmRechner.W6.checked){
        alert("Wählen Sie bitte vorher eine Shop-Option aus !");
        document.frmRechner.W8.checked=false;
      }else{
	 	    Netto=Netto + pW8;
        eg = eg + 1290;
        lizenz += ", zzgl. 1290,- €* OCI-Einrichtungsgebühr";
  		}
		}


	if (document.frmRechner.W4.checked) {
      //document.frmRechner.W3.checked=false;
      document.frmRechner.W5.checked=false;
		  Netto=Netto + pW4;
		}

	if (document.frmRechner.F1.checked) {
		Netto=Netto + pF1;
		}

  	if (document.frmRechner.L1.checked) {
		  Netto=Netto + pL1;
		}

  	if (document.frmRechner.L2.checked) {
		  Netto=Netto + pL2;
		}

  	if (document.frmRechner.Z1.checked) {
		  Netto=Netto + pZ1;
		}

  	if (document.frmRechner.Z2.checked) {
		  Netto=Netto + pZ2;
		}

  if (filialen > 0){
    Netto = Netto + (filialen * pSE);
    lizenz += ", "+filialen+" Filial(en)";
    if (filialen >= cl){
      alert("Achten Sie darauf, dass die Benutzer in den Filialen auch mit lizensiert werden müssen !");            
    }
  }


  var Brutto=kaufm(Netto*1.16);
  document.frmRechner.netto.value=format2(Netto);
	document.frmRechner.brutto.value=format2(Brutto);

  getEl("lizenz").innerHTML=lizenz;
  getEl("einrgeb").innerHTML=format2(eg);

}







function reCalcDIALOG(){

	var pD1=79;
	var pD2=159;
  var clD1=1;
  var clD2=10;

	var pB1=39;
	var pB2=3;
  var cl=0;

	var pK1=39;
	var pW3=19;
  var pL2=19;
	var pW5=39;
	var pW6=59;

	var pF1=9;
  var pSE=10;
 
	var Netto=0;

  getEl("pD1").innerHTML=format2(pD1)+" *";
  getEl("pD2").innerHTML=format2(pD2);
  getEl("pB1").innerHTML=format2(pB1);
  getEl("pB2").innerHTML=format2(pB2);
  getEl("pK1").innerHTML=format2(pK1);
  getEl("pW3").innerHTML=format2(pW3);
  getEl("pL2").innerHTML=format2(pL2);

  getEl("pW5").innerHTML=format2(pW5);
  getEl("pW6").innerHTML=format2(pW6);

  getEl("pF1").innerHTML=format2(pF1);
  getEl("pSE").innerHTML=format2(pSE);

  var lizenz="Ihre Lizenzwahl : DIALOG ";
  
  
	if (document.frmRechner.D1.checked) {
      Netto=Netto + pD1;
	 	  document.frmRechner.D2.checked=false;
	 	  getEl("sB2").value = 0;
      var uB1=parseInt(document.frmRechner.sB1.value);
	 	  if (uB1 > 0){
    		  Netto=Netto + (uB1 * pB1);
       }
      cl=eval(clD1 + uB1); 
      lizenz += " STARTER VERSION";
	 	  document.frmRechner.sB1.value=uB1;
		}

	if (document.frmRechner.D2.checked) {
		  Netto=Netto + pD2;
	 	  getEl("sB1").value = 0;
	 	  document.frmRechner.D1.checked=false;
      var uB2=parseInt(document.frmRechner.sB2.value);
	 	  if (uB2 > 0){
    		  Netto=Netto + (uB2 * pB2);
       }
      cl=eval(clD2 + uB2); 
      lizenz += " BASIS-VERSION";
	 	  document.frmRechner.sB2.value=uB2;
		}

  getEl("base").innerHTML=format2(Netto);


  // optionen ....
  
	if (document.frmRechner.K1.checked) {
      Netto=Netto + pK1;
      cl=cl+1;
      lizenz += ", Online-Kasse";
		}

    lizenz += ", "+cl+" Benutzer";


  if (document.frmRechner.W3.checked) {
		  Netto=Netto + pW3;
      lizenz += ", HESS-Online Shop";
		}

	if (document.frmRechner.W5.checked) {
      document.frmRechner.W6.checked=false;
		  Netto=Netto + pW5;
      lizenz += ", OS-Commerce ohne Hosting";
		}

	if (document.frmRechner.W6.checked) {
      document.frmRechner.W5.checked=false;
		  Netto=Netto + pW6;
      lizenz += ", OS-Commerce mit Hosting";
		}

	if (document.frmRechner.L2.checked) {
		Netto=Netto + pL2;
    lizenz += ", Läger-Option";
	}

	if (document.frmRechner.F1.checked) {
		Netto=Netto + pF1;
    lizenz += ", DATEV Schnittstelle";
	}

  var uSE=parseInt(document.frmRechner.sSE.value);
	if (uSE > 0) {
		  Netto=Netto + (uSE*pSE);
      lizenz += ", "+uSE+" Filiale(n)";
		}
    
  getEl("lizenz").innerHTML=lizenz;
	var Brutto=kaufm(Netto*1.19);
  document.frmRechner.netto.value=format2(Netto);
	document.frmRechner.brutto.value=format2(Brutto);

}



/* ---------- Ergebnisse mit 2 NachKOMMAstellen anzeigen ---------- */
function format2(zzz){
  var erg="";   
  var sss;
  var ks;   // Kommastelle
  if( zzz==0 || isNaN(zzz) ){return erg;}

  if(zzz > 0){
    zzz=kaufm(zzz);
    sss=String(zzz);
    sss=sss.replace(/\./,",");        // Punkt gegen Komma tauschen
    ks= sss.indexOf(",");
    if(ks<0){erg=sss+",00";}
    else{
      if(2==(sss.length - ks)){erg=sss+"0";}
      else{erg=sss;}
    }
  }
  else{return zzz;} // wenn negativ
  return erg;
}


// Prüfung der 3 Standardfelder AGB, PLZ und ID
function checkStandards(frm){

  if (isEmpty(frm.plz.value)){
		alert("Geben Sie bitte Ihre Postleitzahl ein !");
	    return (false);
	}

  if (! isIntegerInRange(frm.plz.value,1001,99999,false)){
	alert("Falsche PLZ eingegeben !");
	return (false);
	}

  if (! frm.agb.checked){
    alert("Sie müssen unsere AGB's akzeptieren !");
    return (false);
  }

  return (true);	
  	
}


function chkRegister()
{
  var frx = document.frmRegister;

  if (! checkStandards(frx)) return (false);

  if (!isEmail(frx.email.value)){
    alert("Geben Sie bitte eine gültige Emailadresse ein.");
    return (false);
  }

  return true;

}

function chkDownload()
{
  if (! checkStandards(document.forms.frmDownload)) return (false);
  return true;
}



/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////



function openNewWindow(url, name, parameter) {
		window.open(url,name,parameter);
	}

	function confirmDeleteData() {
		var cBox;
		cBox = confirm("Sind Sie sicher?");
		if (cBox) return true;
		else return false;
	}


function chkAnfrageForm()
{

  if (document.forms.frmAnfrage.name.value == ""){
    alert("Geben Sie bitte Ihren Namen ein !");
    return (false);
  }

  if (document.forms.frmAnfrage.firma.value == ""){
    alert("Geben Sie bitte Ihre Firma ein !");
    return (false);
  }

  if (document.forms.frmAnfrage.plz.value == ""){
    alert("Geben Sie bitte Ihre Postleitzahl ein !");
    return (false);
  }

  if (document.forms.frmAnfrage.ort.value == ""){
    alert("Geben Sie bitte Ihren Wohnort ein !");
    return (false);
  }

  if (document.forms.frmAnfrage.email.value == ""){
    alert("Geben Sie bitte Ihre Emailadresse ein.");
    return (false);
  }

  var email=document.forms.frmAnfrage.email.value;
  if (isEmail(email)==false){
    alert("Geben Sie bitte eine gültige Emailadresse ein.");
    return (false);
  }

  if (document.forms.frmAnfrage.telefon.value == ""){
    alert("Geben Sie bitte Ihre Telefonnummer für evtl. Rückfragen ein.");
    return (false);
  }


  frmAnfrage.submit();
}


function isEmail(email) {
    invalidChars = " ~\'^\`\"*+=\\|][(){}$&!#%/:,;";

    // Check for null
    if (email == "") {
        return true;
    }

    // Check for invalid characters as defined above
    for (i=0; i<invalidChars.length; i++) {
        badChar = invalidChars.charAt(i);
        if (email.indexOf(badChar,0) > -1) {
            return false;
        }
    }
    lengthOfEmail = email.length;
    if ((email.charAt(lengthOfEmail - 1) == ".") || (email.charAt(lengthOfEmail - 2) == ".")) {
        return false;
    }
    Pos = email.indexOf("@",1);
    if (email.charAt(Pos + 1) == ".") {
        return false;
    }
    while ((Pos < lengthOfEmail) && ( Pos != -1)) {
        Pos = email.indexOf(".",Pos);
        if (email.charAt(Pos + 1) == ".") {
            return false;
        }
        if (Pos != -1) {
            Pos++;
        }
    }

    // There must be at least one @ symbol
    atPos = email.indexOf("@",1);
    if (atPos == -1) {
        return false;
    }

    // But only ONE @ symbol
    if (email.indexOf("@",atPos+1) != -1) {
        return false;
    }

    // Also check for at least one period after the @ symbol
    periodPos = email.indexOf(".",atPos);
    if (periodPos == -1) {
        return false;
    }
    if (periodPos+3 > email.length) {
        return false;
    }
    return true;
}


function getRadioButtonValue (radio){   
	if (!radio.length) {
		return radio.value;
	}else{
	for (var i = 0; i < radio.length; i++)
    {   if (radio[i].checked) { break }
    }
    return radio[i].value
}
}



function isEmail (s)
{   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
   
    // is s whitespace?
    if (isWhitespace(s)) return false;
    
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isIntegerInRange (s, a, b)
{   if (isEmpty(s)) 
       if (isIntegerInRange.arguments.length == 1) return defaultEmptyOK;
       else return (isIntegerInRange.arguments[1] == true);

    // Catch non-integer strings to avoid creating a NaN below,
    // which isn't available on JavaScript 1.0 for Windows.
    if (!isInteger(s, false)) return false;

    // Now, explicitly change the type to integer via parseInt
    // so that the comparison code below will work both on 
    // JavaScript 1.2 (which typechecks in equality comparisons)
    // and JavaScript 1.1 and before (which doesn't).
    var num = parseInt (s);
    return ((num >= a) && (num <= b));
}

function isWhitespace (s)

{   var i;

    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}

function kaufm(x) {
  return Math.round(x*100)/100;
} 

function formatNumber(num){
	var str = new String(num);
	
	if (str.indexOf(".")>=0){
		if (str.substring(str.indexOf(".")+1, str.length).length < 2) str += "0";
	}else{
		str += ",00";
	}
	str = str.replace(".",",");
	return str;
}

function isInteger (s)

{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);

    // Search through string's characters one by one
    // until we find a non-numeric character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }

    // All characters are numbers.
    return true;
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}


function getEl(ident, type){

try{
    // um geändert wegen mozilla kompabilität
  	if (type == null){
      return document.getElementById(ident) || document.getElementsByName(ident).item(0);
      type = 1;
    } 
  	
  	switch (type){
  		case 1:
    		return document.getElementById(ident);
  			break;
  		case 2:
  			return document.getElementByName(ident);
  			break;
  		case 3:
  			return document.getElementByTagName(ident);
  			break;
  	}
  
  }catch(e){
     alert("Fehler in getEL ! Element "+ident+" nicht gefunden !");  
  } 
}

function toggleFAQ(id){

  var elname = null;
  var el = null;
  
  elname = "faq"+id;
  el = document.getElementById(elname);
  if (el != null){
  	if (el.style.display == "block"){
  		el.style.display = "none";
  	}else{
  		el.style.display = "block";
  	}
  }
	
}

// alert("loaded !");

