﻿//功能描述：声音文件
//文件路径：js/lessonSound.js
/*********************************************************
 功能：打开声音
 类型： 接口函数
 参数：	pFileName:文件名；
	pPlayID:播放标识符(字符串);
	pAutoPlay:是否自动播放(true/false)
 返回值:无;
 创建人:代振国	       更改时间：06/04/21 10:00
*********************************************************/
function LRLoadSound(pPlayID,soundpage)
{
	var mMediaPlayer=document.getElementById(pPlayID);
	if (mMediaPlayer!=null)
	{
	                  mMediaPlayer.removeNode(true);
	}

	var soundhtml="<OBJECT id='" + pPlayID+ "' name='"+pPlayID+"' codeBase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' height='0' width='0' align='middle' classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' ><PARAM NAME='allowScriptAccess' VALUE='sameDomain'><PARAM NAME='movie' VALUE='"+soundpage+"'><PARAM NAME='quality' VALUE='high' ><PARAM NAME='bgcolor' VALUE='#ffffff'><PARAM NAME='wmode' VALUE='transparent'><embed  src='"+soundpage+"' width='1' height='1' align='middle' quality='high' bgcolor='#ffffff' id='" + pPlayID + "' name='"+pPlayID+"' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' wmode='transparent' /></OBJECT>";

	if(window.ActiveXObject) 
		document.body.insertAdjacentHTML("BeforeEnd", soundhtml);
	else{
		var range=document.body.ownerDocument.createRange(); 
		range.setStartBefore(document.body); 
		var fragment = range.createContextualFragment(soundhtml);  
		document.body.insertBefore(fragment,document.body.firstChild);  
	} 

	//document.body.insertAdjacentHTML("BeforeEnd", soundhtml);
	//BeforeEnd
	return 1;
}

var stens_one_id = 0;
function LRSoundFileOpen(pFileName,pPlayID,pAutoPlay,stid)
{ 
	var mObjectone= document.getElementById(stens_one_id);
	
	if (mObjectone && stens_one_id != 0)
		mObjectone.outerHTML = gReadStensCurStensHTML;
		
	stens_one_id = stid;
	
	var mMediaPlayer = IEorFirefox(pPlayID);
	if (mMediaPlayer==null)
	{
		return 0;
	}
	mMediaPlayer.sndloadurl(pFileName,pAutoPlay,"PlayerEvent");
	//if (pAutoPlay) mMediaPlayer.sndplay(); 

	return 1;
}

function LRSoundFileallOpen(pFileName,pPlayID,pAutoPlay,stid)
{ 
	var mMediaPlayer = IEorFirefox(pPlayID);
	if (mMediaPlayer==null)
	{
	    return 0;
	}
       
	mMediaPlayer.sndloadurl(pFileName,pAutoPlay,"PlayerEventall");
	//if (pAutoPlay) mMediaPlayer.sndplay(); 

	return 1;
}

function LRSoundFileOpenone(pFileName,pPlayID,pAutoPlay)
{ 	
	var mObjectone= document.getElementById(stens_one_id);
	
	if (mObjectone && stens_one_id != 0)
		mObjectone.outerHTML = gReadStensCurStensHTML;

	stens_one_id = 0;
	
	var mMediaPlayer = IEorFirefox(pPlayID);
	if (mMediaPlayer==null)
	{
	                  return 0;
	}

	mMediaPlayer.sndloadurl(pFileName,pAutoPlay,"PlayerEvent");
//	if (pAutoPlay) mMediaPlayer.sndplay(); 

	return 1;
}

/*********************************************************
 功能：关闭
 类型： 接口函数
 参数：	pPlayID:播放标识符(字符串);
 返回值:无;
 创建人:代振国	           更改时间：06/04/21 10:00
*********************************************************/
function LRSoundClose(pPlayID)
{
   var mMediaPlayer = IEorFirefox(pPlayID);
    if (mMediaPlayer!=null)
    {
	  mMediaPlayer.removeNode(true);
    }
   return 1;
}


function LRSoundPlay(pPlayID)
{
 var mMediaPlayer = IEorFirefox(pPlayID);

    if (mMediaPlayer!=null)
    {
	mMediaPlayer.sndplay();
    }
   return 1;
}

function LRSoundStop(pPlayID)
{
var mMediaPlayer = IEorFirefox(pPlayID);
   if (mMediaPlayer!=null)
   {
	mMediaPlayer.sndstop();
   }
   return 1;
}

//=============================================================================
function PlayerEvent(txt)
{
     switch(txt){
	case "play_finished"://播放完毕
		break;
	case "load_finished"://加载成功
		break;
	case "load_error"://加载失败
		break;
	case "load_start"://开始加载
		break;
	case "play_start"://开始播放
		break;
	case "play_stop"://停止播放
		break;
             }
}

//=============================================================================
function PlayerEventall(txt)
{
     switch(txt){
	case "play_finished"://播放完毕
		of_renext();
		break;
	case "load_finished"://加载成功
		break;
	case "load_error"://加载失败
		break;
	case "load_start"://开始加载
		break;
	case "play_start"://开始播放
		break;
	case "play_stop"://停止播放
		break;
             }
}
/*****************************************
设置单句的变色
*****************************************/
var gReadStensCurStensHTML = "";//记录当前句子的所有HTML信息，根据这些信息将句子状态还原
function stens_old_sign(){
  	 var mObject= document.getElementById(stens_one_id);
  	 if(mObject)
  	 {
   	     gReadStensCurStensHTML = mObject.outerHTML;
	     mObject.style.color = "blue";
	     mObject.style.textDecoration="underline";
 	  }
}

/****************************************
单句变色的还原
*****************************************/
function stens_set_sign(){
  	 var mObjectone= document.getElementById(stens_one_id);
	
	if (mObjectone && stens_one_id != 0)
		mObjectone.outerHTML = gReadStensCurStensHTML;

	stens_one_id = 0;
}

function PlayerStateTxt(txt)
{
              st_state2.innerHTML=txt;
}

/********************************************************
功能：让Firefox支持outerHTML方法
*********************************************************/
if(window.HTMLElement) {
    HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML){
        var r=this.ownerDocument.createRange();
        r.setStartBefore(this);
        var df=r.createContextualFragment(sHTML);
        this.parentNode.replaceChild(df,this);
        return sHTML;
        });

    HTMLElement.prototype.__defineGetter__("outerHTML",function(){
     var attr;
        var attrs=this.attributes;
        var str="<"+this.tagName.toLowerCase();
        for(var i=0;i<attrs.length;i++){
            attr=attrs[i];
            if(attr.specified)
                str+=" "+attr.name+'="'+attr.value+'"';
            }
        if(!this.canHaveChildren)
            return str+">";
        return str+">"+this.innerHTML+"</"+this.tagName.toLowerCase()+">";
        });
        
 HTMLElement.prototype.__defineGetter__("canHaveChildren",function(){
  switch(this.tagName.toLowerCase()){
            case "area":
            case "base":
         case "basefont":
            case "col":
            case "frame":
            case "hr":
            case "img":
            case "br":
            case "input":
            case "isindex":
            case "link":
            case "meta":
            case "param":
            return false;
        }
        return true;

     });
}

/********************************************************************/
/*********************************************************
 功能： 关闭生字词对话框
 类型： 接口函数
*********************************************************/
function LRNewWordDetailClose(pPlayID)
{
    LRSoundStop(pPlayID);
    NewWordBox.style.visibility="hidden";		
}

function IEorFirefox(pPlayID){
	var mMediaPlayer = document.getElementById(pPlayID);
	var firefoxnum = 0;
	if(window.ActiveXObject) 
		mMediaPlayer = mMediaPlayer;
	else{
	    var ua = navigator.userAgent.toLowerCase();
	    
	    if (document.getBoxObjectFor)
                firefoxnum = ua.match(/firefox\/([\d.]+)/)[1];
    
            if (parseInt(firefoxnum) >= 3){ 
	 	mMediaPlayer = mMediaPlayer.getElementsByTagName("embed")[0];
	    }else
	    	mMediaPlayer = mMediaPlayer;
	}
	return mMediaPlayer;
}
