/**
 * Library Dynamics Spectra Services
 * Client-side JavaScript functionality
 * @author Caktus Consulting Group
 * 
 * Spinning Wait Icon ( Creative Commons Liscence ):
 * http://www.andrewdavidson.com/articles/spinning-wait-icons/
 */

function show_help(help_file) {
	if ( '' == help_file ) { return false; }

	window.open( 'help/' + help_file + '.html', 'help', 'menubar=0,toolbar=0,resizable=1,scrollbars=1,height=480,width=640');

	return false;
}

function enable_timer(seconds) {
	setTimeout('redirect_to_timeout();', seconds * 1000);
}

function redirect_to_timeout() {
	window.location.href='index.php?action=timeout';
}

function close_and_logout() {
	window.opener.document.location.href='index.php?action=logout';
	window.parent.close();
}

function close_and_restart() {
	window.opener.document.location.href='index.php';
	window.parent.close();
}

function open_application_window( shortname ) {
	var url = "?action=select_collections&application=" + shortname + "&function=restart";
	app_window = window.open(url, 'spectra_application_window', 'toolbar=no, location=no, directories=no, status=yes, menubar=yes, scrollbars=yes, copyhistory=no, resizable=yes');
	app_window.focus();
}

function disable_everything() {
	disable_navigation();
	disable_all_form_elements();
	show_loading();
}

function submit_form( clicked_element ) {
	clicked_element.form.submit();
	disable_everything();
}

function submit_explore_form( clicked_element ) {
	clicked_element.form.submit();
	disable_all_form_elements();
	show_wait_spinner();
}

var form_submitted = false;

function check_plot_form() {
	if ( ! form_submitted ) {
		form_submitted = true;
		
		var plot_title = document.getElementById('plot_title');
		plot_title.innerHTML = 'Loading...';
		
		disable_elements_by_tag_name('select');
		
		disable_navigation();
		return true;
	}
	return false;
}

function show_loading() {
	var plot = document.getElementById('plot');
	plot.style.display = "none";
	plot.style.visibility = "hidden";
	
	var loading = document.getElementById('loading');
	loading.style.visibility = "visible";
	loading.style.display = "block";
	
	var spinner = document.getElementById('wait_spinner');
	spinner.style.visibility = "visible";
	spinner.style.display = "block";
	
	var plot_title = document.getElementById('plot_title');
	plot_title.innerHTML = 'Loading...';
}

function show_wait_spinner() {
	var spinner = document.getElementById('wait_spinner');
	spinner.style.visibility = "visible";
	spinner.style.display = "block";
}

function disable_all_form_elements() {
	disable_elements_by_tag_name('input');
	disable_elements_by_tag_name('select');
}

function disable_elements_by_tag_name(tag_name) {
	var els = document.getElementsByTagName(tag_name);
	for (i = 0; i < els.length; i++) {
		var el = els.item(i);
		el.disabled = true;
	}
}

function disable_navigation() {
	var nav = document.getElementById('datadesk_navigation');
	
	for (var i=0; i < nav.childNodes.length; i++) {
		if (('navigation_link' == nav.childNodes[i].className) && (null != nav.childNodes[i].firstChild) && ('A' == nav.childNodes[i].firstChild.tagName)) {
			nav.childNodes[i].innerHTML = nav.childNodes[i].firstChild.innerHTML;
		}
	};
}

function popup(url) {
	newwindow=window.open(url, 'name', 'height=600,width=600,scrollbars=yes,resizable=yes');
	if (window.focus) {newwindow.focus()}
	return false;
}
