<?xml version="1.0" encoding="UTF-8"?>
<dynaForm name="myInfo" width="80%" labelWidth="350px" mode="edit" enableTemplate="1">
  <menuUser type="xmlmenu" xmlfile="users/users_NewOptions">
    <en/>
  </menuUser>
  <START_DATE type="phpVariable"/>
  <DEFAULT_ROLE type="phpVariable"/>
  <END_DATE type="phpVariable"/>
  <TITLE1 type="title" group="1">
    <en><![CDATA[Personal Information]]></en>
  </TITLE1>
  <USR_UID type="private"/>
  <USR_FIRSTNAME type="text" size="30" maxlength="32" defaultvalue="" required="1" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
    <en><![CDATA[First Name]]></en>
  </USR_FIRSTNAME>
  <USR_LASTNAME type="text" size="30" maxlength="32" defaultvalue="" required="1" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
    <en><![CDATA[Last Name]]></en>
  </USR_LASTNAME>
  <USR_USERNAME type="text" size="15" maxlength="50" validate="Login" defaultvalue="" required="1" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" onchange="">
    <en><![CDATA[User ID (*)]]></en>
  </USR_USERNAME>
  <USR_EMAIL type="text" size="35" maxlength="100" validate="Email" defaultvalue="" required="0" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
    <en><![CDATA[Email]]></en>
  </USR_EMAIL>
  <USR_ADDRESS type="textarea" rows="3" cols="50" defaultvalue="" required="0" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
    <en><![CDATA[Address]]></en>
  </USR_ADDRESS>
  <USR_ZIP_CODE type="text" size="30" maxlength="30" defaultvalue="" required="0" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
    <en><![CDATA[Zip/Postal Code]]></en>
  </USR_ZIP_CODE>
  <USR_COUNTRY type="dropdown" style="width:174pt" defaultvalue="" required="0" group="1" dependentfields="USR_CITY" readonly="0" sqlconnection="" noshowingrid="0" readonlyingrid="0">
SELECT IC_UID, IC_NAME FROM ISO_COUNTRY ORDER BY IC_NAME
  <en><![CDATA[Country]]><option name=""><![CDATA[]]></option></en>
  </USR_COUNTRY>
  <USR_CITY type="dropdown" style="width:174pt" defaultvalue="" required="0" group="1" dependentfields="USR_LOCATION" readonly="0" sqlconnection="" noshowingrid="0" readonlyingrid="0">
SELECT IS_UID, IS_NAME FROM ISO_SUBDIVISION WHERE IC_UID = "@#USR_COUNTRY" ORDER BY IS_NAME
  <en><![CDATA[State or Region]]><option name=""><![CDATA[N/D]]></option></en>
  </USR_CITY>
  <USR_LOCATION type="dropdown" style="width:174pt" defaultvalue="" required="0" group="1" readonly="0" sqlconnection="" noshowingrid="0" readonlyingrid="0">
SELECT IL_UID, IL_NAME FROM ISO_LOCATION WHERE IC_UID = "@#USR_COUNTRY" AND IS_UID = "@#USR_CITY" AND IS_UID NOT IN ("") ORDER BY IL_NAME
  <en><![CDATA[Location]]><option name=""><![CDATA[N/D]]></option></en>
  </USR_LOCATION>
  <USR_PHONE type="text" size="15" maxlength="16" defaultvalue="" required="0" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
    <en><![CDATA[Phone]]></en>
  </USR_PHONE>
  <USR_POSITION type="text" size="35" maxlength="35" defaultvalue="" required="0" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
    <en><![CDATA[Position]]></en>
  </USR_POSITION>
  <USR_REPORTS_TO type="dropdown" defaultvalue="" required="0" group="1" dependentfields="" readonly="0" sqlconnection="dbarray" noshowingrid="0" readonlyingrid="0">
  SELECT * FROM aUserInfo
  <en><![CDATA[Reports to]]><option name=""><![CDATA[]]></option></en>
  </USR_REPORTS_TO>
  <USR_REPLACED_BY type="dropdown" defaultvalue="" required="0" group="1" dependentfields="" readonly="0" sqlconnection="dbarray" noshowingrid="0" readonlyingrid="0">
  SELECT * FROM aUserInfo
  <en><![CDATA[Replaced by]]><option name=""><![CDATA[]]></option></en>
  </USR_REPLACED_BY>
  <USR_DUE_DATE type="date" mask="Y-m-d" startDate="@#START_DATE" endDate="@#END_DATE" defaultvalue="" required="1" group="1" readonly="0" noshowingrid="0" readonlyingrid="0">
    <en><![CDATA[Expiration Date]]></en>
  </USR_DUE_DATE>
  <USR_CALENDAR type="dropdown" sqlconnection="dbarray">
SELECT CALENDAR_UID, CALENDAR_NAME FROM availableCalendars
<en><![CDATA[Calendar]]><option name=""><![CDATA[- None -]]></option></en>
  </USR_CALENDAR>
  <USR_STATUS type="dropdown" group="1" required="0">
    <en><![CDATA[Status]]><option name="ACTIVE"><![CDATA[ACTIVE]]></option><option name="INACTIVE"><![CDATA[INACTIVE]]></option><option name="VACATION"><![CDATA[ON VACATION]]></option></en>
  </USR_STATUS>
  <USR_ROLE type="dropdown" defaultvalue="PROCESSMAKER_OPERATOR" required="0" group="1" dependentfields="" readonly="0" sqlconnection="rbac" noshowingrid="0" readonlyingrid="0">
SELECT ROL_CODE AS USR_ROLE, ROL_CODE AS CODE FROM ROLES WHERE ROL_SYSTEM = '00000000000000000000000000000002' AND ROL_STATUS = 1 ORDER BY ROL_CODE 
  <en><![CDATA[Role]]></en>
  </USR_ROLE>
  <TITLE2 type="title" group="1">
    <en><![CDATA[Change Password]]></en>
  </TITLE2>
  <USR_NEW_PASS type="password" size="30" maxlength="20" validate="5" mask="" required="1">
    <en><![CDATA[New Password]]></en>
  </USR_NEW_PASS>
  <USR_CNF_PASS type="password" size="30" maxlength="20" validate="5" mask="" required="1">
    <en><![CDATA[Confirm Password]]></en>
  </USR_CNF_PASS>
  <SUBMIT type="button" onclick="validateLocalFields(this.form);" group="1">
    <en><![CDATA[Save]]></en>
  </SUBMIT>
  <TITLE3 type="title" group="1">
    <en><![CDATA[Profile]]></en>
  </TITLE3>
  <USR_PHOTO type="file" group="1">
    <en><![CDATA[Photo]]></en>
  </USR_PHOTO>
  <!--
  <USR_RESUME type="file" group="1">
    <en>Résumé</en>
  </USR_RESUME>
  -->
  <MAX_FILES_SIZE type="edit" mode="view">
    <en><![CDATA[Maximum upload file size]]></en>
  </MAX_FILES_SIZE>
  <BTN_CANCEL type="button" onclick="cancel();">
    <en><![CDATA[Cancel]]></en>
  </BTN_CANCEL>
  <MESSAGE0 type="phpvariable"/>
  <MESSAGE1 type="phpvariable"/>
  <MESSAGE2 type="phpvariable"/>
  <MESSAGE3 type="phpvariable"/>
  <MESSAGE4 type="phpvariable"/>
  <MESSAGE5 type="phpvariable"/>
  <MESSAGE6 type="phpvariable"/>
  <JS type="javascript" replacetags="1"><![CDATA[
var sUsername;

var dynaformOnload = function()
{
  sUsername = document.forms[0].elements['form[USR_USERNAME]'].value;
  leimnud.event.add(document.forms[0].elements['form[USR_USERNAME]'], 'blur', {method:verifyUsername, instance:document.forms[0].elements['form[USR_USERNAME]'], event:true});
  leimnud.event.add(document.forms[0].elements['form[USR_CITY]'], 'change', {method:existsElements, instance:document.forms[0].elements['form[USR_CITY]'], event:true});
  leimnud.event.add(document.forms[0].elements['form[USR_LOCATION]'], 'change', {method:existsElements, instance:document.forms[0].elements['form[USR_LOCATION]'], event:true});
  if (document.forms[0].elements['form[USR_CITY]'].options.length == 0) {
    hideRow(document.forms[0].elements['form[USR_CITY]']);
  }
  if (document.forms[0].elements['form[USR_LOCATION]'].options.length == 0) {
    hideRow(document.forms[0].elements['form[USR_LOCATION]']);
  }
};

var verifyUsername = function()
{ 
  document.forms[0].elements['form[USR_USERNAME]'].disabled = true;
  document.forms[0].elements['form[SUBMIT]'].disabled = true;
  var oRPC = new leimnud.module.rpc.xmlhttp({
    url    :'users_Ajax',
    async  : false,
    method :'POST',
    args   :'function=verifyUsername&sOriginalUsername=' + sUsername + '&sUsername=' + encodeURIComponent(this.value)});
  oRPC.make();
  var sResponse = oRPC.xmlhttp.responseText;
  document.forms[0].elements['form[USR_USERNAME]'].disabled = false;
  if (sResponse == 1)
  {
    new leimnud.module.app.alert().make({
	    label: "@#MESSAGE0"
  	});
    document.forms[0].elements['form[USR_USERNAME]'].focus();
  }
  else
  {
    document.forms[0].elements['form[SUBMIT]'].disabled = false;
  }
};

var verifyUserInformation = function(oForm)
{
	var oAux1, oAux2;
	var bContinue = true;

	oAux1 = oForm.elements['form[USR_FIRSTNAME]'];
	if (oAux1.value == '')
	{
		new leimnud.module.app.alert().make({
	    label: "@#MESSAGE4"
  	});
		oAux1.focus();
		bContinue = false;
		return false;
	}

	oAux1 = oForm.elements['form[USR_LASTNAME]'];
	if (oAux1.value == '')
	{
		new leimnud.module.app.alert().make({
	    label: "@#MESSAGE5"
  	});
		oAux1.focus();
		bContinue = false;
		return false;
	}

	oAux1 = oForm.elements['form[USR_USERNAME]'];
	if (oAux1.value == '')
	{
		new leimnud.module.app.alert().make({
	    label: "@#MESSAGE1"
  	});
		oAux1.focus();
		bContinue = false;
		return false;
	}
	oAux1 = oForm.elements['form[USR_DUE_DATE]'];
	if (oAux1.value == '')
	{
		new leimnud.module.app.alert().make({
	    label: "@#MESSAGE2"
  	});
		oAux1.focus();
		bContinue = false;
		return false;
	}
	oAux1 = oForm.elements['form[USR_NEW_PASS]'];
	if (oAux1.value != '')
	{
		oAux2 = oForm.elements['form[USR_CNF_PASS]'];
		if (oAux1.value != oAux2.value)
		{
		  new leimnud.module.app.alert().make({
	      label: "@#MESSAGE3"
  	  });
		  oAux1.focus();
		  bContinue = false;
		  return false;
	  }
	}
	if (bContinue)
	{
		oForm.submit();
	}
};

var existsElements = function () {
  if (this.options.length > 0) {
    showRow(this);
  }
  else {
    hideRow(this);
  }
};


/*
 * function validateLocalEmail
 * @author gustavo cruz gustavo-at-colosa-dot-com
 * @param sEmail email form field.
 * @return true / false
 * @desc function using regular expressions ir order to validate
 *       an email adress.
 */
 
var validateLocalEmail = function(sEmail){
   var sFilter = /^[a-zA-Z]+([_\.-]?[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([\.-]?[a-zA-Z0-9]+)*(\.[a-zA-Z]{2,6})+$/;
     if (!sFilter.test(sEmail.value)) {
        return false;
     } else {
        return true;
     }
}

/*
 * function validatePasswordFields
 * @author gustavo cruz gustavo-at-colosa-dot-com
 * @param sPassword email form field.
 * @param sPasswordCnf email form field.
 * @return true/false
 * @desc function that compares the values of two password fields
 */

var validatePasswordsFields = function(sPassword,sPasswordCnf){
    if (sPassword.value==sPasswordCnf.value){
        return true;
    } else {
        return false;
    }
}

/*
 * function validateLocalData
 * @author gustavo cruz gustavo-at-colosa-dot-com
 * @param oForm form that is validated.
 * @return void.
 * @desc function that validates local data for email and passwords.
 */

var validateLocalFields = function(oForm)
{
        var sEmail = document.getElementById('form[USR_EMAIL]');
        var sPassword = document.getElementById('form[USR_NEW_PASS]');
        var sPasswordRep = document.getElementById('form[USR_CNF_PASS]');
        var sAlert = "";
        var bContinue = true;
        var permitted = false;
        bContinue = validateForm("[{\"name\":\"USR_FIRSTNAME\",\"type\":\"text\",\"label\":\"First Name\"},{\"name\":\"USR_LASTNAME\",\"type\":\"text\",\"label\":\"Last Name\"},{\"name\":\"USR_USERNAME\",\"type\":\"text\",\"label\":\"User ID (*)\"},{\"name\":\"USR_DUE_DATE\",\"type\":\"date\",\"label\":\"Expiration Date\"},{\"name\":\"USR_NEW_PASS\",\"type\":\"password\",\"label\":\"New Password\"},{\"name\":\"USR_CNF_PASS\",\"type\":\"password\",\"label\":\"Confirm Password\"}]".parseJSON());

        aExtensions = new Array ( ".ais",  ".bmp", ".bw",   ".cdr", ".cdt", ".cgm",  ".cmx",  ".cpt",  ".dcx", ".dib",
                                  ".emf",  ".gbr", ".gif",  ".gih", ".ico", ".iff",  ".ilbm", ".jfif", ".jif", ".jpe",
                                  ".jpeg", ".jpg", ".kdc",  ".lbm", ".mac", ".pat",  ".pcd",  ".pct",  ".pcx", ".pic",
                                  ".pict", ".png", ".pntg", ".pix", ".psd", ".psp",  ".qti",  ".qtif", ".rgb", ".rgba",
                                  ".rif",  ".rle", ".sgi",  ".tga", ".tif", ".tiff", ".wmf",  ".xcf"
                                );

        oUsrPhoto = oForm.elements['form[USR_PHOTO]'];
        sUsrPhoto = oUsrPhoto.value;
        if (sUsrPhoto != "" ) {
          extension = (sUsrPhoto.substring(sUsrPhoto.lastIndexOf("."))).toLowerCase();
          for (var i = 0; i < aExtensions.length; i++) {
            if (aExtensions[i] == extension) {
              permitted = true;
              break;
            }
          }
        }
        else {
          permitted = true;
        }

        if (bContinue){
            if (!validateLocalEmail(sEmail)){
                sAlert = sAlert+"Please provide a valid email address. <br>";
                bContinue = false;
            }
            if (!validatePasswordsFields(sPassword,sPasswordRep)){
                sAlert = sAlert+"The password fields don't match. <br>";
                bContinue = false;
            }
            if (!permitted) {
              sAlert    = sAlert + "@#MESSAGE6" + " <br>";
              bContinue = false;
            }
            if (!bContinue){
                msgBox(sAlert, "alert");
            }
            else {
                oForm.submit();
            }
        }
};

function cancel() {
    window.location = 'users_List';
}

]]></JS>
</dynaForm>
