/* 	Copyright 2008 Maximum Processing Inc
	This script provides standard functions used by Javascript Control Objects found in the controls.js


	

	Change Log
 	Created 11/26/2008 Nathan Townsend
*/



// The Rule Helper object
RuleHelper = new function(){
  try{
  

  return{
    
    LoadComponents: function(xmlNode, divTarget)
    {
      try{
        
        div = $(divTarget);
				
				div.html('');
        
        $(xmlNode).find(">c").each(function(){
          
          var component = LoadRulesMakerComponent(this);

					var Icon = new RuleIcon();
					
					Icon.Load(component);
					
					component.SetIcon(Icon);

					Icon.AppendTo(div);

					RuleStorage.AddComponent(component, component.GetID());
					
        });
				
				var targetId = div.attr("id");
        
      } catch(err){ Log.Add("RuleHelper.LoadComponents", err, LogType.Error); }
    },
    

    
    GetComponent: function(ID)
    {
      var ctrl = GetStoredObject(ID);
    },
    
    
    CreateComponent: function(strType)
    {
      try{
        
        var ctrl = null;
        
        var fn = new Function("return new " + strType + "();");
        
        ctrl = fn();
        
        if(ctrl == null)
          Log.Add("RuleHelper.CreateComponent", "The component could not be created: type = " + strType, LogType.Warning);
        
        ctrl.Create();
        
        return ctrl;
    
      } catch(err){ Log.Add("RuleHelper.CreateComponent", err, LogType.Error); }
    }
    
    
    

    
  }
  
  
  // Loads a component from its xml node
  function LoadRulesMakerComponent(xmlNode)
  {
    try{
        
        var Type = $(xmlNode).find(">t").text();
        
        var fn = new Function("return new " + Type + "();");
        
        var ctrl = fn();
       
        ctrl.Load(xmlNode);
     
        return ctrl;
        
        
    } catch(err){ Log.Add("RuleHelper.LoadRulesMakerComponent", err, LogType.Error); }
  }
  
  
  

  
  
    
  // catches errors that occur anywhere in the RuleHelper
  } catch(err){ Log.Add("RuleHelper", err, LogType.Error); }
} 
