// MusicaEnElRioDelOro.com Inscription Script
// Created by Alberto Martinez Perez (http://www.ampsoft.net/)

function activateField(fieldName,value) {
  element=document.getElementById(fieldName);
  if (element)
    if (!value) element.setAttribute("disabled",true);
    else element.removeAttribute("disabled");
}

function activateFieldSet(setNumber,value) {
  activateField("obligatory_work_"+setNumber,value);
  activateField("obligatory_composer_"+setNumber,value);
  if (setNumber==4) {
    activateField("obligatory_work_5",value);
    activateField("obligatory_composer_5",value);
  }
}

function disableFields() {
  for (i=1;i<=5;i++) activateFieldSet(i,false);
}

function toggleFields(object) {
  if (object) {
    disableFields();
    fieldNumber=Number(object.value);
    activateFieldSet(fieldNumber,true);
  }
}


function clearErrorTips() {
  labels=document.getElementsByTagName("label");
  for (i=0;i<labels.length;i++) {
    if (labels[i].htmlFor && labels[i].htmlFor!="") {
      labels[i].className="";
    }
  }
}
function setErrorTip(field) {
  labels=document.getElementsByTagName("label");
  for (i=0;i<labels.length;i++) {
    if (labels[i].htmlFor && labels[i].htmlFor==field.name) {
      labels[i].className="error";
      break;
    }
  }
}


// using an integer return value in order to process all the fields
// (using a boolean value triggers the short circuit in the first failed field)
function checkField(field) {
  emptyValue=(field.tagName.toLowerCase()=="select" ? 0 : "");
  if (field.value==emptyValue) {
    setErrorTip(field);
    return 0;
  }
  return 1;
}

function checkData(form,skipImages) {
  fieldsOk=true;
  postalCodeOk=true;
  phoneOk=true;
  emailOk=true;
  schoolPhoneOk=true;
  uploadFieldsOk=true;
  fieldsResult=0;
  
  clearErrorTips();
  
  for (i=0;i<form.category.length;i++)
    if (form.category[i].checked) fieldsResult=1;
  if (fieldsResult==0) setErrorTip(form.category[0]);

  fieldsResult=checkField(form.name) * checkField(form.surname) * checkField(form.address) * checkField(form.city) * 
               checkField(form.province);

  if (form.postal_code.value.length!=5 || !isOnlyDigits(form.postal_code.value)) {
    postalCodeOk=false;
    setErrorTip(form.postal_code);
  }
  if (form.cellular.value.length!=9 || !isOnlyDigits(form.cellular.value)) {
    phoneOk=false;
    setErrorTip(form.cellular);
  }
  if (form.email.value.indexOf('@')==-1 || form.email.value.indexOf('.')==-1) {
    emailOk=false;
    setErrorTip(form.email);
  }
  if (!form.category4.checked) {
    fieldsResult=fieldsResult * checkField(form.school)
    if (form.school_phone.value.length!=9 || !isOnlyDigits(form.school_phone.value)) {
      schoolPhoneOk=false;
      setErrorTip(form.school_phone);
    }
  }    
  if (form.category1.checked)
    fieldsResult=fieldsResult * checkField(form.obligatory_work_1) * checkField(form.obligatory_composer_1);
  if (form.category2.checked)
    fieldsResult=fieldsResult * checkField(form.obligatory_work_2) * checkField(form.obligatory_composer_2);
  if (form.category3.checked)
    fieldsResult=fieldsResult * checkField(form.obligatory_work_3) * checkField(form.obligatory_composer_3);
  if (form.category4.checked)
    fieldsResult=fieldsResult * checkField(form.obligatory_work_4) * checkField(form.obligatory_composer_4)
                              * checkField(form.obligatory_work_5) * checkField(form.obligatory_composer_5);

  fieldsResult=fieldsResult * checkField(form.free_choice_work_1) * checkField(form.free_choice_composer_1) *
                              checkField(form.free_choice_work_2) * checkField(form.free_choice_composer_2) *
                              checkField(form.free_choice_work_3) * checkField(form.free_choice_composer_3);
  uploadFieldsOk=skipImages || (checkField(form.photo) * (form.category4.checked ? 1 : checkField(form.certificate)))==1;

  fieldsOk=(fieldsResult==1);
  dataOk=fieldsOk && postalCodeOk && phoneOk && emailOk && schoolPhoneOk && uploadFieldsOk;
     
  if (!dataOk) {
    errorString="Se han encontrado los siguientes errores en los datos suministrados:\n\n";
    if (!fieldsOk) errorString+="Alguno de los campos obligatorios está sin rellenar.\n";
    if (!postalCodeOk) errorString+="El código postal debe constar de 5 digitos (añadir un cero delante para los códigos de 4 digitos).\n";
    if (!phoneOk) errorString+="El número de móvil debe constar de 9 digitos.\n";
    if (!emailOk) errorString+="La dirección de email no es válida.\n";
    if (!schoolPhoneOk) errorString+="El número de teléfono del centro de estudios debe constar de 9 digitos.\n";
    if (!uploadFieldsOk) errorString+="Alguno de los documentos a adjuntar no se ha incluido.\n";
    alert(errorString);
    return false;
  }
  else return true;
}


function activateStatusFieldSet(value) {
  activateField("photo-error",value);
  activateField("certificate-error",value);
}


function confirmChanges(form) {
  if (document.getElementById("status-ok").checked) {
    if (confirm("Una vez marcada una solicitud como aceptada no se puede volver a modificar el estado. ¿Desea continuar?"))
      return true;
    else return false;
  }  
  else return true;
}


// MusicaEnElRioDelOro.com Inscription Script
// Created by Alberto Martinez Perez (http://www.ampsoft.net/)