// JavaScript Document

var IE = false;
var NS = false;
var browser_version = parseInt(navigator.appVersion);
var browser_type = navigator.appName;
if (browser_type == "Microsoft Internet Explorer" && (browser_version >= 4)) { 
  IE = true;
} 
if (browser_type == "Microsoft Internet Explorer" && (browser_version <= 6)) { 
  IE6 = true;
} 
else if (browser_type == "Netscape" && (browser_version >= 4) && (browser_version < 5)) { 
  NS = true;
}
else if (browser_type == "Netscape" && (browser_version >= 5)) { 
  NS = true;
}

// -----------------------------------------------------------------------------

/*
 * Textarea: Zeichen limitieren & verbleibende Zeichen anzeigen
 * @author: DKL
 * e.G.: onkeyup="checkTextArea(this, 300);"
 */
function checkTextArea(obj, maxLength)
{
  var length = obj.value.length;

  if(length > maxLength)
  {
    obj.value = obj.value.substr(0, maxLength);
  }
  
}

var __controlTextarea = function()
{
  var obj;
  var objRemains;
  var maxLength;
  this.init = function(id, max, idremains)
  {
    obj = document.getElementById(id);
    objRemains = document.getElementById(idremains);
    maxLength = max;
    remaining = maxLength - obj.value.length;
    if(remaining < 0) remaining = 0;
    objRemains.innerHTML = remaining;
    obj.onkeydown = this.limitChars;
    obj.onkeyup = this.remainingChars;
  };
  this.limitChars = function()
  {
    var length = obj.value.length;
    if(length > maxLength)
    {
      obj.value = obj.value.substr(0, maxLength);
    }
  };
  this.remainingChars = function()
  {
    var length = obj.value.length;
    var remaining = maxLength - length;
    if(remaining <= 0) remaining = 0;
    if(remaining <= 0)
    {
      $('#'+objRemains.id).css( "color", "#ffc7c7" );
    }
    else
    {
      $('#'+objRemains.id).css( "color", "#aaaaaa" );
    }
    objRemains.innerHTML = remaining;
  };
};

// -----------------------------------------------------------------------------

/*
 * Inputfeld mit Beispieltext: Beispeiltext ein-/ausblenden
 * @author: DKL
 * e.G.: onfocus="chkLabeledInput(this);"
 */
var initText = new Array();
var initCheck = new Array();
function chkLabeledInput(el)
{
  if(!initCheck[el.name])
  {
    initText[el.name] = el.value;
    initCheck[el.name] = true;
  }
  // Aktuellen Inhalt speichern
  string = el.value;
  // Inhalt des Inputfields leeren
  if(string == initText[el.name])
    el.value = "";
  // Beim verlassen des Feldes ...
  el.onblur = function()
  {
    // Leerzeichen loeschen
    adj = el.value.replace(" ","");
    // Pruefen ob die Eingabe Zeichen enthaelt
    chk = el.value.search(/([a-z])|([A-Z])|([0-9])/);
    if(chk == -1)
    {
      // Keine Zeichen vorhanden -> alter String
      el.value = initText[el.name];
    }
  }
}

// -----------------------------------------------------------------------------

/*
 * Limitiert die Zahlen Inputs auf Zahlen und , .
 * @author: DKL
 * e.G.: onkeypress="return onlyNumbers(this, event, true);"
 */
function onlyNumbers(el, event, sep)
{
  if(!event)
    event = window.event;
  
  // Unterscheidung IE : FF
  var keyCode = event.keyCode ? event.keyCode : event.which;
  
  if(!sep)
  {
    // Tausender & Dezimal Speperatoren nicht zugelassen
    if(!(keyCode >= 48 && keyCode <= 57 || keyCode > 36 && keyCode < 41 || keyCode == 8 || keyCode == 13 || keyCode == 9 || keyCode == 27 || keyCode == 0))
    {
      return false;
    }
    else
    {
      return true;
    }
  }
  else
  {
    // Tausender & Dezimal Speperatoren zugelassen
    if(!(keyCode >= 48 && keyCode <= 57 || keyCode > 36 && keyCode < 41 || keyCode == 8 || keyCode == 46 || keyCode == 44 || keyCode == 13 || keyCode == 9 || keyCode == 27 || keyCode == 0))
    {
      return false;
    }
    else
    {
      return true;
    }
  }
}

// -----------------------------------------------------------------------------

/*
 * Wandelt Zahlen Inputs um in Tausend und Dezimal getrennte Zahlen
 * @author: DKL
 * e.G.: onblur="prepareNumber(this, false);"
 */
function prepareNumber(el, withdec)
{
  var value = el.value;
  var th = value.split(".");
  var tmp = "";
  for(j = 0; j < th.length; j++)
  {
    tmp += th[j];
  }
  var decimals = tmp.split(",");
  var thousands = decimals[0];
  thousands = thousands.replace( /^(0+)/g, '' ); 
  var dec = decimals[1];
  var zif = thousands.length;
  var part = "";
  if(!thousands)
    part = "0";
  else
  {
    for(i = thousands.length; i >= 0; i = i-3)
    {
      if(zif > 3)
      {
        part = "."+thousands.substring(i-3, i)+part;
        zif = zif - 3;
      }
      else
      {
        part = thousands.substring(i-3, i)+part;
      }
    }
  }
  if(withdec == true)
  {
    if(!dec)
      part += ",00";
    else
    {
      part += ","+dec.substring(0, 2);
    }
  }
  el.value = part;
}

// -----------------------------------------------------------------------------
