$(function () {

	var size_imagen = 0;

    $.fn.form.settings.rules.codigoExiste = function(value) {
	  	return (verificaExiste('codigo_barras', value) > 0 ? false : true);
	};
    $('#frmEditar').form({
    	keyboardShortcuts: false,
    	fields: {
	      	nombre: {
		        rules: [{ type : 'empty', prompt : 'Complete este campo'}]
		    },
		    situacion_impuesto: {
		        rules: [{ type : 'empty', prompt : 'Seleccione una opcion'}]
		    },
		    tipo_impuesto: {
		        rules: [{ type : 'empty', prompt : 'Seleccione una opcion'}]
		    },
		    valor_impuesto: {
		        rules: [
			        { type : 'empty', prompt : 'Complete este campo'},
			        { type   : 'regExp[/^[0-9]+([\.]{1}[0-9]+)?$/]', prompt : 'Ingrese un valor valido'},
		        ]
		    },
		    precio: {
		        rules: [
			        { type : 'empty', prompt : 'Complete este campo'},
			        { type   : 'regExp[/^[0-9]+([\.]{1}[0-9]+)?$/]', prompt : 'Ingrese un valor valido'},
		        ]
		    },

		    precio_mayorista: {
		    	optional: true,
		        rules: [
			        { type   : 'regExp[/^[0-9]+([\.]{1}[0-9]+)?$/]', prompt : 'Ingrese un valor valido'},
		        ]
		    },

		    precio_compra: {
		    	optional: true,
		        rules: [
			        { type   : 'regExp[/^[0-9]+([\.]{1}[0-9]+)?$/]', prompt : 'Ingrese un valor valido'},
		        ]
		    },
		    cantidad: {
		        rules: [
			        { type : 'empty', prompt : 'Complete este campo'},
			        { type   : 'regExp[/^[0-9]+([\.]{1}[0-9]+)?$/]', prompt : 'Ingrese un valor valido'},
		        ]
		    },
		    alerta: {
		        rules: [
			        { type : 'empty', prompt : 'Complete este campo'},
			        { type   : 'regExp[/^[0-9]+([\.]{1}[0-9]+)?$/]', prompt : 'Ingrese un valor valido'},
		        ]
		    },
		    codigo_barras: {
		    	optional: true,
		        //rules: [{ type : 'codigoExiste', prompt : 'Este codigo ya fue registrado en otro producto'}]
		    },
		    imagen : {
		    	optional: true,
		        rules: [
			        { type : 'empty', prompt : 'Complete este campo'},
			        { type   : 'regExp[/^(.*.((png|jpg|jpeg|gif)$))?[^.]*$/i]', prompt : 'Seleccione una imagen valida'},
		        ]
		    },
    	},
    	inline : true,
    });

    function verificaExiste(field, param) {
     	var count;
     	$.ajax({
     		async: false,
            url: APP_URL+'/producto/existeCampoEditar',
            headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
            type: 'GET',
            dataType: 'json',
            data: { campo: field, valor: param, id_producto: $('#id_producto').val() },
            success: function (data) {
                count = data;
            }
        });
        return count;
	};

/*    $('.btn_guardar').on('click', function() {
		if ($('#frmEditar').form('is valid')) {
			$('#update_modal').modal({
  				closable: false,
		    	onApprove : function() {
		    		sendForm();
			    }
	  		}).modal('show'); 
		} else {
			$('#frmEditar').form('validate form');
		}
  	});*/


  	$('.btn_guardar').on('click', function() {
		if ($('#frmEditar').form('is valid')) {

			if ( $('[name="precio"]').val() != 0 ) {
				if ( size_imagen <= 2 ) {
					$('#update_modal').modal({
	  					closable: false,
			    		onApprove : function() {
			    		sendForm();
				    }
		  		}).modal('show');
			  	} else {
					swal("La imagen", "que intenta subir es muy grande, tamaño maximo 2MB", "warning");
				}	
			} else {
				swal("El precio de venta", "NO puede ser cero", "warning");
			}	

		} else {
			$('#frmEditar').form('validate form');
		}
  	});

/*	function sendForm() {

	    var data = $('#frmEditar').serialize();

        $.requestApi('/producto/actualizar', data, 'POST', function (resolve) {
	        if (resolve) {
	            $.showMessages(resolve);
	        }
	    });
        
        return false;
	};*/


	function sendForm() {

	   var form = $('#frmEditar')[0];
       var data = new FormData(form); 
	   
        $.requestApiFile('/producto/actualizar', data, 'POST', function (resolve) {
	        if (resolve) {
	            $.showMessages(resolve, true ,APP_URL+"/producto/editar/"+$('#id_producto').val());
	            //console.log(resolve)
	        }
	    });
        
        return false;
	};

	/******************************************************************************/
	/* validacion porcentaje en precio de compra y venta de modal productos
	/******************************************************************************/


	$('[name="tipo_precio"]').change(function() {
		var option= $("option:selected", this).val();
		
	  	if (option == "1") {
			$('#frmEditar').form('remove fields', ['precio_compra']);
			$('#frmEditar').form('remove prompt', ['precio_compra']);
			$('#frmEditar').form('add rule', 'precio_compra', {
				optional: true,
		        rules: [{type   : 'regExp[/^[0-9]+([\.]{1}[0-9]+)?$/]', prompt : 'Ingrese un valor valido'}]
		    });
		}
		if (option == "2") {
			$('#frmEditar').form('add rule', 'precio_compra', {
		        rules: [
			        { type : 'empty', prompt : 'Complete este campo'},
			        { type   : 'regExp[/^[0-9]+([\.]{1}[0-9]+)?$/]', prompt : 'Ingrese un valor valido'},
		        ]
		    });
		}
	});

	$('[name="tipo_precio"]').on('change', function(){
		if ($('[name="precio_compra"]').val() !== '' ) {
			$('#frmEditar').form('remove prompt', ['precio_compra']);
		}
	}); 


	/******************************************************************************/
	/* validacion porcentaje en precio de compra y venta de modal productos
	/******************************************************************************/

		$('[name="tipo_precio_2"]').change(function() {
		var option= $("option:selected", this).val();
		
	  	if (option == "1") {
			$('#frmEditar').form('remove fields', ['precio_compra']);
			$('#frmEditar').form('remove prompt', ['precio_compra']);
			$('#frmEditar').form('add rule', 'precio_compra', {
				optional: true,
		        rules: [{type   : 'regExp[/^[0-9]+([\.]{1}[0-9]+)?$/]', prompt : 'Ingrese un valor valido'}]
		    });
		}
		if (option == "2") {
			$('#frmEditar').form('add rule', 'precio_compra', {
		        rules: [
			        { type : 'empty', prompt : 'Complete este campo'},
			        { type   : 'regExp[/^[0-9]+([\.]{1}[0-9]+)?$/]', prompt : 'Ingrese un valor valido'},
		        ]
		    });
		}
	});

	$('[name="tipo_precio_2"]').on('change', function(){
		if ($('[name="precio_compra"]').val() !== '' ) {
			$('#frmEditar').form('remove prompt', ['precio_compra']);
		}
	}); 

	/******************************************************************************/
	/* validacion igv de situacion impuesto
	/******************************************************************************/
	$('[name="situacion_impuesto"]').on('change', function(){
		if ($('[name="situacion_impuesto"]').val() !== 'AFECTO' ) {
			$('[name="valor_impuesto"]').val("0.00");
			//$('[name="valor_impuesto"]').attr('readonly', true);
		}
		else {
			$('[name="valor_impuesto"]').val(_IGV);
			//$('[name="valor_impuesto"]').attr('readonly', false);
		}
	}); 

	/******************************************************************************/
    /* MODAL IMAGEN PRODUCTO
    /******************************************************************************/
    
    $('body').on('click', '.btn_ver_imagen', function(){
        $('#imagen_modal').modal('show'); 
    });

	/******************************************************************************/
	/* input cargar productos
	/******************************************************************************/

	$('input:text, .ui.button', '#cargar-imagen').on('click', function(e) {
    	$('input:file', $(e.target).parents()).click();
	});

	$('input:file', '#cargar-imagen').on('change', function(e) {
	    var name = e.target.files[0].name;
	    $('input:text', $(e.target).parent()).val(name);

	    size_imagen = e.target.files[0].size/1024/1024;
	 
	});

});
