/////////////////////////////// // Timers-related functionality /////////////////////////////// qcodo._objTimers = new Object(); qcodo.clearTimeout = function(strTimerId) { if (qcodo._objTimers[strTimerId]) { clearTimeout(qcodo._objTimers[strTimerId]); qcodo._objTimers[strTimerId] = null; }; }; qcodo.setTimeout = function(strTimerId, strAction, intDelay) { qcodo.clearTimeout(strTimerId); qcodo._objTimers[strTimerId] = setTimeout(strAction, intDelay); }; ///////////////////////////////////// // Event Object-related functionality ///////////////////////////////////// qcodo.handleEvent = function(objEvent) { objEvent = (objEvent) ? objEvent : ((typeof(event) == "object") ? event : null); if (objEvent) { if (typeof(objEvent.clientX) != "undefined") { if (qcodo.isBrowser(qcodo.SAFARI)) { qcodo.mouse.x = objEvent.clientX - window.document.body.scrollLeft; qcodo.mouse.y = objEvent.clientY - window.document.body.scrollTop; qcodo.client.x = objEvent.clientX - window.document.body.scrollLeft; qcodo.client.y = objEvent.clientY - window.document.body.scrollTop; } else { qcodo.mouse.x = objEvent.clientX; qcodo.mouse.y = objEvent.clientY; qcodo.client.x = objEvent.clientX; qcodo.client.y = objEvent.clientY; }; }; if (qcodo.isBrowser(qcodo.IE)) { qcodo.mouse.left = ((objEvent.button & 1) ? true : false); qcodo.mouse.right = ((objEvent.button & 2) ? true : false); qcodo.mouse.middle = ((objEvent.button & 4) ? true : false); } else if (qcodo.isBrowser(qcodo.SAFARI)) { qcodo.mouse.left = ((objEvent.button && !objEvent.ctrlKey) ? true : false); qcodo.mouse.right = ((objEvent.button && objEvent.ctrlKey) ? true : false); qcodo.mouse.middle = false; } else { qcodo.mouse.left = (objEvent.button == 0); qcodo.mouse.right = (objEvent.button == 2); qcodo.mouse.middle = (objEvent.button == 1); }; qcodo.key.alt = (objEvent.altKey) ? true : false; qcodo.key.control = (objEvent.ctrlKey) ? true : false; qcodo.key.shift = (objEvent.shiftKey) ? true : false; qcodo.key.code = (objEvent.keyCode) ? (objEvent.keyCode) : 0; if (objEvent.originalTarget) qcodo.target = objEvent.originalTarget; else if (objEvent.srcElement) qcodo.target = objEvent.srcElement; else qcodo.target = null; }; /* qcodo.client.width = (qcodo.isBrowser(qcodo.SAFARI)) ? window.innerWidth : window.document.body.clientWidth; qcodo.client.height = (qcodo.isBrowser(qcodo.SAFARI)) ? window.innerHeight: window.document.body.clientHeight; qcodo.page.x = qcodo.mouse.x + qcodo.scroll.x; qcodo.page.y = qcodo.mouse.y + qcodo.scroll.y; qcodo.page.width = Math.max(window.document.body.scrollWidth, qcodo.client.width); qcodo.page.height = Math.max(window.document.body.scrollHeight, qcodo.client.height); qcodo.scroll.x = window.scrollX || window.document.body.scrollLeft; qcodo.scroll.y = window.scrollY || window.document.body.scrollTop; qcodo.scroll.width = window.document.body.scrollWidth - qcodo.client.width; qcodo.scroll.height = window.document.body.scrollHeight - qcodo.client.height; */ if (window.document.compatMode == "BackCompat") { qcodo.client.width = (qcodo.isBrowser(qcodo.SAFARI)) ? window.innerWidth : window.document.body.clientWidth; qcodo.client.height = (qcodo.isBrowser(qcodo.SAFARI)) ? window.innerHeight: window.document.body.clientHeight; qcodo.page.width = Math.max(window.document.body.scrollWidth, qcodo.client.width); qcodo.page.height = Math.max(window.document.body.scrollHeight, qcodo.client.height); qcodo.scroll.x = window.scrollX || window.document.body.scrollLeft; qcodo.scroll.y = window.scrollY || window.document.body.scrollTop; } else if (qcodo.isBrowser(qcodo.SAFARI)) { qcodo.client.width = window.innerWidth; qcodo.client.height = window.innerHeight; qcodo.page.width = Math.max(window.document.body.scrollWidth, qcodo.client.width); qcodo.page.height = Math.max(window.document.body.scrollHeight, qcodo.client.height); qcodo.scroll.x = window.scrollX || window.document.body.scrollLeft; qcodo.scroll.y = window.scrollY || window.document.body.scrollTop; } else if (qcodo.isBrowser(qcodo.IE)) { qcodo.client.width = window.document.documentElement.offsetWidth; qcodo.client.height = window.document.documentElement.offsetHeight; qcodo.page.width = Math.max(window.document.documentElement.scrollWidth, qcodo.client.width); qcodo.page.height = Math.max(window.document.documentElement.scrollHeight, qcodo.client.height); qcodo.scroll.x = window.document.documentElement.scrollLeft; qcodo.scroll.y = window.document.documentElement.scrollTop; } else { if (window.scrollMaxY) // Take the Y Scroll Bar into account by subtracting 15 pixels qcodo.client.width = window.innerWidth - 15; else qcodo.client.width = window.innerWidth; if (window.scrollMaxX) // Take the X Scroll Bar into account by subtracting 15 pixels qcodo.client.height = window.innerHeight - 15; else qcodo.client.height = window.innerHeight; qcodo.page.width = window.scrollMaxX + qcodo.client.width; qcodo.page.height = window.scrollMaxY + qcodo.client.height; qcodo.scroll.x = window.scrollX; qcodo.scroll.y = window.scrollY; }; // These Values are "By Definition" qcodo.page.x = qcodo.mouse.x + qcodo.scroll.x; qcodo.page.y = qcodo.mouse.y + qcodo.scroll.y; qcodo.scroll.width = qcodo.page.width - qcodo.client.width; qcodo.scroll.height = qcodo.page.height - qcodo.client.height; return objEvent; }; qcodo.terminateEvent = function(objEvent) { objEvent = qcodo.handleEvent(objEvent); if (objEvent) { // Stop Propogation if (objEvent.preventDefault) objEvent.preventDefault(); if (objEvent.stopPropagation) objEvent.stopPropagation(); objEvent.cancelBubble = true; objEvent.returnValue = false; }; return false; }; /////////////////////////////// // Event Stats-Releated Objects /////////////////////////////// qcodo.key = { control: false, alt: false, shift: false, code: null }; qcodo.mouse = { x: 0, y: 0, left: false, middle: false, right: false }; qcodo.client = { x: null, y: null, width: null, height: null // width: (qcodo.isBrowser(qcodo.IE)) ? window.document.body.clientWidth : window.innerWidth, // height: (qcodo.isBrowser(qcodo.IE)) ? window.document.body.clientHeight : window.innerHeight }; qcodo.page = { x: null, y: null, width: null, height: null // width: window.document.body.scrollWidth, // height: window.document.body.scrollHeight }; qcodo.scroll = { x: window.scrollX || (window.document.body) ? window.document.body.scrollLeft : null, y: window.scrollY || (window.document.body) ? window.document.body.scrollTop : null, // x: null, // y: null, width: (window.document.body) ? (window.document.body.scrollWidth - qcodo.client.width) : null, height: (window.document.body) ? (window.document.body.scrollHeight - qcodo.client.height) : null // width: null, // height: null };