var Interface = function()
{
	return {

		user_region: null,

		set_datetime: function()
		{
			var date = new Date();
			var months = [ 'января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря' ];

			window.addEvent( 'domready',function(){
				if( $type( $( 'current_date' ) )=='element' )
					$( 'current_date' ).set( 'html',date.getDate() + ' ' + months[ date.getMonth() ] + ' ' + date.getFullYear() );
				if( $type( $( 'current_time' ) )=='element' )
				{
					var timer = function(){ var date=new Date(); $( 'current_time' ).set( 'html',(date.getHours()<10?'0'+date.getHours():date.getHours()) + ':' + (date.getMinutes()<10?'0'+date.getMinutes():date.getMinutes()) ) };
					timer(); timer.periodical( 1000 );
				}
			});

			this.preload();
		},

		set_region: function()
		{
			/*if( $type( Interface.user_region )=='object' )
			{
				Cookie.write( 'user_region_id',Interface.user_region.key,{ 'path':'/',duration:365 });
				Cookie.write( 'user_region_name',Interface.user_region.value,{ 'path':'/',duration:365 });
			}*/

			var by_user = $( 'by_user' );
			if( $type( by_user )=='element' && by_user.options[ by_user.selectedIndex ].value )
			{
				Cookie.write( 'user_region_id',by_user.options[ by_user.selectedIndex ].value,{ 'path':'/',duration:365 });
				Cookie.write( 'user_region_name',by_user.options[ by_user.selectedIndex ].text,{ 'path':'/',duration:365 });

				if( $type( Helper )=='object' )
					Helper.close();

				self.location.reload();
			}
			else
				alert( 'Выберите регион из списка' );
		},

		init_helper: function()
		{
			var that = this;
			window.addEvent( 'domready',function(){
				var items = document.getElements( 'a[id^=helper_],input[id^=helper_]' );
				if( $type( items )=='array' )
				{
					items.each( function( e,n ){
						e.addEvent( 'click',function( e ){ e.stop(); that.load_data( '/helper/index/' + this.getProperty( 'rel' ) + '/','Interface.callback_open_helper' ) } );
					});
				}
			});
		},

		init_change_region: function()
		{
			var that = this;
			window.addEvent( 'domready',function(){
				var change_region = $$( '.change_region' );
				if( $type( change_region )=='array' )
					change_region.each(function(el){
						el.addEvent( 'click',function(e){
							e.stop();
							that.load_data( '/region/listing/','Interface.callback_change_region' );
						});
					});
			});
		},

		init_sliders: function()
		{
			window.addEvent( 'domready',function(){
				document.getElements( 'tr[name^=trustees_]' ).each( function( el,i ){
					el.setStyle( 'display','none' );
				});
				$$( 'a.trustees' ).each( function( el ){
					el.addEvent( 'click',function(e){
						e.stop();
						if( el.hasClass( 'personup' ) )
						{
							document.getElements( 'tr[name^=' + el.getProperty( 'rel' ) + ']' ).each( function( el,i ){
								el.setStyle( 'display','none' );
							});
							el.removeClass( 'personup' );
						}
						else
						{
							document.getElements( 'tr[name^=' + el.getProperty( 'rel' ) + ']' ).each( function( el,i ){
								el.setStyle( 'display','' );
							});
							el.addClass( 'personup' );
						}
					});
				});
			});
		},

		init_fields_table: function()
		{
			this.load_data( '/content/summary_of_fields/ajax/','Interface.callback_generate_fields_tbl',{} );
		},

		preload: function ()
		{
			if( !Browser.Engine.trident )
				window.addEvents({
					'domready':function(){ $$('div.centerJaw,div.footer').setStyle('display','block') },
					'load':function(){ $$('div.centerJaw,div.footer').setStyle('display','block') }
				});
		},

		load_data: function( url,callback,params,method )
		{
			if( !url )
				return;

			var data = [];
			for( var k in params )
				data.push( k + '=' + params[ k ] );

			method = method || 'get';

			var request = new Request(
				{
					url: ( url.indexOf( '?' )>=0 ? url + '&rnd=' + Math.random() : url + '?rnd=' + Math.random() ),
					method: method,
					onSuccess: function( response )
					{
						if( self.location.search.indexOf( 'debug' )>=0 )
						{
							alert( ( url.indexOf( '?' )>=0 ? url + '&rnd=' + Math.random() : url + '?rnd=' + Math.random() ) );
							alert( response );
						}

						callback = callback.indexOf( '.' )>=0 ? eval( callback ) : eval( 'Interface.' + callback );
						if( typeof( callback )=='function' )
							callback( response,params );
					},
					onFailed: function()
					{
						alert( 'Error' );
					}
				}
			).send( data.join( '&' ) );
		},

		callback_set_value: function( content )
		{
			Interface.init_fields_table();
		},
		callback_generate_fields_tbl: function( content )
		{
			var summary_span = $( 'fields_summary' )
			var target_div = document.getElement( 'div[class=borderWrapCF]' );
			var prev_tbl = target_div.getElement( 'table[class=completedForms]' );

			var summary = filed = 0;
			$try(
				function()
				{
					var data = JSON.decode( content );
					summary = data[ 'summary_count_of_fields' ];
					filed = data[ 'summary_count_of_filed' ];

					if( $type( data[ 'completed_forms' ] )=='object' )
						for( var k in data[ 'completed_forms' ] )
							if( $type( $( k + '_form' ) )=='element' )
								$( k + '_form' ).getParent( 'tr' ).getChildren( 'td.ready' ).set( 'html','<img src="/design/standart/images/check.gif" width="38" height="24" />' );
				}
			);

			if( summary>0 )
			{
				var trs = Math.ceil( summary/10 );
				var tbl = new Element( 'table' ).addClass( 'completedForms' );
				var tbody = new Element( 'tbody' ).inject( tbl );

				for( var i=0;i<=trs;i++ )
				{
					var tr = new Element( 'tr' );
					for( var j=0;j<10;j++ )
					{
						if( ( i*10+j )>=summary )
							break;
						if( ( i*10+j )<filed )
							new Element( 'td' ).addClass( 'executed' ).inject( tr );
						else
							new Element( 'td',{html:'<img src="/design/standart/images/0.gif" width="28" height="13" />'} ).inject( tr );
					}
					tr.inject( tbody );
				}
				if( $type( target_div )=='element' )
				{
					if( $type( prev_tbl )=='element' )
						prev_tbl.dispose();
					tbl.inject( target_div );
				}
			}

			if( $type( summary_span )=='element' )
				summary_span.set( 'html',summary );
		},

		callback_open_helper: function( content )
		{
			if( $type( Helper )=='object' )
				$try(function(){
					var data = JSON.decode( content );
					Helper.open( data );
				});
		},

		callback_change_region: function( content )
		{
			var that = this;

 			if( $type( Helper )=='object' )
				$try(function(){
					var data = JSON.decode( content );
					Helper.open( data );
					/*
					var by_ip = $( 'by_ip' ); var by_user = $( 'select_by_user' );
					if( $type( by_ip )=='element' && $type( by_user )=='element' )
					{
						by_user.addEvent('click',function(e){ e.stop() });
						by_ip.addEvent('click',function(){
							if( this.get( 'checked' )==true )
								by_user.removeEvent('click');
							else
								by_user.addEvent('click',function(e){ e.stop() });
						});
					}
					//var by_user = $( 'by_user' ); 
					//if( $type( by_ip )=='element' && $type( by_user )=='element' )
						//by_ip.addEvent( 'click',function(){ by_user.disabled = this.checked });

					//new MiniSearch( 'by_user','/region/listing/',{ onChoose: Interface.callback_region_select } );
					*/
				});
		}

	}
}();
