// CONSTANTS

var STRUCTXML_URL		= "http://www.pratibhaindia.com/structure.xml";
var XML_ELEM_FOLDER		= "folder";
var XML_ATTR_ID			= "id";
var XML_ATTR_NAME		= "name";
var XML_ATTR_DISABLED	= "disabled";
var XML_ATTR_URL		= "url";

var MENU_TIMEOUT 		= 500;

var structXML = "<folder id=\"100\" name=\"Home\" url=\"/index.html\">";
structXML += "	<folder id=\"200\" name=\"Company\" url=\"/company/company.html\">"
structXML += "		<folder id=\"201\" name=\"what we do?\" url=\"/company/whatwedo.html\"></folder>";
structXML += "		<folder id=\"202\" name=\"management\" url=\"/company/management.html\"></folder>";
structXML += "		<folder id=\"203\" name=\"contact us\" url=\"/company/contact.html\"></folder>";
structXML += "</folder>";
structXML += "	<folder id=\"500\" name=\"Technical Services\" url=\"/services/index.html\">"
structXML += "		<folder id=\"501\" name=\"eBusiness\" url=\"/services/ebusiness.html\"></folder>";
structXML += "		<folder id=\"502\" name=\"Data Warehousing &amp; Business Intelligence\" url=\"/services/dtw.html\"></folder>";
structXML += "		<folder id=\"504\" name=\"Enterprise Application Integration\" url=\"/services/eai.html\"></folder>";
structXML += "		<folder id=\"505\" name=\"Content Management System\" url=\"/services/cms.html\"></folder>";
structXML += "		<folder id=\"506\" name=\"Quality Assurance\" url=\"/services/qc.html\"></folder>";
structXML += "		<folder id=\"507\" name=\"Infrastructure Management Services\" url=\"/services/ims.html\"></folder>";
structXML += "		<folder id=\"509\" name=\"Advisory Services\" url=\"/services/adv.html\"></folder>";
structXML += "</folder>";
structXML += "	<folder id=\"600\" name=\"Knowledge Process Outsourcing (KPO)\" url=\"/kpo/index.html\">"
structXML += "		<folder id=\"601\" name=\"Financial Services\" url=\"/kpo/fin.html\"></folder>";
structXML += "		<folder id=\"602\" name=\"Sales &amp; Marketing\" url=\"/kpo/sales.html\"></folder>";
structXML += "		<folder id=\"603\" name=\"Customer Service\" url=\"/kpo/cust.html\"></folder>";
structXML += "		<folder id=\"604\" name=\"Supply Chain Ecosystem Support\" url=\"/kpo/supply.html\"></folder>";
structXML += "		<folder id=\"605\" name=\"Learning and Content Management Services\" url=\"/kpo/cms.html\"></folder>";
structXML += "</folder>";
structXML += " <folder id=\"700\" name=\"Offshore\" url=\"/offshore/index.html\">";
structXML += "		<folder id=\"701\" name=\"Methodology\" url=\"/offshore/method.html\"></folder>";
structXML += "		<folder id=\"702\" name=\"Development Centers\" url=\"/offshore/center.html\"></folder>";
structXML += "</folder>";
structXML += " <folder id=\"800\" name=\"Social Commitment\" url=\"/social/index.html\">";
structXML += "</folder>";
structXML += " <folder id=\"900\" name=\"Feedback\" url=\"/feedback/index.html\">";
structXML += " </folder>";
structXML += " </folder>";


var STRUCTXML = structXML;

// VARIABLES

var structure 			= null;
var timerID 			= null;
var timerOn 			= false;
var redirecting			= false;


// FUNCTIONS

function initialize()
{
	getStructure();
}


function renderHeader()
{
	if (isValidBrowser()) {
		var html = "<a name=\"top\"></a>";
		html += "<div class=\"cmstitle\">The Pratibha India</div>";
		html += "<div class=\"header\">";
		html += "<a href=\"/index.html\"><div class=\"logo\">Pratibha</div></a>";
		html += "<div class=\"mmslogo\">Innovation with technology</div></div>";
		html += "<div class=\"navborder\"></div><div class=\"navigation\"><div id=\"navLinks\" class=\"navLinks\"></div></div><div id=\"navMenu\" class=\"navMenu\"></div>";
		
		document.write(html);
	}
}


function renderBreadcrumb()
{
	if (isValidBrowser()) {
		var html = "<div id=\"breadcrumb\" class=\"breadcrumb\"></div>";
		document.write(html);
	}
}


function renderFooter()
{
	if (isValidBrowser()) {
		var html = "<center> <div class=\"footer finePrint\">Copyright 2006, Pratibha Confidential</div></center>";
		document.write(html);
		
		initialize();
	}
}


function getStructure()
{
	//getXMLDoc(STRUCTXML_URL, renderNavLinks);
	//alert(STRUCTXML);
	structure = parseXML(STRUCTXML);
	renderNavLinks(structure);
}


function renderNavLinks( xml )
{
	if (!(xml.documentElement)) structure = this;
	else structure = xml;

	if (structure != null) {
		var homeNode 	= structure.getElementsByTagName(XML_ELEM_FOLDER)[0];
		var html 		= "";
		for (var i=0; i <  homeNode.childNodes.length; i++) {
			var node = homeNode.childNodes[i];
			if (node.nodeName == XML_ELEM_FOLDER && node.getAttribute(XML_ATTR_DISABLED) != "true") {
				var folderId 	= node.getAttribute(XML_ATTR_ID);
				var url 		= node.getAttribute(XML_ATTR_URL);
				if (html != "") html += "&nbsp;|&nbsp;";
				html += "<span id=\"menu_"+folderId+"\" class=\"menuItem\" onmouseover=\"showMenu(true, '"+folderId+"'); enterMenuItem(this)\" onMouseOut=\"exitMenuItem(this);\" onclick=\"jump('"+url+"')\">"+node.getAttribute(XML_ATTR_NAME)+"</span>";
			}
		}
		
		document.getElementById("navLinks").innerHTML = html;
		
		// Render breadcrumb
		renderBreadcrumbLinks();
	}
}


function renderBreadcrumbLinks()
{
	var breadRef 		= document.getElementById("breadcrumb");
	if (breadRef) {
		var homeNode 	= structure.getElementsByTagName(XML_ELEM_FOLDER)[0];
		var urlParts 	= window.location.toString().split("/");
		
		// Try to find a matching url in the structure
		var compareUrl 	= "";
		for (var i=urlParts.length-1; i > 2; i--) {
			compareUrl = "/"+urlParts[i]+compareUrl;

			var folder = getElementByAttribute(structure, XML_ATTR_URL, compareUrl, XML_ELEM_FOLDER);

			if (folder != null && compareUrl != homeNode.getAttribute(XML_ATTR_URL)) {
				// We have found the folder!
				var breadcrumb = "";
				while (folder.parentNode && folder.nodeName == XML_ELEM_FOLDER) {
					if (breadcrumb == "")
					    breadcrumb = folder.getAttribute(XML_ATTR_NAME);
					else	
						breadcrumb = "<a href=\""+folder.getAttribute(XML_ATTR_URL)+"\">"+ folder.getAttribute(XML_ATTR_NAME)+"</a> &gt; "+breadcrumb;
					folder 		= folder.parentNode;
				}

				if (breadcrumb != "") {
					var breadRef 			= document.getElementById("breadcrumb");
					breadRef.innerHTML 		= breadcrumb;
					breadRef.style.display 	= "block";
				}
			}
		}
	}
}


function getXMLDoc( url, callbackFunction )
{
	// create the DOM document and set mode to synchronous
	var dom = null;
	if (document.implementation && document.implementation.createDocument) {
		dom = document.implementation.createDocument("", "", null);
		dom.addEventListener("load", callbackFunction, false);
	} else if (window.ActiveXObject) {
		dom = new ActiveXObject("Microsoft.xmldom");
		dom.onreadystatechange = function () {
      		if (dom.readyState == 4)
         		callbackFunction(dom);
   		}
	}

	if (dom != null) {
		dom.async = false;
		dom.load(url);
	}
}


function parseXML( str )
{
	// create the DOM document and set mode to synchronous
	var dom = null;
	if (document.implementation && document.implementation.createDocument) {
		var parser = new DOMParser();
		dom = parser.parseFromString(str, "text/xml");
	} else if (window.ActiveXObject) {
		dom = new ActiveXObject("Microsoft.xmldom");
		dom.async = false;
		dom.loadXML(str);
	}

	return dom;
}


function showMenu( show, id )
{
	var menu = document.getElementById("navMenu");
	
	if (show) {
		var folder 			= getElementById(structure, id, XML_ELEM_FOLDER);
		var html 			= "";
		if (folder) {
			html 			= renderMenu(folder);
			menu.innerHTML	= html;
			var menuItem 	= document.getElementById("menu_"+folder.getAttribute(XML_ATTR_ID));
			menu.style.left	= menuItem.offsetLeft+"px";
		}
		if (html == "") show = false;
	}
	
	menu.style.display 	= (show?"block":"none");
}


function renderMenu( folder )
{
	var html = "";
	
	for (var i=0; i <  folder.childNodes.length; i++) {
		var node = folder.childNodes[i];
		if (node.nodeName == XML_ELEM_FOLDER && node.getAttribute(XML_ATTR_DISABLED) != "true") {
			var url = node.getAttribute(XML_ATTR_URL);
			if (url != null && url != "")
				html += "<div class=\"menuItem\" onmouseover=\"enterMenuItem(this)\" onmouseout=\"exitMenuItem(this);\" onclick=\"jump('"+url+"')\">"+node.getAttribute(XML_ATTR_NAME)+"</div>";
		}
	}
	
	return html;
}


function enterMenuItem( item )
{
	item.style.backgroundColor 	= "#819CB5";
	item._color					= item.style.color;
	item.style.color 			= "#EEF2F5";
	stopTime();
}


function exitMenuItem( item )
{
	item.style.backgroundColor 	= "transparent";
	item.style.color 			= item._color;
	startTime();
}


// Goes to a defined Url
function jump( url )
{
	if (url != null && url != "") window.location = url;
}


function getElementById(dom, id, nodeName)
{
	return getElementByAttribute(dom, XML_ATTR_ID, id, nodeName);
}


function getElementByAttribute( dom, attributeName, value, nodeName )
{
	if (document.implementation && document.implementation.createDocument) {
		if (typeof(nodeName) != "undefined") {
			var elements = dom.getElementsByTagName(nodeName);
			for (var i=0; i<elements.length; i++) {
				if (elements[i].getAttribute(attributeName) == value)
					return elements[i];
			}
			return null;
		} else {
			for (var i=0; dom.childNodes.length; i++) {
				var childNode = dom.childNodes[i];
				if (childNode.nodeType == 1 && childNode.getAttribute(attributeName) == value)
					return childNode;
				var node = getElementByAttribute(childNode, attributeName, value, nodeName);
				if (node != null) return node;
			}
			return null;
		}
	} else {
		return dom.selectSingleNode( (typeof(nodeName)=="undefined"?"//*":"//"+nodeName)+"[@"+attributeName+"=\""+value+"\"]");
	}
}


function startTime() 
{
	if (timerOn == false) {
		timerID = setTimeout( "showMenu(false)" , MENU_TIMEOUT);
		timerOn = true;
	}
}

 
function stopTime() 
{
	if (timerOn) {
		clearTimeout(timerID);
		timerID = null;
		timerOn = false;
	}
}


function isValidBrowser()
{
	if (document.getElementById) {
		return true;
	} else {
		if (!redirecting) {
			redirecting = true;
			window.location.href = "http://www.pratibhaindia.com/oldbrowser.html";
		}
		return false;
	}
}


function openPopup( url, width, height, name )
{
	if (typeof(name)=="undefined" || name == "") name = "popup";
	window.open(url, name, "width="+(width+20)+",height="+(height+20)+",location=no,status=no,toolbar=no,resizable=yes,scrollbars=no");
}