// defer // uncomment // var karmaticsDeferred = { // initial // uncomment // var Karmatics = { // skip ------------------------------------------- var temp = { // initial --------------------------------------- makeDateTimeString : function(dateSeconds) { var d = new Date(dateSeconds*1000); var month = d.getMonth(); var day = d.getDate(); var year = d.getYear(); var hour = d.getHours(); var minute = d.getMinutes(); var ap = "am"; if(hour > 11) { ap = "pm"; if(hour > 12) hour = hour - 12; } else if(hour == 0) hour = 12; var dateStr = hour + ((minute<10)?":0":":") + minute + ap; if(month != this.thisMonth || day != this.today || year != this.thisYear) { dateStr += " " + (month+1) + "/" + day; if(year != this.thisYear) { year = (year%100); dateStr += ((year<10)?"/0":"/") + year } } return dateStr; }, getCurrDate : function() { var now = new Date(); this.thisMonth = now.getMonth(); this.today = now.getDate(); this.thisYear = now.getYear(); }, //------------------------------------------------- //cross-browser event handling with listeners(if available) setListener : function(element, eventType, handler, capture) { if(element.addEventListener) { element.addEventListener(eventType, handler, capture); return true; } else if(element.attachEvent) { element.attachEvent('on' + eventType, handler); return true; } }, //----------------------------------------------------- getPos : function(o) { var pos = {}; var leftX = 0; var leftY = 0; if(o.offsetParent) { while(o.offsetParent) { leftX += o.offsetLeft; leftY += o.offsetTop; o = o.offsetParent; } } else if(o.x) { leftX += o.x; leftY += o.y; } pos.x = leftX; pos.y = leftY; return pos; }, //----------------------------------------------------- // move a abs positioned element to an x y location moveElem : function(o, x, y) { o=o.style; /*if(document.all) { o.pixelLeft = x; o.pixelTop = y; } else */ { o.left=x + 'px'; o.top=y + 'px'; } }, getCookie : function(name) { if(name.length > 0 && document.cookie.length > 0) { var begin = document.cookie.indexOf(name+"="); if(begin != -1) { begin += name.length+1; var end = document.cookie.indexOf(";", begin); if(end == -1) end = document.cookie.length; return unescape(document.cookie.substring(begin, end)); } } return null; }, setCookie : function(cookieName, cookieValue, path, nDays) { var today = new Date(); var expire = new Date(); expire.setTime(today.getTime() + 3600000*24*nDays); document.cookie = cookieName + "=" + escape(cookieValue) + ((path) ? "; path=" + path : "") + ";expires=" + expire.toGMTString(); }, deleteCookie : function(name, path) { Karmatics.setCookie(name, "", path, -1); }, // defer ------------------------------------- //----------------------------------------------------- getWindowDimensions : function () { var out = {}; if (window.pageXOffset) { out.scrollX = window.pageXOffset; out.scrollY = window.pageYOffset; } else if (document.documentElement) { out.scrollX = document.body.scrollLeft + document.documentElement.scrollLeft; out.scrollY = document.body.scrollTop + document.documentElement.scrollTop; } else if (document.body.scrollLeft >= 0) { out.scrollX = document.body.scrollLeft; out.scrollY = document.body.scrollTop; } if (document.compatMode == "BackCompat") { out.width = document.body.clientWidth; out.height = document.body.clientHeight; } else { out.width = document.documentElement.clientWidth; out.height = document.documentElement.clientHeight; } return out; }, //-------------------------------------------------------------- // get an element within another by its tag type and its classname // (or partial classname, for instance if the classname is "whatever" // you can get it by "what" but not "ever") getDecendantElem : function (container, type, classname) { if (container != null) { var i, e, len, elems = container.getElementsByTagName(type); len = elems.length; for (i = 0; i < len; i++) { e = elems.item(i); if (!e.className || e.className.indexOf(classname)==0) return e; } } return null; }, //-------------------------------------------------------------- insertAfter : function (element, prevElement) { var parent = prevElement.parentNode; if (parent.lastChild == prevElement) return parent.appendChild (element); else return parent.insertBefore (element, prevElement.nextSibling); }, //------------------------------------------------- getElementFromEvent : function (evt) { if (!evt) evt = window.event; return ((evt.target) ? evt.target : evt.srcElement); }, //------------------------------------------------- setHandler : function (obj, eventName, code) { if (document.all) obj.setAttribute(eventName, new Function(code)); else obj.setAttribute(eventName, code); }, //------------------------------------------------- removeListener : function (element, eventType, handler, capture) { if (element.removeEventListener) { element.removeEventListener(eventType, handler, capture); return true; } else if(element.detachEvent) return element.detachEvent('on' + eventType, handler); else element["on" + eventType] = null; }, //------------------------------------------------------ modifyClassName : function (elem, add, string) { var s = (elem.className) ? elem.className : ""; if (add) s += " " + string; else { var index; if ((index = s.indexOf(string)) != -1 && index == s.length - string.length) { if (index > 0 && s.charAt(index-1) == ' ') index--; s = s.substring (0, index); } } elem.className = s; }, //------------------------------------------------------ scrollWindowOneIncrement : function (elem, ss) { var K = Karmatics, diff = ss.yTarget - ss.currY; if (diff < ss.scrollSpeed) { window.scrollTo (0, ss.currY + diff); if (ss.callback) ss.callback.apply (null, ss.callbackArgs); } else { ss.currY += ss.scrollSpeed; window.scrollTo (0, ss.currY); aardvarkTools.setTimerFunction (20, K.scrollWindowOneIncrement, elem, ss); } }, //------------------------------------------------------ scrollWindowComplete : function (elem, ss) { }, //------------------------------------------------------ scrollWindowToElement : function (elem, callback, callbackArgs) { var K = Karmatics, speed, dims = K.getWindowDimensions(), ss = {dims: dims, currY: dims.scrollY, callback: callback, callbackArgs: callbackArgs}, y = K.getPos(elem).y, h = dims.height, bottomOfWindow = ss.currY + h, bottomOfElem = (y + elem.offsetHeight + 4), diff = bottomOfElem - bottomOfWindow; if (diff <= 0) { if (ss.callback) ss.callback.apply (null, ss.callbackArgs); return; } ss.yTarget = bottomOfElem - h; if (diff > 3000) ss.scrollSpeed = 800; else if (diff > 2000) ss.scrollSpeed = 400; else ss.scrollSpeed = 20; K.scrollWindowOneIncrement (elem, ss); } // uncomment //, // skip -------------------------------- }; { var i; for(i in temp) Karmatics[i] = temp[i]; temp = null; }