/**
 * A class to handle article records.
 * @package	halfnerdCMS
 * @author	Hafner
 * @since	20110125
 */
 
$( document ).ready( function(){

	$( "#alert" )
		.live( "click", function( event ){
		
			//cancel event
			event.preventDefault();
			
			//get vars
			var process = $( this ).attr( "process" );
			var alert_id = $( this ).attr( "alert_id" );
			
			//new alert
			var alert_obj = new Alert( alert_id );
			
			//do action
			switch( process.toLowerCase() )
			{
				case "modify":
					alert_obj.validateAddModForm( "modify", alert_obj.alert_id );
					break;
					
				case "toggle-alert":
					alert_obj.toggleAlert( $( this ).attr( "value" ) );
					break;
					
				case "toggle-alert-session":
					var callback = ( hasAttr( $( this ), "hide-alert" ) ) ? function(){ $( "#alert-section" ).slideUp( "slow" ); } : function(){};
					alert_obj.toggleAlertSession( $( this ).attr( "value" ), callback );
					break;
					
			}//end switch
		});
});

function Alert( alert_id )
{
	this.alert_id = alert_id;
	
/**********************************************************************************************************************************
action functions
**********************************************************************************************************************************/
	this.modify = function( form_name ) {
		$.ajax({
			type:'post',
			url: '/ajax/sbc_helper.php?task=alert&process=modify&alert_id=' + this.alert_id,
			data:$( form_name ).serialize( true ),
			success: function(){
				
				//show success message
				showMessage( "Alert Saved", 1 );
			}
		});
	}//modify()
	
	this.toggleAlert = function( status ) {
		
		//toggle alert flag in the database.
		$.ajax({
			type: "POST",
			url: "/ajax/sbc_helper.php?task=alert&process=toggle-status&alert_id=0",
			data: { alert_status: status },
			success: function( reply ){
				
				var inner = new Alert( 0 );
				inner.toggleAlertSession( status, function(){ window.location.reload(); } );
			}
		});
		
	}//toggleAlert()
	
	this.toggleAlertSession = function( status, callback )
	{
		//toggle alert in $_SESSION
		$.ajax({
			type: "POST",
			url: "/ajax/sbc_helper.php?task=alert&process=toggle-alert-session&alert_id=0",
			data: { alert_status:status },
			success: function( reply ){
				callback();
			}
		});
	}//toggleAlertSession()
	
	
/**********************************************************************************************************************************
Ui functions
**********************************************************************************************************************************/

	this.validateAddModForm = function( process, alert_id )
	{
		var form_name = "#alert_form_" + alert_id;
		
		$.ajax({
			type: 'post',
			url: '/ajax/sbc_helper.php?task=alert&process=validate',
			data: $( form_name ).serialize( true ),
			success: function( reply ) {		
				
				//get vars
				var reply_split = reply.split( "^" );
				var result =  reply_split[0];
				var message = reply_split[1];
				var inner = new Alert( alert_id );
				
				//do action
				if( result == 1 )
				{
					switch( process.toLowerCase() )
					{
						case "modify":
							inner.modify( form_name );
							break;
													
					}//end switch
				}
				else
				{
					showMessage( message, 0 );	
				}
			}
		});
		
	}//validateAddModForm()
	
}//class Alert
