// Copyright (c) 2008 - 2010. Adobe Systems Incorporated.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
//   * Redistributions of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//   * Redistributions in binary form must reproduce the above copyright notice,
//     this list of conditions and the following disclaimer in the documentation
//     and/or other materials provided with the distribution.
//   * Neither the name of Adobe Systems Incorporated nor the names of its
//     contributors may be used to endorse or promote products derived from this
//     software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.


// disable the items if we haven't configured the app settings
function canAcceptCommand()
{
    if (dw.nativeAppFramework.hasAppData(site.getCurrentSite())
    &&  dw.nativeAppFramework.hasAppFWSettings())
        return true;
    else
        return false;
}


// getDynamicContent returns the contents of a dynamically generated menu.
// returns an array of strings to be placed in the menu, with a unique
// identifier for each item separated from the menu string by a semicolon.
//
// return null from this routine to indicate that you are not adding any
// items to the menu

function getDynamicContent(itemID)
{	
	var menuItems = new Array();
    var siteName = site.getCurrentSite();

    if (siteName == "")
    {
        // just pass a bogus id since it will be dimmed anayways
        menuItems[0] = dw.loadString("NAF/common/noSite/menuText") + ";id='-1'";
        return menuItems;
    }

    if (!dw.nativeAppFramework.hasAppData(siteName))
    {
        // just pass a bogus id since it will be dimmed anayways
        menuItems[0] = dw.loadString("NAF/common/noAppData/menuText") + ";id='-1'";
        return menuItems;
    }

    var deviceList = dw.nativeAppFramework.getDeviceList(siteName);
    for (var i = 0; i < deviceList.length; i++)
    {
        menuItems[i] = deviceList[i];
        menuItems[i] += ";id='" + deviceList[i] + "'"; // each item needs an ID
    }

	return menuItems;
}

// execute a menu item. arg[0] will contain the id of the menu that was selected.
function receiveArguments()
{
	var maxVersion = 0;
	
	if (arguments[0] == "_Android")
		maxVersion = getAndroidMaxTargetIdForMaxSDKVersion(g_androidMaxSDKVersion);

    dw.nativeAppFramework.doBuild(arguments[0], maxVersion);
}

// we don't allow multi-selection so return false
function isCommandChecked()
{
    return false;
}