var http_request = false; 
var winname;

  function getPosition(element)
  {
    var elem=element,tagname="",x=0,y=0;
    y = elem.offsetHeight;
    x = 20;
    
    while ((typeof(elem)=="object")&&(typeof(elem.tagName)!="undefined"))
    {
      y+=elem.offsetTop;
      x+=elem.offsetLeft;
      tagname=elem.tagName.toUpperCase();

      if ((tagname=="HTML") || (tagname=="BODY"))
      {
        elem=0;
       } 

      if (typeof(elem)=="object")
        if (typeof(elem.offsetParent)=="object")
          elem=elem.offsetParent;
    }
    position=new Object();
    position.x=x;
    position.y=y;
    return position;
  }


function mouseY(evt) {
  if (evt.pageY) return evt.pageY;
  else if (evt.clientY)
   return evt.clientY + (document.documentElement.scrollTop ?
   document.documentElement.scrollTop :
   document.body.scrollTop);
  else return null;
}

function show_div_YBottom(win, spacer) 
{
  document.getElementById(win).style.top = mouseY(window.event) - spacer;
  document.getElementById(win).style.visibility = "visible"; 
}

function hide_div(win) 
{
  document.getElementById(win).style.visibility = "hidden"; 
}

function fTest()
{
	alert("testaufruf der Ajax.js");
}


function getContent(url, divname) { 
  winname = divname;

  document.getElementById(winname).innerHTML = "<center><img src='images/load.gif' alt='Loading' /></center>"; 
  document.getElementById(winname).style.visibility = "visible"; 
  document.getElementById(winname).style.display = "block";
  document.getElementById(winname).style.cursor = "wait";
  http_request = false; 

  if (window.XMLHttpRequest) { // Mozilla, Safari,... 
    http_request = new XMLHttpRequest(); 
    if (http_request.overrideMimeType) { 
      http_request.overrideMimeType('text/xml'); 
      // zu dieser Zeile siehe weiter unten 
    } 
  } else if (window.ActiveXObject) { // IE 
      try { 
        http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch (e) { 
        try { 
            http_request = new ActiveXObject("Microsoft.XMLHTTP60"); 
            
        } catch (e) {} 
      } 
  } 

  if (!http_request) { 
    return false; 
  } 
  http_request.onreadystatechange = showContent; 
  http_request.open('GET', url, true); 
  http_request.send(null); 

} 

function getContentDisplay(url, divname) { 
  winname = divname;

  document.getElementById(winname).innerHTML = "<center><img src='images/load.gif' alt='Loading' /></center>"; 
  document.getElementById(winname).style.display = "block"; 
  document.getElementById(winname).style.cursor = "wait";
  http_request = false; 

  if (window.XMLHttpRequest) { // Mozilla, Safari,... 
    http_request = new XMLHttpRequest(); 
    if (http_request.overrideMimeType) { 
      http_request.overrideMimeType('text/xml'); 
      // zu dieser Zeile siehe weiter unten 
    } 
  } else if (window.ActiveXObject) { // IE 
      try { 
        http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch (e) { 
        try { 
            http_request = new ActiveXObject("Microsoft.XMLHTTP60"); 
            
        } catch (e) {} 
      } 
  } 

  if (!http_request) { 
    return false; 
  } 
  http_request.onreadystatechange = showContent; 
  http_request.open('GET', url, true); 
  http_request.send(null); 

} 

var idlastitem = "";
function getContentAfterStock(url, divname, id) { 
  winname = divname;
  idlastitem = id;

  var ctlidwk = "wkitem_" + idlastitem;
  document.getElementById(ctlidwk).style.visibility = "hidden";

  document.getElementById(winname).innerHTML = "<center><img src='images/load.gif' alt='Loading' /></center>"; 
  document.getElementById(winname).style.visibility = "visible"; 
  document.getElementById(winname).style.cursor = "wait";
  http_request = false; 

  if (window.XMLHttpRequest) { // Mozilla, Safari,... 
    http_request = new XMLHttpRequest(); 
    if (http_request.overrideMimeType) { 
      http_request.overrideMimeType('text/xml'); 
      // zu dieser Zeile siehe weiter unten 
    } 
  } else if (window.ActiveXObject) { // IE 
      try { 
        http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch (e) { 
        try { 
            http_request = new ActiveXObject("Microsoft.XMLHTTP60"); 
            
        } catch (e) {} 
      } 
  } 

  if (!http_request) { 
    return false; 
  } 
  http_request.onreadystatechange = showContentAfterStock; 
  http_request.open('GET', url, true); 
  http_request.send(null); 

} 


function getString(url) { 
  http_request = false; 

  if (window.XMLHttpRequest) { // Mozilla, Safari,... 
    http_request = new XMLHttpRequest(); 
    if (http_request.overrideMimeType) { 
      http_request.overrideMimeType('text/xml'); 
      // zu dieser Zeile siehe weiter unten 
    } 
  } else if (window.ActiveXObject) { // IE 
      try { 
        http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch (e) { 
        try { 
            http_request = new ActiveXObject("Microsoft.XMLHTTP60"); 
            
        } catch (e) {} 
      } 
  } 

  if (!http_request) { 
    return false; 
  } 
  http_request.onreadystatechange = alertContent; 
  http_request.open('GET', url, true); 
  http_request.send(null); 

} 


function showContent() { 
  if (http_request.readyState == 4) { 
    var answer = http_request.responseText; 
    document.getElementById(winname).innerHTML = answer; 
    document.getElementById(winname).style.cursor = "default";
  } 

}

function showContentAfterStock() { 
  if (http_request.readyState == 4) { 
    var answer = http_request.responseText; 
    document.getElementById(winname).innerHTML = answer; 
    document.getElementById(winname).style.cursor = "default";

    var ctlidadd = "add_" + idlastitem;
    var ctl = document.getElementById(ctlidadd);
    var value = parseInt(ctl.value);
    var ctlidwk = ctl.id;
    
    ctlidwk = ctlidwk.replace("add_", "wkitem_");
    if (ctl.value > 0)
        document.getElementById(ctlidwk).style.visibility = "visible";
    else
        document.getElementById(ctlidwk).style.visibility = "hidden";
  } 
}

//Type
// 1 == OK Button
function showMessage(Message, Type, ButtonText, CancelButtonText, CancelButtonTarget, ctlname)
{
        document.getElementById('MSG_MESSAGE').innerHTML = Message;
        document.getElementById('MSG_OKBUTTON').innerHTML = ButtonText;

        if (CancelButtonText > "") {
            document.getElementById('MSG_CANCELBUTTON').innerHTML = CancelButtonText;
            document.getElementById('MSG_CANCELBUTTON').href = CancelButtonTarget;
        } else {
            document.getElementById('MSG_CANCELBUTTON').style.visibility = "hidden";
        }
        var ctl = document.getElementById(ctlname);
        var pos = getPosition(ctl);

        document.getElementById('MSG').style.top = pos.y + "px";
        document.getElementById('MSG').style.left = (pos.x - 250) + "px";
        document.getElementById('MSG').style.visibility = "visible";
}

function CloseMessageBox()
{
    document.getElementById('MSG').style.visibility='hidden';
}

var lasterrctl = null;

function ValidateAmount(ctl)
{
    ValidateFields(ctl, 'int');
}
function ValidateFields(ctl, szdatatype)
{  
    var szrecheckdate = /^(?=\d)(?:(?!(?:(?:0?[5-9]|1[0-4])(?:\.|-|\/)10(?:\.|-|\/)(?:1582))|(?:(?:0?[3-9]|1[0-3])(?:\.|-|\/)0?9(?:\.|-|\/)(?:1752)))(31(?!(?:\.|-|\/)(?:0?[2469]|11))|30(?!(?:\.|-|\/)0?2)|(?:29(?:(?!(?:\.|-|\/)0?2(?:\.|-|\/))|(?=\D0?2\D(?:(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:(?:\d\d)(?:[02468][048]|[13579][26])(?!\x20BC))|(?:00(?:42|3[0369]|2[147]|1[258]|09)\x20BC))))))|2[0-8]|1\d|0?[1-9])([-.\/])(1[012]|(?:0?[1-9]))\2((?=(?:00(?:4[0-5]|[0-3]?\d)\x20BC)|(?:\d{4}(?:$|(?=\x20\d)\x20)))\d{4}(?:\x20BC)?)(?:$|(?=\x20\d)\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\d){0,2}(?:\x20[aApP][mM]))|(?:[01]\d|2[0-3])(?::[0-5]\d){1,2})?$/;
    var szrecheckint = /^(\+|-)?\d+$/;
    
    var szrecheckintpzero = /^[1-9]\d{0,}/;
    var szrecchecknumber = /^((\d?)|(([-+]?\d+\.?\d*)|([-+]?\d*\.?\d+))|(([-+]?\d+\.?\d*\,\ ?)*([-+]?\d+\.?\d*))|(([-+]?\d*\.?\d+\,\ ?)*([-+]?\d*\.?\d+))|(([-+]?\d+\.?\d*\,\ ?)*([-+]?\d*\.?\d+))|(([-+]?\d*\.?\d+\,\ ?)*([-+]?\d+\.?\d*)))$/;    
    var bOK
    var szerrmsg;
    var szvalue = ctl.value;

    //set grid nested dropdown values without submit!
    if (szdatatype == 'string') {
        bOK = true;
    }

    if (szdatatype == 'bit') {
        bOK = true;      
    }

    if (szdatatype == 'date') {
        bOK = szrecheckdate.test(szvalue)
        szerrmsg = "Ihre Eingabe '" + szvalue + "' hat kein gültiges Datumsformat.<br /> Datum bitte im Format dd.mm.yyyy (z.B. 1.8.2007 oder 30.11.2006) eingeben."
    }

    if (szdatatype == 'int') {
        bOK = szrecheckint.test(szvalue)
        szerrmsg = "Ihre Eingabe '" + szvalue + "' hat kein gültiges Nummernformat.<br /> Wert im Format nnn (z.B. 80 oder 827) eingeben."
    }

    if (szdatatype == 'intpz') {
        bOK = szrecheckintpzero.test(szvalue)
        szerrmsg = "Ihre Eingabe '" + szvalue + "' hat kein gültiges Nummernformat.<br /> Wert bitte größer als 0 und im Format nnn (z.B. 80 oder 827) eingeben."
    }

    if (szdatatype == 'float') {
        bOK = szrecchecknumber.test(szvalue)
        szerrmsg = "Ihre Eingabe '" + szvalue + "' hat kein gültiges Nummernformat.<br /> Wert bitte im Format nnn,nn (z.B. 100,39 oder 100) eingeben."
    }

    if (szvalue.length > 0) 
    {
        if (bOK) 
        {
            ctl.style.backgroundColor = "#ffffff";
            if (ctl == lasterrctl)
                HideErrorMsg();
        } 
        else
        {
            var ctlid = ctl.id;
            ctl.style.backgroundColor = "#ff8989";
            lasterrctl = ctl;
            ShowErrorMsg(ctl, szerrmsg);
            ctl.select();
            //ctl.focus();
            window.setTimeout("window.document.getElementById('" + ctlid +"').focus()", 5);
        }
    } 
}

function ShowErrorMsg(ctl, szerror)
{
    var errorbox = window.document.getElementById("_ERROR");
    var pos = getPosition(ctl);
    var szerrmsg = "";
    var szvalue = "<b>" + ctl.value + "</b>";

    szerrmsg = szerror.replace(/<val>/g, szvalue);

    window.document.getElementById("_ERRORMSG").innerHTML = szerrmsg;

    errorbox.style.left = pos.x + "px";
    errorbox.style.top = pos.y + "px";
    errorbox.style.visibility = "visible";
}

function HideErrorMsg()
{
    var errorbox = window.document.getElementById("_ERROR");
    errorbox.style.visibility = "hidden";
}

function ValidateKeyPress(firedevent, type, control)
{
    HideErrorMsg();
    var code = alertkey(firedevent);     
    switch (type)
    {
        case "int":
            if ((code > 47 && code < 58) || (code > 95 && code < 106) || code == 46 || code == 16 || code == 37 || code ==39 || code == 8 || code == 189 || code == 9)
            { }
            else
            {
               window.event.returnValue = false;           
            }
        break;
        case "decimal":
        case "double":
            if ( (code > 47 && code < 58) || (code > 95 && code < 106) || code == 46 || code == 16 || code == 37 || code ==39 || code == 110 || code == 190 || code == 188 || code == 189 || code == 8 || code == 9)
            { }
            else
            {
               window.event.returnValue = false;           
            }
        break;
        case "date":
        if (!( (code > 47 && code < 58) || (code > 95 && code < 106) || code ==32 || code == 46 || code == 16 || code == 37 || code ==39 || code == 110 || code == 190 || code == 8 || code == 9))
        {
           window.event.returnValue = false;
        }
        else
        {           
           if (code == 190 && control.value.length == 1)
           {
              control.value = "0"+control.value;
              window.event.returnValue = false;              
           }
           if (code == 190 && control.value.length == 4)
           {
              part1 = control.value.substr(0, 3);
              part2 = control.value.substr(3);
              control.value = part1 + "0" + part2;
              window.event.returnValue = false;
           }
           if (code == 190 && ( control.value.length == 2 || control.value.length == 5))
              window.event.returnValue = false;
           if ((code == 32 || code == 9) && control.value.length == 8)
           {
              part1 = control.value.substr(0, 6);                                          
              part2 = control.value.substr(6);   
              control.value = part1 + "20" + part2;
              if (code == 32)
                 window.event.returnValue = false;
           }
           if ((control.value.length == 2 || control.value.length == 5) && code != 8)
              control.value += ".";
           if (control.value.length == 10 && code != 8 && code != 9)
              control.value += " ";
           if ((control.value.length == 13 || control.value.length == 16) && code != 8 && code != 190)
              control.value += ":";           
        }
        break;
        default:
        break;
    }
}      

function alertkey(e) 
{
    if( !e ) {
        if( window.event ) {
            //Internet Explorer
            return window.event;
        } else {
            return;
        }
    }

    if( typeof( e.keyCode ) == 'number'  ) {
        //DOM
        return e.keyCode;
    } else if( typeof( e.which ) == 'number' ) {
        //NS 4 compatible
        return e.which;
    } else if( typeof( e.charCode ) == 'number'  ) {
        //also NS 6+, Mozilla 0.9+
        return e.charCode;
    } else {
        //total failure, we have no way of obtaining the key code
        return null;
    }
}

function close_div(layer_id) {
  document.getElementById(layer_id).style.display = "none";
	//document.getElementById(layer_id).style.visibility = "hidden";
  document.getElementById(layer_id).style.height = "1px";
}