// -----------------------------------------------------------------------
// lo.js
// loreB - inizio: 14-07-07
// cinzia: ottobre 2006
// -----------------------------------------------------------------------


function deleteDate(id)
{
	if(document.getElementById)
	{
	    document.getElementById(id).value="";
	}	
}


function checkStep(){
	
	fieldset_cinzia = document.getElementById('step8');
	fieldset_cinzia.style.display = "none";
	
//	alert("step="+document.LOForm.step.value);
	step = document.LOForm.step.value;
	finalStep = document.LOForm.finalStep.value;
	//mostro solo il fieldset dello step corrente
	for (i=1; i<Number(finalStep); i++){
		fieldsetname = 'step'+i;
		fieldset = document.getElementById(fieldsetname);

		if(Number(i)!= Number(step)){ 
			fieldset.style.display = "none";
		}
		else{
			fieldset.style.display = "block";
		}
	}

	//CASI SPECIFICI DI ALCUNI STEP..
	//sullo step 1 nascondo il tasto back
	if (step==1){
		var bottone_back = document.getElementById('back_button');
		if ( bottone_back )
			document.getElementById('back_button').style.display = "none";
		}
	//gestione dei language sullo step 3
	else if (step==3){
		if (isLanguageSetted(2)){
			document.getElementById('language2').style.display = 'block';
		}
		if (isLanguageSetted(3)){
			document.getElementById('language3').style.display = 'block';
			document.getElementById('add_language_button').style.display = 'none';
		}
	}
	//gestione dei contribute sullo step 4
	else if (step==4){
		if (isContributeSetted(2))
			document.getElementById('contribute2').style.display = 'block';
		if (isContributeSetted(3)){
			document.getElementById('contribute3').style.display = 'block';
			document.getElementById('add_button').style.display = 'none';
		}
	}
	//gestione dei resourceType sullo step 6
	else if (step==6){
		if (isResourceTypeSetted(2)){
			document.getElementById('resourceType2').style.display = 'block';
		}
		if (isResourceTypeSetted(3)){
			document.getElementById('resourceType3').style.display = 'block';
			document.getElementById('add_resourceType_button').style.display = 'none';
		}
	}
	
}

function isContributeSetted(index){

	role = document.LOForm.elements['lifeCycle.contribute.role'+index].value;
	if (role!='') 
		return true
	else 
		return false;
}

function isContributeWellFormed(index){
	entity = clean_input(document.LOForm.elements['lifeCycle.contribute.entity'+index].value);	
	if (isContributeSetted(index) && entity!='')
		return true;
	else
		return false;
}

function addContribute(){
	if (isContributeWellFormed(1)){
		if (isContributeWellFormed(2)){
			document.getElementById('contribute3').style.display = 'block';
			document.getElementById('add_button').style.display = 'none';
		}
		else{
			if(document.getElementById('contribute2').style.display == 'none'){
				document.getElementById('contribute2').style.display = 'block';
			}
			else{
				alert('Attenzione!\nPrima deve essere riempita la maschera del secondo responsabile.');
			}
		}
	}
	else{
		alert('Attenzione!\nPrima deve essere riempita la maschera del primo responsabile.');
	}
}

function isLanguageSetted(index){
	language = clean_input(document.LOForm.elements['general.language'+index].value);
	if (language!='') 
		return true
	else 
		return false;
}

function addLanguage(){
	if (isLanguageSetted(1)){
		if (isLanguageSetted(2)){
			document.getElementById('language3').style.display = 'block';
			document.getElementById('add_language_button').style.display = 'none';
		}
		else{
			if(document.getElementById('language2').style.display == 'none'){
				document.getElementById('language2').style.display = 'block';
			}
			else{
				alert('Attenzione!\nPrima deve essere riempita la seconda lingua.');
			}
		}
	}
	else{
		alert('Attenzione!\nPrima deve essere riempita la prima lingua.');
	}
}

function isResourceTypeSetted(index){
	resourceType = clean_input(document.LOForm.elements['educational.learningResourceType'+index].value);
	if (resourceType!='') 
		return true
	else 
		return false;
}

function addResourceType(){
	if (isResourceTypeSetted(1)){
		if (isResourceTypeSetted(2)){
			document.getElementById('resourceType3').style.display = 'block';
			document.getElementById('add_resourceType_button').style.display = 'none';
		}
		else{
			if(document.getElementById('resourceType2').style.display == 'none'){
				document.getElementById('resourceType2').style.display = 'block';
			}
			else{
				alert('Attenzione!\nPrima deve essere riempita la seconda tipologia risorsa didattica.');
			}
		}
	}
	else{
		alert('Attenzione!\nPrima deve essere riempita la prima tipologia risorsa didattica.');
	}
}


// Clean blank fields
function clean_input(campo) {

   var posizione;
   posizione = campo.indexOf(' ', 0);
   while (posizione == 0) {
      campo = campo.substr(1);
      posizione = campo.indexOf(' ', 0);
   }

   // ho tolto tutti gli spazi in testa al campo
   // se ho inserito solo degli spazi mi si svuota la stringa
   return campo;

}
// -----------------------------------------------------------------------


// Verify data fields
function check(form) {
	//per visualizzare l'xml salto il check
	if (form.method.value=='xml'){
		return true;
	}
	
	step = Number(form.step.value);
	//sulla pressione del tasto back faccio comunque il submit per non perdere i dati ma salto il check
	if (form.elements['method'].value == 'back'){
		form.step.value = Number(form.step.value) - Number(1);
   		return true;	
	}
	else if (step==1){
	   var campo = '';
	   campo = clean_input(form.elements['FromCompany'].value);
	   if (!campo) {
	      alert("Attenzione!\nFormato non corretto del campo 'Nome dell\'organizzazione': non può essere vuoto.");
	      form.elements['FromCompany'].focus();
	      return false;
	   }
	   campo = clean_input(form.elements['FromEmail'].value);
	   if (!campo) {
	      alert("Attenzione!\nFormato non corretto del campo 'E-mail di riferimento': non può essere vuoto.");
	      form.elements['FromEmail'].focus();
	      return false;
	   }
	   else if (!emailCheck(campo)){
			form.elements['FromEmail'].focus();
			return false;
	   }
	   campo = clean_input(form.elements['NotificationType'].value);
	   if (!campo) {
	      alert("Attenzione!\nFormato non corretto del campo 'Tipo di comunicazione': non può essere vuoto.");
	      form.elements['NotificationType'].focus();
	      return false;
	   }
	}
	else if (step==2){
	   campo = clean_input(form.elements['DOI'].value);
	   if (!campo) {
	      alert("Attenzione!\nFormato non corretto del campo 'DOI': non può essere vuoto.");
	      form.elements['DOI'].focus();
	      return false;
	   }
	   campo = form.elements['DOIWebsiteLink'].value;
	   campo = clean_input(campo.substr(7));
	   if (!campo) {
	      alert("Attenzione!\nFormato non corretto del campo 'URL': non può essere vuoto dopo 'http://'.");
	      form.elements['DOIWebsiteLink'].focus;
	      return false;
	   }
	   
	   if(form.elements['method'].value == 'resume')
	   {
	   			form.elements['general.identifier.entry'].value = clean_input(form.elements['DOI'].value);
	   			form.elements['technical.location'].value = 'http://dx.doi.org/' + clean_input(form.elements['DOI'].value);
	   }
	   
   }
   else if (step==3){
/*   
	   campo = clean_input(form.elements['general.identifier.entry'].value);
	   if (!campo) {
	      alert("Attenzione!\nFormato non corretto del campo 'Identifier': non può essere vuoto.");
	      form.elements['general.identifier.entry'].focus();
	      return false;
	   }
*/
	   	   campo = clean_input(form.elements['general.title'].value);
	   if (!campo) {
	      alert("Attenzione!\nFormato non corretto del campo 'Titolo': non può essere vuoto.");
	      form.elements['general.title'].focus();
	      return false;
	   }
	   	   campo = clean_input(form.elements['general.description'].value);
	   if (!campo) {
	      alert("Attenzione!\nFormato non corretto del campo 'Descrizione': non può essere vuoto.");
	      form.elements['general.description'].focus();
	      return false;
	   }
	   	   campo = clean_input(form.elements['general.keywords'].value);
	   if (!campo) {
	      alert("Attenzione!\nFormato non corretto del campo 'Parole chiave': non può essere vuoto.");
	      form.elements['general.keywords'].focus();
	      return false;
	   }
//	   	  campo = clean_input(form.elements['general.description'].value);
//	   	 if (campo){alert(escape(campo)); form.elements['general.description'].value = escape(campo);  }
	   	 

	   	   campo = clean_input(form.elements['general.identifier.isbn'].value);
	   if (campo) {
	   	  //verifica correttezza isbn
	   	  
	   	  isbn_legth=campo.length;
	   	  //alert("isbn_legth=" + isbn_legth);
	   	  
	   	  if(isbn_legth == 10)
	   	  {
		   	  var isbnFormat = /^\d{9}[\dxX]{1}$/
		   	  var isbnMatch = campo.match(isbnFormat)
					if (isbnMatch == null) {
			      alert("Attenzione!\nFormato non corretto del campo 'ISBN'.");
			      form.elements['general.identifier.isbn'].focus();
			      return false;
					}
					if(!checkIsbn10(campo))
					{
			      alert("Attenzione!\nCheck digit non corretto nel campo 'ISBN'.");
			      form.elements['general.identifier.isbn'].focus();
						return false;
					}
	   	  	
	   	  }
	   	  else if(isbn_legth == 13)
	   	  {
		   	  var isbnFormat = /^\d{13}$/
		   	  var isbnMatch = campo.match(isbnFormat)
					if (isbnMatch == null) {
			      alert("Attenzione!\nFormato non corretto del campo 'ISBN'.");
			      form.elements['general.identifier.isbn'].focus();
			      return false;
					}
					if(!checkIsbn13(campo))
					{
			      alert("Attenzione!\nCheck digit non corretto nel campo 'ISBN'.");
			      form.elements['general.identifier.isbn'].focus();
						return false;
					}
	   	  		
	   	  }
	   	  else
	   	  {
		      alert("Attenzione!\nLunghezza non corretta del campo 'ISBN': deve essere 10 o 13.");
		      form.elements['general.identifier.isbn'].focus();
					return false;	   	  	
	   	  }

	   }


   }
   else if (step==4){
	   	   campo = clean_input(form.elements['lifeCycle.version'].value);
	   if (!campo) {
	      alert("Attenzione!\nFormato non corretto del campo 'Versione': non può essere vuoto.");
	      form.elements['lifeCycle.version'].focus();
	      return false;
	   }
	   for (i=1;i<=3;i++){
		if (isContributeSetted(i) && !isContributeWellFormed(i)){
		   	alert("Attenzione!\nLa maschera Responsabile deve essere riempita o cancellata. \n(-nessun- valore come Ruolo per cancellare)");
		   	return false;
		}	
	   }
	      		
   }
   else if (step==6){
   		campoFrom = clean_input(form.elements['educational.typicalAgeRange.from'].value);
   		isNumeric = Boolean(campoFrom.match(/^\d+$/));
   		if (campoFrom!='' && !isNumeric){
	      alert("Attenzione!\nFormato non corretto del campo 'Fascia d\'età': deve essere numerico.");
	      form.elements['educational.typicalAgeRange.from'].focus();
	      return false;
   		}
   		campoTo = clean_input(form.elements['educational.typicalAgeRange.to'].value);
   		isNumeric = Boolean(campoTo.match(/^\d+$/));
   		if (campoTo!='' && !isNumeric){
	      alert("Attenzione!\nFormato non corretto del campo 'Fascia d\'età': deve essere numerico.");
	      form.elements['educational.typicalAgeRange.to'].focus();
	      return false;
   		}
   		if ((Number(campoTo) <= Number(campoFrom)) && campoTo!=''){
	      alert("Attenzione!\nFormato non corretto del campo 'Fascia d\'età': 'da' deve essere maggiore di 'a'.");
	      form.elements['educational.typicalAgeRange.from'].focus();
	      return false;
   		}
   		//nel caso ' -10' si intende '0-10'
   		if (campoTo!="" && campoFrom=="") form.elements['educational.typicalAgeRange.from'].value = "0";		   
   }
//cinzia
   else if (step==7){
   	form.elements['method'].value = 'resume'; 
	}
   else if (step==8){
	   campo = clean_input(form.elements['classification.keywords'].value);

//cinzia
//	   if (!campo) {
//	      alert("Attenzione!\nFormato non corretto del campo 'Keywords': non può essere vuoto.");
//	      form.elements['classification.keywords'].focus();
//	      return false;
//	   }
//	   form.elements['method'].value = 'resume'; 

   }
   
	//se il check ? OK incremento lo step
	form.step.value = Number(form.step.value) + Number(1);
	return true;
}

function preselectCombo(combo){
	valore = document.LOForm.elements[combo.name+'.hidden'].value;
	for (i=0; i<combo.options.length; i++){
		if (combo.options[i].value==valore)
			combo.options[i].selected = true;
	}
}

function showXML(){
	document.LOForm.method.value='xml';
	window.open('','show_xml','scrollbars=yes,menubar=yes,height=600,width=800,resizable=yes,toolbar=yes,location=yes,status=yes');
	document.LOForm.target='show_xml';
	return true;
}

function goToStep(step){
	document.LOForm.step.value=step;
	document.LOForm.method.value='';
	document.LOForm.target='_self';
	document.LOForm.formIsCompleted.value='true';
	return true;
}

function changeLanguage(valore){
	document.LOForm.lang.value=valore;
	document.LOForm.submit();
}


function checkIsbn10(valore){
	var somma=0;
	
	for (i=0; i<9; i++) {
	        //alert(valore.charAt(i)+'prova----'+i);
	        somma += parseInt(valore.charAt(i)) * (10 - i);
	}
	        
	if (valore.charAt(9) == 'X' || valore.charAt(9) == 'x') {
	    somma += 10;
	} else {
	    somma += parseInt(valore.charAt(9));
	}
	
	//alert(somma);
	if ( (somma%11) > 0 ) {
	        return 0;
	}
	
	return 1;
}

function checkIsbn13(valore){
	var somma=0;
	
	for (i=0; i<12; i++) {
	        //alert(valore.charAt(i)+'prova----'+i);
	        somma += parseInt(valore.charAt(i)) * peso13(i);
	}
	
	ean_13 = ( 10 - (somma%10) ) % 10;

	//alert("ean_13=" + ean_13);
	if ( ean_13 ==  parseInt(valore.charAt(12))) {
	        return 1;
	}
	else
	{
		return 0;
	}
	
}

function peso13(posizione) 
{
	var pp;     
  posizione=parseFloat(posizione)+1;
  if ((posizione % 2) == 0) {
  	pp=3;
  }
  else 
  {
  	pp=1;
  }
	return pp;
}

