var browserType="", mp3Player,mp3PlayerY, playerHeight;
var isMp3Scrolling, mp3Player;
var nowPlaying = null;
if (navigator.appName.indexOf("Microsoft") != -1) {
    browserType="IE";
}
else {
    browserType="Mozilla";
}
function getMovie(movieName){
    if (browserType=='IE') {
        return window[movieName];
    }
    else {
        return document[movieName];
    }
}

function initializePlayer(){
    mp3Player=document.getElementById('playerDiv');
    var payerOffset = viewportOffset(mp3Player);
    playerHeight = mp3Player.innerHeight || mp3Player.clientHeight;
    mp3PlayerY=payerOffset[0];
}

function scrollPlayer(){
    var offset=findWindowY();
    if (mp3PlayerY > offset) return;
    mp3Player.style.top=(offset-mp3PlayerY + 10) +"px";
}

function findWindowY(){
    var bodyElement = (document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body;
    return document.all ? bodyElement.scrollTop : window.pageYOffset;
}

//reporting to flash 
function getScrollStatus(){
    return isMp3Scrolling;
}
function doThat() {
	var req = new Request.HTML({url:'/', 
		onSuccess: function(html) {
			//Clear the text currently inside the results div.
			$('playerDiv').set('text', '');
			//Inject the new DOM elements into the results div.
			$('playerDiv').adopt(html);
		},
		//Our request will most likely succeed, but just in case, we'll add an
		//onFailure method which will let the user know what happened.
		onFailure: function() {
			$('playerDiv').set('text', 'The request failed.');
		}
	});
	req.send();
}
function toggleSrcolling(){
    isMp3Scrolling = isMp3Scrolling ? false : true;
    if(isMp3Scrolling){
        scrollPlayer();
        window.onscroll = scrollPlayer;
    }else{
        mp3Player.style.top= "0px";  
        window.onscroll = null;
    }
   
    //we'll keep the cookie for 30 days
    setCookie('scrollMp3Player=', isMp3Scrolling.toString());
}

/*function (name){
    var mycookie=document.cookie;
    var str = document.cookie.substring(mycookie.indexOf(name)+name.length + 1, mycookie.indexOf("|"));
    return str;
}*/

//read the cookie, and start scrolling if true
if( readCookie('scrollMp3Player') == 'true') {
    isMp3Scrolling = true;
    window.onscroll = scrollPlayer;
}else{
    isMp3Scrolling = false;
}
var p = 0;
function play_track(id, code, track_title, flashCalled)
{
	flashCalled = flashCalled || false;
    if (!flashCalled) getMovie('actionext_flash_player').playTrack(id, code, track_title);
    nowPlaying = {id:id, code:code, track_title:track_title};
    var btn = $('btnplay' + code);
    var title = $('title' + code); 
    if(btn != undefined) {
        btn.alt = 'Pause';
        btn.title = 'PauseTrack';
        btn.onclick = function() { pause_track(); return false; };
        btn.src= btn.src.replace("-play.gif", "-pause.gif");
    }
    if (title != undefined) {
        title.title="Click to pause track"
        title.onclick = function() { pause_track(); return false; }; 
        title.style.color = "#8FA9BD";    
    }
    
}
function pause_track(flashCalled) 
{
    if(nowPlaying == null) return;
    flashCalled = flashCalled || false;
    var btn = $('btnplay' + nowPlaying.code);
    var title = $('title' + nowPlaying.code); 
    if(!flashCalled) {
        getMovie('actionext_flash_player').pauseTrack();
    }
    var id = nowPlaying.id;
    var code = nowPlaying.code;
    var track_title = nowPlaying.track_title
    if(btn != undefined) {
        btn.alt = 'Play';
        btn.title = 'Play Track';
        btn.onclick = function() { play_track(id, code, track_title); return false; };
        btn.src = btn.src.replace("-pause.gif", "-play.gif");
    }
    if (title != undefined) {
        title.title="Click to play track";
        title.onclick = function() { play_track(id, code, track_title); return false; };
        title.style.color = "#1f527b";     
    }
    nowPlaying = null;  
}
function add_track(id, code, track_title, el)
{
	getMovie('actionext_flash_player').addTrack(id, code, track_title);
    new Request({url: '/', method:'get'}).send("action=player&type=add&id=" + id + "&code=" + code + "&title=" + encodeURIComponent(track_title));
    if (!!el) {
        el.onclick = function() {remove_track(id, code, track_title, el); return false;};
        el.src = el.src.replace("-add.gif", "-remove.gif");
    }
}
function remove_track(id, code, track_title, el)
{
    getMovie('actionext_flash_player').removeTrack(code);
    new Request({url: '/', method:'get'}).send("action=player&type=remove&id=" + id + "&code=" + code + "&title=" + track_title);
    if (!!el) {
        el.onclick = function() {add_track(id, code, track_title, el); return false;};
        el.src = el.src.replace("-remove.gif", "-add.gif");
    }
}

function getPlayerStatus() {
}
var viewportOffset = function(forElement) {
    var valueT = 0, valueL = 0;

    var element = forElement;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;

      // Safari fix
      if (element.offsetParent == document.body)
        if (!!element.style && element.style.position ==' absolute') break;

    } while (element = element.offsetParent);

    element = forElement;
    do {
      if (!window.opera || element.tagName=='BODY') {
        valueT -= element.scrollTop  || 0;
        valueL -= element.scrollLeft || 0;
      }
    } while (element = element.parentNode);

    return [valueT, valueL];
};
window.onunload = function() {
	var player = getMovie('actionext_flash_player');
	if (typeof(player) == 'undefined' || !player.getTrackPositionState) return false;
	var curState = player.getTrackPositionState();
    if (curState == null) return;
	//alert(curState.time + " / " + curState.track);
	setCookie('time', curState.time);
	setCookie('track', curState.track);
    setCookie('trackTitle', curState.trackTitle);
};
//window.onload=initializePlayer;
