	var isFF = false;
	var isIE = false;
	if (document.implementation && document.implementation.createDocument) isFF = true;
	if (window.ActiveXObject) isIE = true;
	
/*
	if (isFF)	xmlCategoriesObj = document.implementation.createDocument("", "", null);
	else if (isIE)	xmlCategoriesObj = new ActiveXObject("Microsoft.XMLDOM");
	
	//xmlCategoriesObj.load("xml/categories.xml");
	//var xmlCategoriesObj = new ActiveXObject("MSXML2.DOMDocument.3.0");

	xmlCategoriesObj.async = false;
	xmlCategoriesObj.load("xml/categories.xml");
*/	
/*	var loadedStat;
	if(xmlCategoriesObj.readyState == 4){
		loadedStat = true;
	}
	
	xmlCategoriesObj.onreadystatechange = function () {
		if (xmlCategoriesObj.readyState == 4 && !loadedStat) {
		//	startBuildXml();
		}
	}
*/
/*
	var xmlCategoriesObj;
	
	
	function loadXMLCategoriesCallback(o){
		xmlCategoriesObj = o;
		if (isFF) var currentObj=xmlCategoriesObj.documentElement.childNodes[1];
		else if (isIE)	var currentObj=xmlCategoriesObj.documentElement.childNodes[0];
		for(var x=0;x<currentObj.childNodes.length;x++){
			startBuildXml2(x);
		}
		showPic();
		if (isFF) startBuildXml('1');
		else startBuildXml('0');
	}
	
	function init()
	{
		importXML("xml/categories.xml", "loadXMLCategoriesCallback");
	}
	
	window.onload = init;
*/	
	var sMainMenuID;
	
	function startBuildXml(nodeNum){ 
		var currentObj,vChild;
		if(!currentObj){
			currentObj = xmlCategoriesObj.documentElement.childNodes[nodeNum];
		}

		var idElement=currentObj.getAttribute("ID");
		var string = "<div id='"+idElement+"' class='subMenu'>";
		sMainMenuID = idElement;
		for(var x=0;x<currentObj.childNodes.length;x++){
			var nID = currentObj.childNodes[x].getAttribute("ID");
			var sTitle = currentObj.childNodes[x].getAttribute("TITLE");
			var childObj=currentObj.childNodes[x];
			var submenu=1+nID;
			if(currentObj.childNodes[x].hasChildNodes()){
				vChild='1';
				string = string + "<div level='1' id='submenu"+nID+"'><a href='javascript:' onClick='showObject2("+nID+","+x+","+vChild+");menuBR(this);' id="+submenu+">"+sTitle+"</a></div>";
			} else {
				var counter = '0';
				vChild='0';
				string = string + "<div level='1' id='submenu"+nID+"'><a href='item.html?"+nID+"&"+counter+"' onclick='showObject2("+nID+","+x+","+vChild+");menuBR(this);' id="+submenu+" target='content'>"+sTitle+"</a></div>";
				//string = string + "<div level='1' id='submenu"+nID+"'><a href='item.html?"+nID+"&"+counter+"' onclick='menuBR(this);' id="+submenu+" target='content'>"+sTitle+"</a></div>";
			}			
		}
		string=string+"</div>";
		
		
		
		
		
		
		//document.write(string);
		//document.innerHTML = string;
		/*
		var range = document.createRange();
		range.selectNode(document.body);
		var parsedHTML = range.createContextualFragment(string);
		document.body.appendChild(parsedHTML);
		*/
		var divblock = document.getElementById('1');
		divblock.innerHTML = string;
	}

	function startBuildXml2(x){
		var currentObj;
		if(currentObj == null){
			//currentObj = xmlCategoriesObj.documentElement.childNodes[0].childNodes[x];
			//if (isFF) var currentObj=xmlCategoriesObj.documentElement.childNodes[1].childNodes[x];
			if (isFF) var currentObj=xmlCategoriesObj.documentElement.childNodes[0].childNodes[x];
			else if (isIE)	var currentObj=xmlCategoriesObj.documentElement.childNodes[0].childNodes[x];
		}
		var idElement=currentObj.getAttribute("ID");
		var string= "<div level='2' id='"+idElement+"' class='subMenu' style='position:absolute; z-index:2; visibility:hidden;'>";
		for(var y=0;y<currentObj.childNodes.length;y++){
			var nID = currentObj.childNodes[y].getAttribute("ID");
			var sTitle = currentObj.childNodes[y].getAttribute("TITLE");
			var childId = nID;
			var counter='0';			
			string = string+"<div level='2'><a href='item.html?"+nID+"&"+counter+"' onclick='menuBR(this);' id="+childId+" target='content'>"+sTitle+"</a></div>";
		}
		string=  string + "</div>";

		//document.write(string);
		//document.innerHTML=string;
		//alert('aaaaaaaaaaa');
		//document.innerHTML = string + document.innerHTML;
		var hiddenblock = document.getElementById('hiddenblock');
		hiddenblock.innerHTML = hiddenblock.innerHTML + string;
	}

	function showPic(){
		var currentObj,vChild;
		if(currentObj == null){
			//if (document.implementation && document.implementation.createDocument) currentObj = xmlCategoriesObj.documentElement.childNodes['0']; //Mozilla
			if (document.implementation && document.implementation.createDocument) currentObj = xmlCategoriesObj.documentElement.childNodes['1']; //Mozilla
			else currentObj = xmlCategoriesObj.documentElement.childNodes['1']; //IE
		}
		var idElement=currentObj.getAttribute("ID");
		var string = "<div id='"+idElement+"' style='font-family:arial,helvetica,verdana;font-size: 14px;color: White;text-decoration: none;line-height: 16px;'><div level='0'>";
		sMainMenuID = idElement;
		var nID = currentObj.getAttribute("ID");
		var sTitle = currentObj.getAttribute("TITLE");
		var counter = '0';
		string = string + "<a href='item.html?"+nID+"&"+counter+"' id='top2' onClick='hideAllMenus();menuBR(this);' target='content'>Portraiture</a><br>";		
		string=string+"</div></div>";
		//document.write(string);
		//document.innerHTML=string;
		var divblock = document.getElementById('2');
		divblock.innerHTML = string;
		menuBR(document.getElementById('top2'));
		menuOff('top2');
		menuBR(document.getElementById('top3'));
		menuOff('top3');
	}
document.onClick = hideAllMenus;
window.onerror = null;

var lastObj;
var childObj;
function showObject(objectId) {
	var styleObject = getStyleObject(objectId);
	styleObject.left = 0;
	styleObject.top = 180;
	if(styleObject) {
		styleObject.visibility = 'visible';	
		return true;
	} else {
		return false;
	}
}

var lastObj2;
function showObject2(objectId,x,vChild) {
	var newstyleObject = getStyleObject(objectId);
	var laststyleObject = getStyleObject(lastObj2);

// width and left pos of parent
	var nodeObj = document.getElementById('1');
	var Parentwidth = nodeObj.offsetWidth;
	var ParentLeftpos = parseInt(mainObject.left);
	
// top pos of parent
	var ParentToppos = parseInt(mainObject.top);
	var Toppos = nodeObj.offsetTop;
	
//	height of child object

	var nodeObj2 = document.getElementById(objectId);	
	var Yheight = nodeObj2.offsetHeight;
	
// top position of item in parent relative to div
	var submenu = String("submenu"+objectId);
	var nodeObjY = document.getElementById(submenu);
 	var Ysubpos = nodeObjY.offsetTop;
	
	if(newstyleObject) {
		newstyleObject.left = Parentwidth+ParentLeftpos+20 + 'px';
		newstyleObject.top = ParentToppos+Toppos+Ysubpos + 'px';
			
		if (vChild == '1') {
			buildLineObj(Parentwidth+20,Toppos+Ysubpos,Yheight,'visible');
		} else {
			buildLineObj(Parentwidth+20,Toppos+Ysubpos,Yheight,'hidden');
		}
		buildLineObj2(x,'visible');
		newstyleObject.visibility = 'visible';
	}
	if(lastObj2 && (newstyleObject!=laststyleObject)) {
			laststyleObject.visibility = 'hidden';
	}	
	lastObj2 = objectId;
}

function menuOn(id) {
	var nodeObj = getStyleObject(id);
	nodeObj.color = 'red';
}

function menuOff(id) {
	var nodeObj = getStyleObject(id);
	nodeObj.color = 'white';
}

var nLastLevel;
var lastNodeObj2,lastId;
var aLevel = new Array();
function menuBR(obj) {
	
	var parentNodeLevel = obj.parentNode.getAttribute('level');
	var bTopLevel = parentNodeLevel > nLastLevel;
	var nodeObj = obj;//document.getElementById(id);
	
	if(aLevel[parentNodeLevel] != null && !bTopLevel){
		
		for(x = parentNodeLevel; x < aLevel.length; x++){
			aLevel[x].style.fontWeight  = 'normal';
			aLevel[x].style.color = 'white';
		}
	}
	nodeObj.style.fontWeight  = 'bold';
	nodeObj.style.color = 'red';
	aLevel[parentNodeLevel] = obj;
	nLastLevel = parentNodeLevel;
}

function hideAllMenus() {
	var currentObj=xmlCategoriesObj.documentElement.childNodes[0];
	for(y=0;y<currentObj.childNodes.length;y++){
		for(x=0;x<currentObj.childNodes[y].childNodes.length;x++){
			var nID = currentObj.childNodes[y].getAttribute("ID");			
			changeObjectVisibility(nID);
		}
	}
	buildLineObj("","","",'hidden'); //??????????????????????
	buildLineObj2("",'hidden')
	changeObjectVisibility('1');
}

function changeObjectVisibility(id) {
	var styleObject = getStyleObject(id);
	var newId=new String("1"+id);
	var styleObj = getStyleObject(newId);
	styleObj.fontWeight  = 'normal';
	styleObject.visibility = 'hidden';
}

function buildLineObj(xpos,ypos,height,visibility) {
	var styleObject = getStyleObject('line');
	xpos=xpos-15;
	height=height+4;	
	var string = "<div id='line' style='top:"+ypos+"px; left:"+xpos+"px; position:absolute; z-index:1; visibility:"+visibility+"'><table cellpadding='0' cellspacing='0' border='0'><tr><td valign='top'><img src='img/empty.gif' width='1' height='"+10+"' hspace='0'><br><img src='img/red.gif' width='10' height='1'></td><td align='right'><img src='img/red.gif' width='1' height='"+height+"' hspace='0'></td><td><img src='img/red.gif' width='10' height='1' hspace='0'><br><img src='img/empty.gif' width='1' height='"+(height-2)+"' hspace='0'><br><img src='img/red.gif' width='10' height='1' hspace='0'><br></td></tr></table></div>";
	document.getElementById('line').innerHTML=string;
}

function buildLineObj2(y,visiblity) {
	var styleObject = getStyleObject('line2');
styleObject.top = 0;
styleObject.left = 0;
	var height= 113 + y*18;
	var string = "<div id='line2' style='top:75px; left:-15px; position:absolute; z-index:1; visibility:"+visiblity+";'><table cellpadding='0' cellspacing='0' border='0'><tr><td><img src='img/red.gif' width='10' height='1'></td></tr><tr><td valign='top'><img src='img/red.gif' width='1' height='"+height+"'></td></tr><tr><td><img src='img/red.gif' width='10' height='1'></td></tr></table></div>";
	document.getElementById('line2').innerHTML=string;
}

function lineVisibility(line,visibility) {
	var lineObject = getStyleObject(line);
	lineObject.visibility = visibility;
}

function getStyleObject(objectId) {
	// cross-browser function to get an object's style object given its id
	if(document.getElementById && document.getElementById(objectId)) {
		// W3C DOM
		return document.getElementById(objectId).style;
	} else if (document.all && document.all(objectId)) {
		// MSIE 4 DOM
		return document.all(objectId).style;
	} else if (document.layers && document.layers[objectId]) {
		// NN 4 DOM.. note: this won't find nested layers
		return document.layers[objectId];
	} else {
		return false;
	}
}

function picNum(pID, sID) {
	var str = pID;
	var strLength = 7 - (sID.length + pID.length);
	for(a=0;a<strLength;a++) {
		str = str.concat("0");
	}
	str = str.concat(sID);
	return str;
}