﻿// JScript File
var PreservedClassName;
var CurrentNode;
var PreviousNode;
var FieldService = new LaddawnService(fctPopulateValidChoices);
var CurrentCriteria;
var CurrentDropDown;
var CurrentSearchDepth = 0;

function fctHidePastOrders()
  {
	try
	{
	var RecentOrdersDiv = fctGetElement("ctl00_ContentMain_pnlOrderSearch");
	RecentOrdersDiv.style.display = "none";
	}
	catch(err)
	{
	}
	try
	{
	RecentOrdersDiv = fctGetElement("ctl00_ContentMain_pnlOHResults");
	RecentOrdersDiv.style.display = "none";
	}
	catch(err)
	{
	}
	try
	{
	RecentOrdersDiv = fctGetElement("ctl00_ContentMain_pnlSSNavigation");
	RecentOrdersDiv.style.display = "none";
	}
	catch(err)
	{
	}
	try {
	    var RecentOrdersDiv = fctGetElement("ctl00_ContentMain_pnlSSResults");
	    RecentOrdersDiv.style.display = "none";	    
	}
  catch(err)
	{
	}
  }
function ToggleTree(MenuID)
  {
  var TreeElement = fctGetElement(MenuID)
  if (TreeElement.style.display == "none")
	{TreeElement.style.display = "block"}
  else
	{TreeElement.style.display = "none"}
  }
function TreeHover(event)
  {
  var EventItem;
  if (event.srcElement)
	{
	EventItem = event.srcElement;
	}
  else
	{
	EventItem = event.target;
	}
	PreservedClassName = EventItem.className;
	EventItem.className = "menutitleHover";
  }
function TreeNoHover(event)
  {
  var EventItem;
  if (event.srcElement)
	{
	EventItem = event.srcElement;
	}
  else
	{
	EventItem = event.target;
	}
  EventItem.className = PreservedClassName;
  }
  
function fctResetCalculator(CalculatorDivId, DataId)
  {
//  var CalcDiv = CurrentNode.SubDiv;
  var CalcDiv = document.getElementById(CalculatorDivId);
  var SelectBoxes = CalcDiv.getElementsByTagName("input");
  var CriteriaBox = fctGetElement("SearchCriteria");
  for (i=0; i < SelectBoxes.length; i++)
	{
	TempBox = SelectBoxes.item(i);
	TempBox.value = "ALL";
	}
	fctToggleOptions(CalcDiv, DataId);
  CriteriaBox.value = "";
  }
function fctPopulateSubItems()
  {
//      if (CurrentDoc.readyState == 4) {
		// only if "OK"
		if (CurrentDoc.status == 200) {
			// ...processing statements go here...
			var MenuItems = CurrentDoc.responseXML.documentElement.childNodes;
			var i = 0;
			var NodeID="";
			var NodeDataID="";
			var NodeCalc=""
			var nodeName=""
//            var DivIndex = document.getElementsByTagName("div").length;
//                alert(MenuItems.length + " menu items");
			for (i=0; i < MenuItems.length;i++)
			  {
			  TheItem = MenuItems.item(i);
			  if (TheItem.hasChildNodes())
				{
				if (TheItem.childNodes.length == 4)
				  {
				  NodeID=TheItem.childNodes[2].text
				  NodeDataID=TheItem.childNodes[1].text
				  NodeCalc=TheItem.childNodes[0].text
				  NodeName=TheItem.childNodes[3].text
				  }
				else
				  {
				  NodeID=TheItem.childNodes[5].textContent
				  NodeDataID=TheItem.childNodes[3].textContent
				  NodeCalc=TheItem.childNodes[1].textContent
				  NodeName=TheItem.childNodes[7].textContent
				  }
//                alert(NodeID + ", " + NodeDataID + ", "+ NodeCalc + ", "+ NodeName)
				CurrentNode.AddMenu(NodeID, NodeName, NodeCalc, NodeDataID);
				CurrentNode.CallCalculator = NodeCalc;
				}              
//              CurrentNode.AddMenu(TheItem.getElementsByTagName("ID")[0].text, TheItem.getElementsByTagName("Name")[0].text, TheItem.getElementsByTagName("CallCalc")[0].text, TheItem.getElementsByTagName("DataID")[0].text);
			  }
		} 
		else {
		if (CurrentDoc.status == 500)
		  {document.writeln(CurrentDoc.responseText);
		  } 
		}
//    }
  }

function fctToggleOptions(CalculatorDiv, DataId)
  {
  var i=0;
//  var CalcDiv = CurrentNode.SubDiv;
  var CalcDiv = CalculatorDiv;
  var SearchBoxes = CalcDiv.getElementsByTagName("input");
  var Criteria= "";
  var AnswerTable;
  var AnswerValue = "";
  for (i=0; i < SearchBoxes.length; i++)
	  {
	  TempBox = SearchBoxes.item(i);
	  //
	  if (TempBox.value != "" && TempBox.value != "ALL") 
		{
		Criteria += " AND WITH " + TempBox.id + ' = "' + TempBox.value + '"';
		}
	  }
	var objXMLDoc
	var URL;
	URL = WebServiceURL + "/ProductClasses.asmx/GetFieldValues";
	
  for (i=0; i < SearchBoxes.length; i++)
	{
	AnswerTable = document.getElementById("tbl" + CalculatorDiv.parentNode.id + SearchBoxes[i].id);
	if (window.XMLHttpRequest) 
	  {objXMLDoc = new XMLHttpRequest();}
	else if (window.ActiveXObject) 
	  {objXMLDoc = new ActiveXObject("Microsoft.XMLHTTP");}
	objXMLDoc.open("POST", URL, false);
	objXMLDoc.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	objXMLDoc.setRequestHeader("Content-Length", URL.length);
	objXMLDoc.send("ProductClass=" + DataId + "&FieldName=" + SearchBoxes[i].id + "&Criteria=" + Criteria);
		AnswerCells = AnswerTable.getElementsByTagName("td");
		//AnswerTable.className = '';
		for (o=0; o < AnswerCells.length; o++)
		  {
		  AnswerCells[o].className = "DisabledCell"
		  }
		  
		ValidAnswers = objXMLDoc.responseXML.documentElement.childNodes;
		for (o=0; o < AnswerCells.length; o++)
		  {
		  for (a=0; a < ValidAnswers.length; a++)
			{
			if (isUndefined(ValidAnswers[a].text)) 
			  {AnswerValue = ValidAnswers[a].textContent;}
			else
			  {AnswerValue = ValidAnswers[a].text;}
			if (AnswerCells[o].childNodes[0].data == AnswerValue)
			  {
			  AnswerCells[o].className = "EnabledCell"
			  }
			}
		  }
	}
  }

function fctPopulateValidChoices()
  {
  if (FieldService.XMLDoc.readyState == 4) 
	{
	// only if "OK"
	if (FieldService.XMLDoc.status == 200) 
	  {
	  //clearcombo(CurrentDropDown);
//    alert("Populating" + CurrentDropDown.id);
	  var RootElement = FieldService.XMLDoc.responseXML.documentElement;
	  var Answers = RootElement.childNodes;
	  CurrentDropDown.options[0] = new Option("Select " + CurrentDropDown.dataDesc, "");
	  
	  for (i=0; i < Answers.length; i++)
		{
		CurrentDropDown.options[i+1] = new Option(Answers.item(i).text, Answers.item(i).text);
		}
		CurrentDropDown.Filled = true;
//      CurrentDropDown.options[i+1] = new Option("Other", "Other");
	  FieldService = new LaddawnService(fctPopulateValidChoices);
	  } 
	else 
	  {
	  if (FieldService.XMLDoc.status == 500)
		{
		document.writeln(FieldService.XMLDoc.responseText);
		} 
	  }
	}
  }

function fctGetSubMenuItems(ClickedItem)
  {
//    var DivIndex = document.getElementsByTagName("div").length;
	var NewMenu = new TreeNode(ClickedItem, "NewID" + DivIndex, "");
	var NewId = "";
	NewId = NewMenu.AddMenu("mnu"+DivIndex, "Look At Me");
	DivIndex += 1;
	NewId = NewMenu.AddMenu("mnu"+DivIndex, "Look At Me Again");
	ClickedItem.nextSibling.appendChild(NewMenu.MainDiv);
	return NewId;
  }
function HightLightQuickFindButton(CellToHiLite)
  {
//  if ((CellToHiLite.parentNode.parentNode.parentNode.className == "EnabledList") && (CellToHiLite.className != "DisabledCell"))
  if ((CellToHiLite.className != "DisabledCell"))
	{CellToHiLite.className='HighLightCell';}
  }
function NormalizeQuickFindButton(CellToHiLite)
  {
//  if ((CellToHiLite.parentNode.parentNode.parentNode.className == "EnabledList") && (CellToHiLite.className != "DisabledCell"))
  if ((CellToHiLite.className != "DisabledCell"))
	{CellToHiLite.className='EnabledCell';}
  }

function fctSetQuickFindValue(CellClicked)
  {
  var TableObject; 
  if (CellClicked.parentNode.parentNode.parentNode.parentNode.id=="")
   {TableObject = document.getElementById(CellClicked.parentNode.parentNode.parentNode.id);}
  else
   {TableObject = document.getElementById(CellClicked.parentNode.parentNode.parentNode.parentNode.id);}
  
//  var BoxToSet = document.getElementById(CellClicked.LinkBox);

  var BoxToSet = CellClicked.LinkBox;
//  if ((TableObject.className == "EnabledList") && (CellClicked.className != "DisabledCell"))
  if ((CellClicked.className != "DisabledCell"))
	{
	BoxToSet.value=CellClicked.childNodes[0].data;
	//document.all(BoxID).value=ValueToSet;
//    TableObject.className = "DisabledList";
	fctToggleOptions(CellClicked.parentNode.parentNode.parentNode.parentNode.parentNode, CellClicked.DataId);
	}
  }
function fctProcessCalculator()
{
//  if ((CurrentDoc.readyState == 4) && (CurrentDoc.status == 200)) {
	// only if "OK"
	var SearchItems= CurrentDoc.responseXML.documentElement.childNodes;
	var i = 0;
	var TextValues = "";
	var FieldDiv;
	var CalcDiv = CurrentNode.SubDiv;
	CalcDiv.className = "Calculator";
	var ColCounter = 0;
	var FieldText;
	var FieldDesc = "";
	var FieldName = "";
	var FieldUOM = "";
	var FieldOptions;

	for (i=0; i < SearchItems.length;i++) {
	  ColCounter=0;
	  TheItem = SearchItems.item(i);
	  if (TheItem.hasChildNodes()) {
		if (TheItem.childNodes.length == 5) {
		  //IE
		  FieldDesc=TheItem.childNodes[0].text
		  FieldName=TheItem.childNodes[1].text
		  FieldUOM=TheItem.childNodes[2].text
		  FooterText = TheItem.childNodes[3].text;
		  FieldOptions = TheItem.childNodes[4].childNodes;
		}
		else {
		  //Mozilla/Firefox/all others
		  FieldDesc=TheItem.childNodes[1].textContent
		  FieldName=TheItem.childNodes[3].textContent
		  FieldUOM=TheItem.childNodes[5].textContent
		  FooterText = TheItem.childNodes[7].textContent;
		  FieldOptions = TheItem.childNodes[9].childNodes;
		}
		FieldDiv = document.createElement("div");
		FieldDiv.className = "FieldDiv";
		FieldText = document.createTextNode(FieldDesc + " ");
//        FieldText.className = "FieldLabel";
		FieldDiv.appendChild(FieldText);
		FieldBox = document.createElement("input");
		FieldBox.id = FieldName;
		FieldBox.className = "FieldBox";
		FieldBox.value = "ALL";
		FieldBox.disabled = true;
		FieldDiv.appendChild(FieldBox);
		if (FieldUOM!=""){
		  FieldText = document.createTextNode(" (" + FieldUOM + ")");
		  FieldDiv.appendChild(FieldText);
		}
		FieldText = document.createElement("br");
		FieldDiv.appendChild(FieldText);
		if (FieldOptions.length > 0) {
		  AnswerTable     = document.createElement("table");
		  AnswerTable.id = "tbl" + CurrentNode.MainDiv.id + FieldName
		  AnswerTablebody = document.createElement("tbody");
//          AnswerTable.className = "EnabledList"
		  // creates a <tr> element
		  mycurrent_row = document.createElement("tr");
		  for (var x=0; x < FieldOptions.length; x++) {
			if (isUndefined(FieldOptions.item(x).text)) {
			  currenttext = FieldOptions.item(x).textContent;
			}
			else {
			  currenttext = FieldOptions.item(x).text;
			}
			currenttext = trim(currenttext);
			if (currenttext != "") {
			  currenttext = document.createTextNode(currenttext);
			  ColCounter++;
			  if (ColCounter==22) {
				AnswerTablebody.appendChild(mycurrent_row);
				mycurrent_row = document.createElement("tr");
				ColCounter = 0;
			  }
			  // creates a <td> element
			  mycurrent_cell = document.createElement("td");
			  // creates a text node
			  // appends the text node we created into the cell <td>
			  mycurrent_cell.className = "EnabledCell"
			  mycurrent_cell.appendChild(currenttext);
//              mycurrent_cell.LinkBox = FieldBox.id;
			  mycurrent_cell.LinkBox = FieldBox;
			  mycurrent_cell.DataId = CurrentNode.DataID
			  // appends the cell <td> into the row <tr>
			  mycurrent_cell.onmouseover=function(){HightLightQuickFindButton(this);};
			  mycurrent_cell.onmouseout=function(){NormalizeQuickFindButton(this);};
			  mycurrent_cell.onclick=function(){fctSetQuickFindValue(this);};
//              addEvent(mycurrent_cell, "mouseover", function(){HightLightQuickFindButton(this);}, false);
//              addEvent(mycurrent_cell, "mouseout", function(){event.srcElement.className="";}, true);
			  mycurrent_row.appendChild(mycurrent_cell);
			}  //ends if (currenttext != "")
		  } //ends for (var x=0; x < FieldOptions.length; x++) 
		  AnswerTablebody.appendChild(mycurrent_row);
		  AnswerTable.appendChild(AnswerTablebody);
		  // appends <table> into <body>
		  FieldDiv.appendChild(AnswerTable);
		} //ends if (FieldOptions.length > 0) 
		CalcDiv.appendChild(FieldDiv);
		if (FooterText != "")
		  {
		  var FooterDiv = document.createElement("div")
		  FooterDiv.innerHTML = this.FooterText;
		  FooterDiv.className = "SearchFieldFooterDiv";
		  CalcDiv.appendChild(FooterDiv);
		  }
	// appends <tbody> into <table>
	  }  //ends if (TheItem.hasChildNodes()) 
	} //ends for (i=0; i < SearchItems.length;i++) 
	var ActionDiv = document.createElement("div");
	TextValues = '<div align="left" style="width:100%;background-color:white;">';
	TextValues = TextValues + '&nbsp;<a href="javascript:fctResetCalculator(\'' + CalcDiv.id + '\', \'' + CurrentNode.DataID + '\');" ><img src="images/Buttons-Icons/reset.jpg" border="0" onmouseover = "this.src=\'images/Buttons-Icons/reseto.jpg\';" onmouseout = "this.src=\'images/Buttons-Icons/reset.jpg\';"></a>'
	TextValues = TextValues + '&nbsp;';
	TextValues = TextValues + '<a id="lnkSearchGo" href="javascript:IssueStockCategorySearch()"><img src="images/Buttons-Icons/search.jpg" border="0" onmouseover = "this.src=\'images/Buttons-Icons/searcho.jpg\';" onmouseout = "this.src=\'images/Buttons-Icons/search.jpg\';"></a><br />'
	ActionDiv.innerHTML = TextValues
	CalcDiv.appendChild(ActionDiv);
//    FieldText = document.createElement("br");
//    CalcDiv.appendChild(FieldText);
//    fctResetCalculator();
//  } //ends if ((CurrentDoc.readyState == 4) && (CurrentDoc.status == 200))
}  //Ends function
function IssueStockCategorySearch()
  {
  var CalcDiv = CurrentNode.SubDiv;
  var SelectBoxes = CalcDiv.getElementsByTagName("input");
  var CriteriaBox = fctGetElement("SearchCriteria");
  var CurrentCriteria = "";
  CurrentCriteria = "";
  for (i=0; i < SelectBoxes.length; i++)
	{
	TempBox = SelectBoxes.item(i);
	//
	if ((TempBox.value != "") && (TempBox.value != "ALL"))
	  {
	  CurrentCriteria += " AND WITH " + TempBox.id + ' = "' + TempBox.value + '"';
	  }
	}
  CriteriaBox.value = CurrentCriteria;
//  document.form1.txtSSPartNbr.value = ""
  __doPostBack("CategoryCalculator", CurrentNode.DataID);
  }
function SwitchMenu(obj, Level){
	var el = fctGetElement(obj);
	
	var ar = Level.getElementsByTagName("div"); 

	//Level.getElementsByTagName("div"); //DynamicDrive.com change
	if(el.style.display != "block")
	{ //DynamicDrive.com change
		for (var i=0; i<ar.length; i++){
			ar[i].style.backgroundcolor = "";
			if (ar[i].className=="submenu" || ar[i].className=="Calculator") //DynamicDrive.com change
			  {
				ar[i].style.display = "none";
				ar[i].style.backgroundColor = "#FFFFCC";
//			    alert(ar[i].id);
			  }
			else
			  {
			  }
		}
		el.style.display = "block";
		el.parentNode.parentNode.style.backgroundColor="white";
	}else{
		el.style.display = "none";
	}
	try
	  {PreviousNode.TitleDiv.className = "menutitle";}
	catch(err)
	  {}
	PreservedClassName = "menutitleCurrent";
	CurrentNode.TitleDiv.className = "menutitleCurrent";
//	var menus = Level.getElementsByTagName("span"); 
//	for (i=0; i<menus.length; i++){
//		if (menus[i].className.substring(0,8)=="menutitle" ) //DynamicDrive.com change
//		  {
//		    menus[i].className = "menutitle";
//          }
//	}
}

function showOneBranch(){
  
}

function clicker(event)
  {
  var ClickedItem;
  if (event.srcElement)
	{
	ClickedItem = event.srcElement;
	}
  else
	{
	ClickedItem = event.target;
	}
//    alert(ClickedItem.id);
	fctProcessClick(ClickedItem);
  }
function fctAutoOpen()
  {
  
  }
function fctProcessClick(ClickedItem) {
    fctHidePastOrders();
    try {
        BuilderControl.style.display = "none";
    }
    catch (err)
	{ }

  var NewMenuID;
  var TheURL;
  if (ClickedItem.MenuNode.Clicked == false)
	{
	PreviousNode = CurrentNode;
	CurrentDoc = ClickedItem.MenuNode.WebService.XMLDoc;
	CurrentNode = ClickedItem.MenuNode;
	if (CurrentNode.CallCalculator == "1")
	  {
//      CurrentNode.WebService.ReturnFunction = fctProcessCalculator;
	  TheURL = WebServiceURL + "/ProductClasses.asmx/GetCalculator"
	  ClickedItem.MenuNode.WebService.Open(TheURL, "ProductClass=" + ClickedItem.MenuNode.DataID);
	  fctProcessCalculator();
	  }
	else
	  {
	  if (CurrentNode.CallCalculator == "2")
		{
		__doPostBack("CategorySearch", CurrentNode.DataID);
		}
	  else
		if (CurrentNode.CallCalculator == "3")
		  {__doPostBack("OrderHistorySearch", CurrentNode.DataID);
		}
		else
		{
//        CurrentNode.WebService.ReturnFunction = fctPopulateSubItems;
		TheURL = WebServiceURL + "/ProductClasses.asmx/GetSubClasses"
		ClickedItem.MenuNode.WebService.Open(TheURL, "CategoryID=" + ClickedItem.MenuNode.id + "&XMLFileName=" + ClickedItem.MenuNode.XMLFile);
		fctPopulateSubItems();
		}
	  }
	} 
  else
	{
	if (ClickedItem.nextSibling.className != 'submenu')
	  {
	  CurrentDoc = ClickedItem.MenuNode.WebService.XMLDoc;
	  CurrentNode = ClickedItem.MenuNode;
	  TheURL = WebServiceURL + "/ProductClasses.asmx/GetSubClasses"
	  ClickedItem.MenuNode.WebService.Open(TheURL, "CategoryID=" + ClickedItem.MenuNode.id);
	  }
	else
	  {
	  }
	}
  SwitchMenu(ClickedItem.nextSibling.id, ClickedItem.parentNode.parentNode);
  ClickedItem.MenuNode.Clicked = true;
  }

function fctAddMenu(NewMenuID, NewMenuText, Action, DataID)
  {

  var newIndex = this.ChildNodes.length;
  this.ChildNodes[newIndex] = new TreeNode(this, NewMenuID, "", "", this.XMLFile);
  var newNode = this.ChildNodes[newIndex];
  
  newNode.MainDiv = document.createElement('span');
  newNode.MainDiv.setAttribute('id',NewMenuID);
  newNode.TitleDiv = document.createElement('div');
  newNode.TitleDiv.setAttribute('id',"TITLE" + NewMenuID);
  newNode.TitleDiv.MenuNode = newNode;
  newNode.SubDiv = document.createElement('div');
  
  newNode.SubDiv.className = 'submenu';
  newNode.SubDiv.setAttribute('id',"SUB" + NewMenuID);
  newNode.SubDiv.style.display = "none";

  addEvent(newNode.TitleDiv, "click", clicker, false);
  addEvent(newNode.TitleDiv, "mouseover", TreeHover, true);
  addEvent(newNode.TitleDiv, "mouseout", TreeNoHover, true);
//  newNode.TitleDiv.attachEvent("onclick", clicker);
  newNode.TitleDiv.className = 'menutitle';
  newNode.TitleDiv.setAttribute('id',"Title" + NewMenuID);
  newNode.TitleDiv.innerHTML = '<img src="images/arrow.jpg">&nbsp;' + NewMenuText;
//  newNode.TitleDiv.attachEvent('onclick',alert('Oh No!!'));
  newNode.MainDiv.appendChild(this.ChildNodes[newIndex].TitleDiv);
  newNode.MainDiv.appendChild(this.ChildNodes[newIndex].SubDiv);
  newNode.CallCalculator = Action;
  newNode.DataID = DataID;
  //alert("fctAddMenu:"+this.id);
  if (isNull(this.ParentNode))
	{this.MainDiv.appendChild(newNode.MainDiv);}
  else
	{this.SubDiv.appendChild(newNode.MainDiv);}
//  CurrentDoc = this.WebService.XMLDoc
//  CurrentNode = this;
//  this.WebService.Open("http://LOCALHOST/website/ProductClasses.asmx/GetSubClasses", "CategoryID=");
  return NewMenuID;
  }
function TreeNode(ParentNode, MyID, DataID, Action, XMLSource, FooterText)
  {
  this.id = MyID;
  this.DataID = DataID;
  this.MainDiv = document.createElement('div');
  this.MainDiv.setAttribute('id',MyID);
  this.SubDiv = document.createElement('div');
  this.SubDiv.setAttribute('id',"SUB"+MyID);
  this.SubDiv.style.display = "block";
  
  this.ParentNode = ParentNode;
  this.Render = subBuildMenu;
  this.AddMenu = fctAddMenu;
  this.ChildNodes = new Array();
  this.ProcessItems = fctPopulateSubItems;
  this.WebService = new LaddawnService(this.ProcessItems);
  this.Clicked = false;
  this.CallCalculator = Action;
  this.XMLFile = XMLSource
  this.FooterText = FooterText
  }
//fctGetQuestion("");
