﻿package captivate_swf 
{
	import flash.display.*;
	import flash.net.*;
	import flash.net.navigateToURL;
	import flash.net.URLRequest;
	import flash.ui.*;
	import flash.events.*;

	import captivate.veela_as3.rdMovie;
	import captivate.veela_as3.rdPacemaker;
	import captivate.veela_as3.rdSlideTransition;
	import captivate.veela_as3.rdSlideData;

public dynamic class CaptivateMainTimeline extends MovieClip 
{

	var waitCount:Number = 0;
	var expired:Boolean = false;
	var rdinfoHasPlaybar:Boolean = true;
	var rdinfoFrameCount:Number = 90;
	var rdinfoSlidesInProject:Number = 1;
	var rdinfoFPS:Number = 30;
	var rdinfocurrFrame:Number = 1;
	var rdinfoCurrentFrame:Number = 1;
	var rdinfoCurrentSlide:Number = 1;
	var rdinfoCurrentSlideInProject:Number = 1;
	var rdinfoSlideCount:Number = 1;
	var rdIsMainMovie:Boolean = true;
	var rdIsPreview:Boolean = false;
	var rdIsStandalone:Boolean = false;
	var rdcmndGotoFrame:Number = -1;
	var rdcmndResume:Boolean = false;
	var rdcmndPause:Boolean = false;
	var rdcmndPrevious:Boolean = false;
	var rdcmndNext:Boolean = false;
	var rdcmndCC:Boolean = false;
	var rdcmndMute:Boolean = false;
	var rdcmndPlaybarMoved:Boolean = false;
	var movieQuality:String = "best";
	var CaptivateVersion:String = "2.0.0";

	public var movie:rdMovie = null;

	
	public var movieXML:XML = CAPTIVATEXMLSTR;
	
	function CaptivateMainTimeline()
	{
		
		//trace(" ******** CaptivateMainTimeline ********")
		
		addFrameScript(0, frame1);
		addFrameScript(1, frame2);
		addFrameScript(LASTFRAMEXMLSTR, lastFrame);
		//addFrameScript(2, lastFrame);
		
		//TODOAS3 Move it back to frame2 from constructor
		movie = (new captivate.Veela_AS3.rdMovie(this));
		_captivateMovie = movie;
		
	}

	public function isWaiting() 
	{
		if (waitCount) {
		    return(true);
		}
		return(false);
	}

	public function incrementWait() 
	{
		if (waitCount) {
		    waitCount++;
		} else {
		    waitCount = 1;
		}
		trace("incrementWait = " + waitCount);
	}

	public function decrementWait() 
	{
		if (waitCount) {
		    waitCount--;
		}
		trace("decrementWait = " + waitCount);
	}

	public function setExpired() 
	{
		expired = true;
	}

	public function isExpired() 
	{
		if (expired == true) {
		    return(true);
		} else {
		    return(false);
		}
	}

	function createCpContextMenu() 
	{
		//KKAS3 TODO
		//return;
		
		var myContextMenu:ContextMenu = new ContextMenu();
		myContextMenu.hideBuiltInItems();

		var item:ContextMenuItem = new ContextMenuItem("Created with Captivate");// Any Menu  item with "adobe" wont appear in FP9
		myContextMenu.customItems.push(item);
		item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, adobeHomeMenuItemHandler);

		this.contextMenu = myContextMenu			
	}		


	function adobeHomeMenuItemHandler() 
	{
	    var url:String = "http://www.adobe.com/products/captivate";
	    var request:URLRequest = new URLRequest(url);
	    navigateToURL(request);
	}		

	function frame1()
	{
		
FIRSTFRAMEXMLSTR
		/*trace("CaptivateMainTimeline::frame1()");
		//TODO: Initialize these values.
		rdinfoHasPlaybar = true;
		rdinfoFrameCount = 90;
		rdinfoSlidesInProject = 1;
		rdinfoFPS = 30;
		rdinfocurrFrame = 1;
		rdinfoCurrentFrame = 1;
		rdinfoCurrentSlide = 1;
		rdinfoCurrentSlideInProject = 1;
		rdinfoSlideCount = 1;
		rdIsMainMovie = true;
		rdIsPreview = false;
		rdIsStandalone = false;
		rdcmndGotoFrame = -1;
		rdcmndResume = false;
		rdcmndPause = false;
		rdcmndPrevious = false;
		rdcmndNext = false;
		rdcmndCC = false;
		rdcmndMute = false;
		rdcmndPlaybarMoved = false;
		movieQuality = "best";
		CaptivateVersion = "4.0.0";
		*/

		createCpContextMenu();

	}
	
	function frame2()
	{
SECONDFRAMEXMLSTR
	
	this.addEventListener(Event.ENTER_FRAME,onenterframe);
	
/*
		trace("CaptivateMainTimeline::frame2() ");
		//TODOAS3 Move it back here from constructor
		//movie = (new captivate.Veela_AS3.rdMovie(this));
		//_captivateMovie = movie;
		
		
		//var pacemaker = (new captivate.Veela_AS3.rdPacemaker(movie));
		//movie.SetPacemaker(pacemaker);
		movie.setSize(641, 481);
		movie.m_fps = 30;
		movie.m_supportsSyncPlayback = true;
*/
		/*movie.m_isPreviewForAudioDialog = false;
		var index = 0;
		var slideTransition = new captivate.Veela_AS3.rdSlideTransition(0, 0, 30, 0);
		movie.addSlideTransition(index, slideTransition);
		var slideData = new captivate.Veela_AS3.rdSlideData(0, 0, 90, 92, 90, 0, 0, 1000, 1000, 0, 0, 0, 0, 0, 0, 0, 0);
		movie.addSlide(index, slideData);
		var index = 1;
		var slideTransition = new captivate.Veela_AS3.rdSlideTransition(0, 30, 0, 60);
		movie.addSlideTransition(index, slideTransition);
		var endSwfAction = 0;
		*/
	
		

/*
		//TODOAS3 Hardcode for now.
		movie.m_isPreviewForAudioDialog = false;
		var index = 0;
		//var slideTransition = new captivate.monalisa.rdSlideTransition(0, 0, 30, 0);
		//movie.addSlideTransition(index, slideTransition);
		var slideData = new rdSlideData(0, 0, 90, 90, 90, 0, 0, 1000, 1000, 0, 1, 0, 0, 0, 0, 0, 0);
		movie.addSlide(index, slideData);
		
		index = 1;
		//var slideTransition = new captivate.monalisa.rdSlideTransition(1, 0, 30, 90);
		//movie.addSlideTransition(index, slideTransition);
		var slideData = new rdSlideData(90, 90, 180, 182, 90, 0, 0, 1000, 1000, 0, 0, 0, 0, 0, 0, 0, 0);
		movie.addSlide(index, slideData);
		
		index = 2;
		var slideData = new rdSlideData(180, 180, 270, 272, 90, 0, 0, 1000, 1000, 0, 0, 0, 0, 0, 0, 0, 0);
		movie.addSlide(index, slideData);
		
		index = 3;
		var endSwfAction = 0;
*/


/* AS2 code
var movie = (new captivate.Veela_AS3.rdMovie(this));
    _captivateMovie = movie;
    var pacemaker = (new captivate.Veela_AS3.rdPacemaker(movie));
    movie.SetPacemaker(pacemaker);
    movie.setSize(641, 481);
    movie.m_fps = 30;
    movie.m_supportsSyncPlayback = true;
    function toberemoved() {
    }
    movie.m_isPreviewForAudioDialog = false;
    var index = 0;
    var slideTransition = new captivate.monalisa.rdSlideTransition(0, 0, 30, 0);
    movie.addSlideTransition(index, slideTransition);
    var slideData = new captivate.monalisa.rdSlideData(0, 0, 90, 90, 90, 0, 0, 1000, 1000, 0, 1, 0, 0, 0, 0, 0, 0);
    movie.addSlide(index, slideData);
    var index = 1;
    var slideTransition = new captivate.monalisa.rdSlideTransition(1, 0, 30, 90);
    movie.addSlideTransition(index, slideTransition);
    var slideData = new captivate.monalisa.rdSlideData(90, 90, 180, 182, 90, 0, 0, 1000, 1000, 0, 0, 0, 0, 0, 0, 0, 0);
    movie.addSlide(index, slideData);
    var index = 2;
    var slideTransition = new captivate.monalisa.rdSlideTransition(0, 30, 0, 150);
    movie.addSlideTransition(index, slideTransition);
    var endSwfAction = 0;
    _accProps = new Object();
    _accProps.name = "blankslide ";
    Accessibility.updateProperties();
*/
	}
	
	function lastFrame()
	{
		stop();
	}
    function onenterframe(event:Event):void
    {
       
       // trace("*********** CaptivateMainTimeline::onenterframe() ********");
        if (movie != undefined) {
            movie.movieonEnterFrame();
        }
    }
    
    //AS3TODO check this same func present in rdmoive
    public function itemLoaded(item) {
        if (typeof(item.setMovie) == "function") {
            item.setMovie(this.movie);
        }
    }
    
    public function getSlideIndexFromFrame(frame) {
        return(movie.getSlideIndexFromFrame(frame));
    }
    


}

}
