// This script comes from http://rainbow.arch.scriptmania.com/merlin/

var Merlin;
var UsedChars;
var MerlinID;
var MerlinACS;
var MerlinLoaded;
var LoadReq;
var MerlinLeftX, MerlinCenterX, MerlinRightX;
var MerlinTopY, MerlinCenterY, MerlinBottomY;
UsedChars = "Merlin";
MerlinID = "Merlin";
MerlinACS = "Merlin.acs";
MerlinLoaded = false;

Window_OnLoad();

function Window_OnLoad(){
	AgentControl.Connected = true;
	MerlinLoaded = LoadLocalAgent(MerlinID, MerlinACS);
	if (!MerlinLoaded){
		MerlinLoaded = LoadLocalAgent(MerlinID, "");}
	if (MerlinLoaded){
		SetCharObj();}
	CheckLoadStatus();}
	   
function LoadLocalAgent(CharID, CharACS){
	AgentControl.RaiseRequestErrors = false;
	if (CharACS == ""){
		LoadReq = AgentControl.Characters.Load(CharID);}
	else {
		LoadReq = AgentControl.Characters.Load(CharID, CharACS);}
	AgentControl.RaiseRequestErrors = true;
	if (LoadReq.Status != 1){
		return(true);}
	return(false);}

function SetCharObj(){
	Merlin = AgentControl.Characters.Character(MerlinID);
	Merlin.LanguageID = 0x410;}
	
function CheckLoadStatus(){
	if (!MerlinLoaded){
		return(false);}
	window.status = "";
	AgentIntro();
	return(true);}
	
function GetScreenPositions(){
	var ScreenWidth = window.screen.width;
	var ScreenHeight = window.screen.height;
	if ((ScreenWidth == 0) || (ScreenHeight == 0)){
		ScreenWidth = 800;
		ScreenHeight = 600;}
	MerlinCenterX = (parseInt(ScreenWidth / 2) - parseInt(Merlin.Width / 2));
	MerlinRightX = (ScreenWidth - Merlin.Width);
	MerlinCenterY = (parseInt(ScreenHeight / 2) - parseInt(Merlin.Height / 2));
	MerlinBottomY = (ScreenHeight - Merlin.Height);}
	
function AgentIntro(){
    GetScreenPositions();
    Merlin.MoveTo(600, 400);
    Merlin.Show();
    Merlin.Play("Wave"); 
    Merlin.Play("RestPose");}

function Say(words){
    Merlin.Speak(words);}

function Say2(words){
    Merlin.Balloon.Style=0;
    Merlin.Speak(words);
    Merlin.Balloon.Style=0;}

function Say3(){
for(i=0;i<Say3.arguments.length;i++){Merlin.Speak(Say3.arguments[i]);}
}

function Read(){
    Merlin.MoveTo(80, 400);
    Merlin.Play("Read");
for(i=0;i<Read.arguments.length;i++){Merlin.Speak(Read.arguments[i]);}
    Merlin.Play("ReadReturn");
}

