// Copyright 2000, 2001, 2002, 2003 Macromedia, Inc. All rights reserved.

//---------------     API FUNCTIONS    ---------------

function isDOMRequired() { 
	// Return false, indicating that this object is available in code view.
	return false;
}

function isAsset() {
	return true;
}

function objectTag(assetArgs) {
  var rtnStr = "";
  var altTextArg = "";
  var bDialogState = dw.getShowDialogsOnInsert(); // Was dialog shown?
  var prefsAccessibilityOption = null;

  var newURL;
  var localFileURL;

if (dw.appName == "Contribute")
{
    // note: arguments is a javascript lang const for this method
    if (arguments.length == 0)
    {
		if (MM.insertImgType == "file")
		{
			localFileURL = dw.doURLEncoding(dw.browseForFileURL("select", dw.loadString("insert doc dialog/image title"), true, "","","", "", "desktop"));
			if (localFileURL != "")
			{
				// check to see if this is an absolute path
				if (!dw.getDocumentDOM().isDirectEditSite ())
				{
					newURL = dw.AddImageToSiteTempAssetsAndResize(localFileURL);
				}
				else
				{
					newURL = localFileURL;
				}
			}
			else
			return '';
		}
		else if (MM.insertImgType == "website")
		{
			newURL = dw.doURLEncoding (dw.browseForImage ());
		}
		
		else if (MM.insertImgType == "internet")
		{
			newURL = dw.doURLEncoding (dw.BrowseToInternetImage ());
			if(newURL.length == 0)
	           		 return; // No selection made
            
			
			var retval = dw.validateMediaFile(newURL);
			if(!retval)
				return;
			
		}
		
    }
    else
    {
      newURL = dw.doURLEncoding(arguments[0]);
    }

    if (arguments.length == 2)
      altTextArg = arguments[1];

	  }
  else
  {
    var newURL = dw.doURLEncoding(dw.browseForFileURL("select", "", true));
  }

  var imgDim = dw.getNaturalSize(newURL);
//  alert (newURL);
  //alert (imgDim[0]);
  //alert (imgDim[1]);


  if (assetArgs)
  {
  	newURL = assetArgs;
    imgDim = dw.getNaturalSize(newURL);
  }
  
  if ((newURL == '')  && bDialogState)
    return '';

  if (imgDim)
    rtnStr= '<img src="' + newURL + '" width="' + imgDim[0] +'" height="' + imgDim[1] + '"/>';
  else
    rtnStr= '<img src="' + newURL + '"/>';
  
  if (dw.appName == "Contribute")
  {
    prefsAccessibilityOption = dw.getAdminEnforceAccessibilityPref();
    if (altTextArg == "" && prefsAccessibilityOption)
	{
		rtnStr = addAccessibility(rtnStr);
	}
	else if (altTextArg != "")
	{
      	rtnStr = addAttribute("alt", altTextArg, rtnStr);
	}
  }
  else
  {
    prefsAccessibilityOption = dw.getPreferenceString("Accessibility", "Accessibility Image Options", "");
	if (prefsAccessibilityOption)
      rtnStr = addAccessibility(rtnStr);
  }


  // the Option is a *string*, not a boolean!
  if (prefsAccessibilityOption == "TRUE")  { rtnStr= addAccessibility(rtnStr);}
 
  var thisDOM = dw.getDocumentDOM();
  if (thisDOM != null)
  {
	var siteName = site.getSiteForURL(dw.getDocumentDOM().URL);
	if( siteName != '' && site.getIsServerSite(siteName) )
	{
		var fullURL;
		if( newURL[0] == "/" )
		fullURL = dw.relativeToAbsoluteURL(dw.getDocumentDOM().URL, dw.getSiteRoot(), newURL);
		else
		fullURL = dw.relativeToAbsoluteURL(dw.getDocumentDOM().URL, "", newURL);
	    
		site.get(fullURL);
	}
  }
 
  return rtnStr;
}


function addAccessibility(rtnStr) 
{
	if (dw.appName == "Contribute")
	{

		var cmdFile = dreamweaver.getConfigurationPath() + "/Commands/ccImageOptions.htm";
     }
     else 
     {
		var cmdFile = dreamweaver.getConfigurationPath() + "/Commands/ImageOptions.htm";
     }
     var cmdDOM = dreamweaver.getDocumentDOM(cmdFile);
   
     cmdDOM.parentWindow.setFormItem(rtnStr);
     if (dw.appName == "Contribute")
     {
	dreamweaver.popupCommand("ccImageOptions.htm");
     }
     else
     {
	dreamweaver.popupCommand("ImageOptions.htm");
     }

     var newString = cmdDOM.parentWindow.returnAccessibilityStr(rtnStr);
     return (cmdDOM.parentWindow.returnAccessibilityStr(rtnStr));
}


function addAttribute(tagName, tagVal, initStr){

	arrayElem= initStr.split(">");
	rtnStr= arrayElem[0] + " " + tagName + "=" + '\"' + tagVal + '\"' + ">" + arrayElem[1];
	
	return rtnStr;

}

