﻿var moz = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined');
var ie = (typeof window.ActiveXObject != 'undefined');
var xsltProc;
var objxsltProcessor;
var xmlDoc;
var firstSearchClick = true;
var searchText = '';
loadXmlXsl('search.xml','search.xsl');

var selectedIdSearch = null;
var selectedId = null;


function changeDisplay(id)
{
  var conv = document.getElementById('webfx-tree-object-'+ id +'-cont').style;

  if ( 'none' == conv.display )
  {
    conv.display = 'block';
    document.getElementById('webfx-tree-object-'+ id +'-minus').style.display = 'inline';
	document.getElementById('webfx-tree-object-'+ id +'-plus').style.display = 'none';
  }
  else
  {
    conv.display = 'none';
 	document.getElementById('webfx-tree-object-'+ id +'-minus').style.display = 'none';
	document.getElementById('webfx-tree-object-'+ id +'-plus').style.display = 'inline';
  }
}

function select(id)
{
	if (selectedId != null) {
		document.getElementById('webfx-tree-object-'+ selectedId +'-anchor').className = 'webfx-tree-link';
	}
	
	document.getElementById('webfx-tree-object-'+ id +'-anchor').className = 'webfx-tree-link selected';
	selectedId = id;
}

function openRef(id)
{
	select(id);
	this.window.parent._wf_main.location =(document.getElementById('webfx-tree-object-'+ id +'-anchor').href);
}

function _wf_next(){
	lastind = document.getElementById('webfx-tree-object-last-index').title;
	firstind = document.getElementById('webfx-tree-object-first-index').title;
	if (selectedId == null)selectedId = firstind;
	selectedId = parseInt(selectedId);
	
	if(selectedId<lastind){
		cont = document.getElementById('webfx-tree-object-'+ selectedId +'-cont').style;
		imgPlus = document.getElementById('webfx-tree-object-' + selectedId +'-plus');
		if (imgPlus != undefined && cont.display != 'block'){
			cont.display = 'block';
			document.getElementById('webfx-tree-object-'+ selectedId +'-minus').style.display = 'inline';
			document.getElementById('webfx-tree-object-'+ selectedId +'-plus').style.display = 'none';
		}
		
		id =selectedId+1;
		
		while (document.getElementById('webfx-tree-object-'+ id +'-anchor')==undefined && id<lastind) id++;			
		openRef(id);
	}
}

function _wf_prev(){
	firstind = document.getElementById('webfx-tree-object-first-index').title;
	if(selectedId>firstind){
		id =selectedId-1;
		
		while (document.getElementById('webfx-tree-object-'+ id +'-anchor')==undefined && id>firstind) id--;			
		parentDiv = document.getElementById('webfx-tree-object-'+ id +'-cont').parentNode;
		while (parentDiv != document.getElementById('tree')){
			
			if (parentDiv.style.display != 'block'){
				pos = parentDiv.id.indexOf('-cont');
				i = parentDiv.id.substring(18,pos);
				parentDiv.style.display = 'block';
				document.getElementById('webfx-tree-object-'+ i +'-minus').style.display = 'inline';
				document.getElementById('webfx-tree-object-'+ i +'-plus').style.display = 'none';
			}
			parentDiv = parentDiv.parentNode;
		}
		openRef(id);
	}	
}



function openTab(openTab){
	closeTab = (openTab=='search')?'contents':'search';
	document.getElementById('tab-'+closeTab).style.display="none";
	document.getElementById('tab-'+openTab).style.display="block";
	document.getElementById('menu-inactive').style.left = (openTab=='search')?0:'89px';
	document.getElementById(closeTab + '-menu').className = "";
	document.getElementById(openTab + '-menu').className = "active-menu";
	searchText = (openTab=='search' && firstSearchClick==false)? document.forms.searchForm.searchBox.value : "";
}


/* Search*/
function searchBox_onclick(){
	if(firstSearchClick){
		firstSearchClick = false;
		document.forms.searchForm.searchBox.value = "";
	}
}

function searchFormSubmit(){
	noResults = document.getElementById('webfx-tree-object-no-results').title;
	search(document.forms.searchForm.searchBox.value.toLowerCase(),noResults);
	searchText = document.forms.searchForm.searchBox.value;
}

function search(searchString,noResults){
    document.getElementById('search-result').innerHTML=applyXSLWithParam('searchString',searchString,'noResults',noResults);
}

function applyXSLWithParam(paramName1, paramValue1,paramName2, paramValue2){
 if(moz){
      //pass parameter
      xsltProc.setParameter(null, paramName1, paramValue1);
      xsltProc.setParameter(null, paramName2, paramValue2);
      var resultDoc = xsltProc.transformToDocument(xmlDoc);
      //serialise output to string
      var xmlSerial = new XMLSerializer;
      Content = xmlSerial.serializeToString(resultDoc);
  }
  else if (ie){   
      objxsltProcessor.addParameter(paramName1, paramValue1);
      objxsltProcessor.addParameter(paramName2, paramValue2);
      objxsltProcessor.transform();
      Content = objxsltProcessor.output;

  }
return Content;
}
          
function loadXmlXsl(xmlFile, xslFile){
  if(moz){
      //create doc to hold xml file and load xml to it
      xmlDoc = document.implementation.createDocument("", "", null);
      xmlDoc.async = false;
      xmlDoc.load(xmlFile);
      //create doc to hold xsl and load it to doc
      var xslDoc = document.implementation.createDocument("", "", null);
      xslDoc.async = false;
      xslDoc.load(xslFile);
      // process created docs
      xsltProc = new XSLTProcessor();
      xsltProc.importStylesheet(xslDoc);
  }
  else if (ie){   

      objXML = new ActiveXObject("MSXML2.DOMDocument.3.0");
      objXML.async = false;
      objXML.validateOnParse = false;

      objXSLT = new ActiveXObject("MSXML2.FreeThreadedDOMDocument.3.0");
      objXSLT.async = false;
      objXSLT.validateOnParse = false;

      //Load XML and XSLT documents
      objXML.load(xmlFile);
      objXSLT.load(xslFile);
      
      objxsltTemplate = new ActiveXObject("MSXML2.XSLTemplate.3.0");
      objxsltTemplate.stylesheet = objXSLT;
      objxsltProcessor = objxsltTemplate.createProcessor();
      objxsltProcessor.input = objXML;
  }
}

function selectSearch(id)
{
	if (selectedIdSearch != null) {
		document.getElementById('webfx-search-object-'+ selectedIdSearch +'-anchor').className = 'webfx-tree-link';
	}
	
	document.getElementById('webfx-search-object-'+ id +'-anchor').className = 'webfx-tree-link selected';
	selectedIdSearch = id;
}

function openRefSearch(id)
{
	selectSearch(id);
	this.window.parent._wf_main.location =(document.getElementById('webfx-search-object-'+ id +'-anchor').href);
}

function gotoPage()
{
	var QueryString = new Array();
	QueryString["_"]="";
	
	function unspace( qs_element ) {
	 return qs_element.split( '+' ).join(' ');
	}
	
	if ( parent.location.search.length > 1 ) {
	 var qs_query = parent.location.search.substring( 1, parent.location.search.length );
	 var qs_pairs = qs_query.split('&');
	
	 for ( var qs_index = 0; qs_index < qs_pairs.length; qs_index++ ) {
	  var qs_element = qs_pairs[qs_index].split('=');
	  QueryString[qs_element[0]] = unspace(unescape(qs_element[1]));
	 }
	if (QueryString["page"] != undefined){
	 	id = parseInt(QueryString["page"]);
    	 parentDiv = document.getElementById('webfx-tree-object-'+ id +'-cont').parentNode;
		 
			while (parentDiv != document.getElementById('tree')){
				if (parentDiv.style.display != 'block'){
					pos = parentDiv.id.indexOf('-cont');
					i = parentDiv.id.substring(18,pos);
					parentDiv.style.display = 'block';
					document.getElementById('webfx-tree-object-'+ i +'-minus').style.display = 'inline';
					document.getElementById('webfx-tree-object-'+ i +'-plus').style.display = 'none';
				}
				parentDiv = parentDiv.parentNode;
			}
		 openRef(id);
	 }
	}
}
