	var Functions = function(){
		var hexchars   = "0123456789ABCDEF";
		var okURIchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ \"-";

		this.verifyQuery = function() {
			if (document.getElementById("queryString").value=='' ||document.getElementById("queryString").value==' '){
				alert('Please enter keyword(s) to search!');
					return false;
			}
			else{
				
				if (document.getElementById("chkb_0")){
					if(document.getElementById("chkb_0").value == "true"){
	
						if (document.getElementById("searchType").value == 'Boolean Search'){
							document.searchResultsForm.textToSearch.value = this.encodeURIComponentNew(buildLogicalQuery(document.getElementById("searchResultsForm").textToSearch.value + " + " + document.getElementById("queryString").value));
						}else{
							document.searchResultsForm.textToSearch.value = this.encodeURIComponentNew(document.searchResultsForm.textToSearch.value + " + " + document.getElementById("queryString").value);
						}
						document.getElementById("originalQuery").value = this.encodeURIComponentNew(document.getElementById("queryString").value);
						document.searchResultsForm.submit();
						return true;
					}else{
						if (document.getElementById("searchType").value == 'Boolean Search'){
							document.searchResultsForm.textToSearch.value = this.encodeURIComponentNew(buildLogicalQuery(document.getElementById("queryString").value));
						}else{
							document.searchResultsForm.textToSearch.value = this.encodeURIComponentNew(document.getElementById("queryString").value);
						}
						document.getElementById("originalQuery").value = this.encodeURIComponentNew(document.getElementById("queryString").value);
						document.searchResultsForm.submit();
						return true;
					}
				}else{
					if (document.getElementById("searchType").value == 'Boolean Search'){
						document.searchResultsForm.textToSearch.value = this.encodeURIComponentNew(buildLogicalQuery(document.getElementById("queryString").value));
					}else{
						document.searchResultsForm.textToSearch.value = this.encodeURIComponentNew(document.getElementById("queryString").value);
					}
					document.getElementById("originalQuery").value = this.encodeURIComponentNew(document.getElementById("queryString").value);
					document.searchResultsForm.submit();
					return true;
				}

			}
		};

		this.verifyQueryAppliances = function() {
			//document.getElementById("extraFilters").value = '';
			document.getElementById("breadcrumb").value = '';
			document.getElementById("offset").value = '0';
			document.getElementById("textToSearch").value = this.replaceInAppliances(this.encodeURIComponentNew(document.getElementById("queryString").value));
			document.getElementById("originalQuery").value = this.encodeURIComponentNew(document.getElementById("queryString").value);
			document.getElementById("searchResultsForm").submit();
		};




		 

		 this.submitSearchNavigation = function(name,navigator,modifier){
			document.getElementById("textToSearch").value = this.replaceInAppliances(this.encodeURIComponentNew(document.getElementById("queryString").value));
			document.getElementById("originalQuery").value = this.encodeURIComponentNew(document.getElementById("queryString").value);

			document.getElementById("offset").value = '0';

				document.getElementById("breadcrumb").value = document.getElementById("breadcrumb").value.replace('+','');

				//document.getElementById("extraFilters").value = document.getElementById("extraFilters").value.replace(')','');


                                var filtervalue = document.getElementById("breadcrumb").value;
                                var navindex = filtervalue.indexOf(navigator);
                                var ptindex = filtervalue.indexOf("producttype");
                                var sindex = filtervalue.indexOf("subject");
                                if(ptindex != -1 && sindex != -1)
                                {
                                    if(navigator == 'producttype')
                                    {
                                    if(navindex < sindex)
                                    {
                                        if(name == 'all')
                                        {
                                            document.getElementById("breadcrumb").value = '+'+filtervalue.substring(sindex);
                                        }else{
                                            document.getElementById("breadcrumb").value = '+'+navigator+':'+modifier + ' +'+ filtervalue.substring(sindex);
                                        }
                                     }
                                    else if(navindex > sindex)
                                    {
                                        if(name == 'all')
                                        {
                                            document.getElementById("breadcrumb").value = '+'+filtervalue.substring(sindex,navindex -2);
                                        }else{
                                            document.getElementById("breadcrumb").value = '+'+filtervalue.substring(sindex,navindex -2) + ' +'+navigator+':'+modifier;
                                        }
                                    }
                                    }
                                    if(navigator == "subject")
                                    {
                                        if(navindex < ptindex)
                                        {
                                            if(name == 'all')
                                            {
                                                document.getElementById("breadcrumb").value = '+'+ filtervalue.substring(ptindex);
                                            }else{
                                                document.getElementById("breadcrumb").value = '+'+navigator+':'+modifier+ ' +'+ filtervalue.substring(ptindex);
                                            }

                                        }else if(navindex > ptindex)
                                        {
                                            if(name == 'all')
                                            {
                                                document.getElementById("breadcrumb").value = '+'+ filtervalue.substring(ptindex,navindex -2);
                                            }else{
                                                document.getElementById("breadcrumb").value = '+'+filtervalue.substring(ptindex,navindex -2)+' +'+navigator+':'+modifier;
                                            }

                                        }


                                    }

                                }else if(ptindex != -1)
                                {
                                    if(navigator == 'producttype')
                                    {
                                         if(name == 'all')
                                            {
                                                document.getElementById("breadcrumb").value = '';
                                            }else{
                                                document.getElementById("breadcrumb").value = '+'+ navigator+':'+modifier;
                                            }

                                    }
                                    if(navigator == "subject")
                                    {
                                        document.getElementById("breadcrumb").value = '+'+document.getElementById("breadcrumb").value +' +'+navigator+':'+modifier;
                                    }
                                }else if(sindex != -1)
                                {
                                    if(navigator == 'producttype')
                                    {
                                        document.getElementById("breadcrumb").value = '+'+document.getElementById("breadcrumb").value + ' +'+navigator+':'+modifier;
                                    }
                                    if(navigator == "subject")
                                    {
                                        if(name == 'all')
                                            {
                                                document.getElementById("breadcrumb").value = '';
                                            }else{
                                                document.getElementById("breadcrumb").value = '+'+ navigator+':'+modifier;
                                            }

                                    }
                                }else {

                                    document.getElementById("breadcrumb").value = '+'+navigator+':'+modifier;

                                }


				//document.getElementById("extraFilters").value = '+'+document.getElementById("extraFilters").value+' +'+navigator+':'+modifier;
                                //alert(document.getElementById("extraFilters").value);

                            if (name == 'all'){
				if (navigator=='producttype')
					document.getElementById("productNav").value = 'all';
				if (navigator=='subject')
					document.getElementById("businessNav").value = 'all';
                            }else{
				if (navigator=='producttype')
					document.getElementById("productNav").value = modifier;
				if (navigator=='subject')
					document.getElementById("businessNav").value = modifier;
                            }

			//this.encodeQuery();
			//alert( document.getElementById("queryString").value + " - " + document.getElementById("textToSearch").value)
			document.getElementById("searchResultsForm").submit();
		};
		

		

		this.replaceInAppliances = function(query){
		 	var splitedquery = query.split(' ');
		 	var newquery ='';
		 	var i;
		 	for (i=0; i < splitedquery.length; i++){
		 	if(splitedquery[i]!='not' && splitedquery[i]!='not'&& splitedquery[i]!='no'&& splitedquery[i]!='won\'t'&& splitedquery[i]!='wont'&& splitedquery[i]!='too'&& splitedquery[i]!='will'&& splitedquery[i]!='does'&& splitedquery[i]!='doesn\'t' && splitedquery[i]!='doesnt' && splitedquery[i]!='can\'t' && splitedquery[i]!='cant' && splitedquery[i]!='couldn\'t' && splitedquery[i]!='couldnt'){
		 		newquery=newquery+splitedquery[i]+' ';
		 	}}
		 	return newquery;
 		};

		this.sendTopics = function() {
			var c1 = document.getElementById( "chkb_1" );
			var ht = document.getElementById( "have_topics" );
			var tt = document.getElementById( "totalTopics" );

			if( c1.checked == true ){
				ht.value = false;
				for( i = 2 ; i <= 11 ; i++ ){
					var x  = 'chkb_' + i;
					if( document.getElementById( x ) ){
						//alert( 'value of x: ' + x );
						document.getElementById( x ).checked = false;
						ht.value = false;
					}
				}
			} else {
				var nochecked = true;
				for( i = 2 ; i <= 11 ; i++ ){
					var x  = 'chkb_' + i;
					if( document.getElementById( x ) ){
						if( document.getElementById( x ).checked == true ){
							nochecked = false;
						}
					}
				}
				if( nochecked ){
					ht.value = false;
					c1.checked = true;
				}
			}

		};

		this.sendTopics2 = function( obj ) {
			var c1 = document.getElementById( "chkb_1" );
			var ht = document.getElementById( "have_topics" );
//			var tt = document.getElementById( "totalTopics" );
			var none = true;
//			alert( tt.value );
			for( i = 2 ; i <= 11 ; i++ ){
				var x  = 'chkb_' + i;
				if( document.getElementById( x ) ){
					//alert( document.getElementById( x ).id + ": " + document.getElementById( x ).checked );
					if ( document.getElementById( x ).checked == true ){
						c1.checked = false;
						ht.value = true;
						none = false;
					}
				}
			}

			if( none ){
				c1.checked = true;
				this.sendTopics();
				//alert( ' none: ' + none + ' topics '  );
			}

		};

		this.checkCombo = function( id ){
			if(  document.getElementById( id ) ){
				if( document.getElementById( id ).checked == false ){
					document.getElementById( id ).checked = true;
				} else {
					document.getElementById( id ).checked = false;
				}
				//document.getElementById( id ).checked = true;
				this.sendTopics2( id );
			}
		};

		this.cleanPages = function() {
			var os   = document.getElementById("offset");
			os.value = 0 ;
		};

		this.RefineQuery = function( val ) {
			document.getElementById( "chkb_1" ).checked = true;
			this.sendTopics();
			var textToSearch   = document.getElementById("textToSearch");
			textToSearch.value = val;
			//this.encodeQuery();
			document.getElementById("searchResultsForm").submit();
		};

		this.updateoffset = function(offset){
			var os = document.getElementById("offset");
			os.value = offset;
			//this.encodeQuery();
			if (document.getElementById("searchType").value == 'Boolean Search'){
				document.searchResultsForm.textToSearch.value = this.encodeURIComponentNew(buildLogicalQuery(document.getElementById("queryString").value));
			}else{
				document.getElementById("searchResultsForm").textToSearch.value = this.encodeURIComponentNew(document.getElementById("queryString").value);
			}
			document.getElementById("originalQuery").value = this.encodeURIComponentNew(document.getElementById("queryString").value);
			document.searchResultsForm.submit();
		};

		this.open_similar = function( id ){
			var mId = 'similar_' + id;
			//alert( mId );
			var val = document.getElementById( mId );
			var sim = this.encodeValue( val.value );
			document.getElementById( 'similarSearch' ).value = sim;
			this.encodeQuery();
			document.getElementById("searchResultsForm").submit();
		}

		this.encodeQuery = function(){
			var qry   = document.getElementById("textToSearch");
			qry.value = this.encodeURIComponentNew( qry.value ) ;
		};

		this.encodeValue = function( val ){
			var qry = this.encodeURIComponentNew( val ) ;
			return qry;
		};

		this.encodeURIComponentNew = function(s) {
			if(s==null || s.length<=0)
				return s;
			var s = this.utf8(s);
			var c;
			var enc = "";
			for (var i= 0; i<s.length; i++) {
				if (okURIchars.indexOf(s.charAt(i))==-1)
					enc += "%"+ this.toHex(s.charCodeAt(i));
				else
					enc += s.charAt(i);
			}
			return enc;
		};

		this.toHex = function(n) {
			return hexchars.charAt(n>>4)+hexchars.charAt(n & 0xF);
		};

		this.showTopics = function(){
			for( i = 7 ; i < 11 ; i++ ){
				if( document.getElementById( 'span_' + i ) ){
					if( document.getElementById( 'span_' + i ).style.display == 'block' ){
						document.getElementById( 'span_' + i ).style.display = 'none';
					} else {
						document.getElementById( 'span_' + i ).style.display = 'block';
					}
				}
			}
			if( document.getElementById('more_t') && document.getElementById('less_t') ){
				if( document.getElementById('more_t').style.display == 'block' ){
					document.getElementById('more_t').style.display = 'none';
					document.getElementById('less_t').style.display = 'block';
				} else {
					document.getElementById('more_t').style.display = 'block';
					document.getElementById('less_t').style.display = 'none';
				}
			}
		};

		this.utf8 = function(wide){
			var c, s;
			var enc = "";
			var i = 0;
			while(i<wide.length) {
				c= wide.charCodeAt(i++);
				if (c>=0xDC00 && c<0xE000) continue;
				if (c>=0xD800 && c<0xDC00) {
				  if (i>=wide.length) continue;
				  s= wide.charCodeAt(i++);
				  if (s<0xDC00 || c>=0xDE00) continue;
				  c= ((c-0xD800)<<10)+(s-0xDC00)+0x10000;
				}
				if (c<0x80) enc += String.fromCharCode(c);
				else if (c<0x800) enc += String.fromCharCode(0xC0+(c>>6),0x80+(c&0x3F));
				else if (c<0x10000) enc += String.fromCharCode(0xE0+(c>>12),0x80+(c>>6&0x3F),0x80+(c&0x3F));
				else enc += String.fromCharCode(0xF0+(c>>18),0x80+(c>>12&0x3F),0x80+(c>>6&0x3F),0x80+(c&0x3F));
			}
			return enc;
		};

		this.filter = function( a, b ){
			var div = document.getElementById( "extraFilters" );
			var val = div.value;
			div.value = val + ' +' + a + ":" + b;
			//alert( div.value );
			document.getElementById("searchResultsForm").submit();

		};

		this.filterClear = function( filt ){
			var div = document.getElementById( "extraFilters" );
			var val = div.value;
			var spl = val.split( " " );
			var value = " ";
			for( i = 0 ; i < spl.length ; i++ ){
				/**/
				if( spl[i].lastIndexOf( filt ) > 0 ){
				} else {
					value += spl[i];
				}
			}
			div.value = value;
			document.getElementById("searchResultsForm").submit();

		};

		this.showFilterBox = function(){
			var div = document.getElementById( "filterId" );
			if( div.style.display == "block" ){
				div.style.display = 'none';
			} else {
				div.style.display = 'block';
			}
		};


		 this.changeNumHits = function(){
			var div = document.getElementById( "resultsperpages").value;
			document.getElementById("offset").value = '0';
			document.getElementById("numHits").value = div;
            document.getElementById("searchResultsForm").submit();

		};
	}

	func = new Functions();

	function RefineQuery( val ){
		func.cleanPages();
		func.RefineQuery( val );
	}


	function submitenter(e,where){
    var keycode;
    if (window.event)
        keycode = window.event.keyCode;
    else if (e)
        keycode = e.which;
    else
        return true;

    if (keycode == 13){
    		if ('Appliances'==where)
    			func.verifyQueryAppliances();
    		else
    	  		func.verifyQuery();
       return false;
    }else{
       return true;
    }
 }


	function updateoffset( val ){
		func.updateoffset( val );
	}

	function verifyQuery(){
		func.cleanPages();
		func.verifyQuery();
	}

	function verifyQueryAppliances(){
		func.cleanPages();
		func.verifyQueryAppliances();
	}

	/* function submitSearchNavigation(name, navigator,modifier){
		func.submitSearchNavigation(name, navigator,modifier);
	}*/

	function submitSearchNavigation(navigator){
		func.submitSearchNavigation(navigator);
	}

	 function changeNumHits(){
		func.changeNumHits();
           
	}

	function resubmitSearch(value){
		document.getElementById("queryString").value = value;
		func.cleanPages();
		func.verifyQuery();
	}

	function open_similar( id ){
		func.open_similar( id );
	}

	function filter( a, b ){
		func.filter( a, b );
	}

	function filterClear( filt ){
		func.filterClear( filt );
	}

	function showFilterBox(){
		func.showFilterBox();
	}

	function sel_mouseover(obj)	{
        obj.style.background="#F3F3F3";
    }

	function sel_mouseout(obj)	{
	   obj.style.background="#FFFFFF";
    }
	function showObject(){
		document.all['n1'].style.visibility= "visible";
	}
	function hideObject(){
		document.all['n1'].style.visibility = "hidden";
	}

	function setColor( id ){
		var obj = document.getElementById( id );
		obj.style.background="#F2F9FF";
	}

	function quitColor( id ){
		var obj = document.getElementById( id );
		obj.style.background="#FFFFFF";
	}

	function sendTopics(){
		func.sendTopics();
	}

	function sendTopics2( id ){
		alert( 'THE ID: ' + id );
		func.sendTopics2( id );
	}

	function checkThis( id ){
		func.checkCombo( id );
	}

	function moreTopics(){
		func.showTopics();
	}

	function openWindow( url ){
		window.open(url);
	}

	function show(){
		alert(document.getElementById("businessFilter").value);
	}

	function sourceSearch(srcSrch){
		if(srcSrch == '1'){
			document.getElementById("remoteHost").value 	= 'ge.com';
			document.getElementById("refine_link").style.display = "inline";
		}else{
			document.getElementById("remoteHost").value 	= 'ge.comALL';
			document.getElementById("press_release_chkbx").value 	= 'false';
			document.getElementById("download_chkbx").value 		= 'false';
			document.getElementById("podcast_chkbx").value 		= 'false';
			document.getElementById("article_chkbx").value 		= 'false';
			document.getElementById("refine_link").style.display = "none";
			document.getElementById("refine_search").style.display = "none";

		}
	}

	function sr_toggle_refine(){

	if(document.getElementById("refine_search").style.display == "none"){

		display_refine();

	}else{

		hide_refine();

	}

}

function display_refine(){

	document.getElementById("refine_search").style.display 			= "block";

	document.getElementById("search_target").style.display 			= "none";

	document.getElementById("refine_link").style.backgroundImage 	= "url(icn_up_arrow_blk.gif)";

}

function hide_refine(){

	document.getElementById("refine_search").style.display 			= "none";

	document.getElementById("search_target").style.display 			= "block";

	document.getElementById("refine_link").style.backgroundImage 	= "url(icn_right_arrow_blk.gif)";

}

function updatePressRelease(checkbox,element){
	if (checkbox.checked == true){
		document.getElementById(element).value = 'true';
	}else{
		document.getElementById(element).value = 'false';
	}

}

function updateDate(radio){
	alert (radio.id);
	if (radio.id='date_rad1'){
	   	document.getElementById("dateRangeType")
		document.getElementById("dateRangeType").value = '1';

	}
	if (radio.id='date_rad2'){
		 alert ('entra 2');
		document.getElementById("dateRangeType").value = '2';

	}
	if (radio.id='date_rad3'){
	 alert ('entra 3');
		document.getElementById("dateRangeType").value = '3';

	}
	if (radio.id='date_rad4'){
	 alert ('entra 4');
		document.getElementById("dateRangeType").value = '4';

	}
	alert (document.getElementById("dateRangeType").value);

}

function buildLogicalQuery(input){

	input = fixDoubleQuotes(input);
	if (!("\""==input.charAt(0))){
		input = buildLogicalTokenizer(input, "+", " +");
		input = buildLogicalTokenizer(input, "-", " -");
		input = buildLogicalTokenizer(input, " and ", " +");
		input = buildLogicalTokenizer(input, " AND ", " +");
		input = buildLogicalTokenizer(input, " or ", " OR ");
		input = buildLogicalTokenizer(input, " andnot ", " -");
		input = buildLogicalTokenizer(input, " ANDNOT ", " -");
		input = parseSpacers(input);
		input = buildFinalLogicalQuery(input);
	}
	return input;
}

function buildLogicalTokenizer(input,separator,connector){
	if (input!=""){
		if(input.length>0){
			var token = input.split(separator);
			if(token.length>1){
				input = token[0];
				for(var i=1; i<token.length; i++){
					input = input + connector + token[i];
				}
			}
		}
	}
	return input;
}

function parseSpacers(input){
	var composedQuery = "";
	if (input!=""){
		if(input.length>0){
			var spacer = " ";
			var token = input.split(spacer);
			if(token.length>1){
				for(var i=0; i<token.length; i++){
					var word = token[i];
					if(word=="+" || word=="-"){
						if( (i+1) < token.length){
							i++;
							if(token[i]!= "+" && token[i]!= "-"){
								composedQuery = composedQuery + spacer + word + token[i];
							}
						}
					}else{
						if(i>0){
							composedQuery = composedQuery + spacer + word;
						}else{
							composedQuery = composedQuery + word;
						}
					}
				}
			}else{
				composedQuery = input;
			}
		}
	}
	return composedQuery;
}

function buildFinalLogicalQuery(input){
	var composedQuery     = "";
	var separator         = " ";
	var trim              = " ";
	var defaultBoolean    = " AND ";
	var ignoreEmptyTokens = true;
	var isExactPhrase = false;
	var isOR = false;
	var array 			  = " ";
	if (input!="")
	{
		if(input.length>0){
			array = input.split(separator);
			if(trim){
				for(var i=0; i<array.length; i++){
					while(array[i].slice(0, trim.length) == trim)
						array[i] = array[i].slice(trim.length);
					while(array[i].slice(array[i].length-trim.length) == trim)
						array[i] = array[i].slice(0, array[i].length-trim.length);
				}
			}
			var token = new Array();
			if(ignoreEmptyTokens){
				for(var i=0; i<array.length; i++){
					if(array[i] != ""){
						token.push(array[i]);
					}
				}
			}else{
				token = array;
			}

			if(token.length==1){
				composedQuery = token[0];
			}else if(token.length>1){
				composedQuery = token[0];
				if("\""==composedQuery.charAt(0)){
					isExactPhrase = true;
				}
				for(var i=1; i<token.length; i++){
					if(isExactPhrase == true){
						composedQuery = composedQuery + " " + token[i];
					}else if("+"==token[i].charAt(0)){
						composedQuery = composedQuery + " AND " + token[i].substring(1);
					}else if("-"==token[i].charAt(0)){
						composedQuery = composedQuery + " ANDNOT " + token[i].substring(1);
					}else if("or"==token[i] || "OR"==token[i] ){
						composedQuery = composedQuery + " " + token[i];
						isOR = true;
					}else if( isOR == true){
						composedQuery = composedQuery + " " + token[i];
						isOR = false;
					}else{
						composedQuery = composedQuery + defaultBoolean + token[i];
					}
					var tokenLen = token[i].length;
					tokenLen =  tokenLen-1;
					if("\""==token[i].charAt(0)){
						isExactPhrase = true;
					}else if("\""==token[i].charAt(tokenLen)){
						isExactPhrase = false;
					}

				}
			}

		}
	}
	return composedQuery;
}

function fixDoubleQuotes(input){
	var numberOfQuotes = 0;
	for(var i=0; i<input.length; i++){
		if("\""==input.charAt(i)){
			numberOfQuotes = numberOfQuotes + 1;
		}
	}
    var myMod = numberOfQuotes % 2;
    if (myMod != 0) {
		input = input + "\"";
	}
	return input;
}

function submitenter1(e,where){
			var keycode;
		    if (window.event)
		        keycode = window.event.keyCode;
		    else if (e)
		        keycode = e.which;
		    else
		        return true;
		    if (keycode == 13){
		    	if('Appliances'==where){
		    		//return func.verifyQueryAppliances;
		    	}else{
		    		//return func.verifyQuery;
		    	}
			 }
		}
function newWindow(url){
 	window.open(url,'Search','width=566,height=400,left=50,top=50,menubar=yes,toolbar=yes,scrollbars=yes,resizable=yes');
 }

function resetCheckBox(c){

    if(c.checked)

    {

    	document.getElementById("chkb_0").value = "true";

    }else{

    	document.getElementById("chkb_0").value = "false";

    }

  }





