/**
 * doijs package
 * 
 * @author donna iwan setiawan
 * @version 1.1 
 * copyright - (c) 2007 - 2009 donna iwan setiawan
 * license - GPL version 3 or any later version <http://www.gnu.org/licenses/gpl-3.0.txt>
 */
doi.event=new function(){var c=null,f=[],a=0;function g(){if(doi.browser.safari){c=window.setInterval(function(){if(/loaded|complete/.test(document.readyState)){window.clearInterval(c);c=null;doi.load()}},10)}else{if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){doi.load()},false)}else{if(doi.rendered()){return}try{document.documentElement.doScroll("left")}catch(h){setTimeout(arguments.callee,0);return}doi.load()}}}g();function e(k,i,h,j){if(!k._$events){k._$events={}}if(!k._$events[i]){k._$events[i]={};if(k["on"+i]){k._$events[i][0]=k["on"+i]}}if(doi.dom.isDefined(h._$guid)){return}h._$cancelBubble=j;h._$guid=++a;k._$events[i][h._$guid]=h;k["on"+i]=b}function d(n,l){var m=arguments[2]||{};if(n._$events&&n._$events[l]){var h=n._$events[l];for(var j in h){n._$event=h[j];n._$event(false,m)}}else{if(n["on"+l]&&doi.dom.isFunction(n["on"+l])){var k=function(i,o){n["on"+l](i,o)};k(false,m)}}}function b(k){var l=true;k=k||window.event;var h={};if(this._$events){h=this._$events[k.type]}for(var j in h){this._$event=h[j];if(this._$event._$cancelBubble){k.cancelBubble=true;if(k.stopPropagation){k.stopPropagation()}}if(this._$event(k)===false){l=false}}return l}return{add:function(m,k,j){var l=true;if(doi.dom.isDefined(arguments[3])){l=!!(arguments[3])}if(!m&&!doi.rendered()){f.push({elm:m,type:k,handler:j,cancelBubble:l});return}if(!m){return}if(m.length&&m!=window){for(var h=0;h<m.length;h++){e(m[h],k,j,l)}}else{e(m,k,j,l)}},fire:function(l,j){var k=arguments[2]||{};if(!l){return}if(l.length){for(var h=0;h<l.length;h++){d(l[h],j,k)}}else{d(l,j,k)}},load:function(){for(var j=0;j<f.length;j++){var h=f[j];doi.event.add(h.elm,h.type,h.handler,h.cancelBubble)}delete (f)},remove:function(k,i,h){var j=!!(arguments[3]);if(k._$events&&k._$events[i]){if(doi.dom.isDefined(k._$events[i][h._$guid])){delete k._$events[i][h._$guid];delete h._$guid;delete h._$cancelBubble}}},fromTarget:function(h){h=h||window.event;return h.srcElement||h.relatedTarget},toTarget:function(h){h=h||window.event;return h.relatedTarget||h.toElement},stop:function(h){h=h||window.event;h.cancelBubble=true;h.returnValue=false;if(h.stopPropagation){h.stopPropagation()}if(h.preventDefault){h.preventDefault()}}}};doi.event.add(doi,"load",doi.event.load);doi.event.add(window,"load",doi.load);