/***** Regular use functions *****/

function RoundVal(x) {
  return (Math.round(x*Math.pow(10,2)))/Math.pow(10,2)
}

function imposeMaxLength(Object, MaxLen) {
  if(Object.value.length > MaxLen)
   Object.value = Object.value.substring(0, MaxLen);
}

function clearText(thefield,orig_value){
  if(thefield.value == orig_value)
thefield.value = "";
}

function number_format(a, b, c, d) {
 //Made by Mathias Bynens <http://mathiasbynens.be/>

 a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
 e = a + '';
 f = e.split('.');
 if (!f[0]) {
  f[0] = '0';
 }
 if (!f[1]) {
  f[1] = '';
 }
 if (f[1].length < b) {
  g = f[1];
  for (i=f[1].length + 1; i <= b; i++) {
   g += '0';
  }
  f[1] = g;
 }
 if(d != '' && f[0].length > 3) {
  h = f[0];
  f[0] = '';
  for(j = 3; j < h.length; j+=3) {
   i = h.slice(h.length - j, h.length - j + 3);
   f[0] = d + i +  f[0] + '';
  }
  j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
  f[0] = j + f[0];
 }
 c = (b <= 0) ? '' : c;
 return f[0] + c + f[1];
}



/***** Store album functions *****/

function selectTrack(track_id) {
  album_id = document.getElementById('album_id').value;
  checkbox_field = document.getElementById('album' + album_id + '_track' + track_id);

  if(checkbox_field.checked == true) {
    checkbox_field.checked = false;
  } else {
    checkbox_field.checked = true;
  }

  updateAlbumTotal();
}


function selectAllTracks() {
  album_id = document.getElementById('album_id').value;
  album_num_tracks = document.getElementById('album_num_tracks').value;
  total_price = 0;

  if(document.getElementById('selectallcheckbox').checked == true) { //tick all checkboxes

    //tick all the checkboxes and gather the track prices
    for(i=1;i<=album_num_tracks;i++) {
      document.getElementById('album' + album_id + '_track' + i).checked = true;
      total_price += parseFloat(document.getElementById('track_price' + i).value);
    }

  } else { //untick all checkboxes

    for(i=1;i<=album_num_tracks;i++) {
      document.getElementById('album' + album_id + '_track' + i).checked = false;
    }
  }

  updateAlbumTotal();
}


function addAllTracksToCart() {
  document.getElementById('selectallcheckbox').checked = true;
  selectAllTracks();
  document.getElementById('storealbumform').submit();
}


function updateAlbumTotal() {
  album_id = document.getElementById('album_id').value;
  album_num_tracks = document.getElementById('album_num_tracks').value;
  max_price = parseFloat(document.getElementById('album_max_price').value);
  total_price = 0;
  selection_incomplete = 0;


  for(i=1;i<=album_num_tracks;i++) {
    if(document.getElementById('album' + album_id + '_track' + i).checked == true) {
      total_price += parseFloat(document.getElementById('track_price' + i).value);
    } else {
      selection_incomplete = 1;
    }
  }


  //tick or untick the Select All checkbox
  if(selection_incomplete == 0) {
    document.getElementById('selectallcheckbox').checked = true;

    //apply the max_price if it exists
    if(max_price > 0 && max_price < total_price)
      total_price = max_price;

  } else {
    document.getElementById('selectallcheckbox').checked = false;
  }

  //update the track totals
  document.getElementById('storealbumprice').innerHTML = number_format(total_price, 2, ".", "");

}

