<?xml version="1.0" encoding="UTF-8"?>
<dynaForm type="xmlform" name="dynaformAssignVariables" width="450" enableTemplate="1">
  <PRO_UID type="hidden"/>
  <DYN_UID type="hidden"/>
  <DYN_TITLE type="hidden"/>
  <DYN_TYPE type="hidden"/>
  <ACTION type="hidden"/>
  <VALIDATION_MESSAGE type="hidden"/>
  <DYN_DESCRIPTION type="hidden"/>
  <ADD_TABLE type="hidden"/>
  <FIELDS type="grid" xmlgrid="dynaforms/dynaforms_AssignVariablesGrid" addrow="0" deleterow="0" mode="edit"/>
  <SAVE_FROM_PMTABLE type="button" onclick="validatePKFields (this.form,'save');">
    <en><![CDATA[Save]]></en>
  </SAVE_FROM_PMTABLE>
  <SAVE_AND_OPEN_FROM_PMTABLE type="button" onclick="validatePKFields (this.form,'saveAndOpen');">
    <en><![CDATA[Save & Open]]></en>
  </SAVE_AND_OPEN_FROM_PMTABLE>
  <!-- BTN_CANCEL type="button" onclick="cancel();">
  <en>Cancel</en>
</BTN_CANCEL //-->
  <JSCRIPT type="javascript"><![CDATA[
// function that validates the primary keys in a grid for the Elements 
function validatePKFields (formElement, value){
    
    var fieldsArray   = formElement.FIELDS;
    var fieldId = '';
    var counter = 1;
    var invalidFields = new Array();

    fieldId = 'form[FIELDS]['+counter+'][PRO_VARIABLE]';
    while (document.getElementById(fieldId)!=null){
        fieldNameId = 'form[FIELDS]['+counter+'][FLD_NAME]';
        if (document.getElementById(fieldId).value=='') {

            invalidFields.push(document.getElementById(fieldNameId).value);
        }
        counter++;
        fieldId = 'form[FIELDS]['+counter+'][PRO_VARIABLE]';
    }
    //alert (invalidFields.length);
    if (invalidFields.length>0){
        //alert(invalidFields[0]);
        msgBox("@#VALIDATION_MESSAGE","alert");
    } else {
        if (value=='save'){
            dynaformSavePMBasedForm( formElement, false );
        } else {
            dynaformSave( formElement, true );
        }
    }
}

function assignVariable(){
  var variables;
  var i=1;
  while( document.getElementById('form[FIELDS]['+i+'][PRO_VARIABLE]')!=undefined){
    if (variables!=''&&variables!=undefined){
        variables = variables + '|' + document.getElementById('form[FIELDS]['+i+'][PRO_VARIABLE]').value;
    } else {
        variables = document.getElementById('form[FIELDS]['+i+'][PRO_VARIABLE]').value;
    }
    i++;
  }
  document.getElementById('form[PROCESS_VARIABLES]').value = variables;
  currentPopupWindow.remove();
}

var _oVarsPanel_;
var showDynaformsFormVars = function(sFieldName, sAjaxServer, sProcess, sSymbol) {
	_oVarsPanel_ = new leimnud.module.panel();
	_oVarsPanel_.options = {
    limit    : true,
    size     : {w:600,h:420},
    position : {x:0,y:0,center:true},
    title    : '',
    theme    : 'processmaker',
    statusBar: false,
    control  : {drag:false,resize:true,close:true},
    fx       : {opacity:true,rolled:false,modal:true}
  };
  _oVarsPanel_.make();
  _oVarsPanel_.events = {
    remove:function() {
      delete _oVarsPanel_;
    }.extend(this)
  };
  _oVarsPanel_.loader.show();
  oRPC = new leimnud.module.rpc.xmlhttp({
    url   : sAjaxServer,
    method: 'POST',
    args  : 'sFieldName=' + sFieldName + '&sProcess=' + sProcess + '&sSymbol=' + sSymbol + '&sType=2'
  });
  oRPC.callback = function(oRPC) {
    _oVarsPanel_.loader.hide();
    var scs = oRPC.xmlhttp.responseText.extractScript();
    _oVarsPanel_.addContent(oRPC.xmlhttp.responseText);
    scs.evalScript();
  }.extend(this);
  oRPC.make();
};

var insertFormVar = function(sFieldName, sValue) {
    oAux = document.getElementById(sFieldName);
    if (oAux.setSelectionRange) {
        var rangeStart = oAux.selectionStart;
        var rangeEnd   = oAux.selectionEnd;
        var tempStr1   = oAux.value.substring(0,rangeStart);
        var tempStr2   = oAux.value.substring(rangeEnd);
        oAux.value     = tempStr1 + sValue + tempStr2;
    }
    else {
        if (document.selection) {
            oAux.focus();
            document.selection.createRange().text = sValue;
        }
    }
_oVarsPanel_.remove();
};

function cancel(){
    oPanel.remove();
}

]]></JSCRIPT>
</dynaForm>
