// This function will add an onload handler to the body.  It's fine to
// add a bunch of handlers, this keeps track of all of them.
function add_body_onload(func) {
  var old_body_onload=window.onload;
  window.onload=function() {
    if (old_body_onload) { old_body_onload(); }
    func();
  }
}

// Get version of IE.
var isIE=(navigator.appName.indexOf('Microsoft')!=-1);
var ie_version=0;
if (isIE) {
	var p=navigator.userAgent.match(/MSIE (\d+\.\d+)/);
	if (p) {
		ie_version=parseFloat(p[1]);
	}
}

// sets and unsets the artist header for the list of albums
function set_artist_header(genres,cd_name) {
	var el=document.getElementById('artist-browser-header');
	if (el) {
		el.innerHTML = "Artist Browser <span class=\"red\">// " + genres + "</span> <span class=\"orange\">// " + cd_name + "</span>"
	}
}
function unset_artist_header() {
	var el=document.getElementById('artist-browser-header');
	if (el) {
		el.innerHTML = "Artist Browser <span class=\"red\">//</span>"
	}
}

// Fixes odd row classes for trs
function fix_odd_even(tbl, grouping) {
  if (!grouping) grouping=1;
  tbl=$(tbl);
  if (tbl) {
    tr_num=0;
    for (var row=0 ; row < tbl.childNodes.length ; row++) {
      if (tbl.childNodes[row].nodeName=='TR') {
        tr=tbl.childNodes[row];
        if (Math.floor(tr_num/grouping)&1==1) {
          // must have "odd"
          if (!tr.className.match(/\bodd\b/)) {
            tr.className += ' odd';
          }
        } else {
          // must not have "odd"
          if (tr.className.match(/\bodd\b/)) {
            tr.className = tr.className.replace(/ ?\bodd\b ?/g, ' ');
          }
        }
        tr_num++;
      }
    }
  }
}

// Simple cookie stuff - get/set/unset a cookie
function get_cookie_value(name) {
  var cookie_str = document.cookie;
  if (!cookie_str || !cookie_str.length) return null;
  var raw_cookies = cookie_str.split(/\s*;\s*/);
  for (var i=0 ; i<raw_cookies.length ; i++) {
    var pieces = raw_cookies[i].split('=');
    if (decodeURIComponent(pieces[0]) == name) {
      return decodeURIComponent(pieces[1]);
    }
  }
  return null;
}

function set_cookie_value(name, value, seconds) {
  var max_age='';
  if (seconds!==undefined) { max_age = "; max-age="+seconds; }
  document.cookie = encodeURIComponent(name)+'='+encodeURIComponent(value)+"; path=/"+max_age;
}

function unset_cookie_value(name) {
  set_cookie_value(name, '', 0);
}

// Show login popup for track download
function show_login_popup(track_id, track_version_id, action) {
  $('popup-login').show();
  if (track_id && $('last_track_id')) $('last_track_id').value=track_id;
  if (track_version_id && $('last_track_version_id')) $('last_track_version_id').value=track_version_id;
  if (action && $('last_action')) $('last_action').value=action;
  new Draggable('popup-login', {handle:'drag-handle'});
}

