/* 
 *  * 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;
    }
}
 
/* 
 *  * Kills an event's propagation and default action
 *   */
function knackerEvent(eventObject) {
    if (eventObject && eventObject.stopPropagation) {
        eventObject.stopPropagation();
    }
    if (window.event && window.event.cancelBubble ) {
        window.event.cancelBubble = true;
    }
    
    if (eventObject && eventObject.preventDefault) {
        eventObject.preventDefault();
    }
    if (window.event) {
        window.event.returnValue = false;
    }
}
 
/* 
 *  * Safari doesn't support canceling events in the standard way, so we must
 *   * hard-code a return of false for it to work.
 *    */
function cancelEventSafari() {
    return false;        
}
 
/* 
 *  * Cross-browser style extraction, from the JavaScript & DHTML Cookbook
 *   * <http://www.oreillynet.com/pub/a/javascript/excerpt/JSDHTMLCkbk_chap5/index5.html>
 *    */
function getElementStyle(elementID, CssStyleProperty) {
    var element = document.getElementById(elementID);
    if (element.currentStyle) {
        return element.currentStyle[toCamelCase(CssStyleProperty)];
    } else if (window.getComputedStyle) {
        var compStyle = window.getComputedStyle(element, '');
        return compStyle.getPropertyValue(CssStyleProperty);
    } else {
        return '';
    }
}
 
/* 
 *  * CamelCases CSS property names. Useful in conjunction with 'getElementStyle()'
 *   * From <http://dhtmlkitchen.com/learn/js/setstyle/index4.jsp>
 *    */
function toCamelCase(CssProperty) {
    var stringArray = CssProperty.toLowerCase().split('-');
    if (stringArray.length == 1) {
        return stringArray[0];
    }
    var ret = (CssProperty.indexOf("-") == 0)
              ? stringArray[0].charAt(0).toUpperCase() + stringArray[0].substring(1)
              : stringArray[0];
    for (var i = 1; i < stringArray.length; i++) {
        var s = stringArray[i];
        ret += s.charAt(0).toUpperCase() + s.substring(1);
    }
    return ret;
}
 
/*
 *  * Clear Default Text: functions for clearing and replacing default text in
 *   * <input> elements.
 *    *
 *     * by Ross Shannon, http://www.yourhtmlsource.com/
 *      */
 
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/)) {  
            /* 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 = '';
		target.style.color = '#000000';
    }
}
 
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;
		target.style.color = '#999999';
    }
}

/* mailto */
eval(unescape("function%20m%28user%2C%20domain%2C%20tld%2C%20link%29%7B%20%20%20%20%20var%20addy%20%3D%20user%20%2B%20%27%26%2364%3B%27%20%2B%20domain%20%2B%20%27.%27%20%2B%20tld%3B%20%20%20%20%20if%20%28link%20%21%3D%20%270%27%29%7B%20%20document.write%28%27%3Ca%20href%3D%26%23109%3B%26%23097%3B%26%23105%3B%26%23108%3B%26%23116%3B%26%23111%3B%26%23058%3B%27%2Baddy%2B%27%3E%27%29%3B%20%20%20%20%20if%20%28link%20%3D%3D%20%271%27%29%7B%20%20%20%20%20%20%20%20%20%20%20document.write%28addy%29%3B%20%20%20%20%20%20%20%7Delse%7B%20%20%20%20%20%20document.write%28link%29%3B%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20document.write%28%27%3C%2Fa%3E%27%29%3B%20%20%20%20%20%7Delse%7B%20%20%20document.write%28addy%29%3B%20%20%20%20%20%7D%20%7D"));

