<!-- Copyright 2005 Macromedia, Inc. All rights reserved. -->
<html xmlns:MMString="http://www.macromedia.com/schemes/data/string/">
<head>
<title><MMString:loadString id="Toolbars/MM/ccBlogEntryAtomCategories/title" /></title>
<SCRIPT LANGUAGE="javascript" SRC="../../Shared/MM/Scripts/CMN/ccBlogMetaDataStrings.js"></SCRIPT>
<script language="JavaScript">

function showIf()
{
    var entryType = CCWorkspaceManager.getManager(dw.getDocumentDOM()).getCurBlogEntryType();
    if(entryType == 'posts')
    {
    return (!CCWorkspaceManager.getManager(dw.getDocumentDOM()).IsTrackbackEnabled());
}
    else        
	    return false;   
}

function receiveArguments(newcategory)
{
	var foundIt = false;
	
	theDom = dw.getDocumentDOM();
    var metatags = theDom.getElementsByTagName("meta");
    count = metatags.length;
    
	for (i = 0; i < count; i++)
	{ 
		if (metatags[i].name == TEMPLATE_CATEGORIES)
		{
			metatags[i].content = newcategory;
			foundIt = true;
			break;
		}
	}
	
	if (foundIt == false)
	{
		dw.getDocumentDOM().insertBlogMetaTag(TEMPLATE_CATEGORIES,newcategory);
	}

	return;
}

function canAcceptCommand()
{
	return true;
}

function getCurrentValue()
{
	var value = "";
	
    var metatags = dw.getDocumentDOM().getElementsByTagName("meta");
    count = metatags.length;
    
	for (i = 0; i < count; i++)
	{ 
		if (metatags[i].name == TEMPLATE_CATEGORIES)
		{
			value = metatags[i].content;
			break;
		}
	}
	
	if(value != "" && !isValidCategory(value))
	{
		var tmp = removeInvlidCategories(value);
		value = tmp;
		dw.getDocumentDOM().insertBlogMetaTag(TEMPLATE_CATEGORIES,value);
	}
			
	return value;
}

function getDynamicContent()
{
	var items = new Array;
	
	var dom = dw.getDocumentDOM();
	if (dom)
	{
		var wm = CCWorkspaceManager.getManager(dom);
		if (wm)
		{
			var categories = wm.getTargetBlogCategories();
			var i;
			var index = 0;
			for (i = 0; i < categories.length; i++)
			{
				items[index++] = categories[i];
			}
		}
	}
	
	return items;
}

function addRecentAddress(address)
{
	return 0;
}

function isValidCategory(value){
	
	var items = new Array;
	var result = false;
	var dom = dw.getDocumentDOM();
	if (dom)
	{
		var wm = CCWorkspaceManager.getManager(dom);
		if (wm)
		{
			var categories = wm.getTargetBlogCategories();
			var mulCategory = value;
			var start_pos = 0;
			var end_pos = -1;
			/* parsing the list of categories entered by the user delimited by ,
			and checking if each of them is a valid category. even if one is invalid 
			setting the category to None only */
			result = false;
			for(var j=0;j<mulCategory.length; )
            {
                end_pos = mulCategory.indexOf(",",start_pos);
                if(end_pos == -1)
                    end_pos = mulCategory.length;
                curCategory = mulCategory.substring(start_pos,end_pos);
                
                //compare indivisual categories with blog categories
                if(curCategory != "")
                {
                    var found = false;
                    for (var i = 0; i < categories.length; i++)
			        {
				        if(categories[i] == curCategory)
					        found = true;
			        }
			        if(!found) 
			            return false;
			    }
			    //setting the postion for next run     
		        start_pos = end_pos + 1;
                j = start_pos;
            }
            result = true;
		}
	}
	return result;
}
function removeInvlidCategories(value)
{
    var items = new Array;
	var result = "";
	var dom = dw.getDocumentDOM();
	if (dom)
	{
		var wm = CCWorkspaceManager.getManager(dom);
		if (wm)
		{
			var categories = wm.getTargetBlogCategories();
			var mulCategory = value;
			var start_pos = 0;
			var end_pos = -1;
			/* parsing the list of categories entered by the user delimited by ,
			and checking if each of them is a valid category. even if one is invalid 
			setting the category to None only */
			result = "";
			for(var j=0;j<mulCategory.length; )
            {
                end_pos = mulCategory.indexOf(",",start_pos);
                if(end_pos == -1)
                    end_pos = mulCategory.length;
                curCategory = mulCategory.substring(start_pos,end_pos);
                
                //compare indivisual categories with blog categories
                if(curCategory != "")
                {
                    var found = false;
                    for (var i = 0; i < categories.length; i++)
			        {
				        if(categories[i] == curCategory)
				        {
					        found = true;
					        break;
					    }
			        }
			        if(found && result=="")
			        {
			            result = curCategory;
			        } 
			        else if(found)
			        {
			            result += ",";
			            result += curCategory;
			        }
			           
			    }
			    //setting the postion for next run     
		        start_pos = end_pos + 1;
                j = start_pos;
            }
            
		}
	}
	return result;
}

</script>
</head>

<body>
</body>
</html>

