// global stuff
loading_img = new Image();
loading_img.src = "loading.gif";
var loadingimg = "<img src=\"loading.gif\" />";
var working = 0;
var playlist = "";

function contact()
{
  window.location.href = "mailto:contact" + "@" + "mp3shops.org";
}

function contact2()
{
  var mailto = "mailto:contact" + "@" + "mp3shops.org";
//  window.location.href = mailto;
//  alert("mailto:contact" + "@" + "mp3shops.org");
  window.location.href = "mailto:jee@moh.fi";
}


// prev/next for arrow keys
function handler(e)
{
  var key;
  if (document.all) { key = event.keyCode; } else { key = e.which; }
  if (key == 37)
  {
    var prevloc = document.getElementById('prevloc');
    if (prevloc != null)
    {
      var shop = document.getElementById('prevloc').getAttribute('shop');
      var search = document.getElementById('prevloc').getAttribute('search');
      var t = document.getElementById('prevloc').getAttribute('t');
      if (t != null) { update(search, shop, t); }
    }
  }
  if (key == 39)
  {
    var nextloc = document.getElementById('nextloc');
    if (nextloc != null)
    {
      var shop = document.getElementById('nextloc').getAttribute('shop');
      var search = document.getElementById('nextloc').getAttribute('search');
      var t = document.getElementById('nextloc').getAttribute('t');
      if (t != null) { update(search, shop, t); }
    }
  }
}   
document.onkeydown = handler;


// ajax
var timer = 0;
var xmlHttp = false;

try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) {
 try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
 catch (e2) { xmlHttp = false; }
}

if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
  xmlHttp = new XMLHttpRequest();
}

function search()
{
  if (working == 1) { return; }
  document.getElementById("loading").innerHTML = loadingimg;
  urchinTracker('search');
  var query = document.getElementById("search").value;
  var shopq = document.getElementById("shop").value;

  var url = "search.php?search=" + escape(query) + "&t_shop=" + escape(shopq);

  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = updatePage;
  working = 1;
  xmlHttp.send(null);
}

function update(search, shop, t)
{
  if (t == "" || working == 1) { return; }
  document.getElementById("loading").innerHTML = loadingimg;
  urchinTracker('update');
  var url = "search.php?search=" + escape(search) + "&t_shop=" + escape(shop) + "&t=" + escape(t);

  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = updatePage;
  working = 1;
  xmlHttp.send(null);
}

function about()
{
  urchinTracker('about');
  document.getElementById("loading").innerHTML = loadingimg;
  var url = "about.php";

  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = updatePage;
  working = 1;
  xmlHttp.send(null);
}

function settings()
{
  urchinTracker('settings');
  document.getElementById("loading").innerHTML = loadingimg;
  var url = "settings.php";

  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = updatePage;
  working = 1;
  xmlHttp.send(null);
}

function updatePage()
{
  if (xmlHttp.readyState == 4)
  {
    working = 0;
    var response = xmlHttp.responseText;
    document.getElementById("results").innerHTML = response;
    document.getElementById("loading").innerHTML = '';
  }
}

function releases()
{
  urchinTracker('main');
  search();
}


// -----------------------------------------------------------------------------------------------

function sample(trackid)
{
  if (trackid == "") { return; }
  document.getElementById("loading").innerHTML = loadingimg;
  urchinTracker('sample');
  var url = "flashplayer/getPL.php?pl_trackid=" + trackid;

  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = updatePlayer;
  working = 1;
  xmlHttp.send(null);
}

function clear_pl()
{
  document.getElementById("loading").innerHTML = loadingimg;
  urchinTracker('clear_playlist');
  var url = "flashplayer/getPL.php?pl_clear=1";

  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = updatePlayer;
  working = 1;
  xmlHttp.send(null);
}

function updatePlayer()
{
  if (xmlHttp.readyState == 4)
  {
    working = 0;
    playlist = xmlHttp.responseText;

    // reset loading img
    document.getElementById("loading").innerHTML = '';

    if (playlist == "empty.xml")
    {
      hide_fplayer();
    }
    else
    {
      // show the flash player and its menu
      show_fplayer();
    }
  }
}

// -----------------------------------------------------------------------------------------------

function show_fplayer()
{
  document.getElementById("fplayer").innerHTML = '<div id="flashPlayer">replaced by fplayer</div><br />';

  // create and write flashplayer
  var so = new SWFObject("/flashplayer/playerMultipleList.swf", "mp3shops", "990", "160", "7", "#ffffff");
  so.addVariable("autoPlay", "yes");
  so.addVariable("playerSkin", "5");
  so.addVariable("playlistPath", "/flashplayer/playlists/" + playlist);
  so.write("flashPlayer");

  if (document.getElementById("fplayer").style.visibility != "visible")
  {
    Effect.BlindDown('fplayer', {duration: 0.5, afterFinish: show_fplayer_finish});
  }
  else
  {
    show_fplayer_finish();
  }
}

function show_fplayer_finish()
{
  // show flashplayer & menu
  document.getElementById("fplayer").style.visibility = 'visible';
  document.getElementById("fplayermenu").innerHTML = '<a href="#" onclick="clear_pl()">CLEAR PLAYLIST</a> | <a href="#" onclick="hide_fplayer()">CLOSE PLAYLIST</a>';
}

// -----------------------------------------------------------------------------------------------

function hide_fplayer()
{
  document.getElementById("fplayer").style.visibility = 'hidden';
  Effect.BlindUp('fplayer', {duration: 0.5, afterFinish: hide_fplayer_finish});
}

function hide_fplayer_finish()
{
  document.getElementById('fplayermenu').innerHTML = '<br />';
  document.getElementById("fplayer").innerHTML = '';
}

// -----------------------------------------------------------------------------------------------

function init()
{
//  document.getElementById("fplayer").style.visibility = 'hidden';
}

// -----------------------------------------------------------------------------------------------

function save_settings()
{
  // fetch selected timezone
  var timezone_index = document.getElementById('timezone').selectedIndex;
  var timezone = document.getElementById('timezone').options[timezone_index].value;

  // string for checked choices
  var checklist = "";
  var count = 0;

  for (i = 0; i < document.filters.checkgroup.length; i++)
  {
    if (document.filters.checkgroup[i].checked == false)
    {
      count++;
    }
  }

  var reverse = (count > (document.filters.checkgroup.length / 2));

  for (i = 0; i < document.filters.checkgroup.length; i++)
  {
    if (reverse == false && document.filters.checkgroup[i].checked == false)
    {
      checklist += document.filters.checkgroup[i].value + "|";
    }
    else if (reverse == true && document.filters.checkgroup[i].checked == true)
    {
      checklist += document.filters.checkgroup[i].value + "|";
    }
  }

  // construct url & notify google analytics
  var url = "settings.php?timezone=" + timezone + "&filters=" + checklist.replace(/\|$/, "").replace(/&/g, "-AMP-") + "&reverse=" + reverse;
  document.getElementById("loading").innerHTML = loadingimg;
  urchinTracker('settings_save');

  // open up a connection
  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = updateSettings;
  working = 1;
  xmlHttp.send(null);
}


function updateSettings()
{
  if (xmlHttp.readyState == 4)
  {
    working = 0;
    var response = xmlHttp.responseText;
    document.getElementById("settings_status").innerHTML = response;
    document.getElementById("loading").innerHTML = '';
  }
}

