// check the browser:
var ua = navigator.userAgent.toLowerCase(); 
var isGecko       = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
var isKonqueror   = (ua.indexOf('konqueror') != -1); 
var isSafari      = (ua.indexOf('safari') != - 1);
var isOpera       = (ua.indexOf('opera') != -1); 
var isIE          = (ua.indexOf('msie') != -1 && !isOpera && (ua.indexOf('webtv') == -1) ); 
var isMozilla     = (isGecko && ua.indexOf('gecko/') + 14 == ua.length);
var isFirefox    = (ua.indexOf('firefox/') != -1);
var isNS          = ( (isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && !isOpera && !isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
   

// gets the element by id: ;-)
function gebid(was){
	return document.getElementById(was);
}

// gets the absolute position of a html element from the left-upper point of the frame:
function getabsolutepos(wer){
	var xpos = wer.offsetLeft;
	var ypos = wer.offsetTop;
	var Eltern = wer.offsetParent;
	while ( Eltern ) {
		xpos = xpos + Eltern.offsetLeft;
		ypos = ypos + Eltern.offsetTop;
		Eltern = Eltern.offsetParent;
	} 
	var abs = {x:xpos, y:ypos};
	return abs;
}

// gets the real scrollpos:
function getscrollpos(){
	var scrtop=0;
	var scrleft=0;
	if (document.documentElement){
		scrtop=document.documentElement.scrollTop;
		scrleft=document.documentElement.scrollLeft;
	}else if (document.body){
		scrtop=document.body.scrollTop;
		scrleft=document.body.scrollLeft;
	}else{
		var derhtml=document.body.parentNode;
		scrtop=derhtml.scrollTop;
		scrleft=derhtml.scrollLeft;
	}
	var scrpos = {x:scrleft, y:scrtop};
	return scrpos;
}

//mouse-positon (with scroll-pos on ie)
var Mouse = {x:0, y:0};
document.onmousemove = function (evt) {
  var e = window.event || evt;
  Mouse.x = e.x || e.pageX || 0;
  Mouse.y = e.y || e.pageY || 0;
  if (isIE){
	  var scrpos=getscrollpos();
  	Mouse.y=Mouse.y+scrpos.y;	
  	Mouse.x=Mouse.x+scrpos.x;
  }
}

//
// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
// example: addLoadEvent(init);
//
function addLoadEvent(func){	
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func();
		}
	}
}

function getElementByAttribute(aAttribute,aValue,aInElement){
  var ElementVerifier;
  var Elements=new Array();
  function SearchElement(aElement){ 
    if(aElement==null||aElement==undefined)return
    if(ElementVerifier(aElement)){ 
  	  Elements[Elements.length]=aElement;
  	}
  	SearchElement(aElement.firstChild);
  	SearchElement(aElement.nextSibling);
  }  
  if(aInElement==undefined)aInElement=document.body;
  str="if(Element."+aAttribute+"=='"+aValue+"'){return true;}else{return false}";
  ElementVerifier=function(aElement){
    Element=aElement;
  	if(aElement.nodeName=='#text')return false;
  	var E=new Function(str);
  	if(E()){return true;}else{return false};
  }
  SearchElement(aInElement);
  return Elements;
}

function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
    var oCurrent;
    var oAttribute;
    for(var i=0; i<arrElements.length; i++){
        oCurrent = arrElements[i];
        oAttribute = oCurrent.getAttribute(strAttributeName);
        if(typeof oAttribute == "string" && oAttribute.length > 0){
            if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
                arrReturnElements.push(oCurrent);
            }
        }
    }
    return arrReturnElements;
}
