/* addEvent handler for IE and other browsers */
function addEvent(elm, evType, fn, useCapture)
// addEvent and removeEvent
// cross-browser event handling for IE5+,  NS6 and Mozilla
// By Scott Andrew
{
	if (elm.addEventListener){
		elm.addEventListener(evType, fn, useCapture);
		return true;
	} else if (elm.attachEvent){
		var r = elm.attachEvent("on"+evType, fn);
		return r;
	}
}  

/* pre-fill the inputs and textareas with their title attribute value, and add relevant onfocus/onblur handlers */
function prepopulate() {
	/* get all inputs */
	elements = document.getElementsByTagName('input');
	/* loop through the array of elements */
	n_elements = elements.length;
	for (i = 0; i < n_elements; i++) {
		if (elements[i].type=='text') {
			elements[i].setAttribute('value',elements[i].getAttribute('title'));
			addEvent(elements[i],'focus',input_focus);
			addEvent(elements[i],'blur',input_blur);
		}
	}
	/* get all inputs: password */
	elements = document.getElementsByTagName('input');
	/* loop through the array of elements */
	n_elements = elements.length;
	for (i = 0; i < n_elements; i++) {
		if (elements[i].type=='password') {
			elements[i].setAttribute('value',elements[i].getAttribute('title'));
			addEvent(elements[i],'focus',input_focus);
			addEvent(elements[i],'blur',input_blur);
		}
	}
	/* get all textareas */
	elements = document.getElementsByTagName('textarea');
	/* loop through the array of elements */
	n_elements = elements.length;
	for (i = 0; i < n_elements; i++) {
		elements[i].value=elements[i].getAttribute('title');
		addEvent(elements[i],'focus',input_focus);
		addEvent(elements[i],'blur',input_blur);
	}
}

function input_focus(e) {
	// This is an event handler; get the clicked on element,
	// in a cross-browser fashion
	if (window.event) {
		target = window.event.srcElement;
	} else if (e) {
		target = e.target;
	} else return;
	
	// Make sure that the target is an element, not a text node
	// within an element
	if (target.nodeType == 3) {
		target = target.parentNode;
	}
	
	// Paranoia; check this is an input tag
	if ((target.nodeName.toLowerCase() != 'input')&&(target.nodeName.toLowerCase() != 'textarea')) return false; 
	
	if (target.value==target.getAttribute('title')) {
		target.value='';
	}
	return true;
}

function input_blur(e) {
	// This is an event handler; get the clicked on element,
	// in a cross-browser fashion
	if (window.event) {
		target = window.event.srcElement;
	} else if (e) {
		target = e.target;
	} else return;
	
	// Make sure that the target is an element, not a text node
	// within an element
	if (target.nodeType == 3) {
		target = target.parentNode;
	}
	
	// Paranoia; check this is an input tag
	if ((target.nodeName.toLowerCase() != 'input')&&(target.nodeName.toLowerCase() != 'textarea')) return false; 
	

	if (target.value=='') {
		target.value=target.getAttribute('title');
	}

	return true;
}

/* add functions to the page's onload handler */
addEvent (window,'load',prepopulate)

function controlla(){
	if (document.getElementById("mail").value=="e-mail" && document.getElementById("cell").value=="Cellulare"){
		alert('Riempi almeno un campo');
		return false;
	}
}

function formCheck(formobj){
	//1) Inserisci il nome che hai assegnato ai tuoi campi con name
	var fieldRequired = Array("nome", "genere", "myspace", "componenti", "provenienza", "att_dal", "demo", "album", "n_contatto", "mail", "cell", "bio");
	//2) Inserisci la descrizione del campo da riempire che appare nel messaggio a video
	var fieldDescription = Array("Nome della band", "Genere", "MySpace", "N. componenti", "Provenienza", "In attivita' dal", "Demo/EP all'attivo", "Album/LP all'attivo", "Nome di contatto", "e-mail di contatto", "Cell. di contatto", "Note aggiuntive");
	//3) Inserisci il messagio che deve precedere l'elenco dei campi non inseriti.
	var alertMsg = "Per favore, riempi i seguenti campi:\n";
	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			default:
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}
