/**

* Function : dump()

* Arguments: The data - array,hash(associative array),object

*    The level - OPTIONAL

* Returns  : The textual representation of the array.

* This function was inspired by the print_r function of PHP.

* This will accept some data as the argument and return a

* text that will be a more readable version of the

* array/hash/object that is given.

*/

function dump(arr,level) {

	var dumped_text = "";

	if(!level) level = 0;

	

	//The padding given at the beginning of the line.

	var level_padding = "";

	for(var j=0;j<level+1;j++) level_padding += "    ";

	

	if(typeof(arr) == 'object') { //Array/Hashes/Objects 

		for(var item in arr) {

			var value = arr[item];

			

			if(typeof(value) == 'object') { //If it is an array,

				dumped_text += level_padding + "'" + item + "' ...\n";

				dumped_text += dump(value,level+1);

			} else {

				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";

			}

		}

	} else { //Stings/Chars/Numbers etc.

		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";

	}

	return dumped_text;

}



function openCal(formu){

	displayCalendar($(formu),'dd-mm-yyyy',$(formu));

}

function openCaldos(formu){

	var fechaletras = $(formu).value;

	$(formu).value = cambianumeros(fechaletras);

	displayCalendar($(formu),'dd-mm-yyyy',$(formu));

}

function mantencion(){

	new AJAX.viewRequest({action: 'factura/mantencionProducto', container: 'display', callbacks: { before: function(){}, oncomplete: function(){}, success: function(){} }});

}

//autocompletador generico

function hola(){

	var query = $('nombre').value;

	new AJAX.viewRequest({action: 'factura/tipo/'+query, container: 'prodUpd', callbacks: { before: function(){}, oncomplete: function(){}, success: function(){} }});

}

function reservatipo(){

	var query = $('nombre').value;

	new AJAX.viewRequest({action: 'factura/reservatipo/'+query, container: 'prodUpd', callbacks: { before: function(){}, oncomplete: function(){}, success: function(){} }});

}

function cambiafecha(formu){

	var fecha = $(formu).value;

	var dia = fecha.substr(0,2);

	var mes = fecha.substr(3,2);

	var anio = fecha.substr(6,4);

	var monthArray = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];

	var mespalabras = monthArray[mes - 1];

	$(formu).value =  (dia + ' de ' + mespalabras + ' de ' + anio);

}

function cambiafechavalor(formu){

	var fecha = formu;

	var dia = fecha.substr(0,2);

	var mes = fecha.substr(3,2);

	var anio = fecha.substr(6,4);

	var monthArray = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];

	var mespalabras = monthArray[mes - 1];

	return (dia + ' de ' + mespalabras + ' de ' + anio);

}

function cambianumeros(fechacambio){

	if ((fechacambio != '') && (fechacambio.length > 10)){

	var indicedia = fechacambio.indexOf(' de ');

	var fechanumero = fechacambio.substr(0,indicedia);

	var largototal = fechacambio.length;

	var mes = fechacambio.substr(indicedia + 4, largototal);

	var indicemes = mes.indexOf(' de ');

	var largomes = mes.length;

	var mesnumero = mes.substr(0, indicemes);

	var anio = mes.substr(indicemes + 4, largomes);

	switch(mesnumero)

		{

		case 'Enero':

			var mesnumerado = '01';

		break;    

		case 'Febrero':

		  	mesnumerado = '02';

		break;

		case 'Marzo':

		  	mesnumerado = '03';

		break;

		case 'Abril':

		  	mesnumerado = '04';

		break;

		case 'Mayo':

		  	mesnumerado = '05';

		break;

		case 'Junio':

		  	mesnumerado = '06';

		break;

		case 'Julio':

		  	mesnumerado = '07';

		break;

		case 'Agosto':

		  	var mesnumerado = '08';

		break;

		case 'Septiembre':

		  	mesnumerado = '09';

		break;

		case 'Octubre':

		  	mesnumerado = '10';

		break;

		case 'Noviembre':

		  	mesnumerado = '11';

		break;

		case 'Diciembre':

		  	mesnumerado = '12';

		break;

		default:

 			mesnumerado = '';

		}

	return (fechanumero + '-' + mesnumerado + '-' + anio);

	}else{

		return (fechacambio.length == 10) ? cambiafechavalor(fechacambio) : fechacambio;

	

	

	}

}



/*funciones que controlan el ingreso de precios en la factura*/

function total(who){

	if(isNaN($('unit['+who+']').value)){

		alert('SOLO PUEDE IMGRESAR NUMEROS');

		return false;

	}

	factor1 = $('unit['+who+']').value;

	factor2 = 	$('cantidad'+who).value;		 

	$('tot['+who+']').value = (factor1 * factor2);

	facturar(who);

}

function parcial(who){

	if(isNaN($('tot['+who+']').value)){

		alert('SOLO PUEDE IMGRESAR NUMEROS');

		return false;

	}

	if ($('tot['+who+']').value != ''){

	factor1 = $('tot['+who+']').value;

	factor2 = 	$('cantidad'+who).value;		 

	$('unit['+who+']').value = (factor1 / factor2);

	facturar(who);

	}

}

function facturar(who){

	var Total = $('Neto').value;

	var Restado =$('ant['+who+']').value;

	var SubTotal = parseInt(Total - Restado);

	var SubTotalFinal = parseInt($('tot['+who+']').value);

	var TotalFinal = parseInt(SubTotalFinal + SubTotal);

	$('ant['+who+']').value = $('tot['+who+']').value;

	$('Neto').value = TotalFinal;

	iva = Math.round((TotalFinal * 1.19) - TotalFinal);

	$('Iva').value = iva;

	$('TotalFactura').value = parseInt(TotalFinal + iva);

}



/*Funcion que incrusta html dependiendo de si el cliente es Nacional e Internacional*/

/*sin parametros de entrada*/

/*retorna false*/

/*ocupada en factura/clientes*/

/*Ajax Request -> requiere prototype y scrptacolous*/

function scliente(){

		new AJAX.viewRequest({action: 'factura/ncNacional', container: 'campos', callbacks: { before: function(){}, oncomplete: function(){}, success: function(){} }}); 

		$('tcliente').innerHTML = '<br /><strong>Cliente:</strong> Nacional <br /><br />';

		return false;

	

}



function sclientedos(){

		new AJAX.viewRequest({action: 'factura/ncInternacional', container: 'campos', callbacks: { before: function(){}, oncomplete: function(){}, success: function(){} }});

		$('tcliente').innerHTML = '<br /><strong>Cliente:</strong> Internacional <br /><br />';

		return false;

}

//crear comuna ajax

function create_comuna(){

	id_to_send = $F('region');

	actiontosend = "factura/comunas/" + id_to_send;

	new AJAX.viewRequest({action: actiontosend, container: 'comunases', callbacks: { before: function(){}, oncomplete: function(){}, success: function(){} }});

	

}

//crear patentes para facturacion

function create_patente(){

	id_to_send = $F('tipo');

	actiontosend = "factura/patentes/" + id_to_send;

	new AJAX.viewRequest({action: actiontosend, container: 'patentescontenedor', callbacks: { before: function(){}, oncomplete: function(){}, success: function(){} }});

	$('vender').disable();

	$('arrendar').disable();

	$('boton1').disable();

	$('boton2').disable();

	$('ingreso').value = '';

	$('salida').value = '';

	

	}

function enviar(who){

	$(who).submit();

	

}

function enviarFact(who){

	error = false;

	$('fechafactura').value = cambianumeros($('fechafactura').value);

	

	if ($('facturanro').value == '')

	{

		error = true;

		alert('Debe ingresar el numero de factura que sera impresa');

		destaca('facturanro');

		return false;

	}

	if ($('fechafactura').value == '')

	{

		error = true;

		alert('Debe ingresar la fecha de la factura que sera impresa');

		destaca('fechafactura');

		return false;

	}

	

	if ($('cond').value == '')

	{

		error = true;

		alert('Debe ingresar la condicion de venta factura que sera impresa');

		destaca('cond');

		return false;

	}

	$('facturandoFinal').value = 'ok'

	$(who).submit();

}

function enviarFactInt(who){

	error = false;

	

	if ($('numro').value == '')

	{

		error = true;

		alert('Debe ingresar el numero de factura que sera impresa');

		destaca('numro');

		return false;

	}

	if ($('fecha').value == '')

	{

		error = true;

		alert('Debe ingresar la fecha de la factura que sera impresa');

		destaca('fecha');

		return false;

	}

	

	if ($('orden').value == '')

	{

		error = true;

		alert('Debe ingresar el numero de orden de la factura que sera impresa');

		destaca('orden');

		return false;

	}

	

	if ($('condventa').value == '')

	{

		error = true;

		alert('Debe ingresar la condicion de venta de la factura que sera impresa');

		destaca('condventa');

		return false;

	}

	

	if ($('condventa').value == '')

	{

		error = true;

		alert('Debe ingresar la condicion de venta de la factura que sera impresa');

		destaca('condventa');

		return false;

	}

	if ($('pago').value == '')

	{

		error = true;

		alert('Debe ingresar la condicion de venta de la factura que sera impresa');

		destaca('pago');

		return false;

	}

	if ($('pago').value == '')

	{

		error = true;

		alert('Debe ingresar la condicion de venta de la factura que sera impresa');

		destaca('pago');

		return false;

	}

	if ($('puerto').value == '')

	{

		error = true;

		alert('Debe ingresar puerto de embarque de la factura que sera impresa');

		destaca('pago');

		return false;

	}

	if ($('destino').value == '')

	{

		error = true;

		alert('Debe ingresar puerto de destino de la factura que sera impresa');

		destaca('pago');

		return false;

	}

	

	$('facturandoFinal').value = 'ok'

	$(who).submit();

}





function activar(){

	$('testing').innerHTML = '<input type="hidden" name="productoaingresar" value="' + $('patentes').value + '" />';

	

	$('vender').enable();

	$('boton1').enable();

	

}

function activarservicio(){

	$('testing').innerHTML = '<input type="hidden" name="servicio" value="servicio" />';

	

	$('vender').enable();

	

}

function arriendopaso1(){

	$('boton2').enable();
	
	$('salida').value = convertirfechaysumar($('ingreso').value);
	

}

function arriendopaso2(){

	$('arrendar').enable();

	$('vender').disable();

	

}

//validar e insertar datos del nuevo cliente

//insertar

function addcliente(who){

	error = false;

	if ($('rut').value == '')

	{

		error = true;

		destaca('rut');

		return false;

	}

	if (!is_rut ('rut'))

	{

		destaca('rut');

		$('lblrut').innerHTML = 'Rut Invalido*';

		return false;

	}else{

		$('lblrut').innerHTML = 'Rut';

	}

	

	if($('razon').value == ''){

		error = true;

		destaca('razon');

		return false;

		}

	if($('giro').value == ''){

		error = true;

		destaca('giro');

		return false;

		}

	if($('direccion').value == ''){

		error = true;

		destaca('direccion');

		return false;

		}

	if($('region').value == 'error'){

		error = true;

		destaca('region');

		return false;

		}

	if($('comunas').value == 'error'){

		error = true;

		destaca('comunas');

		return false;

		}

	if($('telefono').value == ''){

		error = true;

		destaca('telefono');

		return false;

		}

	//ajax query to send

		$(who).submit();

}

//funciones de validacion





function addclienteint(who){

	error = false;

	if($('rut').value == ''){

		error = true;

		destaca('rut');

		return false;

		}

	

	if($('razon').value == ''){

		error = true;

		destaca('razon');

		return false;

		}

	

	if($('direccion').value == ''){

		error = true;

		destaca('direccion');

		return false;

		}

	if($('zip').value == ''){

		error = true;

		destaca('zip');

		return false;

		}

	if($('pais').value == ''){

		error = true;

		destaca('pais');

		return false;

		}

	if($('ciudad').value == ''){

		error = true;

		destaca('ciudad');

		return false;

		}

	

	

	//ajax query to send

		$(who).submit();

}



function addprod(who){

	error = false;

	if($('rut').value == ''){

		error = true;

		destaca('rut');

		return false;

		}

	if($('region').value == 'error'){

		error = true;

		destaca('region');

		return false;

		}

	

	

	//ajax query to send

		$(who).submit();

}

function addtiprod(who){

	error = false;

	if($('nombre').value == ''){

		error = true;

		destaca('nombre');

		return false;

		}

	//ajax query to send

		$(who).submit();

}

function addmant(who){

	error = false;

	if($('nombre').value == ''){

		error = true;

		destaca('nombre');

		return false;

		}

		

	if($('observaciones').value == ''){

		error = true;

		destaca('observaciones');

		return false;

		}

	if($('ingreso').value == ''){

		error = true;

		destaca('ingreso');

		return false;

		}

	if($('salida').value == ''){

		error = true;

		destaca('salida');

		return false;

		}

		

	//ajax query to send

		$(who).submit();

		

}

function addres(who){

	error = false;

	if($('nombre').value == ''){

		error = true;

		destaca('nombre');

		return false;

		}

		

	if($('observaciones').value == ''){

		error = true;

		destaca('observaciones');

		return false;

		}

	if($('ingreso').value == ''){

		error = true;

		destaca('ingreso');

		return false;

		}

	if($('salida').value == ''){

		error = true;

		destaca('salida');

		return false;

		}

		

	//ajax query to send

		$(who).submit();

		

}

//funciones de validacion



function is_numeric (field)

{

	var returnvar = (isNaN (parseInt ($(field).value)) == true) ? false : true;



	return returnvar;

}

function is_mailValid (field)

{

	var returnvar = ($(field).value.match(/^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/)) ? true : false;



	return returnvar;

}



function dv(T){var M=0,S=1;for(;T;T=Math.floor(T/10))

S=(S+T%10*(9-M++%6))%11;return S?S-1:'k';}



function is_rut(field){

	var normalizado = '';

	var partes = ($(field).value).split("-");

	var campo_rut = partes[0];

	var digito_verificador = partes[1];

	

	if (digito_verificador == 'K'){

		digito_verificador = 'k';

	}

	

		for(i=0; i<campo_rut.length; i++){

			if (isNaN(campo_rut.substr(i, 1)) == false){

			 normalizado += campo_rut.substr(i, 1);

			 }

		}

			

			$(field).value = normalizado + '-' + digito_verificador;

			if(dv(normalizado) == digito_verificador){



			return true;

			}else{

			

			return false;

			}

			

}

function destaca(who){

		error = true;

		new Effect.Highlight('lbl'+who);

		$('lbl'+who).addClassName('required');

		new Effect.Highlight(who);

		$(who).focus();	

}

function convertirfechaysumar(fecha){
	dia = fecha.substr(0, 2);
	mes = fecha.substr(3, 2);
	anio = fecha.substr(6, 4);
	milisegundos=parseInt(30*24*60*60*1000);
	fecha = new Date();
	fecha.setFullYear(anio, parseInt(mes - 1), dia);
	dia = fecha.getDate();
	mes = fecha.getMonth()+1;
 	anio = fecha.getFullYear();
	tiempo = fecha.getTime();
	total = fecha.setTime(parseInt(tiempo+milisegundos));
	dia=fecha.getDate();
 	mes=fecha.getMonth()+1;
	anio=fecha.getFullYear();
	fechafinal = dia + "-" + mes + "-" + anio;
	$('arrendar').disable();
	return fechafinal;
	
}