milesSteps = new Array(0,10000,20000,30000,40000,50000,60000,70000,80000,90000,100000,125000,150000,175000,200000,250000,350000);

function showBusyPic()
{
  document.getElementById("maindax").src = "images/loading.gif";
}

function clearPlz()
{
  document.getElementById("plz").value = "";
}

function plzKeyDown()
{
  document.getElementById("plz").value = noAlpha(document.getElementById("plz").value);
}


function initKilometer()
   {
     if (document.getElementById("km").value == "-- Laufleistung--")
       {
	 document.getElementById('km').value = 50000;
       }
   }
function buttonDown(element) {
  element.style.borderLeftColor="#cecdcb";
  element.style.borderTopColor="#cecdcb";
  element.style.borderRightColor="#f1f0ef";
  element.style.borderBottomColor="#f1f0ef";
}

function buttonUp(element) {
  element.style.borderLeftColor="#f1f0ef";
  element.style.borderTopColor="#f1f0ef";
  element.style.borderRightColor="#cecdcb";
  element.style.borderBottomColor="#cecdcb";
}

function Trenner(number) {
  number = '' + number;
  if (number.length > 3) {
    var mod = number.length % 3;
    var output = (mod > 0 ? (number.substring(0,mod)) : '');
    for (i=0 ; i < Math.floor(number.length / 3); i++) {
      if ((mod == 0) && (i == 0))
	output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
      else
	output+= '.' + number.substring(mod + 3 * i, mod + 3 * i + 3);
    }
    return (output);
}
else return number;
}

function priceIncrement(id)
{
  //Trenner(noAlpha(document.getElementById(id).value))
  
  var price = noAlphaTotal(document.getElementById(id).value);;
  price = price.replace(/ /g, "");
  price = price.replace(/\./g, "");
  var priceint = parseInt(price);

  priceint += 250;
  document.getElementById(id).value = Trenner(priceint) + ",- Euro";
}

function priceDecrement(id)
{
  var price = noAlphaTotal(document.getElementById(id).value);;
  price = price.replace(/ /g, "");
  price = price.replace(/\./g, "");
  var priceint = parseInt(price);

  priceint -= 250;
  if (priceint <= 0)
    {
      priceint = 0;
    }
  document.getElementById(id).value = Trenner(priceint)  + ",- Euro";
}


function milesIncrement()
{
  var miles = document.getElementById("km").value;
  var result;
  if (miles == "-- Laufleistung--")
    {
      //result = 50000;
      newInitKilometer();
    }else
    {
      miles = noAlphaTotal(miles);
      result = parseInt(miles) + 10000;
      document.getElementById('km').value = Trenner(result) + " Km";
    }
}

function milesDecrement()
{
  var miles = document.getElementById("km").value;
  var result;
  if (miles == "-- Laufleistung--")
    {
      //result = 50000;
      newInitKilometer();
    }else
    {
      miles = noAlphaTotal(miles);
      result = parseInt(miles) - 10000;

      if (result <= 0)
	{
	  result = 0;
	}
      
      document.getElementById('km').value = Trenner(result) + " Km";
    }
}



function powerIncrement(id)
{
  var kraftstoffSelect = document.getElementById("kraftstoff");
  var kraftstoff =  kraftstoffSelect.options[kraftstoffSelect.selectedIndex].text
  
  var powerList;
  if (kraftstoff == "nur Benziner")
    {
      powerList = document.getElementById("powerListBenzin").value.split(",");
    }
  if (kraftstoff == "nur Diesel")
    {
      powerList = document.getElementById("powerListDiesel").value.split(",");
    }
  if (kraftstoff == "alle Kraftstoffe")
    {
      powerList = document.getElementById("powerListBoth").value.split(",");
    }


  var currentValue = document.getElementById(id).value;
  var i = 0;
  for (i = 0; i < powerList.length; i++)
    {
      if (parseInt(powerList[i]) > parseInt(currentValue))
	{
	  document.getElementById(id).value = powerList[i];
	  break;
	}
    }
  //  newResultList();
}

function powerDecrement(id)
{
  var kraftstoffSelect = document.getElementById("kraftstoff");
  var kraftstoff =  kraftstoffSelect.options[kraftstoffSelect.selectedIndex].text
  
  var powerList;
  if (kraftstoff == "nur Benziner")
    {
      powerList = document.getElementById("powerListBenzin").value.split(",");
    }
  if (kraftstoff == "nur Diesel")
    {
      powerList = document.getElementById("powerListDiesel").value.split(",");
    }
  if (kraftstoff == "alle Kraftstoffe")
    {
      powerList = document.getElementById("powerListBoth").value.split(",");
    }

  var currentValue = document.getElementById(id).value;
  var i;
  for (i = powerList.length-1; i >= 0; i--)
    {
      if (parseInt(powerList[i]) < parseInt(currentValue))
	{
	  document.getElementById(id).value = powerList[i];
	  break;
	}
    }
  //  newResultList();
}


function kmIncrement(id)
{
  var km = document.getElementById(id).value;
  km = km.replace(/ /g, "");
  km = km.replace(/\./g, "");
  var kmint = parseInt(km);

  var i = 0;
  for (i = 0; i < milesSteps.length; i++)
   {
     if (parseInt(milesSteps[i]) > parseInt(kmint))
       {
	 document.getElementById(id).value = Trenner(milesSteps[i]);
	 break;
       }
   }
  //  newResultList();
}

function kmDecrement(id)
{
  var km = document.getElementById(id).value;
  km = km.replace(/ /g, "");
  km = km.replace(/\./g, "");
  var kmint = parseInt(km);
  
  //  milesSteps = new Array(0,10000,20000,30000,40000,50000,75000,100000,125000,150000,175000,200000,250000,350000);
  var i = 0;
  for (i = milesSteps.length-1; i>= 0; i--)
   {
     if (parseInt(milesSteps[i]) < parseInt(kmint))
       {
	 document.getElementById(id).value = Trenner(milesSteps[i]);
	 break;
       }
   }
  //  newResultList();
}


function milesKeyUp(eventCode, id)
{
  var myKeyCode;
  if (window.event)
    {
      myKeyCode = window.event.keyCode;
    }else
    {
      myKeyCode = eventCode.keyCode;
    }

  // Removed ... besseres Verhalten der Kilometereingabe.
  //  var tempVal = document.getElementById(id).value;
  //  var diffVal = Trenner(noAlphaTotal(tempVal)) + " Km";
  //  if (tempVal != diffVal)
  //    {
  //      document.getElementById(id).value = Trenner(noAlphaTotal(document.getElementById(id).value)) + " Km";
  //    }
  
  if (myKeyCode == 40)
    {
      milesDecrement(id);
    }else if (myKeyCode == 38)
    {
      milesIncrement(id);
    }
  
}


function kmKeyUp(eventCode, id)
{
  var myKeyCode;
  if (window.event)
    {
      myKeyCode = window.event.keyCode;
    }else
    {
      myKeyCode = eventCode.keyCode;
    }
  
  document.getElementById(id).value = Trenner(noAlpha(document.getElementById(id).value));
  
  if (myKeyCode == 40)
    {
      kmDecrement(id);
    }else if (myKeyCode == 38)
    {
      kmIncrement(id);
    }else
    {
      //      newResultList();
    }
}

function priceGetFocus()
{
  document.getElementById("price").value = Trenner(noAlphaTotal(document.getElementById("price").value));
}

function priceLoseFocus()
{
  var val = noAlphaTotal(document.getElementById("price").value);
  val = Trenner(val);
  document.getElementById("price").value = val + ",- Euro";
}

function milesGetFocus()
{
  document.getElementById("km").value = Trenner(noAlphaTotal(document.getElementById("km").value));
}

function milesLoseFocus()
{
  var val = noAlphaTotal(document.getElementById("miles").value);
  val = Trenner(val);
  document.getElementById("miles").value = val + " Km";
}


function priceKeyUp(eventCode, id)
{
  var myKeyCode;
  if (window.event)
    {
      myKeyCode = window.event.keyCode;
    }else
    {
      myKeyCode = eventCode.keyCode;
    }


  var tempVal = document.getElementById(id).value;
  var diffVal = Trenner(noAlphaTotal(tempVal)) + ",- Euro";

  if (tempVal != diffVal)
    {
      document.getElementById(id).value = Trenner(noAlphaTotal(document.getElementById(id).value)) + ",- Euro";
    }
 
  if (myKeyCode == 40)
    {
      priceDecrement(id);
    }else if (myKeyCode == 38)
    {
      priceIncrement(id);
    }else
    {
      //      newResultList();
    }
}



function ageIncrementEx(id, steps)
{
  var age = document.getElementById(id).value;
  var dateArray = age.split(".");

  var newMonth = (parseInt(dateArray[0],10)+steps)%12;
  if (newMonth == 0)
    {
      newMonth = 12;
    }
  var yearAddition = Math.floor((parseInt(dateArray[0],10)+steps) / 13);
 
  var newMonthStr;
  var newYearStr;
  if (newMonth < 10)
    {
      newMonthStr = "0" + newMonth.toString();
    }else
    {
      newMonthStr = newMonth.toString();
    }

  newYearStr = parseInt(dateArray[1],10) + yearAddition;
  
  document.getElementById(id).value = newMonthStr + "." + newYearStr.toString();
}

function ageDecrementEx(id, steps)
{
  var age = document.getElementById(id).value;
  var dateArray = age.split(".");

  var newMonth = (parseInt(dateArray[0],10)-steps)%12;
  if (newMonth < 0)
    {
      newMonth += 12;
    }
  if (newMonth == 0)
    {
      newMonth = 12;
    }

  var yearAddition = 0;
  if ((parseInt(dateArray[0],10)-steps)<1)
    {
      yearAddition = Math.floor ( (parseInt(dateArray[0],10)-steps) / 12 );
    }
  if ((parseInt(dateArray[0],10)-steps)==0)
    {
      yearAddition = -1;
    }
 
  var newMonthStr;
  var newYearStr;
  if (newMonth < 10)
    {
      newMonthStr = "0" + newMonth.toString();
    }else
    {
      newMonthStr = newMonth.toString();
    }

  newYearStr = parseInt(dateArray[1],10) + yearAddition;
  
  document.getElementById(id).value = newMonthStr + "." + newYearStr.toString();
}


function ageIncrement(id)
{
  var age = document.getElementById(id).value;
  age = age.replace(/ /g, "");
  var ageint = parseInt(age);

  var newval;

  if (id == "agefrom")
    {
      newval = parseInt(ageint) - 1;
      if (newval >= 0)
	{
	  newval = "-0";
	}else
	{
	  newval = "-" + Math.abs(newval);
	}
    }
  if (id == "ageto")
    {
      newval = parseInt(ageint) + 1;
      if (newval <= 0)
	{
	  newval = "+0";
	}else
	{
	  newval = "+" + Math.abs(newval);
	}
    }
  document.getElementById(id).value = newval;
  //  newResultList();
}

function ageDecrement(id)
{
  var age = document.getElementById(id).value;
  age = age.replace(/ /g, "");
  var ageint = parseInt(age);

  var newval;

  if (id == "agefrom")
    {
      newval = parseInt(ageint) + 1;
      if (newval >= 0)
	{
	  newval = "-0";
	}else
	{
	  newval = "-" + Math.abs(newval);
	}
    }
  if (id == "ageto")
    {
      newval = parseInt(ageint) - 1;
      if (newval <= 0)
	{
	  newval = "+0";
	}else
	{
	  newval = "+" + Math.abs(newval);
	}
    }
  document.getElementById(id).value = newval;
  //  newResultList();
}



function powerKeyUp(eventCode, id)
{
  var myKeyCode;
  if (window.event)
    {
      myKeyCode = window.event.keyCode;
    }else
    {
      myKeyCode = eventCode.keyCode;
    }

  document.getElementById(id).value = noAlpha(document.getElementById(id).value);
  
  if (myKeyCode == 40)
    {
      powerDecrement(id);
    }else if (myKeyCode == 38)
    {
      powerIncrement(id);
    }else
    {
      //      newResultList();
    }
  
}

function ageFromKeyUp(eventCode)
{
  var myKeyCode;
  if (window.event)
    {
      myKeyCode = window.event.keyCode;
    }else
    {
      myKeyCode = eventCode.keyCode;
    }
  
  if (myKeyCode == 40)
    {
      ageDecrementEx("agefrom");
    }else  if (myKeyCode == 38)
    {
      ageIncrementEx("agefrom");
    }
 
  return false;
}

function ageToKeyUp(eventCode)
{
  var myKeyCode;
  if (window.event)
    {
      myKeyCode = window.event.keyCode;
    }else
    {
      myKeyCode = eventCode.keyCode;
    }

  if (myKeyCode == 40)
    {
      ageDecrementEx("ageto");
    }else  if (myKeyCode == 38)
    {
      ageIncrementEx("ageto");
    }

  return false;
}

function noAlphaDot(value)
{
  reg = /[^-?0-9\.]/g;
  value =  value.replace(reg,"");
  if (value=="" || value=="-" || value=="+")
    {
      value = 0;
    }
  return value;
}

function noAlpha(value)
{
  reg = /[^-?0-9,]/g;
  value =  value.replace(reg,"");
  if (value=="" || value=="-" || value=="+")
    {
      value = 0;
    }
  return value;
}

function noAlphaTotal(value)
{
  reg = /[^?0-9]/g;
  value =  value.replace(reg,"");
  if (value=="" || value=="-" || value=="+")
    {
      value = 0;
    }
  return value;
}


function show(id) 
{
  if (document.getElementById(id).style.display == "none") 
    { 
      document.getElementById(id).style.display = "block"; 
    } 
  else 
    { 
      document.getElementById(id).style.display = "none"; 
    } 
}

function openInfoPopup()
{
  //  ClosePopUp()             /* erstmal bisher geoeffnetes Popup zumachen */
  var properties="location=no,menubar=no,toolbar=no,status=no,resizable=no,scrollbars=no,width=450,height=450";
  subwindow=window.open("info.html","popup",properties);
  subwindow.moveTo(50,50); /* Fenster nach links oben schieben */
}

function openEMailPopup()
{
  //  ClosePopUp()             /* erstmal bisher geoeffnetes Popup zumachen */
  var properties="location=no,menubar=no,toolbar=no,status=no,resizable=no,scrollbars=no,width=450,height=400";
  subwindow=window.open("mailer.php","popup",properties);
  subwindow.moveTo(50,50); /* Fenster nach links oben schieben */
}

function disableEnterKey(e)
{
  var key;

  if(window.event)
    {
      key = window.event.keyCode;     //IE
    } else
    {
      key = e.which;     //firefox
    }

  
  if(key == 13)
    {
      return false;
    } else
    {
      return true;
    }
}

function addNewLineToTextarea(e, name)
{
  var key;

  if(window.event)
    {
      key = window.event.keyCode;     //IE
    } else
    {
      key = e.which;     //firefox
    }
  
  if(key == 13)
    {
      document.getElementById(name).value = document.getElementById(name).value + "\n";
    }
}

function showHelpText()
{
  var helpText;
  helpText = document.getElementById("helpText").innerHTML;
  helpText = helpText.replace(/\ /g,"");
  helpText = helpText.replace(/\n/g,"");
  helpText = helpText.replace(/\r/g,"");
  
  if (helpText != "")
    {
      document.getElementById("helpText").innerHTML = "<br><br>Bitte wählen Sie Marke und Erstzulassung.";
    }
}

function markStar(value, name)
{
  for (var i = 1; i < 6; i++)
  {
    var imgId = "star" + name + i.toString();
    document.getElementById(imgId).src = 'Bilder/hintergrund/stern_leer.png';
  }
  for (var i = 1; i <= value; i++)
  {
    var imgId = "star" + name + i.toString();
    document.getElementById(imgId).src = 'Bilder/hintergrund/stern_gefuellt.png';
  }

  var hiddenId = "rate" + name;
  document.getElementById(hiddenId).value = value;
  
}

function showHideReportContainer()
{
  if (document.getElementById('reportDiv').style.visibility == 'hidden')
  {
    document.getElementById('reportDiv').style.height='auto';
    document.getElementById('reportDiv').style.visibility='visible'
  }else
  {
    document.getElementById('reportDiv').style.height='0px';
    document.getElementById('reportDiv').style.visibility='hidden';
  }
}

function menuMouseOver(itemName)
{
  var menuItemName = "menu-" + itemName;
  var subMenuItemName = "submenu-" + itemName;
  
  document.getElementById(menuItemName).className='linkActive';

  if (itemName == "bestand" || itemName == "meinkonto")
    {
      document.getElementById(subMenuItemName).style.visibility='visible';  
    }
}

function menuMouseOut(itemName)
{
  var menuItemName = "menu-" + itemName;
  var subMenuItemName = "submenu-" + itemName;
  
  document.getElementById(menuItemName).className='inactive';

  if (itemName == "bestand" || itemName == "meinkonto")
    {
      document.getElementById(subMenuItemName).style.visibility='hidden';  
    }
}

function reportAllMotorsClick(theElement)
{
  var theForm = document.getElementById('loginForm');
  for(z=0; z<theForm.length;z++)
    {
      if(theForm[z].type == 'checkbox' && theForm[z].name != 'motorReport-All')
	{
	  theForm[z].checked = theElement.checked;
	}
    }
}



