String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }

function trim(str)
{
  return str.replace(/^\s+|\s+$/g, '');
}

function checkInputMandatory(obj_form, field_name, msg)
{
  var value = obj_form.elements[field_name].value;
  if(trim(value).length <= 0)
  {
  	alert(msg);
  	obj_form.elements[field_name].focus();
  	return false;
  }
  return true;
}

function checkSelectMandatory(obj_form, field_name, msg)
{
	var hasSelected = false;
	var field = objform.elements[fieldName];
	for(var i=1; i<field.length; i++)
	{
		if(field[i].selected)
		{
			hasSelected = true;
			break;
		}
	}

	if(!hasSelected)
	{
		alert(msg);
		field.focus();
		return false;
	}
	else return true;
}

function getRadioFieldValue(obj_form, field_name)
{
  var field = obj_form.elements[field_name];
  for(var i=0; i<field.length; i++)
  {
    if(field[i].checked) return field[i].value;
  }
  return '';
}

function getSelectValue(objform, fieldName)
{
	var field = objform.elements[fieldName];
	for(var i=0; i<field.length; i++)
	{
		if(field[i].selected) return field[i].value;
	}
	return '';
}

function setSelectValue(objform, fieldName, selectedIndex)
{
	var field = objform.elements[fieldName];
	for(var i=0; i<field.length; i++)
	{
		if(i == selectedIndex) field[i].selected = true;
		else field[i].selected = false;
	}
}

function setSelectValueByValue(objform, fieldName, value)
{
	var field = objform.elements[fieldName];
	for(var i=0; i<field.length; i++)
	{
		if(field[i].value == value) field[i].selected = true;
		else field[i].selected = false;
	}
}

function setRadioValue(objform, fieldName, checkedIndex)
{
	var field = objform.elements[fieldName];
	for(var i=0; i<field.length; i++)
	{
		if(i == checkedIndex) field[i].checked = true;
		else field[i].checked = false;
	}
}

function hiddenElement(id)
{
  document.getElementById(id).style.visibility = 'hidden';
}

function displayElement(id)
{
  document.getElementById(id).style.visibility = 'visible';
}

function disableRadioButton(obj_form, field_name)
{
  var field = obj_form.elements[field_name];
  if(field)
  {
    for(var i=0; i<field.length; i++)
    {
      field[i].disabled = 'disabled';
    }
  }
}

function enableRadioButton(obj_form, field_name)
{
  var field = obj_form.elements[field_name];
  if(field)
  {
    for(var i=0; i<field.length; i++)
    {
      field[i].disabled = '';
    }
  }
}

function getFileName(filepath)
{
	var i = filepath.lastIndexOf("\\");
	if(i > 0)
	{
		return filepath.substring(i+1, filepath.length);
	}
	else return filepath;
}

function goBack()
{
	history.back(-1);
	return true;
}


function getAjaxXmlHttpRequest()
{
	var xmlHttp = null;
	try
  {
	  // Firefox, Opera 8.0+, Safari
	  xmlHttp=new XMLHttpRequest();
  }
	catch (e)
  {
	  // Internet Explorer
	  try
		{
		    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
    {
	    try
      {
	      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
	    catch (e)
      {
	      alert("Your browser does not support AJAX!");
      }
    }
 	}
 	return xmlHttp;
 }

function sendStatisticLink(id)
{
	var curUrl = location.href.toLowerCase();
	var ibegin = curUrl.indexOf('/ark:/');
	var baseUrl = curUrl.substring(0, ibegin + 6);
	var action = baseUrl + 'id:' + id + '?statistics=doc';
	var xmlHttp = getAjaxXmlHttpRequest();
	xmlHttp.open('GET', action, true);
	xmlHttp.send(null);
}

/**
 * Rafraîchir le contenu d'un DIV par le code HTML renvoyé par le serveur par des fonctions AJAX
 *
 * @param method "GET" ou "POST"
 * @param action l'url de l'action
 * @param divId l'ID du DIV à rafraîchir
 * @param postProc la fonction à executer apès la rafraîchissement.
 * @return aucun
 */
function refreshDivContentByAjax(method, action, divId, postProc)
{
	var xmlHttp = getAjaxXmlHttpRequest();
	xmlHttp.onreadystatechange = function()
														{
															if (xmlHttp.readyState == 4)
															{
																var response = xmlHttp.responseText;
																//alert(response);
																document.getElementById(divId).innerHTML = response;
																if(postProc != null && postProc.length >=3) eval(postProc);
															}
															else
															{
																//alert("Error: " + xmlHttp.readyState);
															}
														}
	xmlHttp.open(method, action, true);
	xmlHttp.send(null);
}

// =======================================================================
// Cookie function
// =======================================================================

function createCookie(name, value, days)
{
	if (days > 0)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}

function getMonthLabel(monthNo, lang)
{
	var month_names = new Array();
 	if (lang == 'en')
	{
		month_names[1] = "January";
		month_names[2] = "February";
		month_names[3] = "March";
		month_names[4] = "April";
		month_names[5] = "May";
		month_names[6] = "June";
		month_names[7] = "July";
		month_names[8] = "August";
		month_names[9] = "September";
		month_names[10] = "October";
		month_names[11] = "November";
		month_names[12] = "December";
	}
	else
	{
		month_names[1] = "Janvier";
		month_names[2] = "F&eacute;vrier";
		month_names[3] = "Mars";
		month_names[4] = "Avril";
		month_names[5] = "Mai";
		month_names[6] = "Juin";
		month_names[7] = "Juillet";
		month_names[8] = "Ao&ucirc;t";
		month_names[9] = "Septembre";
		month_names[10] = "Octobre";
		month_names[11] = "Novembre";
		month_names[12] = "D&eacute;cembre";
	}
	return month_names[monthNo];
}