var GENERALERROR = 0;
var NOEMAIL = 1;
var EMAILNOTVALID = 2;
var NOLOGIN = 3;
var LOGINNOTVALID = 4;
var NOZIPCODE = 5;
var ZIPCODEINVALID = 6;
var NOPASSW = 7;
var DELETECONFIRMATION = 8;
var PASSWMISTMATCH = 9;

cal4.setYearSelectStartOffset(40);
cal4.showYearNavigation();
cal4.showYearNavigationInput();


function startsWith(cad,str) 
{
	return (cad.match("^"+str)==str);
}

function updateSegmentacion()
{
    segmentacion = '';
    for (e = 0; e < window.document.forms.formuserregister.elements.length; e++) 
	{
       if ( startsWith(window.document.formuserregister.elements[e].name, 'seg-') ) 
         if ( window.document.formuserregister.elements[e].checked ) 
		   {
		    segmentacion += window.document.formuserregister.elements[e].value + ',';
		   }
	}
	return segmentacion;
}





//comprueba si se han aceptado las políticas de lopd/lssi
function isLOPDaccepted()
{
  if(document.getElementById('idaceptoregistro').checked) return true;
  else return false;
}


function doUserRegister(username, usersurname, useremail, userbirthdate, usernationality, userpostaladdress, 
usercountry, userdni, usercity, userzipcode, userphone, userfax, useroffers, userjoboffers, usernewsletter, language)
{
  username = replace(username, "'", "");
  usersurname = replace(usersurname, "'", "");
  useremail = replace(useremail, "'", "");
  usernationality = replace(usernationality, "'", "");
  userpostaladdress = replace(userpostaladdress, "'", "");
  userdni = replace(userdni, "'", "");
  usercity = replace(usercity, "'", "");
  userzipcode = replace(userzipcode, "'", "");
  userphone = replace(userphone, "'", "");
  userfax = replace(userfax, "'", "");

  if(isBlank(useremail))
  {
    alert(getErrorMessage(NOEMAIL));
    return;
  }

  if(useremail.indexOf('@')==-1 || useremail.indexOf('.')==-1)
  {
    alert(getErrorMessage(EMAILNOTVALID));
    return;
  }
  
  if(usercountry=='ESPAÑA')
  {
    if(isBlank(userzipcode)) 
    {
      alert(getErrorMessage(NOZIPCODE));
      return;
    }
    else if(!isInteger(trim(userzipcode)) 
            || trim(userzipcode)>=53000
            || (trim(userzipcode)).length!=5 )
    {
      alert(getErrorMessage(ZIPCODEINVALID))
      return;
    }
  }


  if(segmentationdone==0)
  {
  	  alert('Debe detallar más su perfil de cliente, por favor.');
  	  return;
  }

  if(!isLOPDaccepted())
  {
	  alert('Debe aceptar las claúsulas de protección de datos.');
	  return;
  }

  

  displayLoading('registermessage', true);
  setDisabled('buttonregister', true);


  JUser.doRegister(objectEval("'"+username+"'"), objectEval("'"+usersurname+"'"), objectEval("'"+userpostaladdress+"'"), 
	  objectEval("'"+userdni+"'"), objectEval("'"+userbirthdate+"'"),  objectEval("'"+usernationality+"'"), 
	  objectEval("'"+usercountry+"'"), objectEval("'"+usercity+"'"), objectEval("'"+userzipcode+"'"), 
	  objectEval("'"+userphone+"'"), objectEval("'"+userfax+"'"), 'normal', '', '', '', '', 
	  objectEval("'"+usernewsletter+"'"), objectEval("'"+useroffers+"'"), objectEval("'"+userjoboffers+"'"), 
	  objectEval("'"+useremail+"'"), objectEval("'"+language+"'"),   objectEval("'"+updateSegmentacion()+"'"), replydoUserRegister);
}


var replydoUserRegister = function(data)
{
  displayLoading('registermessage', false);
  setDisabled('buttonregister', false);
  if (data != null && typeof data == 'object') 
  {
    alert(getErrorMessage(GENERALERROR));  
  }
  else 
  { 
    var response = DWRUtil.toDescriptiveString(data, 1);
    DWRUtil.setValue('registermessage', response);
  }
}

function doUserUnregister(login, passw, language)
{

  login = replace(login, "'", "");
  passw.value = replace(passw, "'", "");

  if(isBlank(login))
  {
    alert(getErrorMessage(NOLOGIN));
    return;
  }

  if(login.indexOf('@')==-1 || login.indexOf('.')==-1)
  {
    alert(getErrorMessage(LOGINNOTVALID));
    return;
  }

  if(isBlank(passw))
  {
    alert(getErrorMessage(NOPASSW));
    return;
  }

  var agree=confirm(getErrorMessage(DELETECONFIRMATION));
  if(!agree) return false;

  displayLoading('unregistermessage', true);
  setDisabled('buttonunregister', true);
  JUser.doUnregister(objectEval("'"+login+"'"), objectEval("'"+passw+"'"), 'ES', replydoUserUnregister);
}


var replydoUserUnregister = function(data)
{
  displayLoading('unregistermessage', false);
  setDisabled('buttonunregister', false);
  if (data != null && typeof data == 'object') 
  {
    alert(getErrorMessage(GENERALERROR));  
  }
  else 
  { 
    var response = DWRUtil.toDescriptiveString(data, 1);
    DWRUtil.setValue('unregistermessage', response);
  }
}



function doRememberPassword(email, language)
{
  if(language=='') language = 'ES';

  email = replace(email, "'", "");
  if(isBlank(email))
  {
    alert(getErrorMessage(NOEMAIL));
    return;
  }

  if(email.indexOf('@')==-1 || email.indexOf('.')==-1)
  {
    alert(getErrorMessage(EMAILNOTVALID));
    return;
  }

  JUser.doRememberPassword(objectEval("'"+email+"'"), 'ES', replydoRememberPassword);
}


var replydoRememberPassword = function(data)
{
  displayLoading('rememberpasswordmessage', false);
  setDisabled('buttonrememberpassword', false);
  if (data != null && typeof data == 'object') 
  {
    alert(getErrorMessage(GENERALERROR));  
  }
  else 
  { 
    var response = DWRUtil.toDescriptiveString(data, 1);
    DWRUtil.setValue('rememberpasswordmessage', response);
  }
}




function doChangePassword(email, passwold, passwnew1, passwnew2, language)
{
  if(language=='') language = 'ES';

  email = replace(email, "'", "");
  passwold = replace(passwold, "'", "");
  passwnew1 = replace(passwnew1, "'", "");
  passwnew2 = replace(passwnew2, "'", "");

  if(isBlank(email))
  {
    alert(getErrorMessage(NOEMAIL));
    return;
  }

  if(email.indexOf('@')==-1 || email.indexOf('.')==-1)
  {
    alert(getErrorMessage(EMAILNOTVALID));
    return;
  }
  
  if(isBlank(passwold))
  {
    alert(getErrorMessage(NOPASSW));
    return;
  }

  if(isBlank(passwnew1))
  {
    alert(getErrorMessage(NOPASSW));
    return;
  }

 
  if(passwnew1!=passwnew2)
  {
    alert(getErrorMessage(PASSWMISTMATCH));
    return;
  }
	
  JUser.doChangePassword(objectEval("'"+email+"'"), objectEval("'"+passwold+"'"), objectEval("'"+passwnew1+"'"), objectEval("'"+passwnew2+"'"), 'ES', replydoChangePassword);
}


var replydoChangePassword = function(data)
{
  displayLoading('changepasswordmessage', false);
  setDisabled('buttonchangepassword', false);
  if (data != null && typeof data == 'object') 
  {
    alert(getErrorMessage(GENERALERROR));  
  }
  else 
  { 
    var response = DWRUtil.toDescriptiveString(data, 1);
    DWRUtil.setValue('changepasswordmessage', response);
  }
}




