$(document).ready(function() {
  // Stuff to do as soon as the DOM is ready;
});

$.preloadImages = function() {
	for(var i = 0; i<arguments.length; i++) {
		img = new Image();
		img.src = arguments[i];
	}
}

function load(url, postData) {
	$('#content').hide('fast',
		function(o) {
			$('#content').html('<div class="loader"><img src=\'images/loading.gif\'></div>');
			$('#content').show("fast",
				function(o) {
					$('#content').height("auto");
					$('#content').load(url, postData, function() { 
						$("input.submit").hover(
							function(){ $(this).removeClass("submit").addClass("submitOver"); },
							function(){ $(this).removeClass("submitOver").addClass("submit"); });
					} );
				}
			);
		}
	);
/*
	$('#content').hide('fast').html('<div class="loader"><img src=\'images/loading.gif\'></div>').height("auto").show('fast',
		function(o) { $('#content').load(url, postData, function(o) { $('#content').hide('fast').height("auto").show("fast"); } ); }
	);
*/
}

function get(url) {
	$('#content').hide('fast',
		function(o) {
			$('#content').html('<div class="loader"><img src=\'images/loading.gif\'></div>');
			$('#content').show("fast",
				function(o) {
					$('#content').height("auto");
					$('#content').load(url, null, function() { 
						$("input.submit").hover(
							function(){ $(this).removeClass("submit").addClass("submitOver"); },
							function(){ $(this).removeClass("submitOver").addClass("submit"); });
					} );
				}
			);
		}
	);
}

function test() {
	alert($('#content').html());
}

function login() {
	try {
		email = document.getElementById('login_email').value;
		password = document.getElementById('login_password').value;
	} catch(e) {
		email = '';
		password = '';
	}
	
	$.post(
		'service.php?s=login',
		{email:email, password:password},
		function(r) {
			eval("var data = "+r);
			$('#login_message').html(data['message']);
			if(data['error'] != true) {
				$('#login_box').fadeOut("slow");
				location.href='index.php';
			}
		}
		);
}

function register() {
	email = document.getElementById('login_email').value;
	password = document.getElementById('login_password').value;
	$.post(
		'service.php?s=register',
		{email:email, password:password},
		function(r) {
			eval("var data = "+r);
			$('#register_message').html(data['message']);
			if(data['error'] != true) {
				$('#register_box').fadeOut("slow");
			}
		}
		);
}

function in_array(needle, haystack) {
	var n = haystack.length;
	for (var i=0; i<n; i++) {
		if (haystack[i]==needle) {
			return true;
		}
	}
	return false;
}

function validate_text_elements(form, items) {
	for( x in items ) {
		name = items[x];
		el = $('#'+form).find("[@name="+name+"]");
		if(el.val().length < 1) {
			return false;
		}
	}
	return true;
}

function validate_radio_elements(form, items) {
	for(x in items) {
		name = items[x];
		itms = $('input[@name='+name+']:checked').get();
		if(itms.length != 1) return false;
	}
	return true;
}

function validate_checkbox_elements(form, items) {
	for(x in items) {
		name = items[x];
		itms = $('input[@name='+name+']:checked').get();
		if(itms.length < 1) return false;
	}
	return true;
}

function checkbox_elements(form, items) {
	var data = {};
	for(x in items) {
		name = items[x];
		data[name] = new Array();
		itms = $('input[@name='+name+']:checked').get();
		for(var i=0;i<itms.length;i++) {
			data[name].push(itms[i].value);
		}
	}
	return data;
}

function radio_elements(form, items) {
	var data = {};
	for(x in items) {
		name = items[x];
		data[name] = new Array();
		itms = $('input[@name='+name+']:checked').get();
		for(var i=0;i<itms.length;i++) {
			data[name].push(itms[i].value);
		}
	}
	return data;
}

function text_elements(form, items) {
	var data = {};
	for( x in items ) {
		name = items[x];
		data[name] = new Array();
		el = $('#'+form).find("[@name="+name+"]");
		data[name].push(el.val());
	}
	return data;
}


function profile() {
	var form_valid = true;
	
	var checkbox_items = new Array('taxonomic', 'discipline', 'geographic');
	form_valid = validate_checkbox_elements('profile_form', checkbox_items);
	
	if(form_valid != true) {
		alert('Please fill out the requested information.');
		return false;
	}

	var radio_items = new Array('gender', 'pr_publications', 'non_pr_publications');
	form_valid = validate_radio_elements('profile_form', radio_items);

	if(form_valid != true) {
		alert('Please fill out the requested information.');
		return false;
	}

	var text_items = new Array('family_name', 'first_name', 'title', 'position', 'organisation', 'city', 'country');
	form_valid = validate_text_elements('profile_form', text_items);

	if(form_valid != true) {
		alert('Please fill out the requested information.');
		return false;
	}
	
	var postData = {};
/*
profile_form
var names = new Array("family_name", "first_name", "gender", "title", "position", "organisation", "po_box",
"address", "city", "postcode", "state", "country", "website", "phone_work", "fax_work",
"phone_mobile", "taxonomic", "discipline", "geographic", "pr_publications", "non_pr_publications",
"other_literature", "main_papers", "other_output");
*/

	var text_items = new Array("email", "family_name", "first_name", "title", "position", "organisation", "po_box", "address", "city",
							   "postcode", "state", "country", "website", "phone_work", "fax_work", "phone_mobile", 
							   "main_papers", "other_output");
	var r = text_elements('profile_form', text_items);
	for( x in r ) {
		postData[x] = r[x];
	}

	var radio_items = new Array("gender", "pr_publications", "non_pr_publications", "other_literature");
	var r = radio_elements('profile_form', radio_items);
	for( x in r ) {
		postData[x] = r[x];
	}

	var checkbox_items = new Array("taxonomic", "discipline", "geographic");
	var r = checkbox_elements('profile_form', checkbox_items);
	for( x in r ) {
		postData[x] = r[x];
	}
	
	load('service.php?s=profile', postData);
	
	return false;
}

function search_people() {
	var postData = {};

	var checkbox_items = new Array("taxonomic", "discipline", "geographic");
	var r = checkbox_elements('search_people', checkbox_items);
	for( x in r ) {
		postData[x] = r[x];
	}
	
	load('service.php?s=search&action=people', postData);
	
	return false;
}

function search_research() {
	var postData = {};

	var checkbox_items = new Array("species", 'accobams_subregion', "discipline", "geographic");
	var r = checkbox_elements('search_research', checkbox_items);
	for( x in r ) {
		postData[x] = r[x];
	}
	
	load('service.php?s=search&action=research', postData);
	
	return false;
}

function search_whalewatching() {
	var postData = {};

	var checkbox_items = new Array("species", "geographic", 'accobams_subregion');
	var r = checkbox_elements('search_whalewatching', checkbox_items);
	for( x in r ) {
		postData[x] = r[x];
	}
	
	load('service.php?s=search&action=whalewatching', postData);
	
	return false;
}

function research() {
	var form_valid = true;
	
	var checkbox_items = new Array('discipline', 'species', 'geographic', 'accobams_subregion', 'research_platform');
	form_valid = validate_checkbox_elements('research_form', checkbox_items);
	
	if(form_valid != true) {
		alert('Please fill out the requested information.');
		return false;
	}

	var radio_items = new Array('project_ongoing');
	form_valid = validate_radio_elements('research_form', radio_items);

	if(form_valid != true) {
		alert('Please fill out the requested information.');
		return false;
	}

	var text_items = new Array("title", "accobams_priority", "project_coordinator", "description", "study_area", "year_start", "year_end", "investigator_name", "investigator_email", "project_team");
	form_valid = validate_text_elements('research_form', text_items);

	if(form_valid != true) {
		alert('Please fill out the requested information.');
		return false;
	}
	
	var postData = {};
/*
research_form
var names = new Array("research_name", "title", "project_coordinator", "accobams_priority", "accobams_priority", "contribution",
"description", "discipline", "species", "study_area", "geographic", "accobams_subregion", "year_start", "year_end", "project_ongoing", "research_platform", "investigator_name", "investigator_email", "project_team");
*/

	var text_items = new Array("research_name", "accobams_priority", "title", "project_coordinator", "contribution", "description", "study_area", "year_start", "year_end", "investigator_name", "investigator_email", "project_team");
	var r = text_elements('research_form', text_items);
	for( x in r ) {
		postData[x] = r[x];
	}

	var radio_items = new Array('project_ongoing');
	var r = radio_elements('research_form', radio_items);
	for( x in r ) {
		postData[x] = r[x];
	}

	var checkbox_items = new Array('discipline', 'species', 'geographic', 'accobams_subregion', 'research_platform');
	var r = checkbox_elements('research_form', checkbox_items);
	for( x in r ) {
		postData[x] = r[x];
	}
	
	load('service.php?s=researches&action=add', postData);
	
	return false;
}

function whalewatching() {
	var form_valid = true;
	
	var checkbox_items = new Array('species', 'geographic', 'accobams_subregion', 'month_coverage', 'discipline');
	form_valid = validate_checkbox_elements('whalewatching_form', checkbox_items);
	
	if(form_valid != true) {
		alert('Please fill out the requested information.');
		return false;
	}

	var radio_items = new Array('conduct_code', 'scientific_data');
	form_valid = validate_radio_elements('whalewatching_form', radio_items);

	if(form_valid != true) {
		alert('Please fill out the requested information.');
		return false;
	}

	var text_items = new Array("title");
	form_valid = validate_text_elements('whalewatching_form', text_items);

	if(form_valid != true) {
		alert('Please fill out the requested information.');
		return false;
	}
	
	var postData = {};
/*
whalewatching_form
"whalewatching_name", "", "title", "description", "ports", "", "radius", ""
"year_start", "","month_trips", "", "conduct_author", "kind_of_output", ""
"", "destination_of_data", "comments", 
*/

	var text_items = new Array("whalewatching_name", "title", "description", "ports", "radius", "year_start", "month_trips", "conduct_author", "kind_of_output", "destination_of_data", "comments");
	var r = text_elements('whalewatching_form', text_items);
	for( x in r ) {
		postData[x] = r[x];
	}

	var radio_items = new Array('conduct_code', 'scientific_data');
	var r = radio_elements('whalewatching_form', radio_items);
	for( x in r ) {
		postData[x] = r[x];
	}

	var checkbox_items = new Array('species', 'geographic', 'accobams_subregion', 'month_coverage', 'discipline');
	var r = checkbox_elements('whalewatching_form', checkbox_items);
	for( x in r ) {
		postData[x] = r[x];
	}
	
	load('service.php?s=whalewatching&action=add', postData);
	
	return false;
}

function awhalewatching() {
	var postData = {};

	var items = $('#whalewatching_form').find('input').get();
	for(x in items) {
		if(items[x].name.length > 0) {
			if(items[x].type == 'radio') {
				if(items[x].checked == true) {
					postData[items[x].name] = items[x].value;
				}
			} else {
				postData[items[x].name] = items[x].value;
			}
		}
	}
	
	var items = $('#whalewatching_form').find('select').get();
	for(x in items) {
		if(typeof postData[items[x].name] == 'undefined') {
			postData[items[x].name] = new Array();
		}
		for(var i=0;i<items[x].options.length;i++) {
			if(items[x].options[i].selected == true) {
				postData[items[x].name].push(items[x].options[i].value);
			}
		}
	}

	var items = $('#whalewatching_form').find('textarea').get();
	for(x in items) {
		if(items[x].name.length > 0) {
			postData[items[x].name] = items[x].value;
		}
	}

	$('#content').load('service.php?s=whalewatching&action=add', postData);
	
	return true;
}

function taxonomic() {
	var items = $('#taxonomic_form').find('input').get();
	var postData = {};
	for(x in items) {
		if(items[x].name.length > 0) {
			postData[items[x].name] = items[x].value;
		}
	}
	$('#content').load('service.php?s=taxonomic&action=add', postData);
	
	return false;
}

function species() {
	var items = $('#species_form').find('input').get();
	var postData = {};
	for(x in items) {
		if(items[x].name.length > 0) {
			postData[items[x].name] = items[x].value;
		}
	}
	$('#content').load('service.php?s=species&action=add', postData);
	
	return false;
}

function research_platform() {
	var items = $('#research_platform_form').find('input').get();
	var postData = {};
	for(x in items) {
		if(items[x].name.length > 0) {
			postData[items[x].name] = items[x].value;
		}
	}
	$('#content').load('service.php?s=research_platform&action=add', postData);
	
	return false;
}

function accobams_subregion() {
	var items = $('#accobams_subregion_form').find('input').get();
	var postData = {};
	for(x in items) {
		if(items[x].name.length > 0) {
			postData[items[x].name] = items[x].value;
		}
	}
	$('#content').load('service.php?s=accobams_subregion&action=add', postData);
	
	return false;
}

function discipline() {
	var items = $('#discipline_form').find('input').get();
	var postData = {};
	for(x in items) {
		if(items[x].name.length > 0) {
			postData[items[x].name] = items[x].value;
		}
	}
	$('#content').load('service.php?s=discipline&action=add', postData);
	
	return false;
}

function geographic() {
	var items = $('#geographic_form').find('input').get();
	var postData = {};
	for(x in items) {
		if(items[x].name.length > 0) {
			postData[items[x].name] = items[x].value;
		}
	}
	$('#content').load('service.php?s=geographic&action=add', postData);
	
	return false;
}
