function utf8(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;
}
var hexchars = "0123456789ABCDEF";
function toHex(n) {
  return hexchars.charAt(n>>4)+hexchars.charAt(n & 0xF);
}
var okURIchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";
function encodeURIComponentNew(s) {
 var s = utf8(s);
  var c;
 var enc = "";
 for (var i= 0; i<s.length; i++) {
  if (okURIchars.indexOf(s.charAt(i))==-1)
   enc += "%"+toHex(s.charCodeAt(i));
 else
   enc += s.charAt(i);
}
return enc;
}
  var GotargetURL;var queryTermValue;var varCurrentQueryString ='';
  
  GotargetURL ="/search.aspx^^/search.aspx^^";
	var currentPageURL = location.href;
	var indexofampquery1 = currentPageURL.indexOf('&query='); 
	var indexofquery1 = currentPageURL.indexOf('?query='); 
	if(indexofquery1 != -1)
	{
	 var stringAfterQuery = currentPageURL.substring(indexofquery1+7,currentPageURL.length); 
	 var indexofnextqueryparam = stringAfterQuery.indexOf('&');
	  varCurrentQueryString = stringAfterQuery.substring(0,indexofnextqueryparam); 
	}
	if(indexofampquery1 != -1)
	{
	 var stringAfterampQuery = currentPageURL.substring(indexofampquery1+7,currentPageURL.length); 
	 var indexofnextampqueryparam = stringAfterampQuery.indexOf('&');
	 varCurrentQueryString = stringAfterampQuery.substring(0,indexofnextampqueryparam); 
	}
	var indexofq1 = currentPageURL.indexOf('&q='); 
	var indexofqusetq1 = currentPageURL.indexOf('?q='); 
	if(indexofq1 != -1)
	{
		var stringAfterQueryq = currentPageURL.substring(indexofq1+3,currentPageURL.length); 
		var indexofnextqparam = stringAfterQueryq.indexOf('&'); 
		varCurrentQueryString = stringAfterQueryq.substring(0,indexofnextqparam); 
	}
	if(indexofqusetq1 != -1)
	{
		var stringAfterquestQueryq = currentPageURL.substring(indexofqusetq1+3,currentPageURL.length); 
		var indexofnextquestparam = stringAfterquestQueryq.indexOf('&'); 
		varCurrentQueryString = stringAfterquestQueryq.substring(0,indexofnextquestparam);
	}
	var needToDisplay ='F';
	var indexofselectedOption = 0;
	var PagePKForCurrentURL = '';
	var indexofPagePKinCurrentpage = currentPageURL.indexOf('pagePK');
	var CurrentpagePKsubString = currentPageURL.substring(indexofPagePKinCurrentpage);
	if(CurrentpagePKsubString.indexOf('&') != -1)
	{
		PagePKForCurrentURL = CurrentpagePKsubString.substring(0,CurrentpagePKsubString.indexOf('&'));
	}
	else if(CurrentpagePKsubString.indexOf('~') != -1)
	{
		PagePKForCurrentURL = CurrentpagePKsubString.substring(0,CurrentpagePKsubString.indexOf('~'));
	}
	else
	{
		PagePKForCurrentURL = CurrentpagePKsubString.substring(0,CurrentpagePKsubString.length);
	}
	var finalPagePKURL ='';
	var arrayOfURL=GotargetURL.split('^^');
	var i=0;
	for (i=0;i<(arrayOfURL.length);i++)
	{
		var currentURL = arrayOfURL[i];
		var indexofPagePKinTarget = currentURL.indexOf('pagePK');
		var temppagePKsubString = currentURL.substring(indexofPagePKinTarget);
		var finalPagePKURL = temppagePKsubString.substring(0,temppagePKsubString.indexOf('&'));
		if(finalPagePKURL == PagePKForCurrentURL){needToDisplay='Y';indexofselectedOption = i;
	}
   }
if(needToDisplay == 'Y')
{
   document.forms[0].chooseSite.selectedIndex = indexofselectedOption ;
   	var queryValue	=	unescape(varCurrentQueryString);
// Added by Srinivasan 16-08-2007 for JIRA#ECMSEARCH-452
   	if(queryValue.indexOf('|')==-1)
   	{
	document.siteSearchForm.query.value = queryValue ;
   	}
}

function doSiteSearch(strActionURL)	
{
	var urlArray=strActionURL.split('^^');var currentIndex = document.forms[0].chooseSite.selectedIndex;	
	var currentURL = urlArray[currentIndex];	
	var newURL = currentURL.substring(0,currentURL.indexOf('@@'));
	var trimText = doIntranetTrim(document.forms[0].query.value);
	if (trimText == null || trimText.length == 0 || trimText == '') 
	{ 
		alert('You must enter something to search for!');
		return; 
	}
	else 
	{ 
		 if(newURL == '')
		 {
		 	 newURL = newURL + encodeURIComponentNew(trimText); 
		 	 var indexofquery = currentURL.indexOf('query'); 
		 	 var charAfterQuery = currentURL.charAt(indexofquery+5); 
		 	 if(indexofquery != -1 && (charAfterQuery == '=' || charAfterQuery == ':'))
		 	 {
		 	 	var tempPostCurrentURL = currentURL.substring(eval(currentURL.indexOf('query')),currentURL.length);
		 	 	var FinaltempPostCurrentURL = tempPostCurrentURL.substring(eval(tempPostCurrentURL.indexOf('&')),tempPostCurrentURL.length); 
		 	 	var tempPreCurrentURL = currentURL.substring(0,currentURL.indexOf('query'));  
		 	 	newURL = tempPreCurrentURL +'query='+newURL+FinaltempPostCurrentURL;
		 	 }
		 	 else
		 	 {
		 	   var indexofq = currentURL.indexOf('q'); 
		 	   var charAfterQ= currentURL.charAt(indexofq+1); 
		 	   if(indexofq != -1 && (charAfterQ == '=' || charAfterQ == ':'))
		 	   {
		 	   		var tempPostCurrentQURL = currentURL.substring(eval(currentURL.indexOf('q')),currentURL.length);
			 	    var FinaltempPostCurrentQURL = tempPostCurrentQURL.substring(eval(tempPostCurrentQURL.indexOf('&')),tempPostCurrentQURL.length); 
			 	    var tempPreCurrentQURL = currentURL.substring(0,currentURL.indexOf('q'));  
			 	    newURL = tempPreCurrentQURL +'q='+newURL+FinaltempPostCurrentQURL;
		 	   }  
		 	} 
		 	window.location.href=newURL;
		}
		else 
		{ 
			newURL = newURL + encodeURIComponentNew(trimText); 
			newURL = newURL + currentURL.substring(eval(currentURL.indexOf('@@')+2),currentURL.length);
			window.location.href=newURL;
		}
  }
 }
function doIntranetTrim(text)	{
var endIndex = text.length - 1;var isSpace = true;var startIndex = 0;while (isSpace  && startIndex < text.length){isSpace = text.charAt(startIndex) == ' ';if (isSpace) startIndex++;}isSpace = true;while (isSpace && endIndex >= startIndex){isSpace = text.charAt(endIndex) == ' ';if (isSpace) endIndex--;}return text.substring(startIndex,endIndex + 1);}
	  
	  
function boolSearchBanner(q)
{
	var boolSearchFlag ;
	var input = q ;
	if( q.indexOf(' AND ') > 0 || q.indexOf(' OR ') >0  || q.indexOf(' NOT ') >0  )
		boolSearchFlag = 1;
	else
	{
		boolSearchFlag = 0;
		return boolSearchFlag;
	}
	var delim ='"';
	var st = q.split(delim);
	var arr =Array(st.length);
	var flag1 =Array(st.length);
	if(boolSearchFlag==1   && st.length > 1)
	{
		var i =0;
		var startIndex1 =-1;
		var l=0;
		if(boolSearchFlag==1 && input.indexOf(delim)==0 )
		{
			start =1;
			end =st.length; 
		}
		else
		{
			start =0;
			end =st.length-1;
		}
		for( l=start; l <  end ;l++ ) 
		{
			var prefix =false;
			var postfix =false;
			var token = st[l];
			token =Trim(token);
			startIndex1 = input.indexOf(token ,startIndex1+1);
			var len = token.length;
			if(startIndex1+2 < input.length && ( (startIndex1 == 1 && input.charAt(startIndex1)== '"') || input.charAt(startIndex1-1)== '<%="%>'  ))
			{
				arr[i]  = delim+token;
				prefix ='true';
			}
			else
				arr[i]  = token;
			if(startIndex1+1 < input.length && ( (startIndex1+len+1 < input.length && input.charAt(startIndex1+len+1) == ' ' && input.charAt(startIndex1+len) == '<%="%>' ||  (startIndex1+len+1 == input.length  && input.charAt(startIndex1+len) == '<%="%>' ))  ) )
			{
				arr[i]  = arr[i] + delim;
				postfix ='true';
			}
			else 
				arr[i]  = token;
			if (prefix =='true' && postfix =='true')
			{
				flag1[i]  = 'true';	
			}
			else flag1[i]  = 'false';i++;
		} 
	}
	else
	{
	 	arr[0] = q ;
	}
	var parsedTerm =Array(15);
	var  flagArray = Array(15);
	var k =0,j=0;
	for ( j=0 ;j<arr.length-1 ;j++)
	{
		if (flag1[j]!=null && flag1[j]=='true')
		{
			dd[k] = arr[j];
		}
		else
		{
		 	var subToken = arr[j];	
		 	var subStr =subToken.split(' ');	
		 	var l=1;	
		 	if(subStr.length==0)	
		 		parsedTerm[0] =arr[0];
		 	if(  boolSearchFlag == 1 && subStr.length > 0)
		 	{
		 		for( l=0; l <= subStr.length-1;l++ )
		 		{
		 			var subToken = subStr[l];
					parsedTerm[k] = subToken;
					k++;
				}
				k=k-1;	
			}
			else
			{
				parsedTerm[k] = arr[j];
			}
		}
		k++;
	}
	var m=0;
	for ( m=0 ;m < parsedTerm.length-1 ;m++)
	{
		if (parsedTerm[m]!=null && m%2==0  )
			flagArray[m] =1;
		else if( (parsedTerm[m]!=null && m%2!=0 &&  (  (parsedTerm[m]=='OR' || parsedTerm[m]=='AND' ||parsedTerm[m]=='NOT' )    )) )
			flagArray[m] =1;
		else
			flagArray[m]=0;
		if (parsedTerm[m]==null)
			break;
		if(null!=parsedTerm[m] )
		{
			boolSearchFlag  = boolSearchFlag * flagArray[m];
		}
	}
	return boolSearchFlag;
} 


function Trim(TRIM_VALUE)
{
	if(TRIM_VALUE.length < 1)
	{
		return '';
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE=='')
	{
		return '';
	}
	else
	{
		return TRIM_VALUE;
	}
}


function RTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = '';
	if(v_length < 0)
	{
		return'';
	}
	var iTemp = v_length -1;
	while(iTemp > -1)
	{
		if(VALUE.charAt(iTemp) == w_space){	}
		else
		{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;
	}
	return strTemp;	
} 


function LTrim(VALUE) 
{ 
	var w_space = String.fromCharCode(32);
	if(v_length < 1)
	{
		 return '';
	}
	var v_length = VALUE.length;
	var strTemp = '';
	var iTemp = 0;
	while(iTemp < v_length)
	{
		if(VALUE.charAt(iTemp) == w_space){}
		else
		{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;	
	}
	return strTemp;
} 
