/* $Header: /var/local/cvsrep/site/common/htdoc/script/browser.js,v 1.13 2001/09/11 14:40:57 reinfeldt Exp $ $Name:  $ */

var ns4=document.layers ? 1 : 0
var ie4=document.all ? 1 : 0
var ns6=document.getElementById && !document.all ? 1 : 0

if (ns4) {
  collection = "";
  styleObject = "";
  showString = "show";
  hideString = "hide";
} else {
  collection = "all.";
  styleObject = ".style";
  showString = "visible";
  hideString = "hidden";
}

/*  */
function getObject(object) {
  if (typeof object == "string") {
    if (ns6) {
      return document.getElementById(object).style;
    } else {
      return eval("document." + collection + object + styleObject);
    }
  } else {
    return object;
  }
}

/* Shows or hides a layer */
function showHideLayer(layer, visString) {
  var thisLayer;

  if (layer == '') {
    return true;
  }
  thisLayer = getObject(layer);
  // alert("layer=" + layer + "; visString=" + visString + "; thisLayer=" + thisLayer);
  if (thisLayer) {
    thisLayer.visibility=visString;
  }
  return true;
}

function placeObject(object, x, y) {
  var realObject = getObject(object);
  if (! object) {
    return true;
  }
  if (ns4) {
    realObject.moveTo(x, y);
  } else {
    realObject.pixelLeft = x;
    realObject.pixelTop = y;
  }
  return true;
}

/* Shows the layer 'layerName' at position x, y */
function showLayerAt(layerName, x, y) {
  placeObject(layerName, x, y);
  showLayer(layerName, showString);
  return true;
}

/* Shows the layer 'layerName' */
function showLayer(layerName) {
  showHideLayer(layerName, showString);
  return true;
}

/* Hides the layer 'layerName' */
function hideLayer(layerName) {
  showHideLayer(layerName, hideString);
  return true;
}


function getObjectLeft(object) {
  var theObject = getObject(object);
  if (theObject) {
    if (ns4) {
      return theObject.left;
    } else {
      return theObject.pixelLeft;
    }
  }
  return 0;
}

function getObjectTop(object) {
  var theObject = getObject(object);
  if (theObject) {
    if (ns4) {
      return theObject.top;
    } else {
      return theObject.pixelTop;
    }
  }
  return 0;
}

function getObjectHeight(object) {
  var theObject = getObject(object);
  if (theObject) {
    if (ns4) {
      return theObject.clip.height;
    } else {
      return theObject.clientHeight;
    }
  }
  return 0;
}

function getObjectWidth(object) {
  var theObject = getObject(object);
  if (theObject) {
    if (ns4) {
      return theObject.clip.width;
    } else {
      return theObject.clientWidth;
    }
  }
  return 0;
}

/* Release the focus */
function doBlur() {
  if (ns4) {
    this.blur();
  }
  return false;
}

/**  Syntax *
*    onClick="validateForm('FIELDNAME','METHOD');return document.returnValue"	         *
*	z.B.:	onClick="validateForm('eMail', 'RisEmail');return document.returnValue"  *
*										         *
*    Methoden:										 *
*      Erster Buchstabe fuer "requiered" [R] oder "not requierd" [N]			 *
*      wenn noetig Zusaetze mit [is] anhaengen						 *
*      [Num] fuer Nummer, [Email] ...							 *
*      Fuer Zahlenbereiche [R] oder [N] + [inRange0:10] fuer Nummern zwischen 0 und 10	 *
******************************************************************************************/
function validateForm(formName) {
  var i,p,test,num,min,max,errors=''
  var args=validateForm.arguments;
  var fieldName, val;

  for (i=0; i<(args.length-1); i+=2) {
    fieldName=args[i]
    test=args[i+1]; 
    val=eval("document." + formName + "." + fieldName + ".value");
    if (val != "") {
      if (test.indexOf('isEmail')!=-1) { 
        p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) {
          errors+='- '+nm+' muß eine eMail-Adresse enthalten.\n';
        }
      } else if (test!='R') { 
        num = parseFloat(val);
        if (val!=''+num) {
          errors+='- '+nm+' muß eine Nummer enthalten.\n';
        }
        if (test.indexOf('inRange') != -1) { 
          p=test.indexOf(':');
          min=test.substring(8,p);
          max=test.substring(p+1);
          if (num < min || max < num) { 
            errors+='- Feld '+fieldName+' muß eine Nummer zwischen '+min+' und '+max+' enthalten.\n';
          }
       } 
     } else if (test.charAt(0) == 'R') 
       errors += '- '+fieldName+' wird benötigt.\n'; 
     }
  } 
  if (errors) { 
    alert('Folgende(r) Fehler sind(ist) aufgetreten:\n'+errors);
  }
  return (errors == '');
}


