var cultureType = -1;
var previousCulture;

function validatePrice(e, numField, cultureType)
{
  var keynum;
  var currentValue = numField.value;

  //Valido que la tecla presionada sea un número o punto o coma, si no directamente no escribo nada
  if(window.event) { // IE
    keynum = e.keyCode
  } else {
    if(e.which) { // Netscape/Firefox/Opera
      keynum = e.which
    }
  }
  
  //The key is a number, delete, backspace or decimal separator (which depends on the culture type)
  if (((keynum >= 48) && (keynum <= 57)) || ((keynum >= 96) && (keynum <= 105)) || (keynum == 8) || (keynum == 46) || (keynum == 37) || (keynum == 39) || (((keynum == 190) || (keynum == 110)) && (cultureType == 1)) || ((keynum == 188) && (cultureType == 2)) || (keynum == 9))
  {
    if ( ( ((keynum == 190) || (keynum == 110)) && (currentValue.indexOf('.') >= 0) && (cultureType == 1) ) || ( (keynum == 188) && (currentValue.indexOf(',') >= 0) && (cultureType == 2) ) )
      return false;

    return true;
  }
  else
  {
      return false;
  }
}

function formatEntry(e, numField, cultureType)
{
  var keynum;

  //Valido que la tecla presionada sea un número o punto o coma, si no directamente no escribo nada
  if(window.event) { // IE
    keynum = e.keyCode
  } else {
    if(e.which) { // Netscape/Firefox/Opera
      keynum = e.which
    }
  }
  //The key should be a number or a deletion key
  if (((keynum >= 48) && (keynum <= 57)) || ((keynum >= 96) && (keynum <= 105)) || (keynum == 8) || (keynum == 46))
  {
    formatNumber(numField, cultureType);
    return true;
  }
  else
  {
      return false;
  }
}

function formatNumber(numField, cultureType)
{
  var decimalPos;
  var newNumber;
  var auxNumber = numField.value;
  var currentValue = numField.value;
  var i;
  var decimalSeparator;
  var thousandSeparator;

  if (cultureType == 1) {
    decimalSeparator = '.';
    thousandSeparator = ',';
  } else {
    decimalSeparator = ',';
    thousandSeparator = '.';
  }

  if (currentValue.length > 2)
  {
    auxNumber = currentValue;

    newNumber = '';
    decimalPos = auxNumber.indexOf(decimalSeparator);
    if (decimalPos >= 0)
      auxNumber = auxNumber.substr(0, decimalPos);
    while (auxNumber.indexOf(thousandSeparator) >= 0)
      auxNumber = auxNumber.replace(thousandSeparator, '');
    auxNumber = auxNumber.replace(decimalSeparator, '');

    //Averiguo en que posiciones va la ,
    numberOfCommas = Math.floor(auxNumber.length / 3);
    if (parseFloat(numberOfCommas * 3) == parseFloat(auxNumber.length))
      numberOfCommas--;
    for (i = 1; i <= numberOfCommas; i++)
    {
      newNumber = thousandSeparator + auxNumber.substr(auxNumber.length - (3*i), 3) + newNumber;
    }
    newNumber = auxNumber.substr(0, auxNumber.length - (3*(i-1))) + newNumber;

    if (decimalPos >= 0)
    {
      newNumber += currentValue.substr(decimalPos);
    }

      numField.value = newNumber;
  }
}

function changeCulture(numField, cultureType)
{
  var decimalSeparator;
  var thousandSeparator;
  var number = numField.value;
  if (cultureType == 1) {
    decimalSeparator = '.';
    thousandSeparator = ',';
  } else {
    decimalSeparator = ',';
    thousandSeparator = '.';
  }

  while (number.indexOf(decimalSeparator) >= 0)
    number = number.replace(decimalSeparator, 'X');
  while (number.indexOf(thousandSeparator) >= 0)
    number = number.replace(thousandSeparator, 'Y');

  while (number.indexOf('X') >= 0)
    number = number.replace('X', thousandSeparator);

  while (number.indexOf('Y') >= 0)
    number = number.replace('Y', decimalSeparator);

  numField.value = number;
}
function onlyPriceChars(e) {
  e = (e) ? e : window.event
  var charCode = (e.which) ? e.which : e.keyCode;

  if (charCode > 31 && (charCode < 48 || charCode > 57) && (charCode != 44) && (charCode != 46) && (charCode !=32)) {
    return false;
  }

  return true;
}
function priceInterpretation(el) {
  new Ajax.Request('/ajax/posting_ajax.php',
    {
      method: 'get',
      parameters: 'validatePrice=1&price=' + el.value,
      onComplete: function(resp) {
        el.value = resp.responseText;
        Element.hide('spinner-'+el.name);
      },
      onLoading: function() { Element.show('spinner-'+el.name); }
    }
  );
}
