/**
 * TV24 RollOut burkoló névtér
 */

var TV24_RollOut = {
	
	/**
	 * Tulajdonságok
	 */
  package        : 'TV24',
  scriptURI      : 'TV24_RollOut/%package%/javascripts/',
  templateURI    : 'TV24_RollOut/%package%/templates/',
  programsURI    : 'TV24_RollOut/json.programs.js?date=%date%',
  channelsURI    : 'TV24_RollOut/json.channels.js',
  actChannelsURI : 'TV24_RollOut/json.actChannels.js',
  daysURI        : 'TV24_RollOut/json.days.js',
  programURI     : 'http://www.tv24.hu/',
  renderTo       : 'TV24_RollOut_Container',
  ajaxUseCache   : true,
  buildVersion   : 'final',
  staticDate     : '', //'2010-01-21',
	
	/**
	 * RollOut példány inicializálása
	 *   @param (object) Paraméterek
	 */
	init : function( parameters ) {
		
		$JQ.each( parameters || {}, function( property, value ) {
			TV24_RollOut[ property ] = value;
		} );
		
		TV24_RollOut.scriptURI = TV24_RollOut.scriptURI.replace( '%package%', TV24_RollOut.package );
		TV24_RollOut.templateURI = TV24_RollOut.templateURI.replace( '%package%', TV24_RollOut.package );
		
		$JQ.ajaxSetup( {
			cache  : TV24_RollOut.ajaxUseCache,
			async  : false,
			global : false
		} );
		
		buildURI = TV24_RollOut.scriptURI + TV24_RollOut.package + '.' + TV24_RollOut.buildVersion + '.js';
		$JQ.getScript( buildURI, function() {
			TV24_RollOut.run();
		} );
		
	},
	
	/**
	 * RollOut példány indítása
	 */
	run : function() {
		
		TV24.Core.Template.url = TV24_RollOut.templateURI;
		$JQ( '#' + TV24_RollOut.renderTo ).html( TV24.Core.Template.fetch( 'rollOut' ) );
		
		$JQ.each( [ 'channels', 'actChannels', 'days' ], function( index, key ) {
			$JQ.ajax( {
				url : TV24_RollOut[ key + 'URI' ],
				cache : TV24_RollOut.ajaxUseCache,
				complete : function( trans ) {
					eval( 'window._' + key + ' = ' + trans.responseText + ';' );
				}
			} );
		} );
		var dateObject = new Date();
		var _actDate   = ( TV24_RollOut.staticDate ? TV24_RollOut.staticDate : TV24_RollOut.getDate( dateObject ) );
		var _actTime   = dateObject.getHours();
		
    window.ControllerTV = new TV24.Core.ControllerTV( {
      channels          : window._channels,
      selectedChannels  : window._actChannels,
      days              : window._days,
      actDate           : _actDate,
      actTime           : _actTime
    } );
    
    window.ControllerTV.run();
		
	},
	
	getDate : function( dateObject ) {
		
		return dateObject.toLocaleDateString();
		
	}
	
}

