var SdEcRegionDef = {}; // public global identifiers
var $_EcRegionDef = {}; // private global identifiers
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SdEcRegionDef.extractRegionDefinitionFromXmlDom = function (xmlDom)
{
var properties = $_EcRegionDef.extractDOMsProperties(xmlDom);
var contentDefMap = $_EcRegionDef.extractContentDefMap (xmlDom);
var region = $_EcRegionDef.extractDOMsRegion (xmlDom);
var regionDefinition = {
"jason-type" : "region-definition",
"properties" : properties, // array of name-value pairs
"content-def-map" : contentDefMap, // map ids to attribute maps
"region" : region // array of content-ref strings
}
return regionDefinition;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$_EcRegionDef.extractDOMsProperties = function (xmlDom)
{
// sample portion of an "enriched-content-defintion.xml" file:
//
//
//
//
//
var list = [];
var properties = (xmlDom ? xmlDom.getElementsByTagName("property") : []);
var count = (properties ? properties.length : 0);
for (var k = 0; k < count; k++)
{
var property = properties[k];
var id = property.getAttribute( "id");
var value = property.getAttribute("value");
var pair = { "name" : id, "value" : value};
list[list.length] = pair;
}
return list;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$_EcRegionDef.extractContentDefMap = function (xmlDom)
{
var iMap = {};
var defs = ( xmlDom ? xmlDom.getElementsByTagName("content-def") : [] );
var count = (defs ? defs.length : 0);
for (var k = 0; k < count; k++)
{
var def = defs[k];
var id = def.getAttribute("id");
var aMap = $_EcRegionDef.extractAttributesFromContentDefNode(def);
iMap[id] = aMap;
}
return iMap;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$_EcRegionDef.extractAttributesFromContentDefNode = function (contentDefNode)
{
var map = {};
var list = contentDefNode.attributes;
var count = (list ? list.length : 0);
for (var k = 0; k < count; k++)
{
var node = list[k];
var name = node.nodeName ;
var value = node.nodeValue;
map[name] = value;
}
return map;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$_EcRegionDef.extractDOMsRegion = function (xmlDom)
{
var list = [];
var regions = ( xmlDom ? xmlDom.getElementsByTagName("region") : [] );
var count = (regions ? regions.length : 0);
if (count < 1) SdCommon.error( "missing region" );
if (count > 1) SdCommon.error("too many regions");
var region = (regions ? regions[0] : null);
var refs = (region ? region.getElementsByTagName("content-ref") : null);
var size = (refs ? refs.length : 0);
for (var k = 0; k < size; k++)
{
var refNode = refs[k];
var txtNode = refNode.lastChild;
var refText = txtNode.nodeValue;
var refId = SdCommon.trim(refText);
list[list.length] = refId;
}
return list;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -