/* LOGIN - REG */

(function($) {
	//ARRAY - LAST
	$.fn.last = function() {
	   return this[this.length-1];
	}
	
	//FORM - FORM ELEMENTS ENABLE
	$.fn.enable = function() {	
		if (this.get(0).tagName=='FORM')
			$(':input', this).removeAttr('disabled');
		else
			$(this).removeAttr('disabled');
	};
	
	//FORM - FORM ELEMENTS DISABLE
	$.fn.disable = function() {
		if (this.get(0).tagName=='FORM')
			$(':input', this).attr('disabled', 'disabled');
		else
			$(this).attr('disabled', 'disabled');
	};
	
	//FORM CHECK REQUIRED FIELDS
	$.fn.checkRequired = function() {
		var _required=true;
		$('.required', this).each (function () {
			$(this).removeClass('input_error');
			if ($(this).val()=='') {
				$(this).addClass('input_error');
				_required=false;
			}
		});
		return _required;
	}
	
})(jQuery);


function initLogin () {
  if($('#noLogin').length>0)
    $('#loginPannel').remove();
    
  $('#retrive').click(retrive);  
    
	$('#login').click(function () {
		var objHash=$('#FCL').serialize();
		$.ajax({
  		url: '/include/shop_process.php',
  		data: objHash,
  		type: 'POST', 
  		dataType: 'json', 
  		success: function (data) {
  			if (!data.res) {
  				printMessage(data.msg);  		
  			} else {
  				//alert ('LOG - OK');
  				window.location.reload();	
  			}
  		},
  		error: function(XMLHttpRequest, textStatus){printMessage('Error:\n'+XMLHttpRequest.responseText)}
		});
		
		return false;
	})
}

function retrive(){
  $('#FCL').hide();
  $('#retrive').hide();
  $('#FRP').show();
  $('#doRetrive').click(function () {
		var objHash=$('#FRP').serialize();
		$.ajax({
  		url: '/include/shop_process.php',
  		data: objHash,
  		type: 'POST', 
  		dataType: 'json', 
  		success: function (data) {
  			if (!data.res) {
  				printMessage(data.msg);  		
  			} else {
  				$('#retrive').show();
  				$('#FRP').hide();
  				$('#FCL').show();
  				$('#loginPannel').hide();
          printMessage(data.msg);
          	
  			}
  		},
  		error: function(XMLHttpRequest, textStatus){printMessage('Error:\n'+XMLHttpRequest.responseText)}
		});
		
		return false;
	});
  return false;
}


function doRegistration () {
	var emailREG = /^(\w+[\.\-\_\s])*\w+@(\w+[\.\-\_\s])+[A-Za-z]+$/;

	if (!$('#FRU').checkRequired()) {
		alert ('Compila i campi obbligatori');
		return false;
	}
	
	//EMAIL

	if (!emailREG.test($('input[name=email]').val())) {
		$('input[name=email]').addClass('input_error');
		alert ('Formato email non valido');
		return false;
	}
	if ($('input[name=email]').val()!=$('input[name=email_confirm]').val()) {
		alert ('Controlla gli indirizzi email');
		return false;
	}
	
	//PROVINCIA
	if ($("select[name=state]").val()=='') {
		alert ('Seleziona una provincia');
		return false;
	}
	 
	//PRIVACY
	if (!$('input[name=privacy]').is(':checked')) {
		alert ('Leggi e accetta la privacy');
		return false;
	}
	
	var objHash=$('#FRU').serializeArray();	
	$('#FRU').disable();	
	
	$.ajax({
  	url: '/include/shop_process.php',
  	data: objHash,
  	type: 'POST', 
  	dataType: 'json',		
  	success: function (data) {
  		if (!data.res) { //ERROR
  			$('#FRU').enable();	
  			printMessage(data.msg);
  		} else { //OK
  			$('#FRU').hide();
  			$('#FRU').before(data.msg);
  		}
  	},
  	error: function(XMLHttpRequest, textStatus){
  		$('#FRU').enable();
  		printMessage('Error:\n'+XMLHttpRequest.responseText)
  	}
	});
	
	return false;
}

function endRegistration () {
	var objHash={};
	objHash.action='REGISTRATION_END';
	objHash.sis=$('#sis').val();

	$.ajax({
  	url: '/include/shop_process.php',
  	data: objHash,
  	type: 'POST', 
  	dataType: 'json',	
  	success: function (data) {
  		if (!data.res) { //ERROR
  			printMessage(data.msg);
  		} else { //OK
  			window.location.href='/checkout.php';
  		}
  	},
  	error: function(XMLHttpRequest, textStatus){printMessage('Error:\n'+XMLHttpRequest.responseText)}
	});

	return false;
}

/* SHOP */
function retriveCart () {
	var objHash={};
	objHash.action="GETSC";
	
	$.ajax({
  	url: '/include/shop_process.php',
  	data: objHash,
  	type: 'POST', 
  	dataType: 'json', 
  	success: function (data) {  	
  		if (!data.res) {
  			printMessage(data.msg);  		
  		} else {
  			var output=data.cnt;
  			$('#shop_cart tr').remove();  		
				$('#shop_cart').append($(output));
				initCart();
  		}
  	},
  	error: function(XMLHttpRequest, textStatus){printMessage('Error:\n'+XMLHttpRequest.responseText)}
	});
}

function initCart () {
	$('#shop_cart a.remove').click(removeProduct);
	$('#cart_update').click(updateCart);
}

function removeProduct () {
	if (!confirm('Vuoi rimuovere il prodotto dal tuo carrello?'))
		return false;

	var row=$(this).parents('tr');	
	var objHash = {};
	objHash.action='PRD_REMOVE';
	objHash.id_product=$(this).parents('tr').attr('id').split('_').pop();
	
	$.ajax({
  	url: '/include/shop_process.php',
  	data: objHash,
  	type: 'POST', 
  	dataType: 'json', 
  	success: function (data) {
  		if (!data.res) {
  			printMessage(data.msg);  		
  		} else {
  			retriveCart();
  		}
  	},
  	error: function(XMLHttpRequest, textStatus){printMessage('Error:\n'+XMLHttpRequest.responseText)}
	});

	return false;
}

function updateCart() {	
	var numREG = /^[0-9]+$/;
	
	var err=false;
	var objHash = {};
	objHash.action='CART_UPDATE';
	
	$('#shop_cart tr.cart_row input').each(function () {
		var qty=$(this).val();		
		if (numREG.test(qty) && qty>0 ) {
			objHash[$(this).attr('id')]=qty;
		}
		else {			
			err=true;
		}
	});
	
	if (err){
		alert ('Controlla le quantita\'');
		return false;
	}	
	
	$.ajax({
  	url: '/include/shop_process.php',
  	data: objHash,
  	type: 'POST', 
  	dataType: 'json', 
  	success: function (data) {
  		if (!data.res) {
  			printMessage(data.msg);  		
  		} else {
  			retriveCart();
  		}
  	},
  	error: function(XMLHttpRequest, textStatus){printMessage('Error:\n'+XMLHttpRequest.responseText)}
	});
	
	return false;
}

/* CHECKOUT */
function initCheckoutForm (){	
	showOrderCosts();

	$('input.ship').each (function () {
		$(this).disable();
		$(this).css({background: '#dedede'});
	});
	
	$('#ship').change(setShipInputs);	
	$('#method').change(setShipAdditionalCost);	
	$('#fatt').change(lookFatt);	
	$('#sendOrder').click(checkOrderForm);
}

function lookFatt(){
  var valore = $(this).val();
  
  if(valore == 'FA')
    $('#tr_partitaiva').show();
  else
    $('#tr_partitaiva').hide();  
  
  return false;
}

function showOrderCosts () {
	var objHash={};
	objHash.action='SHOWORDERCOSTS';
	objHash.method=$('#method').val();
	
	$.ajax({
  	url: '/include/shop_process.php',
  	data: objHash,
  	type: 'POST', 
  	dataType: 'json', 
  	success: function (data) {
  		if (!data.res) {
  			printMessage(data.msg);  		
  		} else {
  			$('#order_costs').html(data.cnt);
  		}
  	},
  	error: function(XMLHttpRequest, textStatus){printMessage('Error:\n'+XMLHttpRequest.responseText)}
	});	
} 

function setShipInputs () {
	$('input.ship').each (function () {
		$(this).removeClass('input_error');
		if ($('#ship').is(':checked')) {
			$(this).val('');
			$(this).disable();
			$(this).css({background: '#dedede'});
			$(this).removeClass('required');			
		} else {
			$(this).enable();
			$(this).css({background: '#ffffff'});
			$(this).addClass('required');
		}
	});
}

function setShipAdditionalCost () {
	$('#order_costs').html('calcolo');
	showOrderCosts();
	return false;
}

function checkOrderForm () {
	var emailREG = /^(\w+[\.\-\_\s])*\w+@(\w+[\.\-\_\s])+[A-Za-z]+$/;

	if (!$('#FCO').checkRequired()) {
		alert ('Compila i campi obbligatori');
		return false;
	}
	

	
	//EMAIL
	if (!emailREG.test($('input[name=Form_email]').val())) {
		$('input[name=Form_email]').addClass('input_error');
		alert ('Formato email non valido');
		return false;
	}

  if($('#fatt').val() == 'RI')
  {
    if($('#codicefiscale').val() == "")
    {  
      alert('devi inserire il codice fiscale');
      return false;
    }    
  }
  
  if($('#fatt').val() == 'FA')
  {
    if($('#codicefiscale').val() == "" && $('#partitaiva').val() == ""  )
    { 
      alert('devi inserire il codice fiscale o la partita iva per la fatturazione');
      return false;
    }
      
  }
  
  
  if( !$('#privacy').is(':checked') )
	{
    alert('devi accettare la normativa sulla privacy');
    return false;
  } 
	
	if ($('#method').val()=='') {
		alert ('Seleziona un metodo di pagamento');
		return false;
	}	
	
	var objHash=$('#FCO').serializeArray();	
	$('#FCO').disable();	
							
	$.ajax({
  	url: '/include/shop_process.php',
  	data: objHash,
  	type: 'POST', 
  	dataType: 'json', 
  	success: function (data) {
  		if (!data.res) {
  			printMessage(data.msg);  		
  		} else {
  			window.location.href='/order_process.php?order='+data.order;
  		}
  	},
  	error: function(XMLHttpRequest, textStatus){printMessage('Error:\n'+XMLHttpRequest.responseText)}
	});	
	
	return false;
}
