/**
 * Comisa Javascript file
 */

/**
 * Variabili Javasctipt
 * Caratteri speciali
 * à \u00E0
 * è \u00E8
 * é \u00E9
 * ò \u00F2
 * ù \u00F9
 */

var JS_MSG_IS_NAN = "Quantit\u00E0 non corretta, inserire un numero valido";
var JS_MSG_MAGGIORE_DI_ZERO ="Inserire un valore maggiore di 0 (zero)";
var JS_MSG_ERRORE = "{0}!";
var JS_MSG_NO_PRODUCT_MODEL = "Inserire un codice prodotto!";
var JS_MSG_CAMPO_OBBLIGATORIO = "Campo {0} obbligatorio!";
var JS_MSG_IMPORT_DATI_CORRETTO = "Import dati terminata correttamente!";
var JS_MSG_CART_ARTICOLO = "{0} articolo";
var JS_MSG_CART_ARTICOLI = "{0} articoli";
var JS_MSG_CONTINUA_ACQUISTI = 'Continua acquisti';
var JS_MSG_VAI_AL_CARRELLO = 'Vai al carrello';

var JS_URL_AJAX = "rpc.php";
var JS_IMG_AJAX_LOADING = "<img class='ajax_loading' src='images/Icone/loading.gif' />";

var JS_DLG_TITLE_ATTENZIONE = "Attenzione!";
var JS_DLG_TITLE_CARRELLO = 'Carrello';

/**
 * Message Box, set attribute for content
 * Es. msgbox.attr("content", "Hey, I wasn't there before, I was added at " + new Date() + "!");
 *     msgbox.show();
 */
var msgbox;

/**
 * Aggiungo l'articolo al carrello, se PrdId = 0 recupero il ProductsModel dal campo
 * @param prdId
 * @returns {Boolean}
 */
function addToCart(prdId) {
  oQty = dijit.byId('Qty_ProdId_' + prdId);
  vQty = oQty.value;
  if (oQty.valueNode.value == '') return false;
  if (!jsCmCheckPositiveNumber(vQty)) return false;
  
  $.post(JS_URL_AJAX + '?action=add_product',{ 'products_id': prdId, 'qty': vQty}, function(data) {
          var res = eval("(" + data + ")");
          var msg = res.msg;
          msg += '<br /><br />';
          msg += '<button dojotype="dijit.form.Button" type="button" onclick="dijit.byId(\'theDialog\').hide();">' + JS_MSG_CONTINUA_ACQUISTI + '</button>';
          //Se c'e' stato un errore non visualizzo il pulsante "Vai Al CarrellO"
          if (res.status == 'OK') {
            msg += '&nbsp;';
            msg += '<button dojotype="dijit.form.Button" type="button" onclick="location.href=\'shopping_cart.php\';">' + JS_MSG_VAI_AL_CARRELLO + '</button>';
          }
          jsCmMessage(msg, JS_DLG_TITLE_CARRELLO);
          
          var oQta = $('.cart_content');
          
          //Aggiorno il nr di articoli nel carrello
          if (res.status=='OK' && oQta.length == 1) {
            oQty.value = 0;
            oQta.hide('slow', function () {
              var msg = (res.nr_art == 1 ? JS_MSG_CART_ARTICOLO : JS_MSG_CART_ARTICOLI);
              oQta.html(jQuery.validator.format(msg, res.nr_art));
              oQta.show('slow');
            });
          }
        });
}

/**
 * Aggiungo il ProductModel al Carrello
 */
function jsCmAddToCartInShoppingCart(reload) {
  //oQty = $('#add_qty.qtynumber');
  oQty = $('input[name=add_qty]');
  vQty = '';
  vPrdMdl = '';
  var vPrdMdlType = 'C';
  
  jQuery.each(oQty, function(index) {
    if (!jsCmCheckPositiveNumber(this.value)) {
      return false;
    } else {
      vQty = vQty + (vQty != '' ? '|' : '');
      vQty = vQty + this.value;
    }
  });
  
  //oPrdMdl = $('#add_product_model.qtynumber');
  oPrdMdl = $('input[name=add_product_model]');
  oPrdMdl.each(function(index) {
    if (!this.value) {
      jsCmMessage(JS_MSG_NO_PRODUCT_MODEL);
      return false;
    } else {
      vPrdMdl = vPrdMdl + (vPrdMdl != '' ? '|' : '');
      vPrdMdl = vPrdMdl + this.value;
    }
  });
  
  if ($('#add_product_model_type')) {
    vPrdMdlType = $('#add_product_model_type').val();
  }
  
	/*Rimuovo eventuali stili di errore gia' assegnati*/
	$('input:text[name=add_product_model]').removeClass('shopping_error');
	
  $.post(JS_URL_AJAX + '?action=add_product',{ 'products_id': 0, 'products_model': vPrdMdl, 'qty': vQty, 'products_model_type': vPrdMdlType}, function(data) {
    
    var res = eval("(" + data + ")");
    var msg;
    
    if (res.status == 'OK') {
      msg = res.msg;
      msg += '<br /><br /><br />';
      msg += '<button dojotype="dijit.form.Button" type="button" onclick="location.href=\'shopping_cart.php\';">' + JS_MSG_CONTINUA_ACQUISTI + '</button>';
      oQty.val('0');
    } else {
      msg = jQuery.validator.format(JS_MSG_ERRORE, res.msg);
      msg += '<br /><br /><br />';
      msg += '<button dojotype="dijit.form.Button" type="button" onclick="dijit.byId(\'theDialog\').hide();">' + JS_MSG_CONTINUA_ACQUISTI + '</button>';
			
			var articoli = res.artNotValid;
			$.each(articoli, function(indexArt, value) {
				$.each($('input:text[name=add_product_model]'), function(indexInput, field) {
					if (field.value == value ) {
						field.className = 'shopping_error';
					}
				});
			});
    }

    jsCmMessage(msg, JS_DLG_TITLE_CARRELLO);
    
  });
}

/**
 * Aggiungo una nuova riga nel carrello per aggiungere nuovi prodotti
 */
var rowShpCart = '<tr class="addPrdRow"><td class="productListing-data" height="40">&nbsp;</td>';
rowShpCart += '<td class="productListing-data"><input type="text" name="add_product_model" id="add_product_model" size="15"  maxlength="25" class="qtynumber" /></td>';
rowShpCart += '<td class="productListing-data"><input type="text" name="add_qty" id="add_qty" size="8" maxlength="8" id="add_qty" class="qtynumber" /></td>';
rowShpCart += '<td class="productListing-data"><a href="javascript:void(0);" onclick="return false;"><img src="images/Icone/moins.gif" alt="Rimuovi" title=" Rimuovi " width="16" height="12" class="remove_row"></a></td></tr>';
function jsCmShpCartNewRow() {
  var last_row = $('#tbNewPrd tr:last');
  var new_row = last_row.before($(rowShpCart));
  $('#tbNewPrd td img.remove_row').click(function(){
    $(this).parent().parent().parent().remove();
});



}

/**
 * Rimuovo la rigad della tabella
 */
function jsCmShpCartRemoveRow(obj) {
  obj.parentElement.parentElement.parentElement.parentElement.deleteRow(obj.parentElement.parentElement.rowIndex)
}
/**
 * Import dalla Textarea (copia incolla da Excel)
 * @param reload Ricarico la pagina se tutto va bene
 */
function jsCmImportExcel(reload) {
  oImpDati = $('#add_import_excel');
  var vPrdMdlType = 'C';
  $('#box_import_excel_msg_error').show();
  $('#box_import_excel_msg_error').html(JS_IMG_AJAX_LOADING);
  
  if (oImpDati.val().length == 0) {
    jsCmMessage(jQuery.validator.format(JS_MSG_CAMPO_OBBLIGATORIO, 'Dati Excel'));
  }
  
  if ($('#add_product_model_type_excel')) {
    vPrdMdlType = $('#add_product_model_type_excel').val();
  }
  
  $.post(JS_URL_AJAX + '?action=import_excel_product',{ 'products_import_data': oImpDati.val(), 'products_model_type': vPrdMdlType}, function(data) {
    var res = eval("(" + data + ")");
    var msg = res.msg;//jQuery.validator.format(JS_MSG_ADD_PRODOTTO, res.msg);
    $('#box_import_excel_msg_error').html('');
    msg += '<br /><br />';
    if (reload && res.status == 'OK') {
      msg += '<button dojotype="dijit.form.Button" type="button" onclick="location.href=\'shopping_cart.php\';">' + JS_MSG_CONTINUA_ACQUISTI + '</button>';
    } else {
      msg += '<button dojotype="dijit.form.Button" type="button" onclick="dijit.byId(\'theDialog\').hide();">' + JS_MSG_CONTINUA_ACQUISTI + '</button>';
    }
    
    //Se ci sono errori visualizzo i codici
    if (res.status == 'ERROR') {
      oMsg = $('#box_import_excel_msg_error');
      if (typeof res.products == 'object') {
        for(i=0; i<res.products.length; i++) {
        oMsg.append('Riga nr. '+ res.products[i].row +' - ' + res.products[i].products + ' (' + res.products[i].qty + ') - ' + res.products[i].msg + '<br />');
        }
      }
      oMsg.show();
    }
    
    jsCmMessage(msg);
  });
}
/**
 * Visualizzo un alert
 * @param pMsg Messaggio da visualizzare
 * @param pTitle Titolo della dialog
 */
function jsCmMessage(pMsg, pTitle) {
  dojo.require("dijit.form.Button");
  dojo.require("dijit.Dialog");
  
  if (typeof pTitle == 'undefined')
    pTitle = JS_DLG_TITLE_ATTENZIONE;
  //Verifico che sia stata creata la msgbox
  if (typeof msgbox == 'undefined') {
    // create the dialog:
    msgbox = new dijit.Dialog({
        id : 'theDialog',
        title: pTitle,
        style: "width: 300px"
    });
  }
  msgbox.set('content', pMsg);
  msgbox.show();
}

/**
 * Verifico che il parametro n si
 * @param n
 */
function jsCmCheckPositiveNumber( n ) {
  //Per la validazione vedere Pugin Jquery.validator (http://docs.jquery.com/Plugins/Validation)
  if (isNaN(n)) {
	n = n.replace(',','\.');
  }
  if (isNaN(n)) {
    jsCmMessage(JS_MSG_IS_NAN);
    return false;
  }
  
  if (n <= 0) {
    jsCmMessage(JS_MSG_MAGGIORE_DI_ZERO);
    return false;
  }
  return true;
}
/**
 * Carico i dettaggli dell'indirizzo di spedizione
 * @param spedId Id dell'indirizzo di spedizione
 */
function jsCmLoadIndirizzoSped() {
	var objSped = dijit.byId('shipping_address_id');
	var sId = objSped.get('value');
	var sped = dojo.byId('sped_ind');
	sped.innerHTML = JS_IMG_AJAX_LOADING;
	$.post(JS_URL_AJAX, { 'action' : 'load_spedizione_info', 'sped_id': sId }, function(data) {
	  
	  if (sped) {
	    sped.innerHTML = data;
	  }
	});
}
