var addDataRecord = function(callObj, form_id){
    var form = document.getElementById(form_id);
    var inputs = form.getElementsByTagName('INPUT');
    for(var c=0; c<inputs.length; c++){
        if( inputs[c].type.toUpperCase() != "SUBMIT" && inputs[c].type.toUpperCase() != "BUTTON" ){
            inputs[c].value = "";
        }
    }
    var lcAction = document.getElementById(form_id+"[action]");
    lcAction.value = 'add';
    
    clearHighlightedRecords();
    // Get, show and position the popup associated with the form.
    // var lcContainerDiv = findParentWithClass(document.getElementById(form_id), 'popupwindow');
    var lcContainerDiv = findParentWithClass(document.getElementById(form_id), 'hidden');
    if( lcContainerDiv ){
        removeCssClass(lcContainerDiv, 'hidden');
        lcContainerDiv.style.left = getX(callObj);
        lcContainerDiv.style.top = getY(callObj) + callObj.offsetHeight;
    }    
};

var clearHighlightedRecords = function(){
    var highlightedarr = getElements('tr', 'innerdatatablehighlighted');
    for(var hh=0; hh<highlightedarr.length; hh++){
        removeCssClass(highlightedarr[hh], 'innerdatatablehighlighted');
    }
};

var prepareEditDataRecord = function(callObj, row_id, form_id){
    // Highlight the selected row.
    clearHighlightedRecords();
    addCssClass(document.getElementById('record_'+row_id), 'innerdatatablehighlighted');

    // Get, show and position the popup associated with the form.
    // var lcContainerDiv = findParentWithClass(document.getElementById(form_id), 'popupwindow');
    var lcContainerDiv = findParentWithClass(document.getElementById(form_id), 'hidden');
    if( lcContainerDiv ){
        removeCssClass(lcContainerDiv, 'hidden');
        lcContainerDiv.style.left = getX(callObj);
        lcContainerDiv.style.top = getY(callObj) + callObj.offsetHeight;
    }

    // fill up the form data.
    var cells = getElements('td', 'innerdatatablecell', document.getElementById('record_'+row_id));
    for(var ii=0; ii<cells.length; ii++){
        var idarr = cells[ii].id.split('|-|');
        // should be { form_name, field_code, id }
        var form_name = idarr[0];
        var field_code = idarr[1];
        var formField = document.getElementById(form_name+"["+field_code+"]");
        if( formField ){
            // This handles the case where maxlength has been truncated for the table
            // in which case the table has a hidden div with the full value.
            var valuearr = getElements('div', 'hidden', cells[ii]);
            if( valuearr.length > 0 ){
                formField.value = valuearr[0].innerHTML;
                if( formField.type.toUpperCase() == 'HIDDEN' ){
                    var checkbox = document.getElementById(form_name+'_'+field_code+'_checkbox');
                    if( checkbox ){
                        checkbox.checked = (valuearr[0].innerHTML=='1'?true:false);
                    }
                }
            }else{
                formField.value = cells[ii].innerHTML;
            }
        }
    }
    
    var submitarr = getElements('input', 'hidden', document.getElementById(form_id));
    for( var x=0; x<submitarr.length; x++ ){
        if( submitarr[x].value == 'Cancel' ){
            removeCssClass(submitarr[x], 'hidden');
            var cancelButton = document.createElement('INPUT');
            cancelButton.type = 'button';
            cancelButton.value = 'Cancel';
            cancelButton.onclick = function(){
                addCssClass(lcContainerDiv, 'hidden');
                this.parentNode.removeChild(this);
            };
            submitarr[x].parentNode.appendChild(cancelButton);
        }
    }

    var lcAction = document.getElementById(form_id+"[action]");
    lcAction.value = 'edit';
};

var saveDataRecord = function(){
    alert("saveDataRecord();");
};

var deleteDataRecord = function(callObj, row_id, form_id){
    addCssClass(document.getElementById('record_'+row_id), 'innerdatatabledeleting');
    var choice = confirm("Are you sure you want to delete this row?");
    if( choice ){
        var form = document.getElementById(form_id);
        
        // fill up the form data.
        var cells = getElements('td', 'innerdatatablecell', document.getElementById('record_'+row_id));
        for(var ii=0; ii<cells.length; ii++){
            var idarr = cells[ii].id.split('|-|');
            // should be { form_name, field_code, id }
            var form_name = idarr[0];
            var field_code = idarr[1];
            var formField = document.getElementById(form_name+"["+field_code+"]");
            if( formField ){
                // This handles the case where maxlength has been truncated for the table
                // in which case the table has a hidden div with the full value.
                var valuearr = getElements('div', 'hidden', cells[ii]);
                if( valuearr.length > 0 ){
                    formField.value = valuearr[0].innerHTML;
                }else{
                    formField.value = cells[ii].innerHTML;
                }
            }
        }
        
        var lcAction = document.getElementById(form_id+"[action]");
        lcAction.value = 'delete';
        form.submit();
    }else{
        removeCssClass(document.getElementById('record_'+row_id), 'innerdatatabledeleting');
    }
};

