no just beta testing , i was trying to get my own personal set of helpers methods instead of using jquery , i even searched in a lot of books , but you know Jquery is more powerful and robust and this kind of what i was doing
/*
* The Event Utility Object
*/
var EventUtil = {
//This Method Is Used To Assigne Handler To Element
addHandler: function(element, type, handler){
if (element.addEventListener){
element.addEventListener(type, handler, false);
} else if (element.attachEvent){
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},
//This Method Is Used To Get The Event Object
getEvent: function(event){
return event ? event : window.event;
},
//This Method Is Used TO Get The Event Target
getTarget: function(event){
return event.target || event.srcElement;
},
//This Method Is Used To Prevent The Defautl Behavior
preventDefault: function(event){
//This Is A Cross Browser Compatible
if (event.preventDefault){
//DOM Compilant Browsers
event.preventDefault();
} else {
//IE Browsers
event.returnValue = false;
}
},
//This Method Is Used To Remove A handler
removeHandler: function(element, type, handler){
//This Is A Cross Browser Compatible
if (element.removeEventListener){
element.removeEventListener(type, handler, false);
} else if (element.detachEvent){
element.detachEvent("on" + type, handler);
} else {
element["on" + type] = null;
}
},
//This Method Is Used To Stop The Bubbling Phase
stopPropagation: function(event){
//This Is A Cross Browser Compatible
if (event.stopPropagation){
//DOM Compilant Browsers
event.stopPropagation();
} else {
//IE Browsers
event.cancelBubble = true;
}
},
getRelatedTarget: function(event){
if (event.relatedTarget){
return event.relatedTarget;
} else if (event.toElement){
return event.toElement;
} else if (event.fromElement){
return event.fromElement;
} else {
return null;
}
}
};
/**
* GFX Effects
*/
sp.show = function(obj)
{
obj.style.display = "";
}
sp.hide = function(obj)
{
obj.style.display = "none";
}
/**
* Validation
*/
sp.empty = function(value)
{
if(value == "" || value == null || value == false)
{
return true;
}
return false;
}
// Document DOM Ready (DOM READY);
sp.run = function(obj)
{
// Firefox & Opera
if (sp.browser() == "Firefox" || sp.browser() == "Opera" || sp.browser() == "Chrome") {
d.addEventListener("DOMContentLoaded", function() { sp.called = true; obj.init; }, false);
}
// Internet Explorer
else if (sp.browser() == "IE" && sp.browser() != "Opera"){
d.write('<script type="text/javascript" id="contentloadtag" defer="defer" src="javascript:void(0)"><\/script>');
var contentloadtag = d.getElementById("contentloadtag");
contentloadtag.onreadystatechange = function(){
if (this.readyState=="complete"){
sp.called = true;
obj.init;
}
}
}
// Safari & Chrome
else if (sp.browser() == "Safari") {
var timer = setInterval(function() {
if (/loaded|complete/.test(d.readyState)) {
sp.called = true;
clearInterval(timer);
obj.init;
}
}, 10);
}
// Other browsers
// called is a property that has been intialized to achive the trace of the called method
// in a documentready event
if(!sp.called) {
sp.bind(w, "load", obj.init, false);
}
};