var abfrage='';
var bChanged=false;
var counter=0;
var bSaved=true;
var bCheck=false;

function show_spinner(div_id, text, bSimple)
  {
  if ( bSimple==true )
    document.getElementById(div_id).innerHTML="<img width='16' height='16' src='images/spinner1.gif'>&nbsp;" + text;
  else
    document.getElementById(div_id).innerHTML="<table><tr><td width='25'>&nbsp;</td>"+
                                              "<td><img width='16\' height='16' src='images/spinner1.gif'>"+
                                              "&nbsp;" + text + "</td></tr></table>";

  return true;
  }

function getWindowHeight() 
  {
  var myHeight = 0;
  if( typeof( window.innerHeight ) == 'number' ) 
    {
    //Nicht IE
    myHeight = window.innerHeight;
    } 
  else if( document.documentElement &&
         ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
    {
    //IE6
    myHeight = document.documentElement.clientHeight-24;
    } 
  else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
    {
    // IE4
    myHeight = document.body.clientHeight-24;
    }
  return myHeight;
  }

function checkLength(obj, zeilen, zeichen)
  {
  if (bCheck)
    return true;
    
  bCheck=true;
  error="";
  
  var text=obj.value.replace(/\r\n/g,"\n");
  
  if(zeilen>0)
    {
    found = text.match(/\n/g);
    if (found)
      if (found.length>zeilen)
        error="Der Text ist " + (found.length-zeilen) + " Zeile(n) zu lang.\n\n";
    }
    
  found = text.split("\n");
  if (found)
    for (i = 0; i < found.length; ++i)
      if (found[i].length>zeichen)
        error=error + "Zeile " + (i+1) + " ist " + (found[i].length-zeichen) + " Zeichen zu lang.\n";
        
  if (error!="")
    {
    error="Fehler Längenprüfung:\n\nErlaubte Zeilen: " + zeilen + "\nErlaubte Zeichen pro Zeile: " + zeichen + "\n\n" + error
    obj.style.border = "solid red 5px";
    alert(error);
    }
  else
    obj.style.border = "solid green 1px";
     
  bCheck=false;
  return true;
  }

function encode_utf8(rohtext) 
  {
  // dient der Normalisierung des Zeilenumbruchs
  rohtext = rohtext.replace(/\r\n/g,"\n");
  var utftext = "";
  for(var n=0; n<rohtext.length; n++)
    {
    // ermitteln des Unicodes des aktuellen Zeichens
    var c=rohtext.charCodeAt(n);
    // alle Zeichen von 0-127 => 1byte
    if (c<128)
      utftext += String.fromCharCode(c);
    // alle Zeichen von 127 bis 2047 => 2byte
    else if((c>127) && (c<2048)) 
      {
      utftext += String.fromCharCode((c>>6)|192);
      utftext += String.fromCharCode((c&63)|128);
      }
      // alle Zeichen von 2048 bis 66536 => 3byte
    else 
      {
      utftext += String.fromCharCode((c>>12)|224);
      utftext += String.fromCharCode(((c>>6)&63)|128);
      utftext += String.fromCharCode((c&63)|128);
      }
    }
   
  return utftext;
  }
  
  
function checkchanges()
  {
  if (!bSaved)
    if (confirm("Sie haben noch nicht alle Eingaben gespeichert. Wollen Sie die &Auml;nderungen sichern?"))
      document.forms[1].submit();
  else 
    return true;	
  }
  
function copyEK(checkbox)
  {
	if (checkbox.checked==true)
	  {
	  //document.showcalc.elements['vk_preis[]'][checkbox.value].value=document.showcalc.elements['kundenpreis[]'][checkbox.value].value;
	  document.showcalc.elements['vk_einheiten[]'][checkbox.value].value=document.showcalc.elements['ek_einheiten[]'][checkbox.value].value;
	  document.showcalc.elements['vk_preiseinheit[]'][checkbox.value].value=document.showcalc.elements['kundenpreis[]'][checkbox.value].value;	
	  document.showcalc.elements['vk_einheitid[]'][checkbox.value].value=document.showcalc.elements['ek_einheitid[]'][checkbox.value].value;	
	  calcPreis(checkbox.value, 'vk_', document.showcalc);
	  }
	else
	  {
	  document.showcalc.elements['vk_preis[]'][checkbox.value].value="";
	  document.showcalc.elements['vk_einheiten[]'][checkbox.value].value="";
	  document.showcalc.elements['vk_preiseinheit[]'][checkbox.value].value="";	
	  document.showcalc.elements['vk_einheitid[]'][checkbox.value].value="";
	  document.showcalc.elements['checkAll'].checked=false;	
     }
	return true;
	}

function countSIS(form)
  {
  var total = new Number();
  
  for(i=0;i<form.elements['bosch_aid[]'].length;i++)
    {
    if(form.elements['bosch_aid[]'][i].checked)
      total+=parseInt(form.elements['count[]'][i].value);	
    }
  form.counter.value=total;
  return true;	
  }
  
function selectAll(form)
  {
	for(i=0;i<form.elements.length;i++)
	  {
	  if(form.elements[i].type=="checkbox" && !form.elements[i].checked)
		  {
			form.elements[i].checked=true;
			copyEK(form.elements[i]);
			}
		}
	calcAll(form);
	return true;
	}	

function calcAll(form)
  {
	var ekpreis = new Number();
	var vkpreis = new Number();
	
	for(i=0;i<form.elements['ek_einheiten[]'].length;i++)
	  {
	  ekpreis+=form.elements['ek_einheiten[]'][i].value.replace(/,/, '.')*form.elements['ek_preiseinheit[]'][i].value.replace(/,/, '.');
	  }
	form.elements['ek_gesamt'].value=(ekpreis.toFixed(2)).replace(/\./, ',');
	
	for(i=0;i<form.elements['vk_einheiten[]'].length;i++)
	  {
	  vkpreis+=form.elements['vk_einheiten[]'][i].value.replace(/,/, '.')*form.elements['vk_preiseinheit[]'][i].value.replace(/,/, '.');
	  }
	form.elements['vk_gesamt'].value=(vkpreis.toFixed(2)).replace(/\./, ',');
	if (vkpreis>0)
	  form.elements['marge'].value=(((vkpreis-ekpreis)/vkpreis*100).toFixed(0)).replace(/\./, ',');
	return true;
	}
	
function calcPreis(fieldindex, fieldname, form)
  {	
	var einheiten=form.elements[fieldname+'einheiten[]'][fieldindex].value.replace(/,/, '.');
	var preiseinheit=form.elements[fieldname+'preiseinheit[]'][fieldindex].value.replace(/,/, '.');
	var preis=einheiten*preiseinheit;
	
	if (!isNaN(preis))
	  {
	  form.elements[fieldname+'preis[]'][fieldindex].value=(preis.toFixed(2)).replace(/\./, ',');
	  calcAll(form);
	  }
	return true;
	}

function resetFields(formname)
  {
	for(i=0;i<document.forms[formname].elements.length;i++)
	  {
		if (document.forms[formname].elements[i].type!="submit" && document.forms[formname].elements[i].type!="button")
      document.forms[formname].elements[i].value="";
    }
	return true;
	}

function saveData()
  {
	if (abfrage!='')
    return confirm(abfrage);
	}

function saveChanges(formname)
  {
  if (confirm('Sollen die geänderten Daten gespeichert werden?'))
    document.forms[formname].submit;
  return true;
  } 

function sumInvoice(form, betraege, checks) {
  if (form.elements[checks][0]) {
  }
  else {
    if (form.elements[checks].checked) {
      return form.elements[betraege].value;
    }
    else return "0,00";
  }
  var kosten = new Number();
  kosten = 0.00;
  for (i = 0; i < form.elements[checks].length; i++) {
    if (form.elements[checks][i].checked) 
      { 
      kosten += (Number)(form.elements[betraege][i].value.replace(/,/, '.').replace(/ /, ''));
      }
  }
  return kosten.toFixed(2).toString().replace(/\./, ',');
}

function umsatzsteuer(netto, steuersatz) {
  return netto * steuersatz / 100;
}

function bruttobetrag(netto, steuersatz) {
  return netto * (1 + steuersatz/100);
}


function checkAll(checkboxes) {
  if (checkboxes[0]) {
    for(i=0;i<checkboxes.length; i++)
      checkboxes[i].checked=true;
  }
  else {
    checkboxes.checked=true;
  }
}

function uncheckAll(checkboxes) {
  if (checkboxes[0]) {
    for(i=0;i<checkboxes.length; i++)
      checkboxes[i].checked=false;
  }
  else {
    checkboxes.checked=false;
  }
}
