// JavaScript Document
$( document ).ready( function()
{
	
// INIT COMMON
	$( '' ).initCommon();
// END OF INIT COMMON

// INIT CONFIRMATION MSGS
	// If Add Fav, show confirmation
	if( typeof confirmation_msg_add_fav != 'undefined' )
		$( '' ).showAlert( 'a2', confirmation_msg_add_fav );
	
	// If Deal denied, show confirmation
	if( typeof productSold != 'undefined' )
	{
		// Invalid login, please try again
		$( '' ).showAlert( 'a3', productSold );
	}
// END INIT CONFIRMATION MSGS

// INIT MAIN DISPLAY FUNCTIONALITY
	// Activate Mi List Functionality
	if( user_logged_in )
		activateAddToFavList();
	
	// Add Event handler to "List" view
	$( '#jq_list_results_btn' ).click(
		function()
		{
			// Update view type
			$( '#view_type' ).val( 'box_list' );
			
			// Select all results and remove 'BOX' css
			$( 'div.box_squared' ).each(
				function()
				{
					$( this ).removeClass( 'box_squared' ).addClass( 'box_list' );
				} );
			
			// Show Correct Description
			$( '.jq_squared_desc' ).hide();
			$( '.jq_list_desc' ).show();
			
			// Selecting "List View"
			//$( this ).parent().removeClass( 'lista' ).addClass( 'lista_sel' );
			// Selecting "List View"
			//$( '#jq_box_results_btn' ).parent().removeClass( 'bloques_sel' ).addClass( 'bloques' );
			
			// Always Return False
			return false;
		} );
	
	// Add Event handler to "Square" view
	$( '#jq_square_results_btn' ).click(
		function()
		{
			// Update view type
			$( '#view_type' ).val( 'box_squared' );
			
			// Select all results and remove 'BOX' css
			$( 'div.box_list' ).each(
				function()
				{
					$( this ).removeClass( 'box_list' ).addClass( 'box_squared' );
				} );
			
			// Show Correct Description
			$( '.jq_list_desc' ).hide();
			$( '.jq_squared_desc' ).show();
			
			// Selecting "List View"
			//$( this ).parent().removeClass( 'lista' ).addClass( 'lista_sel' );
			// Selecting "List View"
			//$( '#jq_box_results_btn' ).parent().removeClass( 'bloques_sel' ).addClass( 'bloques' );
			
			// Always Return False
			return false;
		} );

	// Hide all optional forms
	//$( '.jq_hidden_form' ).hide();
	
	// INIT LOGIN FORM
		/* NOT IN USE 2-11-2010
		// Event Handler: jq_login_btn (TAB)
		$( '.jq_login_btn' ).click(
			function()
			{
				// Hide Register Form and Show Login Form
				$( '#jq_form_1' ).show();
				$( '#jq_form_2' ).hide();
				$( '#jq_form_3' ).hide();
				
				// Always return false
				return false;
			} );
		
		// Add Event Handler to Close Email Button
		$( '#jq_login_close_btn' ).click(
			function()
			{
				// Hide Email form
				$( '#jq_form_1' ).slideUp();
				
				// Remove ClassName 'selected'
				//$( '#jq_add_to_favorites' ).parent().removeClass( 'selected' );
				unselectMenuOptions();
				
				// Always return false
				return false;
			} );*/
		
		// Function that determines what code to attach to URL
		var determineURLCode =
			function( action )
			{
				switch( action )
				{
					case 'add_to_favorites':
						return add_favorites_code;
					case 'communicate':
						return communicate_code;
					case 'recommend':
						return use_contacts_code;
				}
			}
		
		/* NOT IN USE 2-11-2010
		// Submit Form
		$( '#login_form' ).submit(
		function()
		{
			// Success Function
			var loginSuccess =
				function( data )
				{
					// Analyze data
					if( data.substr(0, 1) != '1' )
					{
						// Hide Loading Bar
						$( '.btn_1', '#jq_form_1' ).show();
						$( '.btn_4', '#jq_form_1' ).show();
						$( '#jq_loading_bar1' ).hide();
						
						// Invalid login, please try again
						$( '' ).showAlert( 'a1', data.substr(2, data.length) );
					}
					else
					{
						// Valid Login
						// Parse and assign JS variables
						data = data.split( "|" );
						user_logged_in = data[0];
						user_kiosk_id = data[1];
						user_kiosk_name = data[2];
						
						// Clear and hide login form
						$( '#login_username' ).val( '' );
						$( '#login_password' ).val( '' );
						$( '#jq_form_1' ).slideUp( 'slow',
							function()
							{
								// Open Negotiate Form
								//$( '#jq_form_4' ).slideDown( 'slow' );
								
								// Show Loading
								$( '#jq_form_loading' ).slideDown( 'normal',
									function()
									{
										// Reload Page
										window.location = 'http://' + location.host + ajax_prefix + reload_logged_in_url + kiosk_id + '/' + determineURLCode( action_selected ); //add_favorites_code;
									} );
							} );
						
						// Add ClassName 'selected'
						unSelectOptions();
						//$( '#jq_negotiate_product' ).parent().addClass( 'selected' );
					}
				}
				
			// Options
			var login_options = { success : loginSuccess, url : 'http://' + location.host + ajax_prefix + $( this ).attr( 'action' ) };
			
			try
			{
				// Hide Buttons
				$( '.btn_1', '#jq_form_1' ).hide();
				$( '.btn_4', '#jq_form_1' ).hide();
				// Show Loading Bar
				$( '#jq_loading_bar1' ).show();
				// Submit with new ajax url
				$( this ).ajaxSubmit( login_options );
			}
			catch( err )
			{
				// Show Loading Bar
				$( '#jq_loading_bar1' ).hide();
				$( '#jq_form_1' ).slideUp();
				// Alert Error
				alert( "Error Submitting via Ajax\n" + err );	
			}
			
			// Return False
			return false;
		} );*/
		
		/* NOT IN USE 2-11-2010
		// Event Handler: jq_login_btn
		$( '#jq_login_submit_btn' ).click(
			function()
			{
				// Validate Form
				if( validateLoginForm() )
				{
					$( '#login_form' ).submit();
				}
				
				// Always return false
				return false;
			} );*/
	
		/* NOT IN USE 2-11-2010
		// Simulate Enter for Email & Password
		$( '#login_password' ).simulateEnter( '#jq_login_submit_btn' );*/
		
	// END OF INIT LOGIN FORM
	
	/* NOT IN USE 2-11-2010
	// INIT REGISTER FORM
		// Hide Register Form
		$( '#jq_form_2' ).hide();
		
		// Mask Telephone
		$( "#telephone" ).mask( "(999) 999-9999" );
		$( "#zipk" ).mask( "99999" );
		$( "#zipb" ).mask( "99999" );
		
		// Hide Radio Button Details in Form
		//$( '.radio_detalles' ).hide();
		
		// Hide Optional Fields
		$( '#jq_kiosk_fields' ).hide();
		$( '#jq_business_fields' ).hide();
		
		// Event Handler: jq_register_btn
		$( '.jq_register_btn' ).click(
			function()
			{
				// Forward to Registration Page
				window.location = 'http://' + location.host + '/welcome/loginRegister#register';
				
				// Hide Login Form and Show Register Form
				//$( '#jq_form_1' ).hide();
				//$( '#jq_form_2' ).show();
				//$( '#jq_form_3' ).hide();
				
				// Always return false
				return false;
			} );
		
		// Event Handler: Show Radio Detail
		$( '.jq_show_radio_details' ).click(
			function()
			{
				// Show Radio Detail
				var detail_id = $( this ).parent().parent().next();
				if( $( detail_id ).css( 'display' ) == 'none' )
					$( detail_id ).slideDown( 'normal' );
				else
					$( detail_id ).slideUp( 'normal' );
				
				// Return false
				return false;
			} );
		
		// Event Handler: Show Kiosk Fields
		$( '#acct_type_kiosk' ).click(
			function()
			{
				// Uncheck other Business option
				$( '#acct_type_business' ).attr( 'checked', false ).parent().removeClass( 'active' );
				
				// Disable Business Fields
				$( '#jq_business_fields input' ).attr( { disabled : true, value : '' } );
				$( '#jq_business_fields select' ).attr( { disabled : true, selectedIndex : 0 } );
				
				// Enable Kiosk Fields
							$( '#jq_kiosk_fields input' ).attr( 'disabled', false );
							$( '#jq_kiosk_fields select' ).attr( 'disabled', false );
							
				// Determine wether to Hide Other fields or not
				if( $( '#jq_business_fields' ).css( 'display' ) != 'none' )
				{
					// Clear all errors related to Business
					$( '#jq_business_fields' ).clearSpanErrors();
							
					$( '#jq_business_fields' ).slideUp( 'normal',
						function()
						{
							// Slide Kiosk Fields
							$( '#jq_kiosk_fields' ).slideDown( 'normal' );
						} );
				}
				else
				{
					// Slide Kiosk Fields
					$( '#jq_kiosk_fields' ).slideDown( 'normal' );
				}
				
				// Select Active Radio Tab
				$( '#acct_type_kiosk' ).parent().addClass( 'active' );
				
				// Return True
				return true;
			} );
				$( '#acct_type_kiosk' ).parent().click( function()
				{
					// Execute Click
					$( '#acct_type_kiosk' ).click();
				} );
				
		// Event Handler: Show Kiosk Fields
		$( '#acct_type_business' ).click(
			function()
			{
				// Uncheck other Business option
				$( '#acct_type_kiosk' ).attr( 'checked', false ).parent().removeClass( 'active' );
				
				// Disable Business Fields
				$( '#jq_kiosk_fields input' ).attr( { disabled : true, value : '' } );
				$( '#jq_kiosk_fields select' ).attr( { disabled : true, selectedIndex : 0 } );
				
				// Enable Kiosk Fields
							$( '#jq_business_fields input' ).attr( 'disabled', false );
							$( '#jq_business_fields select' ).attr( 'disabled', false );
							
				// Determine wether to Hide Other fields or not
				if( $( '#jq_kiosk_fields' ).css( 'display' ) != 'none' )
				{
					// Clear all errors related to Kiosk
					$( '#jq_kiosk_fields' ).clearSpanErrors();
					
					$( '#jq_kiosk_fields' ).slideUp( 'normal',
						function()
						{
							// Slide Kiosk Fields
							$( '#jq_business_fields' ).slideDown( 'normal' );
						} );
				}
				else
				{
					// Slide Kiosk Fields
					$( '#jq_business_fields' ).slideDown( 'normal' );
				}
				
				// Select Active Radio Tab
				$( '#acct_type_business' ).parent().addClass( 'active' );
				
				// Return True
				return true;
			} );
				$( '#acct_type_business' ).parent().click( function()
				{
					// Execute Click
					$( '#acct_type_business' ).click();
				} );
					
		// Event Handler: Refresh Captcha Image
		$( '.captcha_refresh > a' ).click(
			function()
			{
				// Get New Captcha Image
				$.get( 'http://' + location.host + '/nego/index.php/' + reload_captcha_url, { },
					function( data )
					{
						// Upldate Captcha
						$( '.captcha_img' ).get( 0 ).src = data;
					} );
				
				// Return false
				return false;
			} );
		
		// Submit Form
		$( '#register_form' ).submit(
		function()
		{
			// Success Function
			var registerSuccess =
				function( data )
				{
					// Analyze data
					if( data.substr(0, 1) == '0' )
					{
						// Hide Loading Bar
						$( '.btn_1', '#jq_form_2' ).show();
						$( '.btn_4', '#jq_form_2' ).show();
						$( '#jq_loading_bar2' ).hide();
						
						// Invalid login, please try again
						$( '' ).showAlert( 'a1', data.substr( 2, data.length ) );
					}
					else if( data.substr( 0, 1 ) == '2' )
					{
						// Hide Loading Bar
						$( '.btn_1', '#jq_form_2' ).show();
						$( '.btn_4', '#jq_form_2' ).show();
						$( '#jq_loading_bar2' ).hide();
						
						// Invalid login, please try again
						$( '' ).showAlert( 'a1', data.substr( 2, data.length ) );
						if( $( '#jq_business_fields' ).css( 'display' ) != 'none' )
							$( '#zipb' ).showInputError( 'invalido' );
						else
							$( '#zipk' ).showInputError( 'invalido' );
						
					}
					else
					{
						// Valid Registraion
						
						// Hide Loading Bar
						$( '.btn_1', '#jq_form_2' ).show();
						$( '.btn_4', '#jq_form_2' ).show();
						$( '#jq_loading_bar2' ).hide();
						
						var selectedSpan = '';
						
						if( $( '#jq_business_fields' ).css( 'display' ) != 'none' )
							selectedSpan = '#jq_business_fields';
						else
							selectedSpan = '#jq_kiosk_fields';
						
						// Hide Extra Span
						$( selectedSpan ).slideUp( 'fast',
							function()
							{
								// Carry Over Email
								$( '#activate_username' ).val( $( '#register_email' ).val() );
								
								// Clear all errors related to Kiosk
								$( '#register_form' ).clearForm();
								$( '' ).clearRadioDetails( '#register_form' );
								
								// Switch Tab
								$( '.jq_activate_btn' ).click();
								
								// Show message
								$( '' ).showAlert( 'a2', data.substr( 2, data.length ) );
							} );
					}
				}
				
			// Options
			var register_options = { success : registerSuccess, url : 'http://' + location.host + ajax_prefix + $( this ).attr( 'action' ) };
			
			try
			{
				// Hide Buttons
				$( '.btn_1', '#jq_form_2' ).hide();
				$( '.btn_4', '#jq_form_2' ).hide();
				// Show Loading Bar
				$( '#jq_loading_bar2' ).show();
				// Submit with new ajax url
				$( this ).ajaxSubmit( register_options );
			}
			catch( err )
			{
				// Hide Loading Bar
				$( '#jq_loading_bar2' ).hide();
				$( '#jq_form_2' ).slideUp();
				// Alert Error
				alert( "Error Submitting via Ajax\n" + err );
			}
			
			// Always return false
			return false;
		} );
		
		// Event Handler: jq_register_submit_btn
		$( '#jq_register_submit_btn' ).click(
			function()
			{
				// Validate Form
				if( validateRegisterForm() )
				{
					$( '#register_form' ).submit();
				}
				
				// Always return false
				return false;
			} );
		
		// Add Event Handler to Close Register Button
		$( '#jq_register_close_btn' ).click(
			function()
			{
				// Hide Email form
				$( '#jq_form_2' ).slideUp();
				
				// Remove ClassName 'selected'
				$( '#jq_add_to_favorites' ).parent().removeClass( 'selected' );
				
				// Always return false
				return false;
			} );
	// END OF INIT REGISTER FORM*/
	
	/* NOT IN USE 2-11-2010
	// INIT ACTIVATE FORM
		// Event Handler: jq_login_btn (TAB)
		$( '.jq_activate_btn' ).click(
			function()
			{
				// Hide Register Form and Show Login Form
				$( '#jq_form_1' ).hide();
				$( '#jq_form_2' ).hide();
				$( '#jq_form_3' ).show();
				
				// Always return false
				return false;
			} );
		
		// Add Event Handler to Close Email Button
		$( '#jq_activate_close_btn' ).click(
			function()
			{
				// Hide Email form
				$( '#jq_form_3' ).slideUp();
				
				// Remove ClassName 'selected'
				$( '#jq_add_to_favorites' ).parent().removeClass( 'selected' );
				
				// Always return false
				return false;
			} );
		
		// Submit Form
		$( '#activate_form' ).submit(
		function()
		{
			// Success Function
			var activateSuccess =
				function( data )
				{
					// Analyze data
					if( data.substr(0, 1) != '1' )
					{
						// Hide Loading Bar
						$( '.btn_1', '#jq_form_3' ).show();
						$( '.btn_4', '#jq_form_3' ).show();
						$( '#jq_loading_bar3' ).hide();
						
						// Invalid login, please try again
						$( '' ).showAlert( 'a1', data.substr(2, data.length) );
					}
					else
					{
						// Valid Login
						// Parse and assign JS variables
						/*data = data.split( "|" );
						user_logged_in = data[0];
						user_kiosk_id = data[1];
						user_kiosk_name = data[2];
						
						// Clear and hide login form* /
						$( '#activate_username' ).val( '' );
						$( '#activate_code' ).val( '' );
						$( '#activate_password' ).val( '' );
						$( '#jq_form_3' ).slideUp( 'slow',
							function()
							{
								// Open Negotiate Form
								//$( '#jq_form_4' ).slideDown( 'slow' );
								
								// Reload Page
								window.location = 'http://' + location.host + ajax_prefix + reload_logged_in_url + kiosk_id + '/' + determineURLCode( action_selected ); //add_favorites_code;
								
							} );
						
						// Add ClassName 'selected'
						//unSelectOptions();
						//$( '#jq_negotiate_product' ).parent().addClass( 'selected' );
					}
				}
			// Options
			var activate_options = { success : activateSuccess, url : 'http://' + location.host + ajax_prefix + $( this ).attr( 'action' ) };
			
			try
			{
				// Hide Buttons
				$( '.btn_1', '#jq_form_3' ).hide();
				$( '.btn_4', '#jq_form_3' ).hide();
				// Show Loading Bar
				$( '#jq_loading_bar3' ).show();
				// Submit with new ajax url
				$( this ).ajaxSubmit( activate_options );
			}
			catch( err )
			{
				// Show Loading Bar
				$( '#jq_loading_bar3' ).hide();
				$( '#jq_form_3' ).slideUp();
				// Alert Error
				alert( "Error Submitting via Ajax\n" + err );	
			}
			
			// Return False
			return false;
		} );
	
		// Event Handler: jq_login_btn
		$( '#jq_activate_submit_btn' ).click(
			function()
			{
				// Validate Form
				if( validateActivateForm() )
				{
					$( '#activate_form' ).submit();
				}
				
				// Always return false
				return false;
			} );
	
		// Simulate Enter for Email & Password
		$( '#activate_password' ).simulateEnter( '#jq_activate_submit_btn' );
		
	// END OF INIT ACTIVATE FORM*/
	
	// INIT FAVORITE FORM
		// Event Handler: 'Add to Contacts'
		$( '#jq_add_to_contacts' ).click(
			function()
			{
				// Proceed with Ajax
				var contactsSuccess = 
					function( data )
					{
						var type;
						// Analyze data
						if( data.substr(0, 1) != '1' )
						{
							type = 'a1';

							// Show This Anchor
							$( this ).parent().slideDown( 'fast' );
						}
						else
							type = 'a2';
							
						// Hide Loading Bar
						/*$( '#jq_form_loading' ).slideUp( 'fast',
							function()
							{*/
								// Invalid login, please try again
								$( '' ).showAlert( type, data.substr( 2, data.length ) );
							//} );
					}
					
				try
				{
					// Hide This Anchor
					$( this ).parent().slideUp( 'fast' );
					
					// Submit with new ajax url
					$.post( 'http://' + location.host + ajax_prefix + ajax_add_contacts,
							{ kiosk_id1 : user_kiosk_id, kiosk_id2: kiosk_id },
							contactsSuccess );
				}
				catch( err )
				{
					$( '#jq_form_loading' ).slideUp( 'fast' );
					// Alert Error
					alert( "Error Submitting via Ajax\n" + err );	
				}
				
				// Return
				return false;
			} );
		
		// Event Handler: 'Don't Add to Contacts'
		$( '#jq_dont_add_to_contacts' ).click(
			function()
			{
				// Fix Filter glitch once they press no for 'Add Contacts'
				var filter_form_url = $( '#filter_form' ).attr( 'action' );
				last_segment = filter_form_url.substring( ( filter_form_url.lastIndexOf( '/' ) + 1 ), filter_form_url.length );
				if( last_segment == 'addFav' )
				{
					// Remove AddFav from form action url
					$( '#filter_form' ).attr( 'action', filter_form_url.substring( 0, filter_form_url.lastIndexOf( '/' ) ) );
				}
				
				// Show Loading
				$( '#jq_form_5' ).slideUp();
				
				// Return
				return false;
			} );
	
	// END OF FAVORITE FORM
	
	// INIT COMMUNICATE FORM
		// Event Handler: 'Communicate with Kiosk'
		$( '#jq_communicate' ).click(
			function()
			{
				// Needed Variables
				var anyOpened = anyFormOopen();
				var who = whosOpen();
				
				// Only show this form if user is logged in
				if( user_logged_in )
				{
					// Proceed in showing form
					show_communication_form = 
						function()
						{
							// Select menu option
							unselectMenuOptions();
							$( '#jq_communicate' ).parent().addClass( 'selected' );
							
							// Show Form
							$( '#jq_form_4' ).slideDown();	
						}
						
					// Determine what to do next
					if( !anyOpened )
					{
						show_communication_form();
					}
					else if( who != 'jq_form_4' )/* jq_form_5 = notification of add2fav */
					{
						hideOtherForms( who );
						$( '#' + who ).slideUp( 'normal', function(){ show_communication_form() } );
					}
					else
					{	
						// Close this form and unselect	
						hideOtherForms( who );
						$( '#' + who ).slideUp();
						unselectMenuOptions();
					}
				}
				// Show Login / Register Form
				else
				{
					// Determine what effect to use
					if( !anyOpened )
					{
						// Remember action
						action_selected = 'communicate';
					
						// Show Login Form
						$( '#jq_form_1' ).slideDown();
					}
					else if( ( who == 'jq_form_1' || who == 'jq_form_2' || who == 'jq_form_3' ) && action_selected != 'communicate' )
					{
						// Remember action
						action_selected = 'communicate';
						
						// Select Communicate Button
						unselectMenuOptions();
						$( '#jq_communicate' ).parent().addClass( 'selected' );
						
						// Show Login
						hideOtherForms( '' );
						$( '#jq_form_1' ).show();
					}
					else if( ( who != 'jq_form_1' && who != 'jq_form_2' && who != 'jq_form_3' ) )
					{
						// Remember action
						action_selected = 'communicate';
						
						// Select Communicate Button
						unselectMenuOptions();
						$( '#jq_communicate' ).parent().addClass( 'selected' );
						
						// Hide other form and show recommend form
						hideOtherForms( who );
						$( '#' + who ).slideUp( 'normal',
							function()
							{
								// Show Recommend Form
								$( '#jq_form_1' ).slideDown();
							} );
					}
					else
					{
						hideOtherForms( who );
						$( '#' + who ).slideUp();
						
						// Un select Negotiate Button
						$( '#jq_communicate' ).parent().removeClass( 'selected' );
					}
				}
					
				// Always return false
				return false;
			} );
		
		// Close Button
		$( '#jq_communicate_close_btn' ).click(
			function()
			{
				// Hide Email form
				$( '#jq_form_4' ).slideUp();
				
				// Remove ClassName 'selected'
				unselectMenuOptions();
				
				// Always return false
				return false;
			} );
		
		// Submit Button
		$( '#jq_communicate_submit_btn' ).click(
			function()
			{
				// Validate
				if( validateCommunicateForm() )
					$( '#communicate_form' ).submit();
				
				// Return
				return false;
			} );
		
		// Submit Form
		$( '#communicate_form' ).submit(
		function()
		{
			// Success Function
			var communicateSuccess =
				function( data )
				{
					// Analyze data
					if( data.substr(0, 1) != '1' )
					{
						// Hide Loading Bar
						$( '.btn_1', '#jq_form_4' ).show();
						$( '.btn_4', '#jq_form_4' ).show();
						$( '#jq_loading_bar4' ).hide();
						
						// Invalid login, please try again
						$( '' ).showAlert( 'a1', data.substr(2, data.length) );
					}
					else
					{
						// Sent message
						
						// Clear Fields
						$( '#message_sender' ).val( '' );
						$( '#message_subject' ).val( '' );
						$( '#message_body' ).val( '' );
						
						// Hide Loading Bar
						$( '#jq_loading_bar4' ).hide();
						
						// Slide Form Up
						$( '#jq_form_4' ).slideUp( 'normal',
							function()
							{
								// Show Submit btn
								$( '.btn_1', '#jq_form_4' ).show();
								
								// Show confirmation
								$( '' ).showAlert( 'a2', data.substr(2, data.length) );
							} );
						
						// Unselect menu
						unselectMenuOptions();
					}
				}
				
			// Options
			var communicate_options = { success : communicateSuccess, url : 'http://' + location.host + ajax_prefix + $( this ).attr( 'action' ) };
			
			try
			{
				// Hide Buttons
				$( '.btn_1', '#jq_form_4' ).hide();
				$( '.btn_4', '#jq_form_4' ).hide();
				// Show Loading Bar
				$( '#jq_loading_bar4' ).show();
				// Add Senders Kiosk ID to form
				$( '#message_sender' ).val( user_kiosk_id );
				// Submit with new ajax url
				$( this ).ajaxSubmit( communicate_options );
			}
			catch( err )
			{
				// Show Loading Bar
				$( '#jq_loading_bar4' ).show();
				$( '#jq_form_4' ).slideUp();
				// Alert Error
				alert( "Error Submitting via Ajax\n" + err );	
			}
			
			// Return False
			return false;
		} );
	// END COMMUNICATE
	
	// INIT RECOMMEND
		// Event Handler: 'Recommend Kiosk'
		$( '#jq_recommend_kiosk' ).click(
			function()
			{
				// Determine what effect to use
				if( !anyFormOopen() )
				{
					// Remember action
					action_selected = 'recommend';
				
					// Show Recommend Form
					$( '#jq_form_6' ).slideDown();
				}
				else if( whosOpen() != 'jq_form_6' )
				{
					// Remember action
					action_selected = 'recommend';
					
					// Select Communicate Button
					unselectMenuOptions();
					$( '#jq_recommend_kiosk' ).parent().addClass( 'selected' );
					
					// Hide other form and show recommend form
					var opened = whosOpen();
					hideOtherForms( opened );
					$( '#' + opened ).slideUp( 'normal',
						function()
						{
							// Show Recommend Form
						$( '#jq_form_6' ).slideDown();
						} );
				}
				else
				{
					var opened = whosOpen();
					hideOtherForms( opened );
					$( '#' + opened ).slideUp();
					
					// Un select Negotiate Button
					$( '#jq_recommend_kiosk' ).parent().removeClass( 'selected' );
				}
					
				// Always return false
				return false;
			} );
		
		// Close Button
		$( '#jq_recommend_close_btn' ).click(
			function()
			{
				// Hide Email form
				$( '#jq_form_6' ).slideUp();
				
				// Remove ClassName 'selected'
				unselectMenuOptions();
				
				// Always return false
				return false;
			} );
		
		// Use Contacts Button
		$( '#jq_use_contacts_btn' ).click(
			function()
			{
				// Determine what to do
				if( user_logged_in )
				{
					// Hide this and show contacts
					$( '#jq_manual_contacts_here' ).slideUp( 'normal',
						function()
						{
							show_contacts_steps();
						} );
				}
				else
				{
					// Remember action
					action_selected = 'recommend';
					
					// Show login form
					var opened = whosOpen();
					hideOtherForms( opened );
					$( '#' + opened ).slideUp( 'normal',
						function()
						{
							$( '#jq_form_1' ).slideDown();
						} );
				}
				
				// Always return false
				return false;
			} );
		
		// Show Contacts
		var show_contacts_steps =
			function()
			{
				$( '#jq_loading_bar6b' ).slideDown( 'fast' );
				$( '#jq_load_contact_here' ).load( 'http://' + location.host + ajax_prefix + ajax_contacts + user_kiosk_id,
					function()
					{
						// Enter Manual Mode (Event Handler)
						/*$( '#jq_use_manual_mode_btn' ).click(
							function()
							{
								// Hide this and show manual
								$( '#jq_load_contact_here' ).slideUp( 'normal',
									function()
									{
										// Hide 'use contacts' button
										if( $( '#jq_no_contacts' ).val() == 'true' )
											$( '#jq_manual_contacts_here > .radio_detalles' ).hide();
										
										// Show manual
										$( '#jq_manual_contacts_here' ).slideDown();
									} );
								
								// Return false
								return false;
							} );*/
						
						// Show Result
						$( '#jq_loading_bar6b' ).slideUp( 'slow',
							function()
							{
								// Initiate and add height to Contact Box (if needed)
								$( '.jq_icontacts' ).initIContactBox( 'to' );
								$( '.jq_econtacts' ).initIContactBox( 'to' );
								$( '#jq_load_contact_here' ).slideDown( 'normal',
									function()
									{
										// Check to see if any contacts, ifnot, slide manual down
										if( $( '#jq_no_contacts' ).val() == 'true' )
										{
											// Hide "Use Contacts" btn
											$( '#jq_manual_contacts_here > .radio_detalles' ).hide();
											// Slide down
											$( '#jq_manual_contacts_here' ).slideDown();
										}
										else
										{
											// Tab action: Econtacts
											$( '#jq_econtacts_tab' ).click(
												function()
												{
													// Show This tab and select it
													$( '.jq_econtacts' ).show();
													$( '#jq_econtacts_tab' ).parent().addClass( 'active' );
													
													// Hide Other Tab and unselect tab
													$( '.jq_icontacts' ).hide();
													$( '#jq_icontacts_tab' ).parent().removeClass( 'active' );
													
													// Return
													return false;
												} );
											
											// Tab action: Icontacts
											$( '#jq_icontacts_tab' ).click(
												function()
												{
													// Show This tab and select it
													$( '.jq_icontacts' ).show();
													$( '#jq_icontacts_tab' ).parent().addClass( 'active' );
													
													// Hide Other Tab and unselect tab
													$( '.jq_econtacts' ).hide();
													$( '#jq_econtacts_tab' ).parent().removeClass( 'active' );
													
													// Return
													return false;
												} );	
										}
									} );
							} );
					} );		
			}
			
		// Event Handler: Form Submit
		$( '#recommend_form' ).submit(
			function()
			{
				// Success Function
				var recommendSuccess =
					function( data )
					{
						// Analyze data
						if( data.substr(0, 1) != '1' )
						{
							// Hide Loading Bar
							$( '.btn_1', '#jq_form_6' ).show();
							$( '.btn_4', '#jq_form_6' ).show();
							$( '#jq_loading_bar6' ).hide();
							
							// Invalid login, please try again
							$( '' ).showAlert( 'a1', data.substr(2, data.length) );
						}
						else
						{
							// Clear Fields
							$( '.jq_contact_none' ).click();
							$( '#recommend_to' ).val( '' );
							$( '#recommend_subject' ).val( '' );
							$( '#recommend_message' ).val( '' );
							//$( '#recommend_sender_name' ).val( '' );
							//$( '#recommend_sender_email' ).val( '' );
							
							// Hide Loading Bar
							$( '#jq_loading_bar6' ).hide();
							
							// Slide Form Up
							$( '#jq_form_6' ).slideUp( 'normal',
								function()
								{
									// Show Submit btn
									$( '.btn_1', '#jq_form_6' ).show();
									
									// Show confirmation
									$( '' ).showAlert( 'a2', data.substr(2, data.length) );
								} );
							
							// Unselect menu
							unselectMenuOptions();
						}
					}
				// Options
				var recommend_options = { success : recommendSuccess, url : 'http://' + location.host + ajax_prefix + $( this ).attr( 'action' ) };
				
				try
				{
					// Hide Buttons
					$( '.btn_1', '#jq_form_6' ).hide();
					$( '.btn_4', '#jq_form_6' ).hide();
					// Show Loading Bar
					$( '#jq_loading_bar6' ).show();
					// Submit with new ajax url
					$( this ).ajaxSubmit( recommend_options );
				}
				catch( err )
				{
					// Show Loading Bar
					$( '#jq_loading_bar6' ).hide();
					$( '#jq_form_6' ).slideUp();
					// Alert Error
					alert( "Error Submitting via Ajax\n" + err );	
				}
				
				// Return False
				return false; 
			} );
			
		// Event Handler: Submit Btn
		$( '#jq_recommend_submit_btn' ).click(
			function()
			{
				// Validate
				if( validateRecommendForm() )
					$( '#recommend_form' ).submit();
				
				// Default Return
				return false;
			} );
	// END RECOMMEND
	
	// INIT OTHER
		// Show Confirmation if necessary
		if( typeof show_form_id != 'undefined' )
		{
			// Selecte Menu Item
			$( determineMenuItem( show_form_id ) ).parent().addClass( 'selected' );
			// Slide Form Down
			$( show_form_id ).slideDown( 'normal',
				function()
				{
					// Load Contacts
					if( show_form_id == '#jq_form_6' )
						show_contacts_steps();
				});
		}
	// END OTHER
	
	// INIT ORDER FILTER
		// Event handler for any changes on the order by filter dropdown
		$( '#order_by' ).change(
			function()
			{
				// Determine what effect to use
				if( !anyFormOopen() )
				{
					// Submit Form
					$( '#filter_form' ).submit();
				}
				else
				{
					var opened = whosOpen();
					hideOtherForms( opened );
					$( '#' + opened ).slideUp( 'normal',
						function()
						{
							// Submit Form
						$( '#filter_form' ).submit();
						} );
				}
				
				// Return false
				return false;
			} );
	// END ORDER FILTER
	
// END INIT MAIN DISPLAY FUNCTIONALITY

// INIT OTHER
	// Neutralize All Dead Links
	$( '.jq_neutral_link' ).nLinks();
	
	// Radio Rollover Effect
	//$( 'div.radio_detalles' ).radioDetails();
// END OF INIT OTHER
});

/***** Helper Function *****/
	
	
	function unselectMenuOptions()
	{
		// Loop thru all menu items
		$( 'ul.menu > li' ).each(
			function()
			{
				// Remove class
				$( this ).removeClass( 'selected' );
			} );
	}
	
	function determineMenuItem( f /* form id */ )
	{
		switch( f )
		{
			case '#jq_form_4':
				return '#jq_communicate';
			case '#jq_form_6':
				return '#jq_recommend_kiosk';
			default:
				return '';
		}
	}
	
	function anyFormOopen()
	{
		// Flag
		var anyOpen = false;
		
		// Loop thru each item
		$( '.jq_hidden_form' ).each(
			function()
			{
				if( $( this ).css( 'display' ) != 'none' )
					anyOpen = true;
			} );
		
		// Return
		return anyOpen
	}
	
	function whosOpen()
	{
		// Flag
		var whosOpenID = '';
		
		// Loop thru each item
		$( '.jq_hidden_form' ).each(
			function()
			{
				if( $( this ).css( 'display' ) != 'none' )
					whosOpenID = $( this ).get( 0 ).id;
			} );
		
		// Return
		return whosOpenID;
	}
	
	function hideOtherForms( f /* form_id */ )
	{
		// Loop thru each item
		$( '.jq_hidden_form' ).each(
			function()
			{
				// If not selected form, hide
				if( $( this ).get( 0 ).id != f )
					$( this ).hide();
			} );
		
		// void function
	}
	
	function unSelectOptions()
	{
		// Loop thru each item
		$( '.menu > ul > li' ).each(
			function()
			{
				// Unselect
				$( this ).removeClass( 'selected' );
			} );
		
		// void function
	}
	
/**** Validation Functions *****/
	// Validate Recommend Kiosk Form
	function validateRecommendForm()
	{
		// Declare Local Variables
		var valid = true;
		
		// Determine which path to take
		if( typeof $( '#to' ).val() != 'undefined' )
		{
			// Must select from contacts
			$( '#recommend_type' ).val( 'contacts' );	// Modify value for server
			
			// To
			if( $( '#to' ).text() == '' )
			{
				$( '#to' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#to' ).clearInputError();	// Remove Error
		}
		else
		{
			// Must select from manual
			$( '#recommend_type' ).val( 'manual' );	// Modify value for server
			
			if( typeof $( '#recommend_sender_kiosk_id' ).val() == 'undefined' )
			{
				// Name
				if( $( '#recommend_sender_name' ).val() == '' )
				{
					$( '#recommend_sender_name' ).showInputError( 'requerido' );
					valid = false;
				}
				else
					$( '#recommend_sender_name' ).clearInputError();	// Remove Error
				
				// Email
				if( $( '#recommend_sender_email' ).val() == '' )
				{
					$( '#recommend_sender_email' ).showInputError( 'requerido' );
					valid = false;
				}
				else if( !$( '#recommend_sender_email' ).isValidEmail() )
				{
					$( '#recommend_sender_email' ).showInputError( 'invalido' );
					valid = false;
				}
				else
					$( '#recommend_sender_email' ).clearInputError();	// Remove Error
			}
			
			// To
			if( $( '#recommend_to' ).val() == '' )
			{
				$( '#recommend_to' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#recommend_to' ).clearInputError();	// Remove Error
		}
		
		
		// Subject
		if( $( '#recommend_subject' ).val() == '' )
		{
			$( '#recommend_subject' ).showInputError( 'requerido' );
			valid = false;
		}
		else
			$( '#recommend_subject' ).clearInputError();	// Remove Error
		
		// Message
		if( $( '#recommend_message' ).val() == '' )
		{
			$( '#recommend_message' ).showInputError( 'requerido' );
			valid = false;
		}
		else
			$( '#recommend_message' ).clearInputError();	// Remove Error
		
		// Return
		return valid;
	}
	
	// Validate Login form
	function validateLoginForm()
	{
		var valid = true;
		
		// Email (Username) Validation
		// Email Validation
		if( $( '#login_username' ).val() == '' )
		{
			$( '#login_username' ).showInputError( 'requerido' );
			valid = false;
		}
		else if( !$( '#login_username' ).isValidEmail() )
		{
			$( '#login_username' ).showInputError( 'invalido' );
			valid = false;
		}
		else
			$( '#login_username' ).clearInputError();	// Remove Error
		
		// Password Validation
		if( $( '#login_password' ).val() == '' )
		{
			$( '#login_password' ).showInputError( 'requerido' );
			valid = false;
		}
		else
		{
			// Remove Error
			$( '#login_password' ).clearInputError();
		}
		
		// Return
		return valid;
	}
	
	// Validate Register form
	function validateRegisterForm()
	{
		// Declare Local Variables
		var valid = true;
		var acct_type;
		
		// Determine Account Type
		if( $( '#acct_type_kiosk' ).is( ':checked' ) == true )
		{
			// FName Validation
			if( $( '#fname' ).val() == '' )
			{
				$( '#fname' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#fname' ).clearInputError();	// Remove Error
				
			// LName Validation
			if( $( '#lname' ).val() == '' )
			{
				$( '#lname' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#lname' ).clearInputError();	// Remove Error
			
			// Sex Validation
			if( $( '#genderM' ).is( ':checked' ) == false  && $( '#genderF' ).is( ':checked' ) == false )
			{
				$( '#genderM' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#genderM' ).clearInputError();	// Remove Error
				
			// BDay Validation
			if( $( '#month' ).val() == '' || $( '#day' ).val() == '' || $( '#year' ).val() == '' )
			{
				$( '#month' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#month' ).clearInputError();	// Remove Error
			
			// Zip Validation
			if( $( '#zipk' ).val() == '' )
			{
				$( '#zipk' ).showInputError( 'requerido' );
				valid = false;
			}/*
			else if( !$( '#zipk' ).isNumeric() || $( '#zipk' ).val().length != 5 )
			{
				$( '#zipk' ).showInputError( 'invalido' );
				valid = false;
			}*/
			else
				$( '#zipk' ).clearInputError();	// Remove Error
				
			// Kiosk Display Name Validation
			if( $( '#display_name' ).val() == '' )
			{
				$( '#display_name' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#display_name' ).clearInputError();	// Remove Error
			
			
				
		}
		else if( $( '#acct_type_business' ).is( ':checked' ) == true )
		{
			// Business Name Validation
			if( $( '#name' ).val() == '' )
			{
				$( '#name' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#name' ).clearInputError();	// Remove Error
			
			// Address Validation
			if( $( '#address1' ).val() == '' && $( '#address2' ).val() == '' )
			{
				$( '#address1' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#address1' ).clearInputError();	// Remove Error
				
			// City Validation
			if( $( '#cityb' ).val() == '' )
			{
				$( '#cityb' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#cityb' ).clearInputError();	// Remove Error
				
			// Zip Validation
			if( $( '#zipb' ).val() == '' )
			{
				$( '#zipb' ).showInputError( 'requerido' );
				valid = false;
			}/*
			else if( !$( '#zipb' ).isNumeric() || $( '#zipb' ).val().length != 5 )
			{
				$( '#zipb' ).showInputError( 'invalido' );
				valid = false;
			}*/
			else
				$( '#zipb' ).clearInputError();	// Remove Error
				
			// Telephone Validation
			if( $( '#telephone' ).val() == '' )
			{
				$( '#telephone' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#telephone' ).clearInputError();	// Remove Error
				
			// Contact Name Validation
			if( $( '#contact_name' ).val() == '' )
			{
				$( '#contact_name' ).showInputError( 'requerido' );
				valid = false;
			}
			else
				$( '#contact_name' ).clearInputError();	// Remove Error
				
			/*// Contact Email Validation
			if( $( '#contact_email' ).val() == '' )
			{
				$( '#contact_email' ).showInputError( 'requerido' );
				valid = false;
			}
			else if( !$( '#contact_email' ).isValidEmail() )
			{
				$( '#contact_email' ).showInputError( 'invalido' );
				valid = false;
			}
			else
				$( '#contact_email' ).clearInputError();	// Remove Error*/
		}
		else
		{
			// NO Accout Type Selected
			// Show corresponding Error Msg
			$( '' ).showAlert( 'a3', '<p>Debe seleccionar un tipo de cuenta: Kiosko o Negocio</p>' );
			valid = false;
		}
		
		
	// Common Fields
		// Email Validation
		if( $( '#register_email' ).val() == '' )
		{
			$( '#register_email' ).showInputError( 'requerido' );
			valid = false;
		}
		else if( !$( '#register_email' ).isValidEmail() )
		{
			$( '#register_email' ).showInputError( 'invalido' );
			valid = false;
		}
		else
			$( '#register_email' ).clearInputError();	// Remove Error
		
		// Password Validation
		if( $( '#register_password' ).val() == '' )
		{
			$( '#register_password' ).showInputError( 'requerido' );
			valid = false;
		}
		else
			$( '#register_password' ).clearInputError();	// Remove Error
			
		// Re-Password Validation
		if( $( '#register_repassword' ).val() == '' )
		{
			$( '#register_repassword' ).showInputError( 're-ingrese su contrase&ntilde;a' );
			valid = false;
		}
		else if( $( '#register_repassword' ).val() != $( '#register_password' ).val() )
		{
			$( '#register_repassword' ).showInputError( 'las contrase&ntilde;as no son inguales' );
			valid = false;
		}
		else
			$( '#register_repassword' ).clearInputError();	// Remove Error
		
		// Captcha Validation
		if( $( '#captcha_value' ).val() == '' )
		{
			$( '#captcha_value' ).showInputError( 'requerido' );
			valid = false;
		}
		else
			$( '#captcha_value' ).clearInputError();	// Remove Error
		
		// Return
		return valid;
	}
	
	// Validate Login form
	function validateActivateForm()
	{
		var valid = true;
		
		// Email (Username) Validation
		// Email Validation
		if( $( '#activate_username' ).val() == '' )
		{
			$( '#activate_username' ).showInputError( 'requerido' );
			valid = false;
		}
		else if( !$( '#activate_username' ).isValidEmail() )
		{
			$( '#activate_username' ).showInputError( 'invalido' );
			valid = false;
		}
		else
			$( '#activate_username' ).clearInputError();	// Remove Error
		
		// Code Validation
		if( $( '#activate_code' ).val() == '' )
		{
			$( '#activate_code' ).showInputError( 'requerido' );
			valid = false;
		}
		else
		{
			// Remove Error
			$( '#activate_code' ).clearInputError();
		}
		
		// Password Validation
		if( $( '#activate_password' ).val() == '' )
		{
			$( '#activate_password' ).showInputError( 'requerido' );
			valid = false;
		}
		else
		{
			// Remove Error
			$( '#activate_password' ).clearInputError();
		}
		
		// Return
		return valid;
	}
	
	// Validate Communication form
	function validateCommunicateForm()
	{
		var valid = true;
		
		// Message Subject
		if( $( '#message_subject' ).val() == '' )
		{
			$( '#message_subject' ).showInputError( 'requerido' );
			valid = false;
		}
		else
			$( '#message_subject' ).clearInputError();	// Remove Error
		
		// Message Body
		if( $( '#message_body' ).val() == '' )
		{
			$( '#message_body' ).showInputError( 'requerido' );
			valid = false;
		}
		else
		{
			// Remove Error
			$( '#message_body' ).clearInputError();
		}
		
		// Return
		return valid;
	}
