// JavaScript Document
function clsPlayerAPI( placeholder, initialFile, width, height )
{
	var m_placeholder = placeholder;
	var m_player      = null;
	var m_initFile    = initialFile;
	var m_width       = ( typeof width  == 'number' )?(""+width ):width;
	var m_height      = ( typeof height == 'number' )?(""+height):height;
	var flashvars     = {};
	var params        = {};
	var attributes    = {};
	var m_this        = this;
//	var m_path        = visi.getbaseurl() + "media/mediaplayer.swf";
//	var m_path        = visi.getbaseurl() + "media/player-viral.swf";
	var m_path        = visi.getbaseurl() + "media/player.swf";
    var m_kind        = (m_path.indexOf( "mediaplayer.swf") >= 0)?1:2;
	var m_version     = '9.0.0';
	var m_classid     = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
	var m_codebase    = 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + m_version;


	this.playFile     = playFile;
	this.playPause    = playPause;
	this.playStop     = playStop;
	
	this.create       = create;
	
	var m_flashvars   =
	{
		height         : m_height,
		width          : m_width,
		file           : ( m_initFile )?m_initFile:'',
		backcolor      : '0x000066',
		frontcolor     : '0xCCCCFF',
		lightcolor     : '0xFFFF00',
		screencolor    : '0xFFFFFF',
		searchbar      : 'false',
		showstop       : 'true',
		usefullscreen  : 'false',
		mute           : 'true',
		repeate        : 'none',
		shuffle        : 'true',
		javascriptid   : m_placeholder,
		enablejs       : 'true',
		controlbar     : 'bottom',//'over',
		image          : ''//images/projects/project_01/medium/item_06.jpg';
		
	};
    this.setProperties   = function( prop )
	{   for (var i in prop )
			 if ( m_flashvars[i] != undefined ) 
			      m_flashvars[i] = prop[i];
	}	

	function create( )
	{
		params.wmode             = "transparent";
		params.quality           = "high";
		params.menu              = "false";
		params.allowfullscreen   = "false";
		params.allowscriptaccess = "always";
		params.javascriptid      = m_placeholder;
	
		attributes.id            = m_placeholder;
		attributes.name          = m_placeholder;//!!
		
		if ( m_flashvars.file.indexOf('http://') != 0 )
		     m_flashvars.file    = visi.getbaseurl() + m_flashvars.file;
		swfobject.embedSWF( m_path, m_placeholder, width, height,m_version,false, m_flashvars, params, attributes,flashLoaded);
    }
    function flashLoaded( )
	{
//		alert("flashLoaded" );
	}
	var m_currAudio = '';
	function playFile( audio )
	{   m_currAudio = audio;
	    setTimeout( delayedPlayFile,200);
	}

	function playStop( ) 
	{   m_player = $( m_placeholder );
	    if ( m_player.sendEvent == undefined ) return;
	    if ( m_kind == 1 )
	         m_player.sendEvent( 'playpause','false');
	    else m_player.sendEvent( 'STOP','true');
	}
	function playPause( ) 
	{   m_player = $( m_placeholder );
	    if ( m_player.sendEvent == undefined ) return;
	    m_player.sendEvent( 'playpause','true'); 
	}
	
	function delayedPlayFile( )
	{   m_player = $( m_placeholder );
	    if ( m_kind == 1 )
	    {   if ( m_player.loadFile == undefined ) return;
		    m_player.loadFile ( {file:m_currAudio} );// mediaplayer.swf
		    m_player.sendEvent( 'playpause','true');
		}
		else
		{   if ( m_player.sendEvent == undefined ) return;
		    m_player.sendEvent( "LOAD",m_currAudio );
		    m_player.sendEvent( "PLAY","true");
		}
	}
};

function playOnClick( event )
{   if ( typeof document.body.player == 'undefined' ) return;
	var pobj = document.body.player.getObjects( );
	var o = visi.getEventTarget( event );
	if ( typeof o.link != 'undefined' )
		 pobj.player.playFile(o.link);
}
function playOnStop( event )
{   if ( typeof document.body.player == 'undefined' ) return;
	var pobj = document.body.player.getObjects( );
	pobj.player.playStop( );
}

/*
//Note: now the content of playlist is defined as links in the article body(<DIV id='audioplaceholder'...>). 
      Bellow is an alternative for list definition:

 var aud1 = { link:'media/audio/Yalta Experiment.mp3',    text:'Retzah al sfat ha yam' };
 var aud2 = { link:'media/audio/SchmendrikX.mp3',         text:'Hahamey Helom' };
 var aud3 = { link:'media/audio/Three Sisters Marsh.mp3', text:'Ahava ha ahrona shel Chechov' };
 var audioarray = new Array(aud1, aud2,aud3);
//    and pass list as third parameter
 var playerobj = createPlayerObj( AUDIO_HOLDER, 'player','audiopan', audioarray, 'playerobj' );
*/    
var PLAYER_ID = 100;
function clsPlayerDlg( audioplaceholder,playerid, audiotableclass, audioproplist )
{   var m_playerid = ( playerid != 'undefined')?playerid:"player";
    var m_audiotbl = audiotableclass;
	var m_audiolst = audioproplist;
	var m_msgbox   = ( audioplaceholder == null )?utilCreateDialog   ( "Player",false,{'linemin':30,'linemax':40})
	                 :( visi.getElement(audioplaceholder) == null)?utilCreateDialog   ( "Player",false,{'linemin':30,'linemax':40}):visi.getElement(audioplaceholder);
			 
	var m_box      = null;
	var m_playeng  = null;

	var m_prop     = 
	{  'maxwidth'   : 330,
	   'maxheight'  :300,
	   'minwidth'   :330,
	   'bkglistover':"#f1f1f1",
	   'bkglistout' :"#e9e9e9",
	   'clrlstover' :'#000000', 
	   'clrlstout'  :'#9b9b9b' 
	};

	this.setprop   = function(prop)
	{   for ( var i in prop ) 
			m_prop[i] = prop[i];
	}
	var m_btnimgs  =
	{   lt: 'images/sys/pannels/pan_lt.gif', 
		top:'images/sys/pannels/pan_st.gif', 
		rt: 'images/sys/pannels/pan_rt.gif',
		lef:'images/sys/pannels/pan_sl.gif',
		ct: 'images/sys/pannels/pan_inn.gif',
		rig:'images/sys/pannels/pan_sr.gif',
		lb: 'images/sys/pannels/pan_lb.gif', 
		bot:'images/sys/pannels/pan_sb.gif', 
		rb: 'images/sys/pannels/pan_rb.gif'
	 };
	 
	 this.setbtnimgs = function( imgset )
	 {   for ( var i in imgset )
		       m_btnimgs[i] = imgset[i];
	 }

	if ( typeof m_msgbox.create == 'function')
	{   m_msgbox.setColors ( '#ffffff','black');
	    m_msgbox.setFont   ( 'font-weight','bold','font-family','Arial');
	    m_msgbox.setprop   ( m_prop );
		m_msgbox.create    ( );
	
		var o = m_msgbox.getdlg().content;
		visi.setStyles(o, {'background':"none", 'border':"none"});

	}

	if ( typeof m_msgbox.create == 'function')
		  m_box = new clsMsgBox( m_msgbox.getdlg( ).content, playerid+PLAYER_ID, visi );
	else  m_box = new clsMsgBox( m_msgbox, playerid+PLAYER_ID, visi );
//	else  m_box = new clsMsgBox( m_msgbox.content, playerid+PLAYER_ID, visi );
	
    this.getObjects   = function( ) { return { player:m_playeng, dialog:m_msgbox,msgbox:m_box}; }
	
	this.create   = function( )
	{
//		swfobject.addLoadEvent   ( createplayer );
		swfobject.addDomLoadEvent( createplayer );
	}
	function createplayer()
	{   var s = '';

	    m_box.setprop ( m_btnimgs );
        m_box.setprop ( { minwidth:m_prop.minwidth,imgsize:{width:24,height:24}});
        var w = m_prop.minwidth-48;
		
		s += '<table width="100%" align="center" style="border:0px solid red;padding:10px; margin:0 auto;"><tbody>'+"\n";
		s += '<tr><td  valign="top" style="border:0px solid red; text-align:left; vertical-align:top;">';
		s += '<div id="' + m_playerid + '"> Replace it </div>';
		s +='</td></tr>'+"\n";
		s += '<tr><td>&nbsp;</td></tr>';
		for ( var i = 0; i < m_audiolst.length; i++ )
		{   s += '<tr style="cursor:pointer;">';
			s += '<td id="' +  playerid + i + '" width="100%" align="center" style="font-weight:bold; font-size: 12px; color:' + m_prop.clrlstout + ';">';
			s += '&nbsp;' + m_audiolst[i].text + '&nbsp;</td></tr>'+"\n";
		}
		s += '<tr style="cursor:pointer;">';
		s += '<td id="playerStopId" align="center" style="font-weight:bold; font-size: 12px; color:' + "#000000" + '; text-decoration:underline;">';
		s += 'Stop';
		s += '</td></tr>';
		s += '</tbody></table>';

		m_box.setcontent( s );
		m_box.create    ( );// links container
		
		if ( typeof m_msgbox.create == 'function') // if standalone player
			 m_msgbox.show( true );
					 
		m_playeng = new clsPlayerAPI( m_playerid, '', m_prop.minwidth-2*m_box.getborderwidth(), 20 );
		m_playeng.setColors( m_playeng.clrsheme ( '0x666666','0xffffff','0xffffff','0xffffff' ));
		
		for ( var i = 0; i < m_audiolst.length; i++)
		{   var id = '' + m_playerid + i;
			var o     = $(id);
			
			m_audiolst[i].id = id;
			if ( m_audiolst[i].link )
			{   o.link        = m_audiolst[i].link;
				o.onclick     = playOnClick;
				o.onmouseover = playMousemove;
				o.onmouseout  = playMousemove;
			}
		}
		var o = $("playerStopId");
		if ( o ) o.onclick = playOnStop;
        m_playeng.create   ( );
		
		if ( typeof m_msgbox.create == 'function')			
			 m_msgbox.setshowcallback( m_playeng.playStop );

		PLAYER_ID++;
		
	}
	this.playFile = function( audio )
	{
		m_playeng.playFile( audio );
	}
	function playMousemove( event )
	{   event = (event) ? event : window.event;
	    var td = visi.getEventTarget( event );
		switch( event.type )
		{   case 'mouseover': td.style.backgroundColor = m_prop.bkglistover; td.style.color = m_prop.clrlstover; break;
			case 'mouseout':  td.style.backgroundColor = m_prop.bkglistout;  td.style.color = m_prop.clrlstout;  break;
		}
	}
};

function createAudioPanel( plaseholder,width )
{
	var obj = visi.getElement( plaseholder );
	if ( obj )
	{   var med = obj.getElementsByTagName( 'a');
		if ( med && med.length )
		{   audioproplist = new Array( );
			for ( var i = 0; i < med.length; i++)
			{   var prop = new Object( );
				prop.link = visi.trim( med[i].href );
				prop.text = visi.trim( visi.getInnerText( med[i] ) );
				prop.id   = '';
				audioproplist[i] = prop;
			}
			audioproplist[audioproplist.length] = { id : '', link : "", text : " "};
            var myplayer    = new clsPlayerDlg( plaseholder,'player',null,audioproplist);
            myplayer.setprop( {'maxwidth':width+10,'maxheight':300,'minwidth':width});
			myplayer.create ( );
			document.body.player = myplayer;
		}
	}
	
}
