function trim(str, chars) 
		{

			return ltrim(rtrim(str, chars), chars);

			/*
				while (query.length >0 &&  query.charAt(0)==' ') {
					query = query.substr(1);
				}

				while (query.length >0 &&  query.charAt(query.length-1)==' ') {
					query = query.substr(0,query.length-1);
				}
			*/

		}

		function ltrim(str, chars) 
		{
			chars = chars || "\\s";
			return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
		}

		function rtrim(str, chars) 
		{
			chars = chars || "\\s";
			return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
		}


		var prefix = "";
		var suffix = "";

		function identPatternPlusDigitOrSpaceDigit(data,beginswith) 
		{
			var len = beginswith.length;
			var pattern = new RegExp("^"+beginswith+"[0-9]");
			//alert("data="+data+"\r\beginswith="+beginswith);

			if(pattern.test(data)) 
			{
				prefix = data.substr(0,len);
				suffix = data.substr(len);
				data = prefix + " " + suffix;
				//alert("prefix="+prefix+"\r\nsuffix="+suffix);
				return true;
			} 
			else 
			{
				//-- Test space digit
				pattern = new RegExp("^"+beginswith+" [0-9]");

				if (pattern.test(data)) 
				{
					prefix = data.substr(0,len);
					suffix = data.substr(len+1);
					data = prefix + " " + suffix;
					//alert("prefix="+prefix+"\r\nsuffix="+suffix);
					return true;
				}
			}

			return false;
		}

 

		function checkPatternPlusDigitRule(data,beginswith) 
		{
			var pattern = new RegExp("^"+beginswith+"([\ 0-9-\/])+$");
			//alert("data="+data+"\r\beginswith="+beginswith);
			if(pattern.test(data)) return true;
			return false;
		}   

 

		function identPatternPlusDigitRule(data,beginswith) 
		{
			if (checkPatternPlusDigitRule(data,beginswith)) 
			{
				var len = beginswith.length;
				prefix = data.substr(0,len);
				suffix = data.substr(len);
				data = prefix + " " + suffix;
			}

			return data;
		}
		
		//ss914221

		function fixQuery(query) 
		{
		//alert(query + " 1");
			prefix = "";
			suffix = "";
			query = trim(query, ' ');             

			//alert("query="+query+"\r\n");

			if (query.match("^0([0-9])+$")) 
			{
				//-- Contains only digits and starts with '0'
				query = query.substr(1);
			}
//ssenisoiec17021
//skrivs ut som:	SS-EN ISO/IEC17021
//ska vara:			SS-EN ISO/IEC 17021
//ssiosiec
//SIS-CEN/TS15224
			var ReplList = [
				['ssisoiec','SS ISO/IEC '],
				['ssiosiec','SS ISO/IEC '],
				['ss iso/iec','SS ISO/IEC '],
				['ssiso','SS-ISO '],
				['ss-iso', 'SS-ISO '],
				['ss-iso', 'SS-ISO '],
				['ssenisoiec','SS-EN ISO/IEC '],
				['ss-en iso/iec', 'SS-EN ISO/IEC '],
				['sseniso','SS-EN ISO '],
				['ssen','SS-EN '],
				['ss-en', 'SS-EN '],
				['eniso','SS-EN ISO '],
				['ss-en iso', 'SS-EN ISO '],
				['ss-en isoioc','SS-EN ISO/IEC '],
				['ss en iso iec','SS-EN ISO/IEC '],
				['ss-en iso/iec', 'SS-EN ISO/IEC '],
				['siscentr','SIS-CEN/TR '],
				['sis-cen/tr', 'SIS-CEN/TR '],
				['sis centr','SIS-CEN/TR '],
				['centr','SIS-CEN/TR '],
				['sis-cen/tr', 'SIS-CEN/TR '],
				['ssiec','SS-IEC '],
				['ss-iec', 'SS-IEC '],
				['isoiec','ISO/IEC '],
				['sists','SIS-CEN/TS '],
				['cents','SIS-CEN/TS '],
				['siscents','SIS-CEN/TS '],
				['sishb','SIS HB '],
				['hbsis','SIS HB '],
				['sishb','SIS HB '],
				['sis hb', 'SIS HB '],
				['sis-cen/ts', 'SIS-CEN/TS '],
				['sis/tk', 'SIS/TK ']
			];

 

			var query1 = query;
			//alert("ReplList.l="+ReplList.length);
			var item = ReplList[0][0];
			var newval = ReplList[0][1];
			item = item.toLowerCase();
			var re = new RegExp('^\\S*' + item);
			//alert("replace="+re+"\r\with="+newval);

			for (i=0;i<ReplList.length;i++) 
			{
				var item = ReplList[i][0];
				var newval = ReplList[i][1];
				item = item.toLowerCase();
				var re = new RegExp('^\\S*' + item);
				//alert("replace="+re+"\r\with="+newval);
				query = query.replace(re,newval);
				item = item.toUpperCase();
				re = new RegExp('^[\S]*' + item);
				query = query.replace(re,newval);
			}

			var query2 = query;

			if (checkPatternPlusDigitRule(query,"SIS") || checkPatternPlusDigitRule(query,"sis")) 
			{
				//-- Starts with SIS and Contains only digits and spaces
				query = "SS" + query.substr(3);
			}

			/*
			if (checkPatternPlusDigitRule(query,"SSEN") || checkPatternPlusDigitRule(query,"ssen")) {
				//-- Starts with SIS and Contains only digits and spaces
				query = "SS-EN" + query.substr(4);
			}
			*/            

			var query3 = query;
			var DigitRuleList = ['TS','TK','IEC','DIN','HB'];

			for (i=0;i<DigitRuleList.length;i++) 
			{
				//alert("i="+i+"DigitRuleList[i]="+DigitRuleList[i]);
				identPatternPlusDigitRule(query,DigitRuleList[i]);
				identPatternPlusDigitRule(query,DigitRuleList[i].toUpperCase());
				identPatternPlusDigitRule(query,DigitRuleList[i].toLowerCase());
			}

			var query4 = query;
			var DigitSpaceRuleList = ['Ss-En ','Iso ','Ss ','En ','Ss-Iso ','Ss-En Iso ','Ss-En Iec ','Ss-Iec ','Sms ',
				'Bsk ','Ss-En Iso Iec ','Ss-Ets ','Ss-Cecc ','Sen ','Mil ','Astm ','Iso/Iec ','Iso/Dis ','Sis-Iso ',
				'Sis-Iso/Ts ','Sis Hb ','Sek Hb ','Ikh ','Ts ','Tr ','Sis Cen Tr ','Översikt ','Mnc ','Bst ','Bst Tr ','Its ','Ngs ','Vis ',
				'SIS-CEN/TS '
				];
			
			for (i=0;i<DigitSpaceRuleList.length;i++) 
			{
				identPatternPlusDigitOrSpaceDigit(query,DigitSpaceRuleList[i]);
				identPatternPlusDigitOrSpaceDigit(query,DigitSpaceRuleList[i].toUpperCase());
				identPatternPlusDigitOrSpaceDigit(query,DigitSpaceRuleList[i].toLowerCase());
			}                

			var query5 = query;

			if(suffix != "") 
			{
				//-- Remove any leading space
				if (suffix.charAt(0) == ' ') 
				{
					suffix = suffix.substr(1);
				}
				//-- Remove any leading 0
				if (suffix.charAt(0) == '0') 
				{
					suffix = suffix.substr(1);
				}

				//-- Remove inside spaces if only digits
				var pattern = new RegExp("^([\ 0-9])+$");

				if(pattern.test(suffix)) 
				{
					//-- Contains only digits and spaces
					suffix = suffix.replace(/ /g, "");
				}
			}                                                                         

			if (prefix != "" && suffix != "") 
			{
				query = prefix + " " +  suffix;
			} 
			else if (prefix != "" || suffix != "") 
			{
				query = prefix + suffix;
			}

//alert(query + " 2");
			return query;

		}