var max_no_dates = 14;

var ap_instances = new Array();

function ap_stopAll(playerID) {
	for(var i = 0;i<ap_instances.length;i++) {
		try {
			if(ap_instances[i] != playerID) document.getElementById("audioplayer" + ap_instances[i].toString()).SetVariable("closePlayer", 1);
			else document.getElementById("audioplayer" + ap_instances[i].toString()).SetVariable("closePlayer", 0);
		} catch( errorObject ) {
			// stop any errors
		}
	}
}

function ap_registerPlayers() {
	var objectID;
	var objectTags = document.getElementsByTagName("object");
	for(var i=0;i<objectTags.length;i++) {
		objectID = objectTags[i].id;
		if(objectID.indexOf("audioplayer") == 0) {
			ap_instances[i] = objectID.substring(11, objectID.length);
		}
	}
}

var ap_clearID = setInterval( ap_registerPlayers, 100 );

/* 
onclick change the soundfile for the flash-mp3-player
*/
function changeSoundFile(soundFileName)
{
  var objectParams = $('audioplayer1').childElements();
  
  for (var i=0; i<objectParams.length; i++)
  {
    if (objectParams[i].readAttribute('name') == 'flashvars')
    {
      objectParams[i].setAttribute('value', 'playerID=1&soundFile=../mp3/'+soundFileName);
    }
    else if (objectParams[i].readAttribute('name') == 'audioplayer1')
    {
      objectParams[i].setAttribute('flashvars', 'playerID=1&soundFile=../mp3/'+soundFileName);
    }
  }
}



function renderAudioPlayer(id, soundFileName)
{
  if (AC_FL_RunContent == 0) {
          	alert("This page requires AC_RunActiveContent.js. In Flash, run \"Apply Active Content Update\" in the Commands menu to copy AC_RunActiveContent.js to the HTML output folder.");
          } else {
          	
            AC_FL_RunContent(
          		'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
          		'width', '145',
          		'height', '12',
          		'src', 'fileadmin/mp3/player',
          		'quality', 'high',
          		'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
          		'align', 'left',
          		'scale', 'showall',
          		'id', 'audioplayer'+id,
          		'bgcolor', '#00CCCC',
          		'name', 'audioplayer'+id,
          		'menu', 'false',
          		'flashvars', 'playerID='+id+'&amp;soundFile=fileadmin/mp3/'+soundFileName
          		); //end AC code
          }
}


function sortDates()
{
  
  var i=1;
  var datesArray = {};
  var keyArray = new Array();
  for (i; i<=max_no_dates; i++) {
    var date = $('datum'+i);
    var time = $('uhrzeit'+i);
    var timestamp = getTimeStamp(date, time);
    var datePrint;
    var timePrint;
    // restliche daten nachladen, auch Datum und Uhrzeit zur Anzeige
    if (date.firstChild != null) {
      datePrint = date.firstChild.nodeValue;
    }
    else {
      datePrint = "";
    }
    
    if (time.firstChild != null) {
      timePrint = time.firstChild.nodeValue;
    }
    else {
      timePrint = "";
    }
    
    
    var location = $('ort'+i);
    
    if (location.firstChild != null) {
      location = location.innerHTML;
    }
    else {
      location = "";
    }

    var info = $('info'+i);
    if (info.firstChild != null) {
      info = info.innerHTML;
    }
    else {
      info = "";
    }
    
    if (timestamp != 0) {
      datesArray[timestamp] = new Array(timestamp, location, info, datePrint, timePrint);
      keyArray.push(timestamp);
    }
  }
  
  // SORTIEREN
  keyArray.sort(Numsort);
  var sortedDates = {};
  for (var k = 0; k < keyArray.length; k++) {
    sortedDates[keyArray[k]] = datesArray[keyArray[k]];
  }
  // ende sortieren
 
  
  // HTML/Text in Tabelle umändern
  var m = 0;
  for (key in sortedDates) {

    m++;
    // DATUM
    datePrint = sortedDates[key][3];
    $('datum'+m).innerHTML = datePrint;
    
     // UHRZEIT
    timePrint = sortedDates[key][4];
    $('uhrzeit'+m).innerHTML = timePrint;
    
    // VERANSTALTUNGSORT
    location = sortedDates[key][1];
    $('ort'+m).innerHTML = location;
    // INFO
    info = sortedDates[key][2];
    $('info'+m).innerHTML = info;
  }
  
  // die restlichen Felder muessen geleert werden, damit keine doppelten Eintraege auftreten!
  m++; // einen hoeher, ist ja noch auf stand vom letzten eintrag
  if (m <= max_no_dates) {
    for (m; m <= max_no_dates; m++) {
      $('datum'+m).innerHTML = '';
      $('uhrzeit'+m).innerHTML = '';
      $('ort'+m).innerHTML = '';
      $('info'+m).innerHTML = '';
    }
  }
  
}



function Numsort (a, b) {
  return a - b;
}


/**
* get timestamp of string date and string time
* e.g. 21.04.2008 ---- 11:00
*/
function getTimeStamp(date, time) {
    var timestamp = 0;
    if (date.firstChild != null) {
      // DATUM
      date = date.firstChild.nodeValue;
      var day = date.substr(0,2);
      if (day.substr(0,1) == "0") {
        day = day.substr(1,1);
      }
      day = parseInt(day);
      
      var month = date.substr(3,2);
      if (month.substr(0,1) == "0") {
        month = month.substr(1,1);
      } 
      month = parseInt(month)-1;
      
      var year = parseInt(date.substr(6,4));
      
      // UHRZEIT
      if (time.firstChild != null) {
        time = time.firstChild.nodeValue;
        var hr = parseInt(time.substr(0,2));
        var min = parseInt(time.substr(3,2));
        var sec = 0;
      }
      else {
        var hr = 0;
        var min = 0;
        var sec = 0;
      }
     
      var dateObj = new Date(year, month, day, hr, min, sec);
      
      
      timestamp = Date.parse(dateObj.toGMTString());
    }
    
    return timestamp;
  
}