/* This file assembled, compressed and cache-managed by File Packer, v1.1 (c) 2005 bivia Each file contained herein is copyright its respective owner. By assembling these files, bivia has optimized for delivery but has not otherwise edited or changed the files, and bivia makes no claims as to their suitability or compatibility Files included in this package may be accessed directly in this directory with the following names: _bv_config.js _bv_utilities.js bvAttachValidWindows.js bvRoll.js ~site_init.js */ /* (1) packer:START(_bv_config.js) ... */ var Conf = { debug : false, js_path : '/js/', src_img_clear : '/js/bv/clear.gif', src_js_domready : '/js/bv/domready.js', src_htc_domready : '/js/bv/domready.htc' }; /* ... /packer:END(_bv_config.js) */ /* (2) packer:START(_bv_utilities.js) ... */ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/ * Bivia Utilities, v2.0 * (c) 2005 bivia.com * created by Ben Curtis of bivia.com, February 22 2005 * objectified, Decemeber 22, 2005 * - event object largely inspired/ported from Dean Edwards's events * http://dean.edwards.name/my/events.js * * $Id$ *~~~~*/ // set defaults for this file, which may have already been configured if (!Conf) var Conf = {}; Conf.debug = Conf.debug || false; // note: setting to "true" here cannot be overridden by a "false" somewhere else Conf.js_path = Conf.js_path || '/js/'; Conf.src_img_clear = Conf.src_img_clear || '/js/bv/clear.gif'; Conf.src_js_domready = Conf.src_js_domready || '/js/bv/domready.js'; Conf.src_htc_domready = Conf.src_htc_domready || '/js/bv/domready.htc'; Conf.ajax_request_timeout = Conf.ajax_request_timeout || 30; Conf.ajax_response_timeout = Conf.ajax_response_timeout || 30; var bv = { tickBase : new Date(), initialized : false, init : function () { bv.initialized = new Date(); bv.debug.init(); bv.dom.init(); bv.css.init(); bv.ajax.init(); }, // END init bv_guid : 1, guid_counter : 2, // 0 is reserved, bv.bv_guid == 1 getNewGuid : function() { return bv.guid_counter++; }, getId : function (el,base) { if (!el.id) { var b = (base) ? base : "bv"; el.id = b + bv.getNewGuid(); } return el.id; }, debug : { initialized : false, init : function () { bv.debug.initialized = new Date(); if (Conf['debug']) { bv.event.add(window, 'domready', function () { bv.debug.msg('domready','debug'); }); bv.event.add(window, 'domready', function () { bv.debug.msg('domready (prioritized)','debug'); }, "priority"); bv.event.add(window, 'load', function () { bv.debug.msg('page loaded','debug'); }); bv.event.add(window, 'load', bv.debug.make); bv.debug.win = window.open('', '_blank'); bv.debug.msg('init','debug'); } else { bv.debug.msg = function () { }; } if (!window.d) window.d = bv.debug.msg; }, cnt : 1, msgList : { debug : ['script-parse [event #0 :: msg @ 0s]'] }, msgWait : null, msg : function(Msg,Cat) { if (bv.debug.msgWait) clearTimeout(bv.debug.msgWait); if (!Cat) Cat = 'unspecified'; if (!bv.debug.msgList[Cat]) bv.debug.msgList[Cat] = new Array(); var Now = new Date(); bv.debug.msgList[Cat].push(Msg +' [event #'+ bv.debug.cnt++ +' :: msg @ '+ ((Now.getTime() - bv.tickBase.getTime()) /1000) +'s]'); bv.debug.msgWait = setTimeout('bv.debug.make();', 1000); }, // END debug.msg make : function() { if (!bv.dom.initialized) return; var Alert = '
-- end tick count: '+ ((Now.getTime() - bv.tickBase.getTime()) /1000) +'s --'; if (bv.debug.win) { bv.debug.win.document.open(); bv.debug.win.document.write(Alert); bv.debug.win.document.close(); } } // END debug.make }, event : { add : function(el, evt, fn, prioritize) { if (evt == 'domready') el = window; if (typeof el == "string") el = document.getElementById(el); if (!el) return; if (evt == 'domready') { if (prioritize) bv.dom.readyList.unshift(fn); else bv.dom.readyList.push(fn); if (bv.dom.initialized) bv.dom.ready('event.add'); // do not call function directly, because you want it executed in order } else { // start Dean Edwards-port code if (!fn.bv_guid) fn.bv_guid = bv.getNewGuid(); if (!el.bv_events) el.bv_events = {}; if (!el.bv_events[evt]) { el.bv_events[evt] = {}; if (el["on" + evt]) { // store any previously-assigned handlers el.bv_events[evt][0] = el["on" + evt]; } } el.bv_events[evt][fn.bv_guid] = fn; el["on" + evt] = bv.event.handle; } }, // END event.add remove : function(el, evt, fn) { if (el.events && el.bv_events[evt] && fn.bv_guid) delete el.bv_events[evt][fn.bv_guid]; }, // END event.remove handle : function(e) { var Rtn = true; e = e || bv.event.fixEvent(window.event); for (var ii in this.bv_events[e.type]) { this.bv_handleEvent = this.bv_events[e.type][ii]; if (this.bv_handleEvent(e) === false) Rtn = false; } return Rtn; }, // END event.handle fixEvent : function (event) { // add W3C standard event methods event.preventDefault = bv.event.fixEvent_preventDefault; event.stopPropagation = bv.event.fixEvent_stopPropagation; return event; }, fixEvent_preventDefault : function() { this.returnValue = false; }, fixEvent_stopPropagation : function() { this.cancelBubble = true; } }, // END event dom : { initialized : false, init : function () { bv.dom.initialized = false; // not initialized until dom.ready is run if (document.addEventListener) { document.addEventListener('DOMContentLoaded', bv.dom.ready, false); // Gecko-based browsers } else { /*@cc_on @*/ /*@if (@_win32) // Win IE 5+ loads js with direct call or htc with ondocumentready event //document.write('