


//////////////////////////////////////////////////////////////////
//FILE LOAD INDICATOR! DO NOT REMOVE
//////////////////////////////////////////////////////////////////
$iTXT.js.loader["$iTXT.data.AdLogger"] = true;
//////////////////////////////////////////////////////////////////

//Loader Function
$iTXT.data.AdLogger_Load = function(){
    
    //Speed up access to undefined
    var undefined;

    
    
    $iTXT.data.AdLogger = $iTXT.core.Class.create(
    {
        server: "",
        
        init: function(_opts)
        {
            
            this.server = _opts.server || "mymachine";
            
            var t = this;
            //$iTXT.core.$(document).itxtSubscribe("$iTXT:tt:open", function(e) { t.log({}); });
            //$iTXT.core.$(document).itxtSubscribe("$iTXT:tt:close", function(e) { t.log({}); });
            
            //subscribe to any data:adlog events
            $iTXT.core.$(document).itxtSubscribe("$iTXT:data:adlog", function(e) { t.log(e.data||{}); });
        },     
        
        log: function(opts)
        {
            var url = 'http://'+this.server+'/al.asp?ts='+(new Date()).getTime()+"&";
            
            //loop through each parameter
            //in the passed options object
            for (pn in opts)
            {
                url += pn + "=" + escape(opts[pn]) + "&";
            }
            
            dbM("Logging Advert Event: " + url);
            $iTXT.core.Util.dropScript(url);
        }
        
    });
    
}








//////////////////////////////////////////////////////////////////
//FILE LOAD INDICATOR! DO NOT REMOVE
//////////////////////////////////////////////////////////////////
$iTXT.js.loader["$iTXT.data.Param"] = true;
//////////////////////////////////////////////////////////////////

//Loader Function
$iTXT.data.Param_Load = function(){
	
	//Speed up access to undefined
	var undefined;

	
    
    $iTXT.data.Param = $iTXT.core.Class.create(
	{
	    //the hash map object
	    paramHash: null,	
	    
	    parent: null,
	    
	    init: function(p)
	    {
	        this.paramHash = {}
	        this.parent = p || null;
	    },
		
		get: function(pname, defVal)
		{
	        var retVal = defVal || null;
	        if (this.exists(pname))
	        {
	            retVal = this.paramHash[pname].v;
	        }
	        else if (this.parent!=null)
	        {
	            retVal = this.parent.get(pname, defVal);
	        }
		    return retVal;
		},
		
		set: function(arg1, arg2)
		{
		    if ($iTXT.core.Util.isString(arg1))
		    {
		        this.paramHash[arg1] = arg2;
		    }
		    else if ($iTXT.core.Util.isObject(arg1))
		    {
		        for (name in arg1)
	            {
		            this.paramHash[name] = arg1[name];
	            }
		    }
		},
		
		unset: function(pname)
		{
		    this.paramHash[pname] = null;
		},
		
		exists: function(pname)
		{
		    return (this.paramHash[pname] != null);
		},
		
		parse: function(s, obj)
		{
		    var cloneHash = {};
		    for (name in this.paramHash)
		    {
		        if (obj && obj[name])
		        {
		            cloneHash[name] = obj[name];
		        }
		        else
		        {
		            cloneHash[name] = this.paramHash[name];
		        }
		    }
		    
		    for (name in cloneHash)
		    {
		        s = s.replace("${" + name + "}", cloneHash[name]);
		    }
		    
		    if (this.parent!=null)
		    {
		        return this.parent.parse(s);
		    }
		    
		    return s;
		},
		
		_param: function(pname, val, weight)
		{
		    var r = 
		    {
	                n: pname,
	                v: val,
	                w: (weight || 0)
	        }
		    return r;
		    		    
		}
	
	
	});
    
}






