
// script injector

mvpInjectScript = function(url, scriptId, lookFor, callback) {
	var head = document.getElementsByTagName('head')[0];
	var prevScript = document.getElementById(scriptId);
	
	if ( prevScript ) {
		head.removeChild( prevScript );
	}
	prevScript = null;
	if ( !prevScript || !(url == prevScript.src) ) {
		var oScript = document.createElement("script"); 
		oScript.setAttribute("src", url); 
		oScript.setAttribute("id", scriptId); 
		if ( callback ) {
			mvpWaitForLoad(lookFor, callback);
		}
		
		head.appendChild(oScript);
	} else {
		callback();
	}
}

mvpWaitForLoad = function(lookFor, callback) {
	var interval = setInterval(function() {
		if ( eval("typeof " + lookFor) != 'undefined') {
			clearInterval(interval);
			callback();
		}
	}, 50);					
}


// ###################################################################### //

function set_one_different( parent_id, tag_name, active_id, active_class, inactive_class ) {
  var tablist = $( parent_id ).getElementsByTagName( tag_name );
  var nodes = $A( tablist );

  nodes.each( function(node) {
	  node.className = ( node.id == active_id ) ? active_class : inactive_class;
   } );
}

// ###################################################################### //

function tab_activate( tab_id, pane_id ) {
  tabselect( $( tab_id ) ); 
  paneselect( $( pane_id ) );
}

function tabselect(tab) {
  set_one_different( 'tabcontrol1', 'li', tab.id, 'tab-selected', 'tab-unselected' ) 
}

function paneselect(pane) {
  set_one_different( 'panecontrol1', 'li', pane.id, 'pane-selected', 'pane-unselected' ) 
}

// ###################################################################### //

function help_show_tip ( q_el, a_el ) {
	// q_el.src = '/decor/live/help_dark_info.gif';
	var q_pos = Position.cumulativeOffset( q_el );
	var answer_div = $( a_el );
	answer_div.style.left = q_pos[0] - 346 + "px";
	answer_div.style.top = q_pos[1] + 15 + "px";
	answer_div.visualEffect('Appear', { duration: 0.25, queue: 'end' } );
}

function help_hide_tip ( q_el, a_el ) {
	var answer_div = $( a_el );
	answer_div.visualEffect('Fade', { 
		duration: 0.25, queue: 'end'
	} );
	
	// afterFinish: function () { q_el.src = '/decor/live/help_gray_info.gif'; } 
	
}

// ###################################################################### //

var mvp_popup_menu_is_open;

var mvp_moved_popup = [];

function mvp_popup_menu_hide_open () {
	if ( mvp_popup_menu_is_open ) {
		mvp_popup_menu_hideshow( mvp_popup_menu_is_open, 0 );
	}
}

function mvp_popup_menu_hideshow ( menu_id, visible ) {
	var menu_div = $('mvp_popup_menu_area_' + menu_id );
	if ( visible == '-' ) {
		visible = ! menu_div.hasClassName( 'mvp_active' );
	}
	if ( visible ) {
		mvp_popup_menu_hide_open();

		if ( ! mvp_moved_popup[ menu_id ] ) {
			mvp_moved_popup[ menu_id ] = 1;
			document.body.appendChild( menu_div );
			Position.absolutize( menu_div ); 
		}
		var menu_btn = $('mvp_popup_menu_buttton_' + menu_id );
		Position.clone( menu_btn, menu_div, { setWidth: false, setHeight: false, offsetLeft: 10 } ); 
		menu_div.style.width = '140px';
		menu_div.style.height = 'auto';
		
		menu_div.addClassName( 'mvp_active' );
		mvp_popup_menu_is_open = menu_id;
	} else {
		menu_div.removeClassName( 'mvp_active' );
		mvp_popup_menu_is_open = 0;
	}
}

function mvp_popup_menu_add_playlist ( el, cid, title ) {
	if ( el.innerHTML.substring(0, 9) == 'Added to ' ) { 
		window.location.assign( '/account/playlist/view/' + cid );
	} else { 
		new Ajax.Request( el.href, { 
			onSuccess: function (t) { el.innerHTML = 'Added to ' + title }, 
			onFailure: function (t) { el.innerHTML = 'Could not be added' } 
		} ); 
		new Effect.Highlight(el, { 
			duration: 0.5, 
			afterFinish: function() { 
				mvp_popup_menu_hide_open();
			} 
		} ) ; 
		
	} 
}
