function addEvent(obj, evt, fn) {
    if (typeof obj.attachEvent != 'undefined') {
        obj.attachEvent("on" + evt, fn);
    } else if (typeof obj.addEventListener != 'undefined') {
        obj.addEventListener(evt, fn, false);
    }
}

function clearOnSelect(t) {
    for (var i = 0; i < t.length; i++) {
	var o = t[i];
	if(o.className.match('clearOnSelect')) {
            o.onfocus = function () {
                this.value = '';
            }
	}
    }
}

function createMouseOvers(d) {
    var p = 0,
    prelImgs = new Array();
    for (var i = 0; i < d.length; i++) {
        var o = d[i];
        if (o.src.indexOf('_out') != -1) {
            var s = o.src,
                l = s.length,
                e = s.substring(l - 4, l);
            o.outSrc = s;
            o.overSrc = s.substring(0, l - 8) + '_over' + e;
            o.onmouseover = function () {
                this.src = this.overSrc;
            }
            o.onmouseout = function () {
                this.src = this.outSrc;
            }
            prelImgs[p] = new Image();
            prelImgs[p].src = o.overSrc;
            p++;
        }
    }
}


function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}


function animationSchedule() {
    var status = {
	'true': 'open',
	'false': 'close'
    };

    // Checks that calendar-more div exists
    var elementName = 'calendar-more';
    if($(elementName) == null) {
	return;
    }

    var myVerticalSlide = new Fx.Slide(elementName);

    myVerticalSlide.hide();
    
    $('calendarschedule_toggle').addEvent('click', function(e){
	    $('calendarschedule_more').style.display ="none";
	    e.stop();
	    myVerticalSlide.slideIn();
	    
	});
    
    $('calendarschedule_toggletable').addEvent('click', function(e){
	    $('calendarschedule_more').style.display ="none";
	    e.stop();
	    myVerticalSlide.slideIn();
	}); 
}

function loadFlowplayer() {
    flowplayer("div.audio", "/assets/transverse/flash/flowplayer-3.1.5.swf", { 
	    plugins: { controls: {fullscreen: false, height: 30} }, 
	    clip: { autoPlay: false} 
	});

    flowplayer("div.video", "/assets/transverse/flash/flowplayer-3.1.5.swf", { 
	    clip: { autoPlay: false,
		    scaling: 'fit',
		    autoBuffering: true },
		canvas: { 
		    backgroundGradient: [0.5, 0],
		    backgroundColor: "#4a392c"
		    },
		plugins: {controls: { sliderColor: "#6a492c"}}
    });
}

function showHide() {
    $$( '.showHide' ).each(function(item){
	    var thisSlider = new Fx.Slide( item.getElement( '.SHcontent' ), { duration: 500 } );
	    thisSlider.hide();
	    item.getElement( '.toggle' ).addEvent( 'click', function(){
		    thisSlider.toggle();
		    /*		    this.set('styles', {
			    'visibility' : 'hidden',
			    'display' : 'none'
			    });*/
		} ); 
	} );
}


addEvent(window, 'load', function () {
    loadFlowplayer();
    createMouseOvers(document.images);
    createMouseOvers(document.getElementsByTagName('input'));
    clearOnSelect(document.getElementsByTagName('input'));
    animationSchedule();
    showHide();
});


