/*************************************************************************
*
* ADOBE CONFIDENTIAL
* ___________________
*
*  Copyright 2009 Adobe Systems Incorporated
*  All Rights Reserved.
*
* NOTICE:  All information contained herein is, and remains
* the property of Adobe Systems Incorporated and its suppliers,
* if any.  The intellectual and technical concepts contained
* herein are proprietary to Adobe Systems Incorporated and its
* suppliers and may be covered by U.S. and Foreign Patents,
* patents in process, and are protected by trade secret or copyright law.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe Systems Incorporated.
*
**************************************************************************/

// ************************* API FUNCTIONS *******************************
function isDOMRequired()
{
  return false;
}

function showIf()
{
	var dom = dw.getActiveWindow();
    if ( dom == null || dom.getDesignViewMode() != 'live')
        return false;
    

    return true;
}

function canAcceptCommand(opt) 
{
	var dom = dw.getActiveWindow();
	if( dom == null )
		return false;

    var liveViewEnable = (dw.canShowLiveView(dom) && !dom.getExpandedTablesMode() && !dw.getLiveDataMode() && dom.getView() != 'browse');
	
	switch(opt)
	{
		case 'live_view_menu':
		case 'live_view':
		case 'design_view':
			
			return (liveViewEnable) && !dom.isFluidGridDoc();
		
			
		case 'live_code':
		{
			return (liveViewEnable);
		}
        case 'inspect_ToolbarButton':
        case 'inspect_LiveViewContext':
        case 'inspect_ViewMenu':
		    {

		    // Context-sensitive tooltip
			var msgId;
			if( dom.getLiveViewInspectMode() )
			    msgId = "DW_InspectMode/checkbutton/tooltip/inspectOff";
			else if( dom.getDesignViewMode() == 'live' )
			    msgId = "DW_InspectMode/checkbutton/tooltip/inspectOn";
			else
			    msgId = "DW_InspectMode/checkbutton/tooltip/liveViewAndInspectOn";

            var tt = dw.loadString(msgId);
			dom.setToolbarItemAttribute('DW_Toolbar_Main', 'DW_InspectMode', 'tooltip', tt);
			
			return (liveViewEnable);
        }	
		case 'Show_Hide_VMQ' :
		{
			if(dw.isLiveViewVisible())
			{
				if(dw.isVmqBarVisible())
				{
					dom.setToolbarItemAttribute("DW_Toolbar_Main", "VMQ_Show_Hide", "tooltip", dw.loadString("VMQ_Show_Hide/checkbutton/tooltip/Hide"));
				}
				else
				{
					dom.setToolbarItemAttribute("DW_Toolbar_Main", "VMQ_Show_Hide", "tooltip", dw.loadString("VMQ_Show_Hide/checkbutton/tooltip/Show"));
				}
				return true;
			}
			else return false;
		}
	}
	return false;
}

function receiveArguments(opt) 
{
	var dom = dw.getActiveWindow();
	if( dom == null )
		return;
	
	switch(opt)
	{
		case 'live_view_menu':
			if( dom.getDesignViewMode() == 'live' ) 
			{
				dom.setDesignViewMode('editable');
			}
			else
			{
				dom.setDesignViewMode('live');
			}
			dw.restoreFocusToActiveView();
			break;
			
		case 'live_view':
			if( dom.getDesignViewMode() != 'live' ) 
			{
			    dom.setDesignViewMode('live', 'ToolBar');
			    dw.restoreFocusToActiveView();
			}
			
			break;
			
		case 'design_view':		
			if( dom.getDesignViewMode() == 'live' ) 
			{
			    dom.setDesignViewMode('editable', 'ToolBar');
			    dw.restoreFocusToActiveView();
			}
			
			break;
			
		case 'live_code':
			if( dom.getLiveCodeEnabled() )
			{
				dom.setLiveCodeEnabled(false);
			}
			else
			{
				//ensure Live View is on
				if (dom.getDesignViewMode() != 'live')
					dom.setDesignViewMode('live');
				
				dom.setLiveCodeEnabled(true);
			}
			break;
			
        case 'inspect_ToolbarButton':
        case 'inspect_LiveViewContext':
        case 'inspect_ViewMenu':
            {
                var inspect_origin = opt.split("_");

                if (dom.getLiveViewInspectMode()) {
                    dom.setLiveViewInspectMode(false, inspect_origin[1]);
                }
                else {
                    //ensure Live View is on
                    dom.setDesignViewMode('live');

                    // Verify that Live View was successfully started
                    if (dom.getDesignViewMode() == 'live') {
                        dom.setLiveViewFollowsTheNextLink(false);   //ensure Follow we won't follow the next link
                        dom.setLiveViewFollowsAllLinks(false); 	    //ensure Follow any link
                        dom.setLiveViewInspectMode(true, inspect_origin[1]);
                    }
                }
                break;
            }
		case 'Show_Hide_VMQ' :
		{
			var vmq = dw.vmq;
			if(vmq == null)
				return;
			if(dw.isVmqBarVisible())
				vmq.showVmqBar(false);
			else
				vmq.showVmqBar(true);
		}
	}
}

function isCommandChecked(opt)
{
	var dom = dw.getActiveWindow();
	if( dom == null )
		return false;
	
	switch(opt)
	{
		case 'live_view_menu':
		case 'live_view':
			return (dom.getDesignViewMode() == 'live');
		
		case 'design_view':
			return (dom.getDesignViewMode() != 'live');
			
		case 'live_code':
			return (dom.getLiveCodeEnabled());

        case 'inspect_ToolbarButton':
        case 'inspect_LiveViewContext':
        case 'inspect_ViewMenu':
			return (dom.getLiveViewInspectMode());
		case 'Show_Hide_VMQ' :
			return (dw.isVmqBarVisible());
	
	}
	
	return false;
}

// ************************* UTILITY FUNCTIONS *******************************
