ns4=document.layers;
ie4=document.all;
ns6=document.getElementById&&!document.all;

function ShowDescription(ele,text) {
      if (!ie4) {
        var ScrolloffsetY = window.pageYOffset;
        var ScrolloffsetX = window.pageXOffset;
      } else {
        var ScrolloffsetY = document.body.scrollTop;
        var ScrolloffsetX = document.body.scrollLeft;
      }
       document.getElementById("IconDescriptor").style.left = window.event.clientX + 10 + ScrolloffsetX;
       document.getElementById("IconDescriptor").style.top  = window.event.clientY + 10 + ScrolloffsetY;
       document.getElementById("IconDescriptorText").innerHTML = text;
       document.getElementById("IconDescriptor").style.visibility = "visible";
}

function HideDescription() {
       document.getElementById("IconDescriptor").style.visibility = "hidden";
}

function Fenster(url){
        a=window.open(url, '','top=1,left=100,width=600,height=560,status=no,scrollbars=no,resizable=yes');
        a.focus();
        return void(0);
}

function PreviewSheet(url){
        a=window.open(url, 'PreviewSheet','top=1,left=10,width=900,height=500,status=no,scrollbars=yes,resizable=yes');
        a.focus();
        return void(0);
}

function ScrollFenster(url){
        a=window.open(url, 'PreviewSheet','top=1,left=10,width=900,height=500,status=no,scrollbars=yes,resizable=yes');
        a.focus();
        return void(0);
}

function SizedFenster(url,width,height) {
        a=window.open(url, '_blank','top=1,left=10,width='+width+',height='+height+',status=no,scrollbars=yes,resizable=yes');
        a.focus();
        return void(0);
}


function OpenHelpWindow(topicReferenceName){
        a=window.open('/popup_help.php?topicReferenceName='+topicReferenceName, 'ProMPTHelp','top=1,left=10,width=500,height=500,status=no,scrollbars=yes,resizable=yes');
        a.focus();
        return void(0);
}


function ScrollFensterSmall(url){
        a=window.open(url, 'PreviewSheet', 'top=1,left=100,width=600,height=560,status=no,scrollbars=yes,resizable=yes');
        a.focus();
        return void(0);
}

function drucken() { // DS
        if (window.print){
          window.print();
        } else {
          alert('Ihr Browser unterstuetzt diese Funktion nicht !\nVerwenden Sie Apfel p (Mac) oder Strg p (Windows)');
        }
}

function isNumeric(sText) {
   if (sText.length < 1) return false;
   var IsNumber = true;
   var ValidChars = "0123456789.";
   var Char;

   for (i=0; i< sText.length && IsNumber == true; i++) {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1) {
         IsNumber = false;
      }
   }
 return IsNumber;
}

function isInteger(sText) {
   var IsNumber = true;
   var ValidChars = "0123456789.";
   var Char;
   for (i=0; i<sText.length && IsNumber == true; i++) {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1) {
        IsNumber = false;
      }
   }
 return IsNumber;
}

function isRightFactor(sText) {
   var eInt = sText / 0.5;
   if (isNaN(eInt)) return false;
   var eString = eInt + '';
   if (eString.indexOf('.') > 0) return false;
   return true;
}


function isSignedNumeric(str) {
// returns true if str is (optionally) signed numeric
// that is it contains only the digits 0-9 with an option leading sign (+ or -)
// returns false otherwise
// returns false if empty (or contains only a sign)
  var len= str.length;
  if (len==0)
    return false;
  //else
  var ch= str.charAt(0);
  if (ch=="+" || ch=="-")
    return isNumeric(str.substring(1,str.length));
  else
    return isNumeric(str);
}

function isAlphabetic(str) {
// returns true if str is alphabetic
// that is only A-Z a-z or space
// returns false otherwise
// returns false if empty
  var len= str.length;
  if (len==0)
    return false;
  //else
  var p=0;
  var ok= true;
  var ch= "";
  while (ok && p<len)
  {
    ch= str.charAt(p);
    if (  ('A'<=ch && ch<='Z')
        ||('a'<=ch && ch<='z')
        ||(ch==" ")
          )
      p++;
    else
      ok= false;
  }
  return ok;
}

function isValidDate(dateStr) {
// Checks for the following valid date formats:
// DD/MM/YY   DD/MM/YYYY   DD-MM-YY   DD-MM-YYYY DD.MM.YYYY

var datePat = /^(\d{1,2})(\/|-|.)(\d{1,2})\2(\d{4})$/; // requires 4 digit year

var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
// alert(dateStr + " Date is not in a valid format.")
return false;
}
month = matchArray[3]; // parse date into variables
day = matchArray[1];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
// alert("Month must be between 1 and 12.");
return false;
}
if (day < 1 || day > 31) {
// alert("Day must be between 1 and 31.");
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
// alert("Month "+month+" doesn't have 31 days!")
return false;
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
// alert("February " + year + " doesn't have " + day + " days!");
return false;
   }
}
return true;
}


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function checktext2Obj(text2obj, minlen) {
        var str = new String(text2obj.value);
        if (minlen == '@') {
                if (str.indexOf("@") < 1) return (-1);
                strSlices = text2obj.value.split("@");
                if (strSlices[0] == "" || strSlices[1] == "") return (-1);
                if (strSlices[1].indexOf(".") >= 1) {
                        strDomainAbbrev = strSlices[1].slice(strSlices[1].lastIndexOf("."), strSlices[1].length);
                        if (strDomainAbbrev.length <= 2) return (-1);
                        strDomainName = strSlices[1].slice(0, strSlices[1].lastIndexOf("."));
                        if (strDomainName.length <= 1) return (-1);
                } else {
                        return (-1);
                }
                return 0;
        } else {
                if (str.length < minlen || str=='undefined') return (-1);
                return 0;
        }
}
