
/*
 * Add Window Onload events safely.
 * by Michel Vuijlsteke, http://blog.zog.org/
 */
function addLoadEvent(func) {
	var onloadBak=window.onload;
	if (typeof window.onload!='function') { window.onload=func; }
	else {
		window.onload=
		function() {
			onloadBak();
			func();
		}
	}
} 

/*
 * Clear Default Text: functions for clearing and replacing default text in
 * <input> elements.
 * by Ross Shannon, http://www.yourhtmlsource.com/
 */

addLoadEvent(init); 

//addEvent(window, 'load', init, false);

function init() {
    var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];
        
        if (theInput.type == 'text' && (theInput.className.match(/\bcleardefault\b/) || theInput.id.match(/\SearchForm_SearchForm_Search\b/) || theInput.id.match(/\Form_QuickMessageForm_Email\b/))) {  
            /* Add event handlers */          
            addEvent(theInput, 'focus', clearDefaultText, false);
            addEvent(theInput, 'blur', replaceDefaultText, false);
            
            /* Save the current value */
            if (theInput.value != '') {
                theInput.defaultText = theInput.value;
            }
        }
    }
}

function clearDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == target.defaultText) {
        target.value = '';
    }
}

function replaceDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == '' && target.defaultText) {
        target.value = target.defaultText;
    }
}

/* 
 * Cross-browser event handling, by Scott Andrew
 */
function addEvent(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return true;
    } else if (element.attachEvent) {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return r;
    } else {
        return false;
    }
}

/*
 * Zebra Striping and mouseover rows for tables.
 * by Marko Dugonjic, http://www.maratz.com/blog/
 */
var stripe = function() {
    if (!document.getElementsByTagName || !document.createTextNode) return;
    var even = true;
    var trs = document.getElementsByTagName('tr');      
    for (var i = 0; i < trs.length; i++) {
        if (trs[i].parentNode.nodeName == 'TBODY') {
            trs[i].onmouseover = function(){
                this.className += (!this.className) ? 'ruled' : ' ruled';
            }
            trs[i].onmouseout = function(){
                this.className = this.className.replace(' ruled', '').replace('ruled', '');
            }        
            if(even)
            trs[i].className += (!trs[i].className) ? 'even' : ' even';        
            even = !even;
        }
    }
}

addLoadEvent(stripe); 

