/* ---------------------------------------------------------------------------------------------------
   factfinder_javascript.js
   --------------------------------------------------------------------------------------------------- */

function update_fields(ftp)
{
    var FTPServer         = document.getElementById("FF_FTPServer");
    var FTPRoot           = document.getElementById("FF_FTPRoot");
    var FTPUser           = document.getElementById("FF_FTPUser");
    var FTPPassword       = document.getElementById("FF_FTPPassword");
    var FTPPasswordRepeat = document.getElementById("FF_FTPPasswordRepeat");
    var FTPPassiveYes     = document.getElementById("FF_PassiveMode_No");
    var FTPPassiveNo      = document.getElementById("FF_PassiveMode_Yes");
    if (ftp==1)
    {
        FTPServer.disabled          = false;
        FTPRoot.disabled            = false;
        FTPUser.disabled            = false;
        FTPPassword.disabled        = false;
        FTPPasswordRepeat.disabled  = false;
        FTPPassiveNo.disabled       = false;
        FTPPassiveYes.disabled      = false;
    } else {
        FTPServer.disabled          = true;
        FTPRoot.disabled            = true;
        FTPUser.disabled            = true;
        FTPPassword.disabled        = true;
        FTPPasswordRepeat.disabled  = true;
        FTPPassiveNo.disabled       = true;
        FTPPassiveYes.disabled      = true;
    }
};


function setStyle (cls, dfn) {
    if(epages.Browser.engine == "MSIE") {
        document.styleSheets[0].addRule (cls, dfn);
    } else {
        var Sheet = document.styleSheets[0];
        Sheet.insertRule(cls + "{" +dfn + "}", Sheet.cssRules.length);
    }
};

function onSuggestCompleted(suggestLayerIsVisible) {
	/** nothing to do here **/
};

function onSuggestLayerHidden () {
	/** nothing to do here **/
}

function buildFilterString(linkId)
{
  var filterString = "";
  var multiFilter;
  var multiFilterDeselectGroup = "";
  var multiFilterGroup = "";
  var multiFilterGroups = new Array();
  var multiFilterString = "";

  dojo.query("a[id^=FFSelected]").forEach( function (el) {
		multiFilter = false;
		multiFilterString = "";
		if( el.id != linkId )
		{  		
  		multiFilterGroup = el.id.match(/FFSelected[^\|]+\|/)[0];
  		if(linkId.indexOf("FFResetMultiFilter") != -1)
  		{
  			multiFilterDeselectGroup = "FFSelected" + linkId.substring(18) + "|";
  		}
  		//console.debug("buildFilterString.multiFilterGroup: ", multiFilterGroup);
  		//console.debug("buildFilterString.multiFilterDeselectGroup: ", multiFilterDeselectGroup);
  		if(multiFilterGroup != multiFilterDeselectGroup)
  		{
    		//console.debug("buildFilterString.multiFilterGroups: ", multiFilterGroups);
    		if ( dojo.indexOf(multiFilterGroups, multiFilterGroup) == -1 )
    		{
	    		multiSelectedLinks = dojo.query("a[id^='" + multiFilterGroup + "']");
	    		//console.debug("multiSelectedLinks: ", multiSelectedLinks);
	    		if ( multiSelectedLinks.length > 1 )
	    		{
		    		multiSelectedLinks.forEach( function(multiEl)
		    		{
				  		if( multiEl.id != linkId )
				  		{
				  			multiFilterString += multiEl.id.match(/\|.+/)[0].substring(1) + "###";
				  			multiFilter = true;
				  		}
		    		});
	    		}
	    		
	    		if( multiFilter )
	    		{
						filterString += multiFilterGroup.replace(/FFSelected/,'') + multiFilterString.replace(/###$/,'') + "||";
	    			multiFilterGroups.push(multiFilterGroup);
	    		}
					else
					{
		    		filterString += el.id.substring(10);
		    		filterString += "||";
		    	}
    		}
    	}
  	}
  });

  if (linkId.indexOf("FFInvisible") == 0)
  {
      filterString = linkId.substring (11) + "||" + filterString;
  }
  else if (linkId.indexOf("FFVisible") == 0)
  {
  	filterString = linkId.substring(9) + "||" + filterString;
  }

  // Remove trailings
  filterString = filterString.replace(/\|\|$/,'');

	//console.debug("buildFilterString.filterString: " , filterString);  
  return filterString;
}

function linkHandler()
{   
  var linkId = this.id;
  var filterString = ""
	filterString = buildFilterString(linkId)
  
	document.forms.FACTFinderResultsForm.FFSELECTEDFILTERS.value = filterString;
  document.forms.FACTFinderResultsForm.submit();
};

function pagerHandler(e)
{
	//console.debug(this.href);
	//console.debug(dojo.attr(this,'href'));
	document.forms.FACTFinderResultsForm.FFPAGE.value = dojo.attr(this,'href');
	dojo.stopEvent(e);
	document.forms.FACTFinderResultsForm.submit();
}

function multiFilterHandler (selector, name)
{
	var multiSelectString = "";
	var filterString = "";
  //console.debug("multiFilterHandler.selector: ", selector);
  //console.debug("multiFilterHandler.name: ", name);
  filterString = buildFilterString(name);
  
	selection = dojo.query(".BubbleLayer input[name^='" + selector + "']");
  multiSelectString = name.substring(7) + "|";
  selection.forEach( function(el) {
    if( el.checked )
    {
    	 multiSelectString += el.value + "###";
    }
  });
  multiSelectString = "||" + multiSelectString.replace(/###$/,'');
  document.forms.FACTFinderResultsForm.FFSELECTEDFILTERS.value = filterString + multiSelectString;
  //console.debug("multiFilterHandler.FACTFinderResultsForm.value: ", document.forms.FACTFinderResultsForm.FFSELECTEDFILTERS.value);
  document.forms.FACTFinderResultsForm.submit();
}
