

function replaceHTML(el, html) {
	var oldEl = typeof el === "string" ? document.getElementById(el) : el;
	/*@cc_on // Pure innerHTML is slightly faster in IE
		oldEl.innerHTML = html;
		return oldEl;
	@*/
	var newEl = oldEl.cloneNode(false);

	newEl.innerHTML = html;
	//oldEl.parentNode.replaceChild(newEl, oldEl);	
	/* Since we just removed the old element from the DOM, return a reference
	to the new element, which can be used to restore variable references. */
	return newEl;
};

function str_replace(search, replace, subject, count) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   input by: Oleg Eremeev
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Oleg Eremeev
    // %          note 1: The count parameter must be passed as a string in order
    // %          note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'
 
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
 
    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}
/* handles the top links */
var toplinks = {
our_parish: 'about St. Pius',
events: 'upcoming things to do',
ministries: 'ministries &amp; groups that grow your faith',
get_in_touch: 'contact us',
media_gallery: 'pictures &amp; video',
st_pius_liturgy: 'mass times &amp; information',
catholic_education: 'further your faith',
};

var c = {
startHTML: "<div id=\"callouttext\"><div id='calloutwrap'>",
endHTML: "</div></div><div id=\"calloutrt\"></div>"
};



window.addEvent('domready', function() {

    var cont = $('links');
    cont.addEvent('mouseenter', function(){
        cont.mousein = true;
    });
    cont.addEvent('mouseleave', function(){
        cont.mousein = false;
        if (cont.hasChild('callout')) $('callout').nix();
    });
    $each(toplinks, function(item, index) {
        var el = str_replace('_', '-', index);
        $(el).addEvent('mouseenter', function() {
            if (!$('linkscontainer').hasChild('callout')) {
                // create child node
                var callout = new Element('div', {id: 'callout', 'class': 'link_'+el});
                callout.set('reveal', {duration: 100, mode: 'vertical', });
                cont.adopt(callout);
            }  
            var callout = $('callout');
            callout.className='link_'+el;
            callout.set('html', c.startHTML+item+c.endHTML);
            if (cont.mousein == true) callout.reveal();
        });
        $(el).addEvent('mouseleave', function() {
            if (cont.hasChild('callout') && cont.mousein != true) {
            var callout = $('callout');
            callout.nix({duration: 80});
            }
        }); 
    });
});

