var updatebox = false;
var method = 0;
	function fillfields(art,einwohner,plakate,kosten,plakatevalue,zusatzkosten,mwst,gesamtbetrag,nettobetrag) {
		method = art;
		document.getElementById("einwohnertotal").innerHTML = einwohner;
		document.getElementById("plakatetotal").innerHTML = plakate;
		document.getElementById("kostentotal").innerHTML = kosten;
		var ersatz = Math.round(plakatevalue*5/100);   // kvsta 26.02.2007
              if (ersatz == 0) ersatz = 1;
		if (art != "3") {
			document.getElementById("zusatzkosten").innerHTML = zusatzkosten;
			document.getElementById("userplacards").value = (parseInt(plakatevalue)+parseInt(ersatz));
			document.getElementById("netto").innerHTML = nettobetrag;
		}

		document.getElementById("plakateersatz").innerHTML = ersatz;
		document.getElementById("plakatplural").innerHTML = ersatz != 1 ? "e " : "ï¿½";
		document.getElementById("mwst").innerHTML = mwst;
		document.getElementById("kampagnenkostentotal").innerHTML = gesamtbetrag;
	}

function _init() {
  _resizeIFrame();
}

function _hideIFrame() {
  try {
    parent.document.getElementById("_calculator").style.display = "none";
    parent.document.getElementById("_calculatorwait").style.display = "";
  } catch (exception) {
    // no frame?
  }
}

function _resizeIFrame() {
  if (parent) {
    try {
      var iframe = parent.document.getElementById("_calculator");
      iframe.style.display = "";
      iframe.style.height = "20px";
      iframe.style.height = (document.getElementById("_innerhtml").offsetHeight+50);
      parent.document.getElementById("_calculatorwait").style.display = "none";
    } catch (e) {
      return;
    }
  }
}

function userdefinedField ( element ) {
  if (element.tagName == "TD" && element.firstChild.style.display != "none") {
    return false;
  } else if (element.tagName == "A") {
    element = element.parentNode.parentNode.parentNode;
  }  
  element.firstChild.style.display = ((element.firstChild.style.display == "") ? "none" : "");
}

  function showhide ( chkbox ) {
    var none = (document.getElementById && !document.all) ? "table" : "block";
    if (chkbox == "byusers") {
      document.getElementById("tr_" + chkbox).style.display = ((document.getElementById("tr_" + chkbox).style.display == none) ? "none" : none);
      return;
    }
    document.getElementById("tr_" + ((chkbox == "distance") ? "hierarchies" : "distance")).style.display = "none";
    document.getElementById("tr_" + chkbox).style.display = none;
  }
  
  function amountstatus ( i ) {
  	document.getElementById("amount" + i.value).disabled = i.checked == true ? false : true;
  }
  
  function changequote ( z, y, x ) {
		if (document.getElementById("searchresult")) {
			
		  	if (confirm("Neuberechung der " + z + " mit ausgewählter Werbeintensität?")) {
	  			initsubmit('', 1, '');
		  	} else {
		  		x.checked = false;
		  		document.kalkulator.quote[y].checked = true;
		  	}
				// Neuberechnung ohne Confirm - Abfrage.

			
			// initsubmit('', 1, '');
		}
  }

  function trim (string) {
    while (string.substring(0,1) == " ") {
      string = string.substring(1, string.length);
    }
    while (string.substring(string.length-1, string.length) == " ") {
      string = string.substring(0,string.length-1);
    }
    return string;
  }
  
  function generatePDF (type) {
	try {
    var list = document.getElementsByName("gkz");
  	var data = list.length;
  	var states = false;
    for (var x = 0; x < list.length; x++) {
    	if (list[x].checked == false) {
    		continue;
    	}
    	states = true;
    	var locid = list[x].value;
    	if (data != "") {
    		data += "|";
    	}
    	data += document.getElementById("plz" + locid).innerHTML;
    	data += ";";
    	data += document.getElementById("name" + locid).innerHTML.replace(/<.+?>/gi,"");
    	data += ":";
    	data += trim(document.getElementById("hierarchies" + locid).innerHTML.replace(/&gt;/gi,">").replace(/\n/gi," ").replace(/(\t|\r)/gi,""));
    	data += ";";
    	data += document.getElementById("groesse" + locid).innerHTML;
    	data += ";";
    	data += document.getElementById("einwohner" + locid).innerHTML;
    	data += ";";
    	data += document.getElementById("amount" + locid).value;
    	data += ";";
    	data += document.getElementById("price" + locid).innerHTML + " EUR";
    }
    data += "|"
    data += document.getElementById("kostentotal").innerHTML + " EUR";
    data += ";"
    if (type != "3") {
      data += document.getElementById("zusatzkosten").innerHTML + " EUR";
    } else {
      data += "" + " EUR";
    }
    data += ";"
    data += document.getElementById("plakatetotal").innerHTML;
    data += ";"
    data += document.getElementById("einwohnertotal").innerHTML;
    data += ";"
    if (type != "3") {
      data += document.getElementById("userplacards").value;
    } else {
      data += "";
    }
    data += ";"
    data += document.getElementById("mwst").innerHTML + " EUR";
    data += ";"
    data += document.getElementById("kampagnenkostentotal").innerHTML + " EUR";
    data += ";"
    if (type != "3") {
      data += document.getElementById("netto").innerHTML + " EUR";
    } else {
      data += "";
    }
    document.getElementById("pdfdata").value = data;
    if (states == false) {
    	alert("Fehler beim Speichern als PDF.");
    	return false;
    }
    document.getElementById("generatepdf").submit();
    return true;
} catch (Exception) {
		alert("Keine Kampagne zum speichern vorhanden.");
	return false;
}
  }

  function umkreissuche ( x, y, z ) {
    var message = "Möchten Sie für " + x + " (" + y + ") eine Umkreissuche " + ((z) ? "anwenden" : "auswählen") + "?";
    if (!z) {
      message += "\nBitte dann die Kilometerangabe anpassen und Abfrage starten.";
    }
    if (confirm(message)) {
      document.kalkulator.searchby[1].checked = false;
      document.kalkulator.searchby[0].checked = true;
      document.getElementById("tr_hierarchies").style.display = "none";
      document.getElementById("tr_distance").style.display = "";
      initsubmit(x,z,y);
    }
  }
  
  function initsubmit ( x, y, z ) {
  	document.getElementById("auto").value = "1";
  	if (x != "") {
  		document.kalkulator.plzort.value = x;
  	}
	if (z != "") {
  		document.kalkulator.usplz.value = z;
	}
       if (y)
   		document.kalkulator.submit();
  }
  
  function generatelist () {
    var newlist = "";
    var list = document.getElementsByName("gkz");
    for (var x = 0; x < list.length; x++) {
    	var amount = document.getElementById("amount" + list[x].value);
    	if (amount.disabled == true) {
    		continue;
    	}
    	amount.disabled = true;
    	list[x].disabled = true;
    	newlist += ((newlist.length > 0) ? "," : "") + "" + list[x].value + ":" + amount.value;
    }
    document.getElementById("add").value = newlist;
    return true;
  }

  function markstatus ( status ) {
    var option = status == "1" ? "rem" : "add";
    var input = document.getElementById(option).value;
    var list = document.getElementsByName("gkz");
    for (var x = 0; x < list.length; x++) {
      if (list[x].disabled == true || (status == "0" && list[x].checked == true) || (status == "1" && list[x].checked == false)) {
        continue;
      }
      list[x].checked = status == "0" ? true : false;
      if (status == "1") {
      	document.getElementById("amount" + list[x].value).disabled = ((list[x].checked == false) ? true : false);
      }
      input += ((input.length > 0) ? "," : "") + "" + list[x].value;
    }
    document.getElementById(option).value = input;
    if (status == "1") {
    	calcprice();
    }
  }
  
  var delay = false;
  var show = false;
	
  function calcprice (element) {
    if (element != "") { show = element; }
    var pt = 0;
    var et = 0;
    var at = 0;
    var list = document.getElementsByName("gkz");
    for (var x = 0; x < list.length; x++) {
      var amount = document.getElementById("amount" + list[x].value);
      var price = document.getElementById("price" + list[x].value);
      var einwohner = document.getElementById("einwohner" + list[x].value);
      if (amount.disabled == true) {
        continue;
      }
      var c = parseFloat(price.innerHTML.replace(/\./gi,"").replace(/,/gi,"."));
      pt = (pt+c);
	var e = parseFloat(einwohner.innerHTML.replace(/\./gi,"").replace(/,/gi,"."));
      et = (et+e);
      if (isNaN(parseInt(amount.value))) {
        continue;
      }
      at = (at+parseInt(amount.value));
    }
    document.getElementById("plakatetotal").innerHTML = decform(at,0);
    document.getElementById("kostentotal").innerHTML = decform(pt,2);
    document.getElementById("einwohnertotal").innerHTML = decform(et,0);
    if (method != "3")
	    var ersatz = Math.round((parseInt(at)*5)/100);   // kvsta 26.02.2007
           if (ersatz == 0) ersatz = 1;
 	    document.getElementById("userplacards").value = decform((parseInt(at)+parseInt(ersatz)),0);
    if (delay != false) {
      window.clearTimeout(delay);
    }
    if (at > 0) {
      if (method != "3")
        delay = window.setTimeout("searchprintshop(" + at + ")", 400);
    }
      if (method != "3")
  		document.getElementById("zusatzkosten").innerHTML = "-";
  		document.getElementById("kampagnenkostentotal").innerHTML = decform(parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))*1.19,2);
  		document.getElementById("mwst").innerHTML = decform(parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))*1.19-parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,".")),2);
  		document.getElementById("netto").innerHTML = "-";
  }

 var hide = false;

  function usersearchprintshop (amount) {
    if (delay != false) {
      window.clearTimeout(delay);
    }
    if (amount >= 0) {
      delay = window.setTimeout("searchprintshop(" + amount + ")", 400);
    } else {
	document.getElementById("zusatzkosten").innerHTML = "-";
	document.getElementById("kampagnenkostentotal").innerHTML = decform(parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))*1.19,2);
	if (method != 3) {
		document.getElementById("netto").innerHTML = "-";
	}
	document.getElementById("mwst").innerHTML = decform(parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))*1.19-parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,".")),2);
    }
  }

	function getCookie(name) {
		var cookies = document.cookie.split(";");
		var value = "";
		for (var index in cookies) {
			if (cookies[index].split("=")[0] == name) {
				value = unescape(cookies[index].split("=")[1]);
			}
		}
		return value;
	}
  
  function searchprintshop ( amount ) {
    delay = false;
    if (show) {
      updatebox = document.getElementById("updatebox");
      if (updatebox) {
        updatebox.className = "box";
        updatebox.style.top = show.offsetTop-35 + 'px';
        updatebox.style.left = show.offsetLeft-130 + 'px';
        updatebox.getElementsByTagName("span")[0].innerHTML = "Neuberechnung...";
      }
    }
		var ersatz = Math.round((amount*5)/100);    // kvsta 26.02.2007
              if (ersatz == 0) ersatz = 1;
		document.getElementById("plakateersatz").innerHTML = ersatz;
		document.getElementById("plakatplural").innerHTML = ersatz != 1 ? "e " : " ";
  	document.getElementById("zusatzkosten").innerHTML = "-";
	document.getElementById("kampagnenkostentotal").innerHTML = decform(parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))*1.19,2);
       if (method != 3) {
		document.getElementById("netto").innerHTML = document.getElementById("kampagnenkostentotal").innerHTML;
	}
	document.getElementById("mwst").innerHTML = decform(parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))*1.19-parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,".")),2);
		printshopresult(amount);
	}
	
  function printshopresult ( amount ) {
    var connection = (window.XMLHttpRequest) ? new XMLHttpRequest() : ((window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : false);
    if (connection.overrideMimeType) {
      connection.overrideMimeType("text/html");
    }

		var ersatz = Math.round((amount*5)/100); 
              if (ersatz == 0) ersatz = 1;

    // connection.open("GET","getlowestprice.jsp?cache=" + new Date().getTime() + "&amount1=" + (Math.round(amount*1.05)  + "&amount2=" + amount);  // kvsta 26.02.2007
    connection.open("GET","getlowestprice.jsp?cache=" + new Date().getTime() + "&amount1=" + (amount + ersatz) + "&amount2=" + amount);  // kvsta 26.02.2007
    connection.setRequestHeader("Connection", "close");
    connection.onreadystatechange = function ()
    {
      if (connection.readyState == 4) {
        if (connection.status == 200) {
		var zusatzkosten = 0;
		var plakatkosten = parseFloat(connection.responseText.split(":")[0]);
		var gestaltungskosten = parseFloat(connection.responseText.split(":")[1]);
		zusatzkosten += plakatkosten;
		if (method == "1") zusatzkosten += gestaltungskosten;
  				document.getElementById("zusatzkosten").innerHTML = decform(zusatzkosten,2);
  				document.getElementById("kampagnenkostentotal").innerHTML = decform((parseFloat(document.getElementById("zusatzkosten").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))+parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,".")))*1.19,2);
  				document.getElementById("mwst").innerHTML = decform((parseFloat(document.getElementById("zusatzkosten").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))+parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,".")))*1.19-(parseFloat(document.getElementById("zusatzkosten").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))+parseFloat(document.getElementById("kostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))),2);
			       if (method != 3) {
					document.getElementById("netto").innerHTML = decform((parseFloat(document.getElementById("kampagnenkostentotal").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))-parseFloat(document.getElementById("mwst").innerHTML.replace(/\./gi,"").replace(/,/gi,"."))),2);
				}
                           if (updatebox && updatebox.hasChildNodes()) {
  				  updatebox.getElementsByTagName("span")[0].innerHTML = "Kampagnenkosten " + document.getElementById("kampagnenkostentotal").innerHTML + " Euro";
                           }
        }
      }
    }
    connection.send(null);
	}

  document.onmousemove = hideUpdateBox;
  document.onkeydown = hideUpdateBoxKeyDown;

  function hideUpdateBox( evt ) {
    if (!evt) {
      evt = window.event;
    }
    if (show && updatebox) {
     try {
       updatebox.className = "hidden";
       if (updatebox && updatebox.hasChildNodes()) {
         updatebox.getElementsByTagName("span")[0].innerHTML = "";
       }
     } catch (e) {
     }
     show = false;
     updatebox = false;
   }
  }

  function hideUpdateBoxKeyDown(evt) {
    if (!evt) {
      evt = window.event;
    }
    if (show && updatebox) {
     updatebox.className = "hidden";
     show = false;
     updatebox = false;
   }
  }
  
  function doformat (number, places) {
    var x = number;
    if (number.indexOf(".") > -1) {
      var x = number.split(".")[0].split("");
      var y = number.split(".")[1];
    }
    var c = 0;
    var n = "";
    for (var z = x.length-1; z >= 0; z--) {
      if (c == 3) {
        c = 0;
        n = "." + "" + n;
      }
      n = x[z] + "" + n;
      c++;
    }
    if (number.indexOf(".") > -1 && places != 0) {
      return n + "," + y;      
    }    
    return n;
  }
	
  function decform (number, places) {
    number = (Math.round(number * 100)) / 100;
    var x = (number == Math.floor(number)) ? "" + number + '.00' : ((number * 10 == Math.floor(number * 10)) ? "" + number + '0' : "" + number);   
    return doformat(x, places);
  }
  
  function showdetails ( gkz ) {
    window.open("details.jsp?gkz=" + gkz,"details" + gkz,"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=640,height=480,top=10,left=10");
  }

  function showinfos ( ) {
    window.open("infos.jsp","infos","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=640,height=480,top=10,left=10");
  }

function windowWidth() {
  var myWidth = 0;
  if(typeof( window.innerWidth ) == 'number') {
    myWidth = window.innerWidth;
  } else if(document.documentElement && document.documentElement.clientWidth) {
    myWidth = document.documentElement.clientWidth;
  } else if(document.body && document.body.clientWidth) {
    myWidth = document.body.clientWidth;
  }
  return myWidth;
}

function windowHeight() {
  var myHeight = 0;
  if(typeof( window.innerWidth ) == 'number' ) {
    myHeight = window.innerHeight;
  } else if(document.documentElement && document.documentElement.clientHeight) {
    myHeight = document.documentElement.clientHeight;
  } else if(document.body && document.body.clientHeight) {
    myHeight = document.body.clientHeight;
  }
  return myHeight;
}

  function preisspanne ( element, event, minpreis, maxpreis ) {
	updatebox = document.getElementById("updatebox");
	if (event == "over") {
		updatebox.className = "box";
              var wHeight = windowHeight();
              var wWidth = windowWidth();
              if (parseInt(element.offsetTop)+35 >= (wHeight-10)) {
                updatebox.style.top = parseInt(element.offsetTop)-35 + 'px';
              } else {
                updatebox.style.top = parseInt(element.offsetTop)-35 + 'px';
              }
              if (parseInt(element.offsetLeft)+240 >= (wWidth-10)) {
                 updatebox.style.left = parseInt(element.offsetLeft)-240 + 'px';
              } else {
                 updatebox.style.left = parseInt(element.offsetLeft) + 'px';
              }
		updatebox.getElementsByTagName("span")[0].innerHTML = "Durchschnittspreis auf Basis aller vorhandenen Werbetafeln mit einer Preisspanne von <b>" + decform(minpreis,2) + "</b> bis <b>" + decform(maxpreis,2) + "</b> Euro.";
	} else if (event == "out") {
		updatebox.className = "hidden";
		updatebox.getElementsByTagName("span")[0].innerHTML = "";
	}
  }
  
  function gkzstatus ( exists, element ) {
    var list;
    var newlist;
    var option = exists == 1 ? "rem" : "add";
    list = document.getElementById(option).value;
    if (exists == 0 && !element.checked || exists == 1 && element.checked) {
      list = list.split(",");
      newlist = "";
      for (var x = 0; x < list.length; x++) {
        if ((list[x].length < 1) || ((exists == 0 && !element.checked || exists == 1 && element.checked) && list[x] == element.value)) {
          continue;
        }
        newlist += ((newlist.length > 0) ? "," : "") + "" + list[x];
      }
    } else {
      newlist = list;
      newlist += ((newlist.length > 0) ? "," : "") + "" + element.value;
    }
    document.getElementById(option).value = newlist;
  }
	
  function updateselect ( select, name, levelid, level ) {
    var connection = (window.XMLHttpRequest) ? new XMLHttpRequest() : ((window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : false);
    if (connection.overrideMimeType) {
      connection.overrideMimeType("text/html");
    }
    connection.open("GET","updateselect.jsp?selected=" + select + "&name=" + name + "&levelid=" + levelid + "&level=" + level);
    connection.setRequestHeader("Connection", "close");
    connection.onreadystatechange = function ()
    {
      if (connection.readyState == 4) {
        if (connection.status == 200) {
          document.getElementById("td" + name).innerHTML = connection.responseText;
        }
      }
    }
    document.getElementById("td" + name).innerHTML = "<select style=\"width: 100%;\"><option>Bitte warten...</option></select>";
    connection.send(null);
  }

  function updateRB (bundesland) {
   
    var name = "regierungsbezirk";
    var connection = (window.XMLHttpRequest) ? new XMLHttpRequest() : ((window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : false);
    if (connection.overrideMimeType) {
      connection.overrideMimeType("text/html");
    }
    connection.open("GET","updateRB.jsp?bundesland=" + bundesland);
    connection.setRequestHeader("Connection", "close");
    connection.onreadystatechange = function ()
    {
      if (connection.readyState == 4) {
        if (connection.status == 200) {
          document.getElementById("td" + name).innerHTML = connection.responseText;
          updateKreis(document.getElementsByName('bundesland')[0].options[document.getElementsByName('bundesland')[0].options.selectedIndex].value, document.getElementsByName('regierungsbezirk')[0].options[document.getElementsByName('regierungsbezirk')[0].options.selectedIndex].value);
        }
      }
    }
    document.getElementById("td" + name).innerHTML = "<select style=\"width: 100%;\"><option>Bitte warten...</option></select>";
    connection.send(null);
  }

  function updateKreis (bundesland, regierungsbezirk) {    
   
    var name = "landkreis";
    var connection = (window.XMLHttpRequest) ? new XMLHttpRequest() : ((window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : false);
    if (connection.overrideMimeType) {
      connection.overrideMimeType("text/html");
    }
    connection.open("GET","updateKreis.jsp?bundesland=" + bundesland + "&regierungsbezirk=" + regierungsbezirk);
    connection.setRequestHeader("Connection", "close");
    connection.onreadystatechange = function ()
    {
      if (connection.readyState == 4) {
        if (connection.status == 200) {           
          document.getElementById("td" + name).innerHTML = connection.responseText;
        }
      }
    }
    document.getElementById("td" + name).innerHTML = "<select style=\"width: 100%;\"><option>Bitte warten...</option></select>";
    connection.send(null);
  }

