﻿// © Copyright Strategy Builders Inc. 2000-2009. All rights reserved.
//   
// The entire contents of this file is protected by International and
// U.S.Copyright Laws. Unauthorized reproduction, distribution, 
// redistribution and reverse engineering of any or all portion of the code 
// contained in this file is strictly prohibited and may
// result in severe civil and criminal penalties and will be
// prosecuted to the maximum extent possible under the law.
//  
// RESTRICTIONS 
//  
// THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES  
// ARE CONFIDENTIAL AND PROPRIETARY TRADE  
// SECRETS OF Strategy Builders Inc. 
//  
// THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED
// FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE  
// COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE 
// AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT  
// AND PERMISSION FROM Strategy Builders Inc. 
//  
// CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON 
// ADDITIONAL RESTRICTIONS. 
//  


function FormControl(id) {

    ContainerControl.call(this, id);
}

FormControl.prototype = new ContainerControl();

FormControl.prototype.RegisterEvents = function() {
    ContainerControl.prototype.RegisterEvents.call(this);

    for (var ControlEventName in this.getRegisterEventExpressions()) {
        //alert(this.getRegisterEventExpressions()[ControlEventName]);
        eval(this.getRegisterEventExpressions()[ControlEventName]);
    }
    for (var i = 0; i < this.getChildCount(); i++) {
        for (ControlEventName in this.getChild(i).getRegisterEventExpressions()) {
            //alert(ControlEventName);

            //            alert(this.getChild(i).getRegisterEventExpressions()[ControlEventName]);
            eval(this.getChild(i).getRegisterEventExpressions()[ControlEventName]);
        }
    }
}

FormControl.prototype.UpdateRecord = function() {
    //alert(this.getUpdateFieldAttributeExpressions().length);
    for (var ControlEventName in this.getUpdateFieldAttributeExpressions()) {
        //alert(this.getUpdateFieldAttributeExpressions()[ControlEventName]);
        eval(this.getUpdateFieldAttributeExpressions()[ControlEventName]);
    }
    for (var i = 0; i < this.getChildCount(); i++) {
        //alert(this.getChild(i).getId());
        for (ControlEventName in this.getChild(i).getUpdateFieldAttributeExpressions()) {

            //alert(this.getChild(i).getUpdateFieldAttributeExpressions()[ControlEventName]);
            eval(this.getChild(i).getUpdateFieldAttributeExpressions()[ControlEventName]);
        }
    }
}

FormControl.prototype.ValidateForm = function() {
    var isValid = true;
    for (var ControlEventName in this.getValidateFieldExpressions()) {
        //alert(this.getValidateFieldExpressions()[ControlEventName]);
        //alert(eval(this.getValidateFieldExpressions()[ControlEventName]));
        isValid = (isValid && eval(this.getValidateFieldExpressions()[ControlEventName]));
    }
    for (var i = 0; i < this.getChildCount(); i++) {
        //alert(this.getChild(i).getId());
        for (ControlEventName in this.getChild(i).getValidateFieldExpressions()) {

            // alert(this.getChild(i).getValidateFieldExpressions()[ControlEventName]);
            isValid = (isValid && eval(this.getChild(i).getValidateFieldExpressions()[ControlEventName]));
        }
    }
    //comment following line later
    return true;
    return isValid;
}

FormControl.prototype.UpdateRecord_EventHandler = function(e) {
    var targ;
    if (!e) e = window.event;
    if (e.target) targ = e.target;
    else if (e.srcElement) targ = e.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
        targ = targ.parentNode;
    var controls = targ.id.split('_');

    var me;
    me = eval(controls[0]);

    if (me.ValidateForm()) {

        me.UpdateRecord();

        me.getEventHandlers()['UpdateRecord'](me);
        //me.callEventHandler('UpdateRecord');

    } else {
        if (me.getEventHandlers()['InvalidForm'] != null && me.getEventHandlers()['InvalidForm'] != 'undefined') {
            me.getEventHandlers()['InvalidForm'](me);
        }
    }

}

FormControl.prototype.CreateRecord_EventHandler = function(e) {
    var targ;
    if (!e) e = window.event;
    if (e.target) targ = e.target;
    else if (e.srcElement) targ = e.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
        targ = targ.parentNode;
    var controls = targ.id.split('_');

    var me;
    me = eval(controls[0]);
    
    me.UpdateRecord();

    me.getEventHandlers()['CreateRecord'](me);
    //me.callEventHandler('CreateRecord');
}

FormControl.prototype.ValidateForm_EventHandler = function(e) {
    var targ;
    if (!e) e = window.event;
    if (e.target) targ = e.target;
    else if (e.srcElement) targ = e.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
        targ = targ.parentNode;
    var controls = targ.id.split('_');

    var me;
    me = eval(controls[0]);

    if (me.ValidateForm()) {

        me.getEventHandlers()['ValidForm'](me);

    } else {
    
        me.getEventHandlers()['InvalidForm'](me);

    }
    //me.callEventHandler('ValidateForm');
}

FormControl.prototype.CloseControl_EventHandler = function(e) {

    var targ;
    // get event if not passed
    if (!e) var e = window.event;

    if (e.target) targ = e.target;
    else if (e.srcElement) targ = e.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
        targ = targ.parentNode;
    var controls = targ.id.split('_');

    var me;
    me = eval(controls[0]);

    var numCharCode;
    var elTarget;
    var strType;

    me.getEventHandlers()['CloseControl'](me);
    //me.callEventHandler('CloseControl');
}


