function rightClicked( e ) { if (e.which) return (e.which == 3); else if (e.button) return (e.button == 2);}
function ctrlPressed(e) { if ( typeof (e.ctrlKey) != 'undefined' ) { return e.ctrlKey;} else if ( parseInt(navigator.appVersion) > 3 ) { if ( navigator.appName == "Netscape" ) { var mString = (e.modifiers + 32).toString(2).substring(3, 6); return ( mString.charAt(1) == "1" );}
} else { return false;}
}
function metaPressed(e) { if ( typeof (e.metaKey) != 'undefined' ) { return e.metaKey;} else { return false;}
}
function shiftPressed(e) { if ( typeof (e.shiftKey) != 'undefined' ) { return e.shiftKey;} else if ( parseInt(navigator.appVersion) > 3 ) { if ( navigator.appName == "Netscape" ) { return e.modifiers & Event.SHIFT_MASK;}
} else { return false;}
}
function getParentNode(tagname, obj) { if ( typeof obj != 'object' ) { return false;} else { if ( ( obj.tagName.toUpperCase() ) == ( tagname.toUpperCase() ) ) { return obj;} else { return getParentNode(tagname, obj.parentNode);}
}
}
function getMouseX(e) { var x = 0; if (!e) var e = window.event; if (e.clientX) return ( e.clientX ); else return false;}
function getMouseY(e) { var x = 0; if (!e) var e = window.event; if (e.clientY) return ( e.clientY ); else return false;}
function getPosX(obj) { var curleft = 0; if (obj.offsetParent) { while (obj.offsetParent) { curleft += obj.offsetLeft; obj = obj.offsetParent;}
} else if (obj.x) { curleft += obj.x;}
return curleft;}
function getPosY(obj) { var curtop = 0; if (obj.offsetParent) { while (obj.offsetParent) { curtop += obj.offsetTop; obj = obj.offsetParent;}
} else if (obj.y) { curtop += obj.y;}
return curtop;}
function getWindowWidth() { if ( typeof window.innerWidth != 'undefined' ) return window.innerWidth; else if ( typeof document.body.offsetWidth != 'undefined') return document.body.offsetWidth; else return false;}
function getWindowHeight() { if ( typeof window.innerHeight != 'undefined' ) return window.innerHeight; else if ( typeof document.body.offsetHeight != 'undefined') return document.body.offsetHeight; else return false;}
function getScrollY() { if ( typeof document.body.scrollTop != 'undefined' ) { return document.body.scrollTop;}
}
function getScrollX() { if ( typeof document.body.scrollLeft != 'undefined' ) { return document.body.scrollLeft;}
}
function addEvent(obj, evname, func) { try { if (obj.attachEvent) obj.attachEvent("on" + evname, eval(func) ); else if (obj.addEventListener) obj.addEventListener(evname, eval(func), false); else return false;} catch (e) { return false;}
return false;}
function removeEvent (obj, event_descr, func) { try { if (obj.attachEvent) obj.detachEvent("on" + evname, eval(func) ); else if (obj.addEventListener) obj.removeEventListener(evname, eval(func), true); else return false;} catch (e) { return false;}
return false;}
function getEventSrc( e ) { if ( !e ) return false; if ( e.target ) var targ = e.target; else if ( e.srcElement ) var targ = e.srcElement; if ( typeof (targ) != 'undefined' && targ.nodeType == 3) { var targ = targ.parentNode;}
return targ;}
function cancelEvent( e ) { stopTheBubbling(e); return false;}
function getRealDistance( obj, x, direction ) { if ( !eval('obj.offset' + direction) ) return x; var extra = 0; try { eval ('extra = obj.offset' + direction); x += extra; try { return getRealDistance(obj.offsetParent, x, direction);} catch (f) { return x;}
} catch (e) { return x;}
}
function stopTheBubbling (e) { if ( !e ) { return false;} else { if ( document.all && e) { returnValue = false; e.cancelBubble = true;} else { e.preventDefault(); e.stopPropagation();}
}
}
function getElementBy(attr, val, element, returnMe) { if (!i) i = 0; i++; if ( document.all && (val == 'true' || val == 'false') ) { val = eval(val);}
if ( !element ) var element = document.body; if ( !returnMe ) var returnMe = new Array(); if ( element.getAttribute && element.getAttribute(attr) == val ) { returnMe[returnMe.length] = element;}
if ( element.childNodes && element.childNodes.length ) { for ( var i = 0; i < element.childNodes.length; i++ ) { returnMe = getElementBy( attr, val, element.childNodes[i], returnMe);}
}
return returnMe;}
document.getElementsByAttribute = function(attr, val, tag) { if ( !tag ) tag = '*'; if ( document.all && (val == 'true' || val == 'false') ) val = eval(val); var s = document.getElementsByTagName(tag), i = s.length, e, r = []; while ( i-- ) { e = s[i]; if ( e.getAttribute ) { if (val instanceof Array) { if ( in_array(e.getAttribute(attr), val) ) r.push(e);} else { if ( e.getAttribute(attr) == val ) r.push(e);}
}
}
return r;}
function getElementFromArrayBy(attr, val, arr) { if ( !arr.length ) return false; if ( document.all && (val == 'true' || val == 'false') ) val = eval(val); var returnMe = new Array(); for ( var i = 0; i < arr.length; i++ ) { if ( arr[i].getAttribute && arr[i].getAttribute(attr) == val ) { returnMe[returnMe.length] = arr[i];}
}
if ( !returnMe.length ) return false; else return returnMe;}
function getOwnerDocument(obj) { if ( typeof(obj) != 'object' ) { return false;} else if ( !obj.ownerDocument || typeof(obj.ownerDocument) == 'undefined' ) { return obj.document;} else { return obj.ownerDocument;}
}
function getEventSrcOwnerDocument( eventSrc ) { if ( typeof eventSrc != 'object' ) { return false;} else { if ( typeof (eventSrc) != 'undefined' && typeof (eventSrc.tagName) != 'undefined'
&& eventSrc.tagName.toUpperCase() == "FRAME" ) { return getFrameDocument(eventSrc.id);} else if ( typeof (getOwnerDocument(eventSrc) ) != 'undefined' ) { return getOwnerDocument(eventSrc);} else { return eventSrc;}
}
}
function in_array( needle, haystack ) { if ( typeof haystack != 'object' || !haystack.length ) { return false;} else { for ( var i = 0; i < haystack.length; i++ ) { if ( haystack[i] == needle ) { return true;}
}
return false;}
}
function getIFrameDocument(aID) { var iframe = document.getElementById(aID); if (iframe.contentWindow) { return document.getElementById(aID).contentWindow.document;} else { return document.frames[aID].document;}
}
function microtime() { var d = new Date; return d.getTime();}
