/***************************************************************\

  actOpus Media Asset Management AJAX Interface 1.1
  http://www.actopus.com/producten/mam.html
  
  This script may not be used or distributed without license

\***************************************************************/
/*
	Set active page div to class=active
	Expand parentNodes of current active LI
*/
function startup()
{
	var navigation = document.getElementById('tcMenuHolder');
	if(navigation != null)
	{
		var sLoc = window.location.href.toLowerCase();
		var href = null;
		var hrefs = navigation.getElementsByTagName('a');
		for(var i = 0; i < hrefs.length; i++)
		{
			if(hrefs[i].href.toLowerCase() == sLoc)
			{
				/* found proper A element */
				href = hrefs[i];
				break;
			}
		}
		if (href != null)
		{
			//Highlight active item
			href.parentNode.className = 'active';
			//Expand the parent tree
			displayULParentsOf(href.parentNode);
			//Show direct descendants as well
			var childs = href.parentNode.parentNode.childNodes;
			for(var i = 0; i< childs.length; i++)
				if(childs[i].className == 'l1' || childs[i].className == 'l2' || childs[i].className =='l3')
				{
					childs[i].style.display = 'block';
				}

			/* hide LI's that have no text label */
			for(var i = 0; i < hrefs.length; i++)
			{
				if(hrefs[i].innerHTML == '')
				{
					hrefs[i].parentNode.parentNode.style.display = 'none';
				}
			}
		}
	}
}


function displayULParentsOf(node)
{
 
         if ( node.childNodes[0].className == '') node.childNodes[0].className = 'active';
	if(node.className != 'l0')
	        node.style.display = 'block';

	if(node.className == 'l0')
		return;
	else
		displayULParentsOf(node.parentNode);
}

function handleMenuItem(href)
{
    if(href.title == '') 
    {
	//toggle direct descendants as well

	var childs = href.parentNode.parentNode.childNodes;
	for(var i = 0; i< childs.length; i++)
		if(childs[i].className == 'l1' || childs[i].className == 'l2' || childs[i].className == 'l3')
		{
		  childs[i].style.display = childs[i].style.display == 'block' ? 'none': 'block';
		}
       return false;
    }
    else
        return true;
}

function check(obj,URLtoGOto,URLCancel)
{
	if (obj.checked)
	{
		obj.form.action=URLtoGOto;
	}
	else
	{
		obj.form.action=URLCancel;
	}
}

function getLanguageISO()
{
  return window.location.pathname.substring(1,3);
}

// This functions Loads the URL Parameters
function queryStringParamValue(name) 
{
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var tmpURL = window.location.href;
	var results = regex.exec( tmpURL );
	if( results == null )
		return "";
	else
		return results[1];
};

/*
function repositionSubmenus()
{
	if(subMenuL1 != null)
		subMenuL1.style.left = (document.body.clientWidth- 880) /2 +'px';
}
 
if (window.addEventListener) //DOM method for binding an event
	window.addEventListener("resize", repositionSubmenus, false)
else if (window.attachEvent) //IE exclusive method for binding an event
	window.attachEvent("onresize", repositionSubmenus);
*/

/*MAM functions */

function MAMConnector()
{
	this.MAMRemoveURL =  "http://mam.virtuami.com/";
}
/*	
	Instructs the Media Asset Manager to increment the view count of a mediaAsset
	Answers null on error
 */
MAMConnector.prototype.incrementUseCount = function(sCountType, assetId)
{
    var xhr = new FlashXMLHttpRequest();
    xhr.onload = function(){} 
    switch(sCountType)
    {
		case 'FLV':
		    xhr.open("GET", this.MAMRemoveURL + 'MovieAssetViewHit.aspx?id=' + assetId);
			xhr.send("");
			break;
		case 'Download':
			xhr.open("GET", this.MAMRemoveURL + 'MovieAssetDownloadHit.aspx?id=' + assetId);
			xhr.send("");
			break;
    }

}

/*	
	Loads all lookup tables and answers an array of MAMCategory objects and an array of MAMAssetCreator objects
	Answers null on error
 */
MAMConnector.prototype.loadLookupObjects = function(dataHandler)
{
    var xhr = new FlashXMLHttpRequest();
    xhr.onload = function() 
					{ 
						var oDomDoc = Sarissa.getDomDocument();
						oDomDoc = (new DOMParser()).parseFromString(xhr.responseText, "text/xml");
						if(Sarissa.getParseErrorText(oDomDoc) == Sarissa.PARSED_OK)
						{
							var m = new MAMConnector()
							var arrCats = m.parseCategories(oDomDoc.documentElement)
							var arrAssetCreators = m.parseAssetCreators(oDomDoc.documentElement)

							var arrMAMInfo = m.parseMAMInfo(oDomDoc.documentElement)
	
							dataHandler(arrCats,arrAssetCreators,arrMAMInfo); 
						} 
						else
						{
							dataHandler(null); 
						};
					}
					
    xhr.open("GET", this.MAMRemoveURL + 'lookupobjects.aspx');
	xhr.send("");
}

/*	
	Loads all categories and answers an array of MAMCategory objects
	Answers null on error
 */
MAMConnector.prototype.loadCategories = function(dataHandler)
{
    var xhr = new FlashXMLHttpRequest();
    xhr.onload = function() 
					{ 
						var oDomDoc = Sarissa.getDomDocument();
						oDomDoc = (new DOMParser()).parseFromString(xhr.responseText, "text/xml");
						if(Sarissa.getParseErrorText(oDomDoc) == Sarissa.PARSED_OK)
						{
							var m = new MAMConnector()
							var arrCats = m.parseCategories(oDomDoc.documentElement)
							dataHandler(arrCats); 
						} 
						else
						{
						//	alert(Sarissa.getParseErrorText(oDomDoc));
							dataHandler(null); 
						};
					}
    xhr.open("GET", this.MAMRemoveURL + 'categories.aspx');
	xhr.send("");
}

MAMConnector.prototype.parseMAMInfo = function(domContainerNode)
{
	var arrInfo = new Array();
	
	var nodes = domContainerNode.getElementsByTagName("MAMInfo");
	for(var i =0; i < nodes.length; i++)
	{
              var node = nodes[i];
              var info = new MAMInfo();
 	     for(var j=0; j < node.childNodes.length;j++)
	     {
                  var snode = node.childNodes[j];

                  switch(snode.nodeName)
    	         {
		     case 'PublishedAssetCount':

		         info.publishedAssetCount(this.getNodeData(snode));
		         break;
	         }
              }
              arrInfo[arrInfo.length] = info;
	}

	return arrInfo;
}

MAMConnector.prototype.parseCategories = function(domContainerNode)
{
	var arrCats = new Array();
	
	var nodes = domContainerNode.getElementsByTagName("Category");
	for(var i =0; i < nodes.length; i++)
	{
		var node = nodes[i];
		var sId = node.attributes.getNamedItem("Id").value;
		var cat = new MAMCategory(sId);
		for(var j=0; j < node.childNodes.length;j++)
		{
			var snode = node.childNodes[j];
			switch(snode.nodeName)
			{
				case 'Name':
					cat.name(this.getNodeData(snode));
					break;
			}
		}
		arrCats[arrCats.length] = cat;
	}
	return arrCats;
}

/*	
	Loads all movie assets and answers an array of MAMMovieAsset objects
	Answers null on error
 */
MAMConnector.prototype.loadMAMMovieAssets = function(dataHandler, sMethod, sCategoryId, iPageNr, iPageSize, sOrdertype, sOrderdirection,sKeyword,sCreatorId, sAssetId, sLanguageISO)
{

    var xhr = new FlashXMLHttpRequest();
    xhr.onload = function() 
					{ 
						var oDomDoc = Sarissa.getDomDocument();
						oDomDoc = (new DOMParser()).parseFromString(xhr.responseText, "text/xml");
				 
						 
						if(Sarissa.getParseErrorText(oDomDoc) == Sarissa.PARSED_OK)
						{

							var m = new MAMConnector()
							var arrMovieAssets = m.parseAssets(oDomDoc.documentElement)

							var nodes = oDomDoc.documentElement.getElementsByTagName("Navigator");
							var navigator = null;
							if(nodes.length) navigator = m.parseNavigator(nodes[0]);
							
							dataHandler(navigator, arrMovieAssets); 
						} 
						else
						{
						//	alert(Sarissa.getParseErrorText(oDomDoc));
							dataHandler(null); 
						};
					}
	var sURI = '';
	sQuery = '?';
	switch(sMethod)
	{
		case 'OrderedByRating':
			sURI = 'MovieAssetsOrderedByRating.aspx';
			break;
		case 'ByKeyword':
			sURI = 'MovieAssetsByKeyword.aspx';
			break;
		case 'ByCreator':
			sURI = 'MovieAssetsByCreator.aspx';
			break;
		case 'ByCategory':
			sURI = 'MovieAssetsByCategory.aspx';
			break;
		case 'ByDateRange':
			sURI = 'MovieAssetsByDateRange.aspx';
			break;
		case 'ById':
			sURI = 'MovieAssetById.aspx';
			break;
		case '':
			break;
	}
	sQuery += 'page=' + iPageNr + '&pagesize=' + iPageSize + '&ordertype=' + sOrdertype.toLowerCase() + '&orderdir=' + sOrderdirection.toLowerCase() + '&category=' + sCategoryId + '&creator=' + sCreatorId + '&keyword=' + sKeyword + '&assetid=' + sAssetId + '&language=' + sLanguageISO;
 
	//alert( this.MAMRemoveURL + sURI + sQuery);
 
    xhr.open("GET", this.MAMRemoveURL + sURI + sQuery);
	xhr.send("");
}

MAMConnector.prototype.parseNavigator = function(domContainerNode)
{
	var nav = new MAMNavigator();
	for(var j=0; j < domContainerNode.childNodes.length;j++)
	{
		var snode = domContainerNode.childNodes[j];
		switch(snode.nodeName)
		{
			case 'StartItem':
				nav.startItem(this.getNodeData(snode));
				break;
			case 'LastItem':
				nav.lastItem(this.getNodeData(snode));
				break;
			case 'TotalResults':
				nav.totalResults(this.getNodeData(snode));
				break;
		}
	}
	 
	return nav;
}

MAMConnector.prototype.parseAssets = function(domContainerNode)
{
	var arrMovieAssets = new Array();
	var nodes = domContainerNode.getElementsByTagName("Asset");
	for(var i =0; i < nodes.length; i++)
	{
		var node = nodes[i];
		var sId = node.attributes.getNamedItem("Id").value;
		var asset = new MAMMovieAsset(sId);

		for(var j=0; j < node.childNodes.length;j++)
		{
			var snode = node.childNodes[j];
			switch(snode.nodeName)
			{
				case 'AssetTitle':
					asset.title(this.getNodeData(snode));
					break;
				case 'AssetDevelopmentTool':
					asset.developmentTool(this.getNodeData(snode));
					break;
				case 'AssetFLVLink':
					asset.flvLink(this.getNodeData(snode));
					break;
				case 'AssetTopRated':
					asset.topRated(this.getNodeData(snode));
					break;
				case 'AssetDescription':
					asset.description(this.getNodeData(snode));
					break;
				case 'AssetFLVViewCount':
					asset.flvViewCount(this.getNodeData(snode));
					break;
				case 'AssetFLVLength':
					asset.flvLength(this.getNodeData(snode));
					break;
				case 'AssetThumbnailLink':
					asset.thumbnailLink(this.getNodeData(snode));
					break;
				case 'AssetSmallThumbnailLink':
					asset.smallThumbnailLink(this.getNodeData(snode));
					break;
				case 'AssetDownloadFileLink':
					asset.downloadFileLink(this.getNodeData(snode));
					break;
				case 'AssetDownloadFilesize':
					asset.downloadFilesize(this.getNodeData(snode));
					break;
				case 'AssetDownloadedCount':
					asset.downloadedCount(this.getNodeData(snode));
					break;
				case 'AssetCreationDate':
					asset.creationDate(this.getNodeData(snode));
					break;
				case 'AssetFLVFilesize':
					asset.flvFilesize(this.getNodeData(snode));
					break;
				case 'AssetCreators':
					asset.creators(this.parseAssetCreators(snode))
					break;
				case 'Categories':
					asset.categories(this.parseCategories(snode)) 
					break;
			}
		}
		arrMovieAssets[arrMovieAssets.length] = asset;
	}	
 
	return arrMovieAssets;
}

/*	
	Loads all AssetCreators and answers an array of MAMAssetCreator objects
	Answers null on error
 */
MAMConnector.prototype.loadCreators = function(dataHandler)
{
    var xhr = new FlashXMLHttpRequest();
    xhr.onload = function() 
					{ 
						var oDomDoc = Sarissa.getDomDocument();
						oDomDoc = (new DOMParser()).parseFromString(xhr.responseText, "text/xml");
						if(Sarissa.getParseErrorText(oDomDoc) == Sarissa.PARSED_OK)
						{
							var m = new MAMConnector()
							var arrCreators = m.parseAssetCreators(oDomDoc.documentElement)
							dataHandler(arrCreators); 
						} 
						else
						{
						//	alert(Sarissa.getParseErrorText(oDomDoc));
							dataHandler(null); 
						};
					}
    xhr.open("GET", this.MAMRemoveURL + 'assetcreators.aspx');
	xhr.send("");
}

MAMConnector.prototype.parseAssetCreators = function(domContainerNode)
{
	var arrCreators = new Array();
	var nodes = domContainerNode.getElementsByTagName("AssetCreator");
	for(var i =0; i < nodes.length; i++)
	{
		var node = nodes[i];
		var sId = node.attributes.getNamedItem("Id").value;
		var creator = new MAMAssetCreator(sId);

		for(var j=0; j < node.childNodes.length;j++)
		{
			var snode = node.childNodes[j];
			switch(snode.nodeName)
			{
				case 'AssetCreatorName':
					creator.name(this.getNodeData(snode));
					break;
				case 'AssetCreatorWebsite':
					creator.website(this.getNodeData(snode));
					break;
				case 'AssetCreatorEmail':
					creator.email(this.getNodeData(snode));
					break;
				case 'AssetCreatorCompany':
					creator.company(this.getNodeData(snode));
					break;
				case 'AssetCreatorDescription':
					creator.description(this.getNodeData(snode));
					break;
				case 'Assets':
					creator.assets(this.parseAssets(snode)) 
					break;
			}
		}								
		arrCreators[arrCreators.length] = creator;
	}	
 
	return arrCreators;
}

MAMConnector.prototype.getNodeData = function(domNode)
{
	if(domNode.childNodes.length)
		return(domNode.childNodes[0].data)
	else
		return '';
}

/*Class MAMInfo */
function MAMInfo()
{	
}

MAMInfo.prototype.publishedAssetCount = function(){return this.publishedAssetCount; }
MAMInfo.prototype.publishedAssetCount = function(s){this.publishedAssetCount= s/1; }

/*Class MAMNavigator */
function MAMNavigator()
{	
}

MAMNavigator.prototype.startItem = function(){	return this.startItem; }
MAMNavigator.prototype.startItem = function(s){ this.startItem = s/1; }

MAMNavigator.prototype.lastItem = function(){	return this.lastItem; }
MAMNavigator.prototype.lastItem = function(s){ this.lastItem = s/1; }

MAMNavigator.prototype.totalResults = function(){	return this.totalResults; }
MAMNavigator.prototype.totalResults = function(s){ this.totalResults = s/1; }

/*Class MAMAssetCreator */
function MAMAssetCreator(sId)
{
	this.id = sId;
}
MAMAssetCreator.prototype.id = function(){ return this.id; }

MAMAssetCreator.prototype.name = function(){	return this.name; }
MAMAssetCreator.prototype.name = function(s){ this.name = s; }

MAMAssetCreator.prototype.description = function(){	return this.description; }
MAMAssetCreator.prototype.description = function(s){ this.description = s; }

MAMAssetCreator.prototype.company = function(){	return this.company; }
MAMAssetCreator.prototype.company = function(s){ this.company = s; }

MAMAssetCreator.prototype.email = function(){	return this.email; }
MAMAssetCreator.prototype.email = function(s){ this.email = s; }

MAMAssetCreator.prototype.website = function(){	return this.website; }
MAMAssetCreator.prototype.website = function(s){ this.website = s; }

MAMAssetCreator.prototype.assets = function(){	return this.assets; }
MAMAssetCreator.prototype.assets = function(arr){ this.assets = arr; }

/*Class MAMMovieAsset */

function MAMMovieAsset(sId)
{
	this.id = sId;
}

MAMMovieAsset.prototype.id = function(){ return this.id; }

MAMMovieAsset.prototype.title = function(){	return this.title; }
MAMMovieAsset.prototype.title = function(s){ this.title = s; }

MAMMovieAsset.prototype.developmentTool = function(){	return this.developmentTool; }
MAMMovieAsset.prototype.developmentTool = function(s){	this.developmentTool = s; }

MAMMovieAsset.prototype.flvLink = function(){	return this.flvLink; }
MAMMovieAsset.prototype.flvLink = function(s){	this.flvLink = s; }

MAMMovieAsset.prototype.topRated = function(){	return this.topRated ; }
MAMMovieAsset.prototype.topRated = function(s){	this.topRated  = s; }

MAMMovieAsset.prototype.description = function(){	return this.description ; }
MAMMovieAsset.prototype.description = function(s){	this.description  = s; }
 
MAMMovieAsset.prototype.flvViewCount = function(){	return this.flvViewCount ; }
MAMMovieAsset.prototype.flvViewCount = function(s){	this.flvViewCount  = s; }

MAMMovieAsset.prototype.flvLength = function(){	return this.flvLength  ; }
MAMMovieAsset.prototype.flvLength  = function(s){	this.flvLength   = s; }

MAMMovieAsset.prototype.creationDate = function(){	return this.creationDate ; }
MAMMovieAsset.prototype.creationDate = function(s){	this.creationDate  = s; }

MAMMovieAsset.prototype.thumbnailLink = function(){	return this.thumbnailLink ; }
MAMMovieAsset.prototype.thumbnailLink = function(s){	this.thumbnailLink  = s; }

MAMMovieAsset.prototype.smallThumbnailLink = function(){	return this.smallThumbnailLink  ; }
MAMMovieAsset.prototype.smallThumbnailLink  = function(s){	this.smallThumbnailLink   = s; }

MAMMovieAsset.prototype.downloadFileLink = function(){return this.downloadFileLink ; }
MAMMovieAsset.prototype.downloadFileLink = function(s){this.downloadFileLink  = s; }

MAMMovieAsset.prototype.downloadedCount = function(){return this.downloadedCount ; }
MAMMovieAsset.prototype.downloadedCount = function(s){this.downloadedCount  = s; }

MAMMovieAsset.prototype.downloadFilesize = function(){return this.downloadFilesize ; }
MAMMovieAsset.prototype.downloadFilesize = function(s){this.downloadFilesize  = s; }

MAMMovieAsset.prototype.flvFilesize = function(){return this.FLVFilesize ; }
MAMMovieAsset.prototype.flvFilesize = function(s){this.FLVFilesize  = s; }

MAMMovieAsset.prototype.categories = function(){return this.categories ; }
MAMMovieAsset.prototype.categories = function(arr){this.categories  = arr; }

MAMMovieAsset.prototype.creators = function(){return this.creators ; }
MAMMovieAsset.prototype.creators = function(arr){	this.creators  = arr; }

/*Class MAMCategory */
function MAMCategory(sId)
{
	this.id = sId;
}

MAMCategory.prototype.id = function(){ return this.id; }

MAMCategory.prototype.name = function(){ return this.name;}
MAMCategory.prototype.name = function(s){ this.name = s;}







































