

function replaceEscapedCharsWithChars(s){
			if(s!=null && s!=''){
				s=s.replace(/\^apos\^/g,"'");
				s=s.replace(/\^quot\^/g,'"');
				s=s.replace(/\^at\^/g,'@');
				s=s.replace(/\^hash\^/g,'#');
				s=s.replace(/\^lt\^/g,'<');
				s=s.replace(/\^amp\^/g,'&');	
				s=s.replace(/\^gt\^/g,'>');
				s=s.replace(/\^pl\^/g,'+');
			//	s=s.replace(/\^coma\^/g,',');
				//s=s.replace(/\^ka\^/g,'`');
				s=s.replace(/\^tld\^/g,'~');
				//s=s.replace(/\^exm\^/g,'!');
				//s=s.replace(/\^dol\^/g,'$');
				s=s.replace(/\^per\^/g,'%');
				//s=s.replace(/\^cap\^/g,'^');

			}
			return s;
	   }
	    
	   function escapeSpecialChars(s){
			if(s!=null && s!=''){
				s=s.replace(/'/g,"^apos^");
				s=s.replace(/"/g,'^quot^');
				s=s.replace(/@/g,'^at^');
				s=s.replace(/#/g,'^hash^');
				s=s.replace(/</g,'^lt^');
				s=s.replace(/>/g,'^gt^');
				s=s.replace(/&/g,'^amp^');
				s=s.replace(/\+/g,'^pl^');
			//	s=s.replace(/,/g,'^coma^');
			//	s=s.replace(/`/g,'^ka^');
				s=s.replace(/~/g,'^tld^');
			//	s=s.replace(/!/g,'^exm^');
			//	s=s.replace(/$/g,'^dol^');
				s=s.replace(/%/g,'^per^');
				//s=s.replace(/^/g,'^cap^');
			}
			return s;
	   }
function escapeSingleDoubleQuotesUI(s){
		if(s!=null && s!=''){
			s=s.replace("\'","&#39;");
			s=s.replace("\"","&#34;");

		}
		return s;
   }
function findBrowser(){
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion); 
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

// In MSIE, the true version is after "MSIE" in userAgent
if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
 browserName = "Microsoft Internet Explorer";
 fullVersion = nAgt.substring(verOffset+5);
}
// In Opera, the true version is after "Opera" 
else if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+6);
}
// In Chrome, the true version is after "Chrome" 
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
 browserName = "Chrome";
 fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" 
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
 browserName = "Safari";
 fullVersion = nAgt.substring(verOffset+7);
}
// In Firefox, the true version is after "Firefox" 
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
 browserName = "Firefox";
 fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent 
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ) 
{
 browserName = nAgt.substring(nameOffset,verOffset);
 fullVersion = nAgt.substring(verOffset+1);
 if (browserName.toLowerCase()==browserName.toUpperCase()) {
  browserName = navigator.appName;
 }
}
// trim the fullVersion string at semicolon/space if present
if ((ix=fullVersion.indexOf(";"))!=-1) fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
 fullVersion  = ''+parseFloat(navigator.appVersion); 
 majorVersion = parseInt(navigator.appVersion,10);
}
//alert('Browser name  = '+browserName+'<br>');
return browserName;
}
	function save(textvalue,dbname,hits,country){
     //document.getElementById("txt_search").value=replaceEscapedCharsWithChars(textvalue);
	 //document.getElementById("dbname").value=dbname;
	 //document.getElementById("hits").value=hits;
	 //  cityName = escapeSpecialChars(document.getElementById("txt_search").value);
//alert("textvalue..."+textvalue)
			   cityName=textvalue;

			 //  cityName= encode(cityName);
			   			//   alert("cityName...."+cityName);
			   var browserName=findBrowser();
			   if(browserName=="Microsoft Internet Explorer"){
							//alert(browserName);
					//	cityName= UTF8.encode(cityName);
			 }
			// alert("cityName......"+cityName);*/
			  // $dbname = dbname;
			   //$hits=hits;
		//	cityName=UTF8.encode(cityName)
				 //SEARCH ALL
				 if(dbname=='all'){
						window.location="/smartsearchresult.jsp?searchText="+cityName+"&SearchType=all&country="+country;
				 }else{
						 window.location="/songsearchresult.jsp?searchText="+cityName+"&hits="+hits+"&SearchType="+dbname+"&country="+country;
				 }
			} // SAVE FUNCTION CLOSE.
			
			
		function hide(){
			 document.getElementById('searchResult').style.display="none";
			}

			
		/**
	*  UTF-8 data encode / decode
	**/	 
	var UTF8 = { 
		// public method for url encoding
		encode : function (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;
		},	 
		// public method for url decoding
		decode : function (utftext) {
			//alert(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;
		}	 
	}

		
		
   
//create an ajaxmanager named someAjaxProfileName 
var someManagedAjax = jQuery.manageAjax.create('someAjaxProfileName', { 
    queue: true,  
    cacheResponse: true,
	abortOld:true
}); 

   // First Page code starts here
		jQuery(document).ready(function() {
             jQuery("#txt_search").keyup(function(){
		//alert("searchtext....."+document.getElementById("txt_search").value);
				        document.getElementById("dbname").value='all';
		              var  cityName =escapeSpecialChars(document.getElementById("txt_search").value);
					    var country =document.getElementById("country").value;
						var searchValue =document.getElementById("txt_search").value;
							 var browserName=findBrowser();
							// alert(cityName);     
							// if(browserName=="Firefox"){
								   if(browserName=="Microsoft Internet Explorer"){
							//alert(browserName);
							cityName= UTF8.encode(cityName);
							 }
			//alert("cityName.1111111.."+document.getElementById("txt_search").value);
		// generate an ajaxmanger named someAjaxProfileName and  abort old request.
		// jQuery.manageAjax.create('someAjaxProfileName', {queue: 'clear', cacheResponse: true,abortOld: true}); 
		 jQuery.manageAjax.create('someAjaxProfileName', {abortOld: true,queue: 'clear'}); 
		//  alert("cityName2222..."+cityName);
			  //and add an ajaxrequest  
		jQuery.manageAjax.add('someAjaxProfileName', { 
		success: function(data) { 
	   var  resultLength=data.SongTitle.totalHit+data.Writer.totalHit+data.Artist.totalHit;
						var result= "" ;
					 if( resultLength>0){
								  result=result+"<table width=\"100%\" border=\"0\" cellspacing=\"0\" style=\"margin-top:0px;\" cellpadding=\"0\"><tr><td align=\"left\" valign=\"top\"><table width=\"228\" border=\"0\"  style=\"margin-top:0px;\" cellspacing=\"0\" cellpadding=\"0\">"+
									"<tr><td align=\"center\" valign=\"middle\"  style=\"background-color:#46c0b7; text-align:center; font-weight:bold;\" ><a href=\"javascript:save('"+escapeSpecialChars(searchValue)+"','all','50','"+country+"');\" id=\"showAll\" class=\"showAll\">Show All&nbsp;("+resultLength+")</a>"+
								 "</td></tr></table></td></tr><tr><td align=\"left\" valign=\"top\"><table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"3\">";
						 }
					 
						if(data.Writer.TopSearch!=null){
							var topSearch;
							if (data.Writer.TopSearch >18) 
								topSearch=data.Writer.TopSearch.substring(0, 18)+" ...";
							else
								topSearch=data.Writer.TopSearch;

							result=result+"<tr><td  align=\"right\" valign=\"top\" style=\"width:60px;color:#fff; padding-right:10px; padding-top:5px;white-space:nowrap; \">Top Search</td>"+ 
							 "<td align=\"left\" valign=\"top\" style=\"font-size:10px; line-height:20px;\"><a href=\"javascript:save('"+escapeSpecialChars(data.Writer.TopSearch)+"','WRITER','50' ,'"+country+"')\"  title='"+escapeSingleDoubleQuotesUI(data.Writer.TopSearch)+"' >"+topSearch+"</td></tr>"+ 
							 "<tr>";  
							}
		 
						
		               if(data.SongTitle.result.length>0){
						   result=result+"<td align=\"right\" valign=\"top\" style=\"color:#fff; padding-top:5px; padding-right:10px;white-space:nowrap;\" width=\"60\" >Song Title</td><td style=\"font-size:10\" align=\"left\" valign=\"top\" scope=\"col\">";
		               for(i=0,k=0;i<data.SongTitle.result.length;i++) {  
						var  trdata=data.SongTitle.result[i];
						//alert(trdata);
							if (trdata!=null && trdata.length >18) 
								songtitle=trdata.substring(0, 18)+" ...";
							else
								songtitle=trdata;

							trdata=escapeSpecialChars(trdata);
						
										k++;
										result=result+'<a href=\"javascript:save(\''+trdata+' \',\'SONG\',\'50\' ,\''+country+'\' )\"  title=\''+escapeSingleDoubleQuotesUI(data.SongTitle.result[i])+'\' >'+songtitle+'</a><br />';
							

		                  if(k==10)
		                  break;
		              }
		              }
		              if(data.Writer.result.length>0){
		              result=result+"</tr><tr><td style=\"color:#fff; padding-top:5px; padding-right:10px;white-space:nowrap;\" align=\"right\" valign=\"top\" width=\"60\"  >Writer</td><td align=\"left\" valign=\"top\" >";
		              
		               for(i=0,k=0;i<data.Writer.result.length;i++){  
						  var writerName;
						var	trdata=data.Writer.result[i];
							if (trdata!=null && trdata.length >18) 
								writerName=trdata.substring(0, 18)+"..";
							 else
								 writerName=trdata;

							trdata=escapeSpecialChars(trdata);
								
										k++;
					                    result=result+"<a href=\"javascript:save('"+trdata+"','WRITER','50' ,'"+country+"' )\"  title='"+escapeSingleDoubleQuotesUI(data.Writer.result[i])+"' >"+writerName+"</a><br />";
								
		                  
		                 if(k==10)
		                  break;
		              }
		              }
		              
		              if(data.Artist.result.length>0){
		               result=result+"</tr><tr><td align=\"right\" valign=\"top\" style=\"color:#69696c; padding-top:5px; padding-right:10px;white-space:nowrap;\" width=\"60\" >Artist</td><td align=\"left\" valign=\"top\" >"; 
		              
		               for(i=0,k=0;i<data.Artist.result.length;i++){  
						  var  trdata=data.Artist.result[i];
						   var artistName;
						 	if (trdata!=null && trdata.length >18)  
									artistName=trdata.substring(0, 18)+"..";
							else
								artistName=trdata;
							trdata=escapeSpecialChars(trdata);
								result=result+"<a href=\"javascript:save('"+trdata+"','ARTIST','50' ,'"+country+"' )\"  title='"+escapeSingleDoubleQuotesUI(data.Artist.result[i])+"' >"+artistName+"</a><br/>"; 
		                  
		                   if(k==10)
		                  break;
		              }
		              }
		               if( resultLength>0){
							  result=result+"</tr></table></td></tr></table>";
							  document.getElementById('searchResult').style.display="";
							  document.getElementById('searchResult').innerHTML=result;
							 }else{
								    document.getElementById('searchResult').style.display = 'none';
									document.getElementById('searchResult').innerHTML="";
							 }
  
        // }//,"json");

  }, 
	  				
  url: '/JsonServlet?cityName=' +cityName+'&SEARCHTYPE=suggestion',
  dataType: 'json'
});

				     //   jQuery.post("JsonServlet", {cityName: (cityName),SEARCHTYPE:'suggestion'}, function(data) {
							//jQuery.manageAjax.create('lifo', {queue: 'clear', maxRequests: 2, abortOld: true})
						 //document.getElementById('searchResult').style.display = 'none';
							//		document.getElementById('searchResult').innerHTML="";
						
		    });
		    

				 });
