  var voiceIntervalID;
  var currentVoiceTime;
  var lastVoicePosition;
  var voiceNum = 0;
  var playSpeed = 1;
  var repeatIntervalID = -1;
  var repeatStartPos = -1;
  var repeatFinishPos = -1;

  function voiceAction(_page){
      if(!top.VOICE_COMPONENT || top.VOICE_COMPONENT==undefined) return;
   	  var voiceAction = eval("top.voice"+voiceNum+"[Math.ceil(_page/2.)]");
   	  var _voiceTime = eval("top.voiceTime"+voiceNum+"[Math.ceil(_page/2.)]"); 
  	  
  	  clearInterval(voiceIntervalID);
  	  top.VOICE_OBJECT.controls.stop();
  	  if(voiceAction=="none"){
  	  }else if(voiceAction=="silent"){
  	  	voiceIntervalID = setTimeout("CALLBACK_voiceSilentAction()",_voiceTime*1000);
  	  }else{
  	  	lastVoicePosition = -1;	  	
  	  	currentVoiceTime = _voiceTime;
  	  	top.VOICE_OBJECT.URL = "voice/"+voiceAction;	  	
  	  	voiceIntervalID = setInterval("CALLBACK_voiceEndCheck()",50);
  	  }
  	  
  	  top.VOICE_COMPONENT.vol_set(top.VOICE_OBJECT.Settings.volume);
  }
  
  function CALLBACK_voiceSilentAction(){
   	  clearTimeout(voiceIntervalID);
	  top.next();
  }
	
  function CALLBACK_voiceEndCheck(){
	    if(top.VOICE_OBJECT.controls==null){
			return;
		}
		var currentVoicePosition = top.VOICE_OBJECT.controls.currentPosition;
		if((currentVoicePosition==0 && lastVoicePosition > currentVoiceTime-1) || (currentVoicePosition > currentVoiceTime)){
			clearInterval(voiceIntervalID);
			top.VOICE_OBJECT.controls.stop();
			top.next();
		}		
		lastVoicePosition = currentVoicePosition;
		top.VOICE_COMPONENT.setPositionHandle(currentVoicePosition,currentVoiceTime);
	}
	
	function CALLBACK_repeatCheck(){
		if(repeatFinishPos<= top.VOICE_OBJECT.controls.currentPosition){
			top.VOICE_OBJECT.controls.currentPosition = repeatStartPos;
		}
	}
	
	function voice_setVolumn(_volumn){
		top.VOICE_OBJECT.Settings.volume = _volumn;
	}
	
	function voice_setPlaySpeed(_speed){
		top.VOICE_OBJECT.controls.Rate = _speed;
	}
	
	function voice_mute(_isMute){
		top.VOICE_OBJECT.settings.mute = _isMute;
	}
	
	function voice_play(){
		voice_repeatInit();
		if(top.VOICE_OBJECT.controls.currentPosition==0){
			voiceAction(top.cPage);
		}else{
			top.VOICE_OBJECT.controls.play();
		}
	}
	
	function voice_slow(){
		if(playSpeed == 0.5) return;
		playSpeed = playSpeed / 2.0;
		top.VOICE_OBJECT.Settings.rate = playSpeed;
	}
	
	function voice_quick(){
		if(playSpeed == 2) return;		
		playSpeed = playSpeed * 2.0;
		top.VOICE_OBJECT.Settings.rate = playSpeed;
	}
	
	function voice_stop(){
		voice_repeatInit();
		clearTimeout(voiceIntervalID);		
		top.VOICE_OBJECT.controls.stop();
	}
	
	function voice_pause(){
		top.VOICE_OBJECT.controls.pause();
	}
	
	function voice_repeat(){
		if(repeatIntervalID==-1){
			if(repeatStartPos == -1){
				repeatStartPos = top.VOICE_OBJECT.controls.currentPosition;
			}else{
				repeatFinishPos = top.VOICE_OBJECT.controls.currentPosition;
				repeatIntervalID = setInterval("CALLBACK_repeatCheck()",50);
			}
		}else{
			voice_repeatInit();
		}
	}
	
	function voice_repeatInit(){
			clearInterval(repeatIntervalID);
			repeatStartPos = -1;
			repeatFinishPos = -1;
			repeatIntervalID = -1;
	}
	
	function voice_setVoiceNum(_num){
		if(voiceNum!=_num){
			voiceNum = _num;
			voice_stop();
			voice_play();
		}
	}

