/*
 *	Nome Progetto: EANetwork
 *	Autore: Ivan Pessotto
 *	Data creazione: 22/06/2011
 *	Versione: 1.0
 */

function basename(path){
	return path.replace(/\\/g,'/').replace( /.*\//, '' );
}

function dirname(path){
	return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');
}

function ask(text){
	return confirm(text);
}

function goto(url){
	location.href=url;
}

function cancel(){
	location.href=location.pathname;
}

function limitLength(obj,length){
	obj.value=obj.value.substring(0,length);
}

function findErrorDiv(name){
	// Estrae tutti gli elementi con nome name
	return document.getElementById("e_"+name);
	// Estrae tutti gli elementi con nome name
	var elems=document.getElementsByName(name);
	// Cerca quello con classname fielderror (dovrebbe essere unico)
	for(var i=0; i<elems.length; i++)
		if(elems[i].className.indexOf("fielderror") >=0)
			return elems[i];
	return null;
}

function checkField(field,errormsg,test){
	// Estrae il div dell'errore e lo nasconde (se era precedentemente mostrato)
	var eDiv=findErrorDiv(field.name);
	// Impostiamo come "nessun errore"
	eDiv.innerHTML="";
	field.className=field.className.replace(" error","");
	// Se il field è un hidden, probabilmente si tratta di input indiretto (come il datapicker)
	if(field.type == "hidden" && field.onchange)
		// Invia il cambio di classe tramite l'input nascosto, sfruttando l'evento onchange
		field.onchange();
	// Esegue la funzione di test
	if(!test(field)){
		// Errore
		field.className+=" error"
		// Invia in caso di field hidden
		if(field.type == "hidden" && field.onchange) field.onchange();
		eDiv.innerHTML=errormsg;
		return false;
	}
	// Nessun errore
	return true;
}

function checkRequiredFields(form,msg,array){
	var ok=true;
	// Per ogni elemento dell'array
	for(var i=0; i<array.length; i++)
		// Controla che non sia vuoto
		ok=checkField(form[array[i]],msg,function(field){
			return (field.value != "");
		}) && ok;
	return ok;
}

function isEmail(email){
	var pattern=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	return pattern.test(email);
}

function isUrl(url) {
	var pattern=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;
	return pattern.test(url);
}

function isDate(date){
	// Controlla se è una data vuota
	if(date == "0000-00-00")
		return true;
	// Controlla il formato della data yyyy-mm-dd
	var pattern=/^\d{4}\-\d{2}-\d{2}$/;
	if(!pattern.test(date))
		return false;
	// Crea un oggetto date a partire dalla stringa
	var d=new Date(date);
	// Rompe la stringa in 3 parti
	var parts=date.split("-");
	// Controllo se l'anno è valido
	if(d.getFullYear() != parts[0])
		return false;
	// Controllo se il mese è valido
	if(d.getMonth()+1 != parts[1])
		return false;
	// Controllo se il giorno è valido
	if(d.getDate() != parts[2])
		return false;
	// Data valida
	return true;
}

