var IE = document.all?true:false;

if (!IE) document.captureEvents(Event.MOUSEMOVE);

document.onmousemove = getMouseXY;
window.onload = getSize;
window.onresize = getSize;

var tempX = 0;
var tempY = 0;
var windowX = 0;
var windowY = 0;

function desc_layer_show(the_title, content)
{
	var objHeight = document.getElementById('Popup_desc_layer').offsetHeight;
	var objWidth = document.getElementById('Popup_desc_layer').offsetWidth;
	var addX = (windowX<tempX+objWidth+30)? (-objWidth-10) : (+12);
	var addY = (windowY<tempY+objHeight+30)? (-objHeight-0) : (0);
	var x = tempX + addX;
	var y = tempY + addY;
	document.getElementById('Popup_desc_layer').style.left = x;
	document.getElementById('Popup_desc_layer').style.top = y;
	if(the_title!="" && content!="") {
	   document.getElementById('desc_title').innerHTML = the_title;
	   document.getElementById('desc_content').innerHTML = content;
	}
	document.getElementById('Popup_desc_layer').style.display="block";
}

function desc_layer_show1(the_title, content)
{
	var objHeight = document.getElementById('Popup_desc_layer_DM').offsetHeight;
	var objWidth = document.getElementById('Popup_desc_layer_DM').offsetWidth;
	var addX = (windowX<tempX+objWidth+30)? (-objWidth-10) : (+12);
	var addY = (windowY<tempY+objHeight+30)? (-objHeight-0) : (0);
	var x = tempX + addX;
	var y = tempY + addY;
	document.getElementById('Popup_desc_layer_DM').style.left = x;
	document.getElementById('Popup_desc_layer_DM').style.top = y;
	if(the_title!="" && content!="") {
	   document.getElementById('desc_title_DM').innerHTML = the_title;
	   document.getElementById('desc_content_DM').innerHTML = content;
	}
	document.getElementById('Popup_desc_layer_DM').style.display="block";
}
 
 
function desc_layer_show_SUB(the_title, content)
{
	var objHeight = document.getElementById('Popup_desc_layer_SUB').offsetHeight;
	var objWidth = document.getElementById('Popup_desc_layer_SUB').offsetWidth;
	var addX = (windowX<tempX+objWidth+30)? (-objWidth-10) : (+12);
	var addY = (windowY<tempY+objHeight+30)? (-objHeight-0) : (0);
	var x = tempX + addX;
	var y = tempY + addY;
	document.getElementById('Popup_desc_layer_SUB').style.left = x;
	document.getElementById('Popup_desc_layer_SUB').style.top = y;
	if(the_title!="" && content!="") {
	   document.getElementById('desc_title_SUB').innerHTML = the_title;
	   document.getElementById('desc_content_SUB').innerHTML = content;
	}
	document.getElementById('Popup_desc_layer_SUB').style.display="block";
} 

   
function desc_layer_hide()
{
	document.getElementById('Popup_desc_layer').style.display="none";
	document.getElementById('Popup_desc_layer_DM').style.display="none";

}

function desc_layer_hide1()
{
	document.getElementById('Popup_desc_layer_DM').style.display="none";
}


function desc_layer_hide_SUB()
{
	document.getElementById('Popup_desc_layer_SUB').style.display="none";
}

function getMouseXY(e) {
	if (IE) { // grab the x-y pos.s if browser is IE
		tempX = event.clientX + document.body.scrollLeft;
		tempY = event.clientY + document.body.scrollTop;
	} else {  // grab the x-y pos.s if browser is NS
		tempX = e.pageX;
		tempY = e.pageY;
	}
	// catch possible negative values in NS4
	if (tempX < 0){tempX = 0;}
	if (tempY < 0){tempY = 0;}

	return true;
}

function getSize(e) {
	if( typeof( window.innerWidth ) == 'number' ) {
	//Non-IE
		windowX = window.innerWidth;
		windowY = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
	//IE 6+ in 'standards compliant mode'
		windowX = document.documentElement.clientWidth;
		windowY = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
	//IE 4 compatible
		windowX = document.body.clientWidth;
		windowY = document.body.clientHeight;
	}
	return true;
}



//--------------------------------------------------------------------------------------------------------
// Validate Forms
//--------------------------------------------------------------------------------------------------------

var msgNumber  = "must be a number";
var msgEMail   = "must be an e-mail address";
var msgURL     = "must be a web address";
var msgFillOut = "Please fill out";
var msgNoForm  = "Form does not exist";
var msgNoField = "Field does not exist";


function _trim(str) {
  if(str) {
    str = str.replace(/^\s+/, "");
    str = str.replace(/\s+$/, "");
  }
  return str;
}

function checkForm() {
  var args = checkForm.arguments;
  var f = args[0];
  var msg = "There are some errors, please correct them before submitting: \n";
  var msg1 = "There are some errors, please correct them before submitting: \n";
  var arr, field, title, type, minLength, elem, val, cnt, i, j;

  var valid_url = /^(https?|ftp):\/\/([a-z0-9._-]+:[a-z0-9._-]+@)?[a-z0-9äöüÄÖÜ#._\/~% -]+(\?([a-z0-9_-]+(=[a-zA-Z0-99äöüÄÖÜß+%?_-]+&?)?)*)?$/i;
  var valid_mail = /^[a-z0-9._-]+@[a-z0-9äöüÄÖÜ.-]+\.[a-z]{2,4}$/i;

  if(document.forms[f]) {
    for(i = 1; i < args.length; i++) {
      arr = args[i].split(":");
      field = _trim(arr[0]);
      title = _trim(arr[1]);
      if(!title) title = field;
      type = _trim(arr[2]);
      minLength = _trim(arr[3]);
      elem = document.forms[f].elements[field];

      if(elem) {
        val = _trim(elem.value);

        if(val != "") {
          if(type == "number") {
            val = val.replace(",", ".");
            if(isNaN(val)) msg += '"' + title + '" ' + msgNumber + "\n";
          }
          else if(type == "mail" && val.search(valid_mail) == -1) msg += '"' + title + '" ' + msgEMail + "\n";
          else if(type == "url" && val.search(valid_url) == -1) msg += '"' + title + '" ' + msgURL + "\n";
        }

        if(minLength) {
          if(elem.length) {
            if(elem.options) {
              for(j = cnt = 0; j < elem.options.length; j++) {
                if(elem.options[j].selected && elem.options[j].value != "") cnt++;
              }
            }
            else for(j = cnt = 0; j < elem.length; j++) {
              if(elem[j].checked) cnt++;
            }
          }
          else if(elem.type == "checkbox") cnt = elem.checked ? 1 : 0;
          else cnt = val.length;
          if(cnt < minLength) msg += msgFillOut + ' "' + title + '"\n';
        }
      }
      else msg += msgNoField + ': "' + field + '"\n';
    }

    if(msg!="" && msg!=msg1) alert(msg);
    else document.forms[f].submit();
  }
  else alert(msgNoForm + ': "' + f + '"');
}

//--------------------------------------------------------------------------------------------------------

<!-- Begin
function getRandomNum(lbound, ubound) {
return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
}
function getRandomChar(number, lower, upper, other, extra) {
var numberChars = "0123456789";
var lowerChars = "abcdefghijklmnopqrstuvwxyz";
var upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var otherChars = "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";
var charSet = extra;
if (number == true)
charSet += numberChars;
if (lower == true)
charSet += lowerChars;
if (upper == true)
charSet += upperChars;
if (other == true)
charSet += otherChars;
return charSet.charAt(getRandomNum(0, charSet.length));
}
function getPassword(length, extraChars, firstNumber, firstLower, firstUpper, firstOther,
latterNumber, latterLower, latterUpper, latterOther) {
var rc = "";
if (length > 0)
rc = rc + getRandomChar(firstNumber, firstLower, firstUpper, firstOther, extraChars);
for (var idx = 1; idx < length; ++idx) {
rc = rc + getRandomChar(latterNumber, latterLower, latterUpper, latterOther, extraChars);
}
return rc;
}
// End -->