if (typeof Netbridge == "undefined") {
    /**
     * The Netbridge global namespace object.  If Netbridge is already defined, the
     * existing Netbridge object will not be overwritten so that defined
     * namespaces are preserved.
     * @class Netbridge
     * @static
     */
    var Netbridge = {};
}

/**
 * Returns the namespace specified and creates it if it doesn't exist
 * <pre>
 * Netbridge.namespace("property.package");
 * Netbridge.namespace("Netbridge.property.package");
 * </pre>
 * Either of the above would create Netbridge.property, then
 * Netbridge.property.package
 *
 * Be careful when naming packages. Reserved words may work in some browsers
 * and not others. For instance, the following will fail in Safari:
 * <pre>
 * Netbridge.namespace("really.long.nested.namespace");
 * </pre>
 * This fails because "long" is a future reserved word in ECMAScript
 *
 * @method namespace
 * @static
 * @param  {String*} arguments 1-n namespaces to create 
 * @return {Object}  A reference to the last namespace object created
 */
Netbridge.namespace = function() {
    var a=arguments, o=null, i, j, d;
    for (i=0; i<a.length; i=i+1) {
        d=a[i].split(".");
        o=Netbridge;

        // Netbridge is implied, so it is ignored if it is included
        for (j=(d[0] == "Netbridge") ? 1 : 0; j<d.length; j=j+1) {
            o[d[j]]=o[d[j]] || {};
            o=o[d[j]];
        }
    }

    return o;
};

(function() {
    Netbridge.namespace("trafic");
    Netbridge.namespace("trafic.Stat");
})();


Netbridge.trafic.Stat.Percentage = Netbridge.trafic.StatPercentage || {
	percentage: 'day',
	percentages: [ 'day', 'week' ],

	percentageSwitch: function( headerId )
	{
		if(headerId == null) {
			headerId = 'percentage_header';
		}

		if(this.percentage == 'day') {
			this.percentage = 'week';
			document.getElementById( headerId ).innerHTML = document.getElementById( headerId ).innerHTML.replace( 'zi', 'săpt.' );
		} else if(this.percentage == 'week') {
			this.percentage = 'day';
			document.getElementById( headerId ).innerHTML = document.getElementById( headerId ).innerHTML.replace( 'săpt.', 'zi' );
		}

		//for each day
		for(i=0;i<22;i++)
		{
			//for(var all in this.percentages)
			for(var all = 0; all < this.percentages.length; all++)
			{
				o = document.getElementById('percentage_' + this.percentages[all] + '_' + i );
				
				if( this.percentages[all] == this.percentage) {
					o.style.display = 'block';
				} else {
					o.style.display = 'none';
				}
			}
			
			if(this.percentage == 'week' && document.getElementById('yui-rec' + i)) {
				document.getElementById('yui-rec' + i).onmouseover = function() {
					Netbridge.trafic.Stat.Percentage.selectDayOfWeek(parseInt(this.id.substr(7)));
				}
				document.getElementById('yui-rec' + i).onmouseout = function() {
					Netbridge.trafic.Stat.Percentage.clearDayOfWeek();
				}
			}
		}
	},
	
	selectDayOfWeek: function( objectId ) {
		if(this.percentage == 'day') return;
		
		//for each day
		for(i=0;i<22;i++) {
			 var elmid = 'yui-rec' + i;
			 if(document.getElementById(elmid)) {
				 if(i%7 == objectId%7) {
					 //YAHOO.util.Dom.removeClass('stat_row_' + i, 'stat_fade');
					 //document.getElementById(elmid).className = i % 2 == 1 ? 'yui-dt-odd' : 'yui-dt-even';
					 document.getElementById(elmid).className = 'yui-dt-odd';
					 //document.getElementById(elmid).className = '';
				 } else {
					 //YAHOO.util.Dom.addClass('stat_row_' + i, 'stat_fade');
					 document.getElementById(elmid).className = 'stat_fade';
				 }
			 }
		}
	},

	clearDayOfWeek: function() 
	{
		for(i=0;i<22;i++) {
			//YAHOO.util.Dom.removeClass('stat_row_' + i, 'stat_fade');
			if(document.getElementById('yui-rec' + i)) {
				//document.getElementById('yui-rec' + i).className = '';
				document.getElementById('yui-rec' + i).className = i % 2 == 1 ? 'yui-dt-odd' : 'yui-dt-even';
			}
		}
	}
};

Netbridge.trafic.Stat.createEnhancedMarkup = function( data )
{
	YAHOO.util.Event.addListener(window, "load", function(e, obj) {
		if(obj.tableid == null){
			obj.tableid = "stattable";
		}
		Netbridge.trafic.Stat.EnhanceFromMarkup = new function() {
	        var myColumnDefs = obj.columndefs;

	        this.myDataSource = new YAHOO.util.DataSource(YAHOO.util.Dom.get(obj.tableid));
	        this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
	        this.myDataSource.responseSchema = {
	            fields:obj.fields
	        };

	        if(obj.pagination && obj.pagination != '') {
    		        var myConfigs = {
    		        	    paginator : new YAHOO.widget.Paginator({
    		        	          rowsPerPage           : obj.pagination
    		        	        , containers            : 'pag_div'  
    		        			, firstPageLinkLabel	: '&lt;&lt;'
    		        			, previousPageLinkLabel	: '&lt; '
    		        			, nextPageLinkLabel		: ' &gt;'
    		        			, lastPageLinkLabel		: ' &gt;&gt;'
    		        			, template           	: '{CurrentPageReport} {FirstPageLink}{PreviousPageLink} {PageLinks} {NextPageLink}{LastPageLink}'
    		        			, pageReportTemplate	: 'Pagina {currentPage} din {totalPages}'	
    		        	    })
    		        	};
		        } else {
		        	var myConfigs = null;
		        }
	        
	        this.myDataTable = new YAHOO.widget.DataTable(
       		        obj.tableid + 'cont',
	    	        myColumnDefs,
	    	        this.myDataSource,
	    	        myConfigs
	        );

	        YAHOO.util.Dom.addClass( this.myDataTable.getTableEl(), 'stattable');
	        if(obj.tooltips) {
		        for(i=0;i<obj.tooltips.length;i++) {
		        	obj.tooltips[i].context = this.myDataTable.getColumn( obj.tooltips[i].context ).getThEl();	
		        	
		        	YAHOO.util.Dom.addClass( obj.tooltips[i].context, 'percentage');
		        	
		        	Netbridge.trafic.Stat.PercentageTooltip = new YAHOO.widget.Tooltip( 'tt1', obj.tooltips[i] );
		        }  
	        }		        
	        
	        if(obj.is_daily == true) {
		        YAHOO.util.Event.addListener( 
		        			this.myDataTable.getColumn('evolutie').getThEl(), 
		        			'click', 
		        			function(e, obj) {
		        				Netbridge.trafic.Stat.Percentage.percentageSwitch( obj.myDataTable.getColumn('evolutie').getThLinerEl().id );
		        			}, 
		        			this
		        	);
		        
		        this.myDataTable.subscribe('initEvent', function() {
		        	if(document.getElementById('yui-dt0-th-evolutie')) {
		        		Netbridge.trafic.Stat.Percentage.percentageSwitch('yui-dt0-th-evolutie');
		        	}
		        });
	        }

	        if(obj.initEventFunction) {
	        	this.myDataTable.subscribe('initEvent',obj.initEventFunction );
	        }
	    };
	}, data );
};


function hide_show(id) {
	if(document.getElementById(id)) {
		var x = document.getElementById(id);
		if(x.style.display == 'none')
			x.style.display = '';
		else
			x.style.display = 'none';
	}
}

