/*
Name : navigation.js
Author: Richard Daniel
History
***********************************
Modified By				Date
-----------------------------------
Richard					22/05/2008
___________________________________

*/
function togglelevels (levCount, tracedPath, currentId, siteName, selectedTabId)
{
	var divValue=currentId;
	var prevPath = document.navigationMainForm.lastPathTraced.value;
	var execute=1;
	//alert("# prev path : "+ prevPath);
	var hprevPath = prevPath;
	var htracedPath = tracedPath;
	var makePrevEmpty = "false";
	if(hprevPath == "")
	{ hprevPath = selectedTabId; }

	var highlightprevPath = hprevPath.split("/");
	var highlightcurrPath = htracedPath.split("/");
	
	if(hprevPath != "false")
	{

	/*removing the background*/
	//alert("#Starting the removal of background !!!");
	//alert("#hprevPath :"+hprevPath +" htracedPath :"+htracedPath);
	if(hprevPath != htracedPath)
	{
	//alert("#Starting for Previous Traced Path > " + hprevPath);
	var getHighlightedDivId;
	var getHighlightedDivValue;
	if(highlightprevPath.length >1)
	{ getHighlightedDivId = "hl"+highlightprevPath[highlightprevPath.length-2]; }
	else
	{ getHighlightedDivId = "hl"+highlightprevPath[highlightprevPath.length-1]; }
	//alert("#getHighlightedDivId > "+getHighlightedDivId);
	getHighlightedDivValue = document.getElementById(getHighlightedDivId).value;
	//alert("#highlighted div id : "+getHighlightedDivId+" div value : "+getHighlightedDivValue);
	//alert("#"+document.getElementById(getHighlightedDivValue).className);
	document.getElementById(getHighlightedDivValue).className = "cmsnotselectednav";
	
	if(prevPath != "")
	{
	//alert("#Starting for Current Traced Path > " + htracedPath);
	if(highlightcurrPath.length >1)
	{ getHighlightedDivId = "hl"+highlightcurrPath[highlightcurrPath.length-2]; }
	else
	{ getHighlightedDivId = "hl"+highlightcurrPath[highlightcurrPath.length-1]; }
	//alert("#getHighlightedDivId > "+getHighlightedDivId);
	getHighlightedDivValue = document.getElementById(getHighlightedDivId).value;
	if(getHighlightedDivValue != "na")
	{
	//alert("#highlighted div id : "+getHighlightedDivId+" div value : "+getHighlightedDivValue);
	//alert("#"+document.getElementById(getHighlightedDivValue).className);
	document.getElementById(getHighlightedDivValue).className = "cmsnotselectednav";
	}
	}
	}
	}
	else
	{
	//alert("#curr pg id :"+document.getElementById("currentPageId").value);
	var remCurrentPageIdHigh = document.getElementById("currentPageId").value;
	//alert("#remCurrentPageIdHigh : "+remCurrentPageIdHigh);
	var remHighlightedDivValue = "idname"+remCurrentPageIdHigh;
	//alert("#remHighlightedDivValue :"+remHighlightedDivValue);
	document.getElementById(remHighlightedDivValue).className = "cmsnotselectednav";
	}
	/*setting the background*/
	//alert("#Starting to set the background");
	//alert("#Current Traced Path > " + htracedPath);
	var setBackGrnd = "idname"+highlightcurrPath[highlightcurrPath.length - 1 ];
	
	var setHighlightedDivId;
	if(prevPath != "" && prevPath != "false")
	{
	if(highlightcurrPath.length >1)
	{ setHighlightedDivId = "hl"+highlightcurrPath[highlightcurrPath.length-2]; }
	else
	{ setHighlightedDivId = "hl"+highlightcurrPath[highlightcurrPath.length-1]; }
	}
	else
	{ setHighlightedDivId = "hl"+selectedTabId; makePrevEmpty = "true"; }
	//alert("#setHighlightedDivId > "+setHighlightedDivId);

	var getInfoHasChldId = "hc"+highlightcurrPath[highlightcurrPath.length - 1 ];
	//alert("#getInfoHasChldId  > "+getInfoHasChldId);
	var setHLBasedOnChild = document.getElementById(getInfoHasChldId).value;
	//alert("#setHLBasedOnChild > "+setHLBasedOnChild);
	
	if(setHLBasedOnChild == "false")
	{
	//alert("#going to set backgrnd for divid > "+setBackGrnd);
	document.getElementById(setBackGrnd).className = "cmsselectednav";
	//alert("#$$ "+setBackGrnd);
	//alert("#$$ - setHighlightedDivId : "+setHighlightedDivId);
	//alert("#$$$ - element value : "+document.getElementById(setHighlightedDivId).value);
	document.getElementById(setHighlightedDivId).value = setBackGrnd;
	//alert("#$$$ "+document.getElementById(setHighlightedDivId).value);
	document.getElementById("currentPageId").value = currentId;
	}
	else
	{
		//alert("#Inside else part");
		
		var ssetHighlightedDivId;
		var esetHighlightedDivId;
		var esetHighlightedDivValue;
		var skipstep = "false";
		var partNextLevel = "part" + highlightcurrPath[highlightcurrPath.length - 1 ];
		var partNextLevelValue = "";
		//alert("#partNextLevel : "+partNextLevel);

		var portal = document.getElementById("portal").value;
		if(highlightcurrPath.length >1)
		{ ssetHighlightedDivId = "hl"+highlightcurrPath[highlightcurrPath.length-2]; }
		else
		{ ssetHighlightedDivId = "hl"+highlightcurrPath[highlightcurrPath.length-1]; }
		//alert("#ssetHighlightedDivId > "+ssetHighlightedDivId);
		var ssetDefHighlightedDivId = ssetHighlightedDivId+"def";
		var ssetDefHighlightedDivValue = document.getElementById(ssetDefHighlightedDivId).value;
		//alert("#ssetDefHighlightedDivId > "+ssetDefHighlightedDivId+"#ssetDefHighlightedDivValue > "+ssetDefHighlightedDivValue);
		if(highlightcurrPath.length < 2)
		{
		//alert("#setting the background");
		//alert("#problem here");
		if(document.getElementById("portal").value == "partnercw" && portal!="")
		{
		partNextLevelValue = "idname" + document.getElementById(partNextLevel).value;
		//alert("#partNextLevelValue : "+partNextLevelValue);
		document.getElementById(partNextLevelValue).className = "cmsselectednav";
		document.getElementById(setHighlightedDivId).value = partNextLevelValue;
		}
		else
		{
		document.getElementById(ssetDefHighlightedDivValue).className = "cmsselectednav";
		document.getElementById(setHighlightedDivId).value = ssetDefHighlightedDivValue;
		}
		}
		else
		{
		//alert("#Input to be given here");
		//alert("#portal :"+portal);
		if(document.getElementById("portal").value == "partnercw" && portal!="")
		{
			//alert("#partfield"+partNextLevel);
			//alert("#highValue: "+document.getElementById(partNextLevel).value);

		esetHighlightedDivId = "hl"+highlightcurrPath[highlightcurrPath.length-1];
		//esetHighlightedDivValue = "idname"+highlightcurrPath[highlightcurrPath.length-1];
		esetHighlightedDivValue = document.getElementById(partNextLevel).value;
		//alert("#esetHighlightedDivValue :"+esetHighlightedDivValue );
		skipstep = true;
		}
		//alert("#skipstep : "+skipstep);
		if(skipstep == "false")
		{
			//alert("#Executing...");
		esetHighlightedDivId = "hl"+highlightcurrPath[highlightcurrPath.length-1]+"def";
		esetHighlightedDivValue = document.getElementById(esetHighlightedDivId).value;
		}
		//alert("#else esetHighlightedDivId > "+esetHighlightedDivId+"else esetHighlightedDivValue > "+esetHighlightedDivValue);
		if(esetHighlightedDivValue == "na")
		{
			partNextLevelValue = document.getElementById(partNextLevel).value;
			//alert("#partNextLevelValue : "+partNextLevelValue);
		document.getElementById(partNextLevelValue).className = "cmsselectednav";
		document.getElementById(setHighlightedDivId).value = partNextLevelValue;
		}
		else
		{
		document.getElementById(esetHighlightedDivValue).className = "cmsselectednav";
		document.getElementById(setHighlightedDivId).value = esetHighlightedDivValue;
		}
		}
		//alert("#setting highlighted id > "+document.getElementById(setHighlightedDivId).value+"ssetDefHighlightedDivValue > "+ssetDefHighlightedDivValue);
		
/*		document.getElementById(ssetHighlightedDivId).value = setBackGrnd;
		*/
	}

/* end of code for highlighting*/	
	if(prevPath != "")
		{
			if(prevPath.length < tracedPath.length)
			{
				if(tracedPath.indexOf(prevPath) == 0)
				{
					var newPath = tracedPath.replace(prevPath, "");
					if(newPath.charAt(0) == "/")
					{
						newPath = newPath.substring(1, newPath.length);
					}
					var newtracedPath = newPath.split("/");
					var i;
					for(i=0;newtracedPath[i] !="" && newtracedPath[i] != null;i++)
					{
						//alert("tp:> index:0 id:passed:"+newtracedPath[i]);
						resetClasses(newtracedPath[i]);
					}
					execute=0;
				}
				else if(tracedPath.indexOf(prevPath) == -1)
				{
					/*Commenting to avoind the pop up on navigation click*/
					/*alert("The paths do not match");*/
				}
			}
			else if(prevPath.length > tracedPath.length)
			{
				if(prevPath.indexOf(tracedPath) == 0)
				{
					var newPath = prevPath.replace(tracedPath, "");
					if(newPath.charAt(0) == "/")
						{
							newPath = newPath.substring(1, newPath.length);
						}
					var newtracedPath = newPath.split("/");
					var i;
					for(i=newtracedPath.length-1;i>=0;i--)
					{
						//alert("tp:< index:0 id:passed:"+newtracedPath[i]+" i:"+i);
						onlyHide(newtracedPath[i]);
					}
					//onlyHide(currentId);
					execute=0;
				}
				else if(prevPath.indexOf(tracedPath) == -1)
				{
					var newprevPath = prevPath.split("/");
					var newtracedPath = tracedPath.split("/");
					var i,j,k;
					var prev="";
					for(i=0,j=0;i<newprevPath.length,j<newtracedPath.length;i++,j++)
					{
						if(newprevPath[i] != newtracedPath[j])
						{
							var prev = prevPath.replace(prev, "");
							if(prev.charAt(0) == "/")
							{
								prev = prev.substring(1, prev.length);
							}
							var prev2 = prev.split("/");
							for(k=prev2.length-1;k>=0;k--)
							{
								//alert("tp:< index:-1 id:passed:"+prev2[k]);
								onlyHide(prev2[k]);
							}
							onlyShow(newtracedPath[j]);
							break;
						}
						else
						{
							prev=prev+"/"+newprevPath[i];
						}
					
					}
				}
			}
			else if(prevPath.length == tracedPath.length)
			{
				if(prevPath.indexOf(tracedPath) == 0)
				{
					//alert("length:equal index:0");
					resetClasses(currentId);
					execute=0;
				}
				if(prevPath.indexOf(tracedPath) == -1)
				{
					//alert("length:equal index:-1");
					var newprevPath = prevPath.split("/");
					var newtracedPath = tracedPath.split("/");
					var i,j,k;
					var prev="";
					for(i=0,j=0;i<newprevPath.length,j<newtracedPath.length;i++,j++)
					{
						if(newprevPath[i] != newtracedPath[j])
						{
							var prev = prevPath.replace(prev, "");
							if(prev.charAt(0) == "/")
							{
								prev = prev.substring(1, prev.length);
							}
							var prev2 = prev.split("/");
							for(k=prev2.length-1;k>=0;k--)
							{
								onlyHide(prev2[k]);
							}
							onlyShow(newtracedPath[j]);
							break;
						}
						else
						{
							prev=prev+"/"+newprevPath[i];
						}
					
					}
				}

			}
		}
		if(execute==1)
		{			
			var strtracedPath = tracedPath.split("/");
			var sslevCount = levCount;
			var i;
			for(i=0;strtracedPath[i]!=null;i++)
			{
				onlyShow(strtracedPath[i]);
			}
		}
			if(makePrevEmpty != "true" )
			{ document.navigationMainForm.lastPathTraced.value = tracedPath; }
			
			document.navigationMainForm.lastLevelVisited.value = levCount;
			ajaxCall(divValue, levCount, siteName, selectedTabId);
			
			breadCrumbAjaxCall(tracedPath, siteName, selectedTabId);
			
}

function onlyShow(postid)
{
	var whichpost = document.getElementById(postid);
	//alert("onlyShow id:"+postid+" class:"+whichpost);
	if(whichpost != null)
	{
	whichpost.className="commentshown";
	}
}

function onlyHide(postid)
{
	var whichpost = document.getElementById(postid);
	//alert("onlyHide id:"+postid+" class:"+whichpost);
	if(whichpost != null)
	{
	whichpost.className="commenthidden";
	}
}

function resetClasses(postid)
{
	var whichpost = document.getElementById(postid);
	//alert("received id:"+postid+" class:"+whichpost);
	if(whichpost != null)
	{
		/*hidden to remove the menu closing*/
		/*
	if (whichpost.className=="commentshown") 
		{ whichpost.className="commenthidden"; } 
		else 
		{ whichpost.className="commentshown"; }
		*/
		/*end*/
		whichpost.className="commentshown"; 
	}
}

function ajaxCall(pageId, levCount, siteName, selectedTabId) 
{

	var value = "pagename=Cable_Wireless/Common/DisplayAllAssociations";
	value = value + "&renderPageAssociations=" + pageId + "&nodeLevel=" + levCount + "&siteName=" + siteName + "&selectedTabId=" + selectedTabId;
//	alert(value);
	xmlOpen('POST', '/cs/ContentServer', value, responseHandler);
	function responseHandler() 
	{
	   if (req.readyState == 4) 
		  {
				if (req.status == 200) 
				{
					document.getElementById("navigationInnerHTML").innerHTML = req.responseText;
				} 
				else 
				{
					alert("Currently we are facing problem connecting to server. Please try after sometime.\n");
				}
		  }
	}
} 


function breadCrumbAjaxCall(tracedPath, siteName, selectedTabId) 
{
//	alert("breadCrumbAjaxCall : "+tracedPath);
	var value = "pagename=Cable_Wireless/Common/BreadCrumbElement";
	var partnerBreadCrumdStr = "false";
	var startingBreadStr = "<ol><li class='intro'>You are here:&nbsp;&nbsp;Cable&WirelessPortal&nbsp;&gt;&nbsp;</li>";
	if(siteName != "NewWay")
	{
	partnerBreadCrumdStr = document.getElementById("breadCrumbHidden").value;
	}

	value = value + "&tracedPath=" + tracedPath + "&siteName=" + siteName + "&selectedTabId=" + selectedTabId;
//	alert("Bread crumb: value :"+value);
	/*+ "&breadStr=" + partnerBreadCrumdStr;*/

	xmlOpen2('POST', '/cs/ContentServer', value, responseHandler);
	function responseHandler() 
	{
	   if (req2.readyState == 4) 
		  {
				if (req2.status == 200) 
				{
					if(siteName == "NewWay")
					{
						document.getElementById("breadCrumb").innerHTML = req2.responseText;
					}
					else
					{
			//			alert(req2.responseText);
			//			alert(partnerBreadCrumdStr);
						document.getElementById("cwbreadcrumb").innerHTML = startingBreadStr + partnerBreadCrumdStr + req2.responseText;
					}
				} 
				else 
				{
					alert("Currently we are facing problem connecting to server. Please try after sometime.\n");
				}
		  }
	}
}
 
function xmlOpen(method, url, toSend, responseHandler)
{
	if (window.XMLHttpRequest)
	{
		req = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(req)
	{
		req.onreadystatechange = responseHandler;
		req.open(method, url , true);        
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");        
		req.send(toSend);
	}
	else
	{
		alert('Your browser does not seem to support XMLHttpRequest.');
	}
}
		
function xmlOpen2(method2, url2, toSend2, responseHandler2)
{
	if (window.XMLHttpRequest)
	{
		req2 = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		req2 = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(req2)
	{
		req2.onreadystatechange = responseHandler2;
		req2.open(method2, url2 , true);        
		req2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");        
		req2.send(toSend2);
	}
	else
	{
		alert('Your browser does not seem to support XMLHttpRequest.');
	}
}
