/**
 * View action for the Document controller.
 * 
 * @version $Rev: 770 $
 */

jQuery(document).ready(function() {

	
	/**********************
	 * IMPLEMENTATIONS
	 *********************/

	var form = '';

	// Create Billing Address dialog
	jQuery('#change_billing_address_dialog').dialog({
		autoOpen: false,
		height: 450,
		width: 700,
		modal: true,
		buttons: {
	 		'Cancel': function() {
				jQuery(this).dialog('close');
			},
			'Save': function() {
				return handleAddressChange();
			}	
		}
	});

	// Create Delivery Address dialog
	jQuery('#change_delivery_address_dialog').dialog({
		autoOpen: false,
		height: 450,
		width: 700,
		modal: true,
		buttons: {
	 		'Cancel': function() {
				jQuery(this).dialog('close');
			},
			'Save': function() {
				return handleAddressChange();	
			}	
		}
	});
	
	
	// Function for handling address change
	function handleAddressChange() {
		var data = jQuery('#'+form).serialize();
		var url  = jQuery('#'+form).attr('action');

		jQuery.post(url, data,
        function(result){
            if (result.status == 'OK') {
            	jQuery('.dialog-error-holder').hide();
            	window.location.reload();			
            } else {
            	jQuery('.dialog-error-holder').html(result.message);
            	jQuery('.dialog-error-holder').show();
            }
        }, 'json');		
	}

	// Create Change Carriage dialog
	jQuery('#change_carriage_dialog').dialog({
		autoOpen: false,
		height: 360,
		width: 550,
		modal: true,
		buttons: {
	 		'Cancel': function() {
				jQuery(this).dialog('close');
			},
			'Save': function() {
				var data = jQuery('#change_carriage_form').serialize();
				var url  = jQuery('#change_carriage_form').attr('action');

				// Post Form		
				jQuery.post(url, data,
			        function(result){
						// Read response
			            if (result.status == 'OK') {
			            	jQuery('.dialog-error-holder').hide();
			            	window.location.reload();			
			            } else {
			            	jQuery('.dialog-error-holder').html(result.message);
			            	jQuery('.dialog-error-holder').show();
			            }
			        }, 'json');		
			}	
		}
	});

	// Apply Credit Account dialog
	jQuery('#apply_credit_dialog').dialog({
		autoOpen: false,
		height: 670,
		width: 700,
		modal: true,
		buttons: {
	 		'Cancel': function() {
				jQuery(this).dialog('close');
			},
			'Apply': function() {

				var data = jQuery('#apply_credit_dialog_form').serialize();
				var url  = jQuery('#apply_credit_dialog_form').attr('action');

				// Post Form		
				jQuery.post(url, data,
			        function(result){
						// Read response
			            if (result.status == 'OK') {
			            	jQuery('.dialog-error-holder').show();
			            	jQuery('.dialog-error-holder').removeClass('ui-state-error');
			            	jQuery('.dialog-error-holder').addClass('ui-state-highlight');
			            	jQuery('.dialog-error-holder').html('Thank You! we will be in touch with you shortly');    
			            	jQuery('.apply-credit-fields').hide();
			            	jQuery('.instruction-holder').hide();
			            	jQuery('.ui-button').hide();
			            } else {
			            	jQuery('.dialog-error-holder').html(result.message);
			            	jQuery('.dialog-error-holder').show();
			            }
			        }, 'json');		
			}	
		}
	});
	
	
	/**********************
	 * EVENT HANDLERS
	 *********************/	
	
	// Change Billing Address Dialog
	jQuery('#change_billing_address_dialog_open').click(function() {
		form = 'change_billing_address_form';
		jQuery('#change_billing_address_dialog').dialog('open');
		return false;
	});
	
	// Change Delivery Address Dialog
	jQuery('#change_delivery_address_dialog_open').click(function() {
		form = 'change_delivery_address_form';
		jQuery('#change_delivery_address_dialog').dialog('open');
		return false;
	});

	// Change Carriage Dialog 
	jQuery('.change_carriage_dialog_open').click(function() {
		var basketid = jQuery(this).attr('id');
		jQuery('#orderid').val(basketid);
		jQuery('#basketid').html(basketid);
		jQuery('#change_carriage_dialog').dialog('open');
		return false;
	});
	
	// Apply Credit Dialog 
	jQuery('#apply_credit_dialog_open').click(function() {
		jQuery('#apply_credit_dialog').dialog('open');
		var url = jQuery(this).attr('class');
		jQuery('#apply_credit_dialog_content').load(url);
		// Show fields hidden after successfully posting
    	jQuery('.dialog-error-holder').addClass('ui-state-error');
    	jQuery('.dialog-error-holder').removeClass('ui-state-highlight');
    	jQuery('.dialog-error-holder').hide();
    	jQuery('.apply-credit-fields').show();
    	jQuery('.instruction-holder').show();
    	jQuery('.ui-button').show();
		return false;
	});

	
});
