// --------------------------------------------------------------------
// Norme de packaging : 1.0.6
// Nom du package - Package name : shs-global-ethics-observatory-online-databases
// Nom du programme - Program Name : action.js
// Auteurs - Authors :
// - THRIERR Eric eric@excellent-rameur.com
// Version : 0.0.5
// Description : javascript de fonctions utilitaires
// Historique - History :
// - 2005-12-01 / Eric Thrierr / fichier initial
// - 2005-12-07 / Eric Thrierr / correction de la fonction utils.newSearch
// - 2006-02-08 / Eric Thrierr / modification de utils.changeDb et ajout de utils.action
// - 2006-03-31 / Eric Thrierr / GEObs Phase II
// - 2006-12-31 / Eric Thrierr / ajout de GEObs5
// --------------------------------------------------------------------
// $Id: utils.js,v 1.5 2007/03/25 18:29:52 uid1012 Exp $
String.prototype.trim = function() {
	return this.replace( /^\s+|\s+$/, "" );
}
var utils = new Object();
utils.changeLang = function (element, lang) {
	var form = document.geoDbSearchForm;
	if (!form) {
		var form = document.geoDbSelectForm;
		form.elements["action"].value = "select";
	}
	if (form.elements["search"]) form.change.value = "lang";
	form.elements[element].value = lang;
	form.submit();
}
utils.changeDb = function (db) {
	var form = document.geoDbSelectForm;
	form.elements["db"].value = db;
	form.submit();
}
utils.action = function (action) {
	var form = document.geoDbSelectForm;
	form.elements["action"].value = action;
	form.submit();
}
utils.newSearch = function () {
	var form = document.geoDbSearchForm;
	form.change.value = "search";
	form.criteria.value = "";
	form.submit();
}
utils.changeSearch = function () {
	var form = document.geoDbSearchForm;
	form.change.value = "search";
	form.submit();
}
utils.changePageSize = function () {
	var form = document.geoDbSearchForm;
	form.newsize.value = form.pagesize.options[form.pagesize.selectedIndex].value;
	form.submit();
}
utils.showPage = function (page) {
	var form = document.geoDbSearchForm;
	form.show.value = page;
	form.submit();
}
utils.changeSort = function (column) {
	var form = document.geoDbSearchForm;
	form.elements["sort"].value = column;
	form.submit();
}
utils.view = function (node, width, height, name) {
	if (!name) name = "view";
	return utils.popup (node, name, "scrollbars,resizable,width=" + width + ",height=" + height);
}
utils.pdf = function (node, width, height) {
	return utils.popup (node, "pdf", "scrollbars,resizable,width=" + width + ",height=" + height);
}
utils.email = function (node, width, height) {
	return utils.popup (node, "email", "scrollbars,resizable,width=" + width + ",height=" + height);
}
utils.save = function (format, path) {
	var form = document.geoDbSearchForm;
	var url = location.protocol + "//" + location.host + location.pathname.replace(/\/[^\/]*$/, "/" + path);
	if (location.search) url += location.search + "&";
	else url += "?";
	url += "save=" + format + "&criteres=" + form.criteres.value;
	utils.popup(url);
}
utils.popup = function (url, name, features) {
	if (features) {
		var width = parseInt (features.replace(/.*width=/, ""));
		var height = parseInt (features.replace(/.*height=/, ""));
		var newWindow = window.open(url, name, features);
		if (width && height && window.resizeTo) newWindow.resizeTo (width, height);
		if (window.moveTo) newWindow.moveTo(0,0);
	} else var newWindow = window.open(url, name);
	newWindow.focus();
	return false;
}
utils.listArea = function (type, id, dbs, lang) {
	var url = "?action=map&mode=list&type=" + type + "&id=" + id + "&dbs=" + dbs + "&lng=" + lang;
	var newWindow = window.open(url, "geo", "scrollbars,resizable,width=800,height=600");
	newWindow.focus();
}
utils.setIntro = function (region) {
	var mainIntro = document.getElementById("geoDbMainIntro");
	var regionIntro = document.getElementById("geoDbRegionIntro");
	if (!mainIntro && !regionIntro) return;
	if (region) {
		mainIntro.className = "geoIntroHidden";
		regionIntro.className = "geoIntro";
	} else {
		mainIntro.className = "geoIntro";
		regionIntro.className = "geoIntroHidden";		
	}
}
utils.removeClassName = function(elem, className) {
	elem.className = elem.className.replace(className, "").trim();
}
utils.addClassName = function(elem, className) {
	utils.removeClassName(elem, className);
	elem.className = (elem.className + " " + className).trim();
}
utils.toggle = function (node, id) {
	var element = document.getElementById(id);
	if (element.className.indexOf("display-none") >= 0) {
		utils.removeClassName(element, "display-none");
		utils.addClassName(element, "display-block");
		utils.addClassName(node, "unfolded");
	} else {
		utils.removeClassName(element, "display-block");
		utils.addClassName(element, "display-none");
		utils.removeClassName(node, "unfolded");
	}
}


