var XLHCONTEXT = Class.create();
//defining the rest of the class implmentation
XLHCONTEXT.prototype = {
       initialize: function() {
		    this.EventHandlers = {};
		    this.UserControls = {};
		    this.UserControlVarDefns = new Array();
		    this.NutritionServingsTablesList = new Array();
		    this.ExpandCollapseTablesList = new Array();
       },
       
       RegisterEventHandler: function(eventName,nameOfFunction){
        this.EventHandlers[eventName] = nameOfFunction;
       },
       
       RaiseEvent : function(eventName,params)
       {
         return this.EventHandlers[eventName](params);
       },
       
       xlh_register_var : function(varName, varFn)
       {
            this.UserControlVarDefns[this.UserControlVarDefns.length] = varFn;
       },
       
       xlh_instantiate_all_vars : function()
       {
            for (var x = 0; x< this.UserControlVarDefns.length; x++)
            {
                this.UserControlVarDefns[x]();
            }
       },
       
       xlh_register_nutrition_servings_table : function(tableid,imageid, isexpanded)
       {
			var tableExists = false;
			var itemIndex = -1;
			for (var x = 0; x< this.NutritionServingsTablesList.length; x++)
            {
                if(this.NutritionServingsTablesList[x].TableID == tableid)
                {
					tableExists = true;
					itemIndex = x;
                }
            }
            
            if(!tableExists)
            {
				var tempArray = new Array(this.NutritionServingsTablesList.length + 1);
				for (var i=0;i<this.NutritionServingsTablesList.length;i++)
				{
					tempArray[i] = this.NutritionServingsTablesList[i];
				}
				tempArray[i] = new NutritionServingsTable(tableid,imageid, isexpanded);
				this.NutritionServingsTablesList = tempArray;		
            }
            else
            {
				if(itemIndex != -1)
				{
					this.NutritionServingsTablesList[itemIndex].IsExpanded = isexpanded;
				}
            }
       },
       
       xlh_is_nutrition_servings_table_expanded :  function(tableid)
       {
			for (var x = 0; x< this.NutritionServingsTablesList.length; x++)
            {
                if(this.NutritionServingsTablesList[x].TableID == tableid)
                {
					return this.NutritionServingsTablesList[x].IsExpanded;
                }
            }
            return false;
       },
       
       GetAllNutritionServingTables : function()
       {
			return this.NutritionServingsTablesList;
       },
       
       ClearAllNutritionServingTables :  function()
       {
			this.NutritionServingsTablesList = new Array();
       },
       xlh_register_ExpandCollapseTable : function(tableid,imageid, isexpanded)
       {
			var tableExists = false;
			var itemIndex = -1;
			for (var x = 0; x< this.ExpandCollapseTablesList.length; x++)
            {
                if(this.ExpandCollapseTablesList[x].TableID == tableid)
                {
					tableExists = true;
					itemIndex = x;
                }
            }
            
            if(!tableExists)
            {
				var tempArray = new Array(this.ExpandCollapseTablesList.length + 1);
				for (var i=0;i<this.ExpandCollapseTablesList.length;i++)
				{
					tempArray[i] = this.ExpandCollapseTablesList[i];
				}
				tempArray[i] = new ExpandCollapseTable(tableid,imageid, isexpanded);
				this.ExpandCollapseTablesList = tempArray;		
            }
            else
            {
				if(itemIndex != -1)
				{
					this.ExpandCollapseTablesList[itemIndex].IsExpanded = isexpanded;
				}
            }
       },
       
       xlh_is_ExpandCollapseTable_expanded :  function(tableid)
       {
			for (var x = 0; x< this.ExpandCollapseTablesList.length; x++)
            {
                if(this.ExpandCollapseTablesList[x].TableID == tableid)
                {
					return this.ExpandCollapseTablesList[x].IsExpanded;
                }
            }
            return false;
       },
       
       GetAllExpandCollapseTables : function()
       {
			return this.ExpandCollapseTablesList;
       },
       
       ClearAllExpandCollapseTables :  function()
       {
			this.ExpandCollapseTablesList = new Array();
       }
       
};	  

function get_xlh_ctrl(clientid)
{
   return window.XLHContext.UserControls["RCKR_JS_OBJ_" + clientid];
}

function get_xlh_client_container_for_ctrl(clientid)
{
   return $("container_" + clientid);
}


function get_ca_ctrl(clientid)
{
   return window[clientid];
}

function $CA(clientid)
{
 return get_ca_ctrl(clientid);
}

var NutritionServingsTable = Class.create();
//defining the rest of the class implmentation
NutritionServingsTable.prototype = {
       initialize: function(tableid,imageid,isexpanded) {
		    this.TableID = tableid;
		    this.ImageID = imageid;
		    this.IsExpanded = isexpanded;
       }
       
};

var ExpandCollapseTable = Class.create();
//defining the rest of the class implmentation
ExpandCollapseTable.prototype = {
       initialize: function(tableid,imageid,isexpanded) {
		    this.TableID = tableid;
		    this.ImageID = imageid;
		    this.IsExpanded = isexpanded;
       }
       
};
