// overwrites the same method in module.search.js
function urlsencode (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	}

	function urlsdecode (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
		}
		

		function getDomFromFile(file) {
			// Load XML
			alert("1.1");
			if (typeof ActiveXObject != 'undefined') {// IE
				var xml = new ActiveXObject("Microsoft.XMLDOM");
				alert("1.2");
				xml.async = false;
				xml.load(XML);
				alert("1.3");
			}
			else {	// others
			
				var myXMLHTTPRequest = new XMLHttpRequest();
				myXMLHTTPRequest.open("GET", XML, false);
				myXMLHTTPRequest.send(null);
				var xml = myXMLHTTPRequest.responseXML;
			}
			return xml;
		}
		
		function getDomFromXml(xml) {

			if (typeof ActiveXObject != 'undefined') {
				var dom = new ActiveXObject("Microsoft.XMLDOM");
				dom.async = false;
				dom.loadXML(xml);
			}
			else {
				parser = new DOMParser();
				dom = parser.parseFromString(xml, "text/xml");		
			}
			return dom;
		}


		function xslt(xmlDoc,xslDoc) {
			var transform;
			
			if (typeof ActiveXObject != 'undefined') {
				transform = xmlDoc.transformNode(xslDoc);
			}
			else {
				var xsl = new XSLTProcessor();
				
				xsl.importStylesheet(xslDoc);
				var fragment=xsl.transformToFragment(xmlDoc, document);
				if( fragment.childNodes.length>0 )
				{
				  transform = fragment.childNodes[0].innerHTML;
				}
				else
					alert("error");
			}
//alert(transform);
			return transform;
		}

ActiveSearchFilter.prototype.load = function() {

	// loading the filter xhtml and save it in this.content
	
	// ermitteln der Navigatoreneinstellung, falls dieser Filter entfernt werden muss
	//alert(this.name);
	//alert(document.getElementById('active-filter-' + this.name).attributes.getNamedItem("filter").value );
	//filtervalue = $('active-filter-' + this.name).filter;
	//navigatorname = $('active-filter-' + this.name).InternalNavName;
	//querystring = $('active-filter-' + this.name).orgquery;
	//orgname = $('active-filter-' + this.name).orgname;
	//addparams = $('active-filter-' + this.name).orgparams;
	filtervalue = document.getElementById('active-filter-' + this.name).attributes.getNamedItem("filter").value;
	navigatorname = document.getElementById('active-filter-' + this.name).attributes.getNamedItem("InternalNavName").value;
	querystring = document.getElementById('active-filter-' + this.name).attributes.getNamedItem("orgquery").value;
	orgname = document.getElementById('active-filter-' + this.name).attributes.getNamedItem("orgname").value;
	addparams = document.getElementById('active-filter-' + this.name).attributes.getNamedItem("orgparams").value;
	var loaderobject=null;
	var loaderobjectxsl=null;
		var xmltype = "";
		if(loaderobject)
		{loaderobject.abort()}
		else
		{
			
			try
			{
				xmltype = "Msxml2.XMLHTTP";
				loaderobject=new ActiveXObject("Msxml2.XMLHTTP")
				loaderobjectxsl=new ActiveXObject("Msxml2.XMLHTTP")
			}
			catch(e)
			{	
				try
				{
					xmltype = "Microsoft.XMLHTTP";
					loaderobject=new ActiveXObject("Microsoft.XMLHTTP")
					loaderobjectxsl=new ActiveXObject("Microsoft.XMLHTTP")
					
				}
				catch(sc)
				{	
					xmltype = "Msxml2.XMLHTTP and Microsoft.XMLHTTP failed";
					loaderobject=null
					loaderobjectxsl=null
				}
			}
			
			if(!loaderobject&&typeof XMLHttpRequest!="undefined")
			{
				xmltype = "typeof XMLHttpRequest";
				loaderobject=new XMLHttpRequest()
				loaderobjectxsl=new XMLHttpRequest()
				
			}
	
		}
		result = "";
		returnstring = "";
		if(loaderobject)
		{
			
			try 
			{
				url = "/xmlsearch-v3/xmlsearch.aspx?mixin="+filtervalue+"&orgselectedfiltername="+orgname+"&q="+querystring+"&class=search&hpp=0&navigations="+navigatorname;
				loaderobject.open("GET",url,false);
				//loaderobject.open("GET","/xmlsearch-v3/xmlsearch.aspx?mixin="+filtervalue+"&orgselectedfiltername="+orgname+"&q="+querystring+"&class=search&hpp=0&navigations="+navigatorname,false);
				//alert("/xmlsearch-v3/xmlsearch.aspx?mixin="+filtervalue+"&q="+querystring+"&class=search&hpp=0&navigations="+navigatorname);
				loaderobject.send(null);
				
				
				
				
				if (loaderobject.responseText !="nothing")
				{
					//alert(loaderobject.responseText);
					loaderobjectxsl.open("GET","/stylesheet_vorlage_1024/newtemplate_nwa/layout_scs_siemens.com_drilldown_nwa_changefilter10.xsl",false);
					loaderobjectxsl.send(null);
					
					
					var xmldoc = getDomFromXml(loaderobject.responseText);
					var xsldoc = getDomFromXml(loaderobjectxsl.responseText);
					
					result = xslt(xmldoc,xsldoc);
					var str="<form action=\"./search.asp\" >"+urlsdecode(unescape(addparams)).replace(/\+/g," ");
					result = result.replace(/<div>form1addaditionalhidden<\/div>/i,str);
					result = result.replace(/<div>form2addaditionalhidden<\/div>/i,"</form>");
					result = result.replace("---previousmixin---",filtervalue);
					//alert(loaderobject.responseText);
					//var xslDocument=loaderobjectxsl.responseText;
					//var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
					//xsltProcessor.importStylesheet(xslDocument);
					//var resultFragment = xsltProcessor.transformToFragment(loaderobject.responseText);
					//alert(resultFragment);
					//var tempresult = loaderobject.responseText;
					//alert(tempresult);
					
					
				}
				
			}
			catch (E)
			{
				// do nothing
			}
		}
			this.content = result;
	/*
	this.content = '<form action="./search.html">'
		+ '	<fieldset class="filter">'
		+ '		<legend class="access">Filter by Language</legend>'
		+ '		<label class="access" for="filter-' + this.name + '">Language</label>'
		+ '		<select name="language" id="filter-' + this.name + '" class="gui-select">'
		+ '			<option value="all">by Language: All Languages</option>'
		+ '			<option value="de">by Language: Deutsch (512 results)</option>'
		+ '			<option value="en" selected="selected">by Language: English (1024 results)</option>'
		+ '			<option value="fr">by Language: Fran&ccedil;ais (256 results)</option>'
		+ '		</select>'
		+ '		<button type="submit" class="generic">filter</button>'
		+ '	</fieldset>'
		+ '</form>';
	*/
	// display the filter
	// DEV-NOTE: when using ajax this method should be used as a callback
	
	var that = this;
	window.setTimeout(function() { that.display(); }, 400);
}

