Event.observe(window, 'load', init);  //unobtrussive JS

function init(e){
	$A(document.getElementsByTagName('a')).each(function(i) {
		Event.observe(i,'focus',linkBlurring,false);  //remove the nasty box around the links
    });
	/*$A(document.getElementsByTagName('input')).each(function(i) {
        Event.observe(i,'focus',linkBlurring,false);
    });*/
	
	if ($('main') && $('main').getAttribute('manager') !== 'true') {  //only do it when the manager is ot logged in
		$A(document.getElementsByClassName('toggle_info')).each(function(i) {
	        Event.observe(i,'click',loadContentAndToggleInfo,false);
	    });
	}
	
	$A(document.getElementsByClassName('mouse_over')).each(function(i) {
        Event.observe(i,'mouseover',rollOver,false);
    });
    
	$A(document.getElementsByClassName('mouse_over')).each(function(i) {
        Event.observe(i,'mouseout',rollOut,false);
    });
/*	$A(document.getElementsByTagName('input')).each(function(i) {  //prevent cart deleting data when hit enter
        Event.observe(i,'key',test,false);
    });*/

	Event.stop(e);
}

function rollOver(e) {
	var link = Event.findElement(e, 'a');
	//alert (removeString(link.down().src, '_up.jpg') + '_down.jpg' );
	link.down().src = removeString(link.down().src, '_up.jpg') + '_over.jpg';
	Event.stop(e);
}

function rollOut(e) {
	var link = Event.findElement(e, 'a');
	//alert (removeString(link.down().src, '_up.jpg') + '_down.jpg' );
	link.down().src = removeString(link.down().src, '_over.jpg') + '_up.jpg';
	Event.stop(e);
}

function test(e){
	alert('test');
	Event.stop(e);
}
//get AJAX content and toggle info DIV - unobtrussive
function loadContentAndToggleInfo(e) {
	
	var e_trigger = Event.findElement(e, 'a');
	var link = e_trigger.href;
	/*var id = e_trigger.id;*/

/*	if (e_trigger.hasClassName('link_info')) {
		e_trigger.toggleClassName('link_info_open');
	} else {
		e_trigger.toggleClassName('link_info');
	}*/
	
/*	e_trigger = Event.findElement(e, 'p');
	Element.extend(e_trigger);
	var parent = e_trigger;*/
	
	/*
	if (!$('info_container_' + id + '_ajax')) {  //has the element been created?
		var container = Builder.node('div', {id: 'info_container_' + id, 'style': 'display: none', 'class': 'info_panel_wrapper' }, [
			Builder.node('div', { id: 'info_container_' + id + '_ajax'}),
			Builder.node('div', {'class': 'close_info_wrapper'} , [
				Builder.node('a', {'class': 'close_info', 'id': 'close_info_' + id }, 'close')
			])
		]);
		parent.appendChild(container);
		Event.observe($('close_info_' + id), 'click', closeInfo, false);
	}*/
	
	/*if ($('info_container_' + id + '_ajax').innerHTML == '') {*/
		requestContent(link, 'team_container');
	/*} else {
		if ($('info_container_' + id).visible()){
			effectHide($('info_container_' + id));
		} else {
			effectShow($('info_container_' + id));
		}		
	}*/

	Event.stop(e);
	return false;
}

//close info panel
/*function closeInfo(e){
	var e_trigger = Event.findElement(e, 'a');
	var id = e_trigger.readAttribute('id');
	id = removeString(id, 'close_info_');
	//$(id).toggleClassName('link_info'); //doesn't seem to work properly...
	$(id).removeClassName('link_info_open');
	$(id).addClassName('link_info');
	effectHide($('info_container_' + id));
	Event.stop(e);
}*/

//toggles element called by the Event, needs to be DIV
function eventToggleElement(e){
	var e_trigger = Event.findElement(e, 'div');
	if (e_trigger.visible()){
		effectHide(e_trigger);
	} else {
		effectShow(e_trigger);
	}
	Event.stop(e);
}

//-- fire event IE friendly way ...., it requires the element object
function fireMouseEvent(fireOnThis){
    var fireOnThis;
    if( document.createEvent ) {
        var evObj = document.createEvent('MouseEvents');
        evObj.initEvent( 'click', true, false);
        fireOnThis.dispatchEvent(evObj); //trigger click event
    } else if( document.createEventObject ) {
        fireOnThis.fireEvent('onclick');
    }
}

// remove the nasty border around the links - i know accessibility...
function linkBlurring(e) {
    var link = Event.element(e);
    if(link.blur) link.blur();
}

//request AJAX content
function requestContent(url, content_id){
		var url;
		var content_id; //where to place the content
		//alert ('aaa');
		new Ajax.Request(url,
		{
		    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
			method: 'post',
			parameters: {'ajax': 'true'},
			onSuccess: function(response_html){
                var response = response_html.responseText || "unable to retrieve AJAX content";

                if (content_id) $(content_id).innerHTML = response;

                return false;
                			
			},
			onComplete: function(){
/*				var new_id = removeString(content_id, '_ajax');
				effectShow($(new_id));*/
				$(content_id).show();
				return false;
			},
			onFailure: function(){ 
				window.open(url);  //try to open the page at least...
				return false;
			}
		});
		return false;
}

//remove all occurancies of a token in a string
function removeString(search_string, needle) {
	var search_string;
	var needle;
	
	var i = search_string.indexOf(needle);
	if (i == -1) {
		return search_string;
	}
	res = search_string.substring(0,i) + removeString(search_string.substring(i + needle.length), needle);
	return res;
}

//default effect to show element
/*function effectShow(el){
	var el;
	//possible tested effects - the ones which work with larger amount of text
	//Effect.BlindDown(el);
	Effect.SlideDown(el);
}*/

//default effect to hide element
/*function effectHide(el){
	var el;
	//possible tested effects - the ones which work with larger amount of text
	//Effect.BlindUp(el);
	//Effect.Fold(el);
	//Effect.Squish(el);
	Effect.SlideUp(el);
}*/