// Added to validate the search term 
    function universalSearchUrl(p){
        
        var searchTerm = document.getElementById(p).value;
        searchTerm=encodeURI(trim(searchTerm));
        if(searchTerm!='Search%20by%20part%20number%20or%20keyword' && searchTerm!='Search by part number or keyword' && searchTerm!=null && searchTerm!=""){
        searchTerm=crossiteScripting(searchTerm);
        var submitUrl = 'http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm='+searchTerm+'&linkId=1';
        window.location = submitUrl;
        }
        
    }

    // Does the functionality of recent search 
   function validateSiteSearchTerm (x,submitUrl) {
       var searchTerm=x;
        if (searchTerm.length == 0) {
           document.getElementById("errorEmpty").style.display = "";
       } else {
        
        c_name = "status";
       if (document.cookie.length > 0) {
           c_start = document.cookie.indexOf(c_name);
           if (c_start != -1) {
               c_start = c_start + c_name.length + 1;
               c_end = document.cookie.indexOf(";", c_start);
               if (c_end == -1) c_end = document.cookie.length;
               statusValue = unescape(document.cookie.substring(c_start,c_end));

               c_start = statusValue.indexOf("on");
               if (c_start != -1) {

                                if (searchTerm!=null && searchTerm!="")
                                {
                                    setCookie_ss(searchTerm,submitUrl,60);
                                    
                                }
            getCookie_ss();
               }
           }
       }
       }
           return true;
   }

// Check for the existing cookie 
    function checkCookie(view)
    {
    
    var exdays=60;
        if(view == "true")
        {
        c_name = "status";
               if (document.cookie.length > 0) {
                   c_start = document.cookie.indexOf(c_name);
                   if (c_start != -1) {
                       c_start = c_start + c_name.length + 1;
                       c_end = document.cookie.indexOf(";", c_start);
                       if (c_end == -1) c_end = document.cookie.length;
                       statusValue = unescape(document.cookie.substring(c_start,c_end));

                       c_start = statusValue.indexOf("off");
                       if (c_start == -1) {
                                        var createDate=new Date();
                                        // Setting the expiry date
                                        createDate.setDate(createDate.getDate()+exdays);
                                        var createValue="on" + ((exdays==null) ? "" : "; expires="+createDate.toUTCString());
                                        document.cookie="status"+"="+createValue;
                                        document.getElementById("recentSearchOff").style.display = 'block';
                                        document.getElementById("recentSearchItems").style.display = 'block';
                                        document.getElementById("recentSearchOn").style.display = 'none';
                                        getCookie_ss();
                       }else{
                                        document.getElementById("recentSearchOff").style.display = 'none';
                                        document.getElementById("recentSearchItems").style.display = 'none';
                                        document.getElementById("recentSearchOn").style.display = 'block';
                                        getCookie_ss();
                       }

                   }else{
                   
                        var createDate=new Date();
                        createDate.setDate(createDate.getDate()+exdays);
                        var createValue="on" + ((exdays==null) ? "" : "; expires="+createDate.toUTCString());
                        document.cookie="status"+"="+createValue;
                        document.getElementById("recentSearchOff").style.display = 'block';
                        document.getElementById("recentSearchItems").style.display = 'block';
                        document.getElementById("recentSearchOn").style.display = 'none';
                        getCookie_ss();
                   }
               }
               else{
                               
                                    var createDate=new Date();
                                    createDate.setDate(createDate.getDate()+exdays);
                                    var createValue="on" + ((exdays==null) ? "" : "; expires="+createDate.toUTCString());
                                    document.cookie="status"+"="+createValue;
                                    document.getElementById("recentSearchItems").style.display = 'block';
                                    document.getElementById("recentSearchOff").style.display = 'block';
                                    document.getElementById("recentSearchOn").style.display = 'none';
                                    getCookie_ss();
                   }

        }
        else
            {
            var createDate=new Date();
            createDate.setDate(createDate.getDate()+exdays);
            var createValue="off" + ((exdays==null) ? "" : "; expires="+createDate.toUTCString());
            document.cookie="status"+"="+createValue;
                  document.getElementById("recentSearchItems").style.display = 'none';
                 document.getElementById("recentSearchOff").style.display = 'none';
                  document.getElementById("recentSearchOn").style.display = 'block';
                  setCookie_ss(".","url",-1);
               var i;
               for (i=1;i<6;i++)
                    {
			 var v = "s"+i;
			 document.getElementById(v).innerHTML=" ";
        	}
        
            }
    }

    function setCookieOn(){
    
                var exdays=60;
                var createDate=new Date();
                createDate.setDate(createDate.getDate()+exdays);
                var createValue="on" + ((exdays==null) ? "" : "; expires="+createDate.toUTCString());
                document.cookie="status"+"="+createValue;
                document.getElementById("recentSearchOff").style.display = 'block';
                document.getElementById("recentSearchItems").style.display = 'block';
                document.getElementById("recentSearchOn").style.display = 'none';
                getCookie_ss();
                
                  }

    function setCookie_ss(searchTerm,value,exdays)
    {
    c_name = "recentSearch";
       if (document.cookie.length > 0) {
           c_start = document.cookie.indexOf(c_name);
           if (c_start != -1) {
               c_start = c_start + c_name.length + 1;
               c_end = document.cookie.indexOf(";", c_start);
               if (c_end == -1) c_end = document.cookie.length;
               var recentSearchValue = unescape(document.cookie.substring(c_start,c_end));
               var duplicateIndex=recentSearchValue.indexOf(searchTerm+"$");
               if(duplicateIndex==-1){
               newRecentSearchValue = searchTerm+"$"+value+"@"+recentSearchValue;
               var createDate=new Date();
               createDate.setDate(createDate.getDate()+exdays);
               var createValue=newRecentSearchValue + ((exdays==null) ? "" : "; expires="+createDate.toUTCString());
               document.cookie="recentSearch"+"="+createValue;
               }else{
               	   recentSearchValue=recentSearchValue.replace(searchTerm+"$"+value+"@","");
               	   recentSearchValue=recentSearchValue.replace(searchTerm+"$","$");
                   newRecentSearchValue = searchTerm+"$"+value+"@"+recentSearchValue;
                   var createDate=new Date();
                   createDate.setDate(createDate.getDate()+exdays);
                   var createValue=newRecentSearchValue + ((exdays==null) ? "" : "; expires="+createDate.toUTCString());
                   document.cookie="recentSearch"+"="+createValue;
               }
           }else{
                var createDate=new Date();
                createDate.setDate(createDate.getDate()+exdays);
                searchTerm=searchTerm+"$"+value
                var createValue=searchTerm + ((exdays==null) ? "" : "; expires="+createDate.toUTCString());
               document.cookie="recentSearch"+"="+createValue;

           }
       }else{
                var createDate=new Date();
                createDate.setDate(createDate.getDate()+exdays);
                searchTerm=searchTerm+"$"+value
                var createValue=searchTerm + ((exdays==null) ? "" : "; expires="+createDate.toUTCString());
               document.cookie="recentSearch"+"="+createValue;
       }
       

    }

function getCookie_ss()
    {
    
c_name = "recentSearch";
       if (document.cookie.length > 0) {
           c_start = document.cookie.indexOf(c_name);
           if (c_start != -1) {
               c_start = c_start + c_name.length + 1;
               c_end = document.cookie.indexOf(";", c_start);
               if (c_end == -1) c_end = document.cookie.length;
               recentSearchValue = unescape(document.cookie.substring(c_start,c_end));
               
               recentSearchValueArray=recentSearchValue.split("@");
               var j=1;
               var i,x,y;
               var k=5;
               for (i=0;i<k;i++)
                    {
                    if(i<recentSearchValueArray.length){
                        x=recentSearchValueArray[i].substr(0,recentSearchValueArray[i].indexOf("$"));
                        if (x.indexOf("AP_COOKIE") < 0) {
                        y=recentSearchValueArray[i].substr(recentSearchValueArray[i].indexOf("$")+1);
                        //var r = "a"+j;
			 var v = "s"+j;
			 x=trim(x);
			 if(x.length>0){
			 document.getElementById(v).innerHTML='<a href="'+y+'"><li>'+x+'</li></a>';
			 }else{
			 j=j-1;
			 k=k+1;
			 }
                        //document.getElementById(r).href=y;
                        }
                        }else{
                        x="";
                        y="";
                        }
                        j++;
        }
var resetRecentSearch = '';
var rSLen = recentSearchValueArray.length;
if (rSLen > 10) {rSLen = 10;}

for (var index = 0; index < rSLen; index++) {
   resetRecentSearch += recentSearchValueArray[index];
   if (index != (rSLen - 1)) {
      resetRecentSearch += '@';
   }
}

var createDateN=new Date();
createDateN.setDate(createDateN.getDate()+60);
var createValueN=resetRecentSearch + "; expires="+createDateN.toUTCString();
document.cookie="recentSearch"+"="+createValueN;

           }
       }
       

    }


    // Cross site scripting validation
       function crossiteScripting(text){
           var enteredText=text;
           var htmlTag=/<\S[^><]*>/gi;
           enteredText=enteredText.replace(htmlTag," ");
           var specialCharacterArray = new Array("\!","<",">","\`","\~","\#","\$","\^","\*","\(","\)","\{","\}","\[","\]","\|","\;","\,","\?","\/","\@");
          for (var i = 0; i < specialCharacterArray.length; i++) {
            while(enteredText.indexOf(specialCharacterArray[i])!=-1){
                       enteredText=enteredText.replace(specialCharacterArray[i]," ");
                       }
                     }
              enteredText=trim(enteredText);
              return enteredText;
         }
       function crossiteScriptingAdvanceSearch(text){
           var enteredText=text;
           var htmlTag=/<\S[^><]*>/gi;
           enteredText=enteredText.replace(htmlTag," ");
           var specialCharacterArray = new Array("\!","<",">","\`","\~","\#","\$","\^","\*","\(","\)","\{","\}","\[","\]","\|","\;","\,","\?","\/","\@","\&");
          for (var i = 0; i < specialCharacterArray.length; i++) {
            while(enteredText.indexOf(specialCharacterArray[i])!=-1){
                       enteredText=enteredText.replace(specialCharacterArray[i]," ");
                       }
                     }
              enteredText=trim(enteredText);
              return enteredText;
         }

       // Removes leading whitespaces
       function LTrim( value ) {
           var re = /\s*((\S+\s*)*)/;
           return value.replace(re, "$1");
       }

       // Removes ending whitespaces
       function RTrim( value ) {
           var re = /((\s*\S+)*)\s*/;
           return value.replace(re, "$1");
       }

       // Removes leading and ending whitespaces
       function trim( value ) {
           return LTrim(RTrim(value));
       }

	// Auto complete functionality scripts
    function autoFillTxt(){
    autoFill("usautocmain","#txt_input");
    }
    function autoFillTxt1(){
    autoFill("usautocmain1","#txt_input1");
    }    
    var acItem = '<p><a href="http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=[[search_term]]&linkId=1">[[search_term]]</a></p>';
    var acSuffix = '<br /><a href="http://www.ti.com/sitesearch/docs/advancedsearch.jsp">Advanced Search</a>';
    var acData = [];

	// Autocomplete function 
    function autoFill(acDiv,inputId) {
       var txtVal = $(inputId).val();
       var acList = [];
       var acListPresent = false;
       var acDataLen = 0;
       var acListLen = 0;
       if (txtVal.length >= 3) { // the number 3 to be configured.. read from a props file maybe
          if(acData.length){acDataLen = acData.length;}
          if (acDataLen > 0) {
                 var pattern = new RegExp(txtVal, "gi");
                 for (var index=0; index<acDataLen; index++) {
                    if (acData[index].match(pattern)){
                       if (index+7 == acDataLen ){
                           acListPresent = true;
                           acList = acData.splice(index, index+7);
                       }else {
                          acListPresent = false;
                       }
                       break;
                    }
                 }
          } else {
             acListPresent = false;
          }

          if (acListPresent == false) {
             //ajax call to populate the auto complete data array.
             // url to be read from the props file.. and remove all query params except searchTerm.
             var acUrl = 'http://www.ti.com/sitesearch/docs/autosuggestion.tsp?searchTerm='+txtVal+'&jsonResponse=autocomplete&callbackFn=autoSuggestionCallback&toHide=autocomplete';
             
             var jxhr = $.getJSON( acUrl, function(data) {
             acData = [];
             $.each( data, function(k, v){
               if (v != 'success') {
                   $.each( v, function(k1, v1){
                      $.each( v1, function(k2, v2){
                         if (k2 == 'autoSuggestion'){
                            acData.push(v2);
                         }
                      });
                   });
               }
             });
  
             if(acList.length){acListLen = acList.length;}
             if (null == acList || acListLen == 0) {
                if (acData.length > 7) {
                  
                   acList = acData.slice(0,7);
                   } else {
                      acList = acData;
                   }
                }
                if (acList.length > 0) {
                   var autotxt = '';
                   for (var i = 0; i < acList.length; i++) {
                      var t = acItem;
                      t = t.replace("[[search_term]]",acList[i]).replace("[[search_term]]",acList[i]);
                      autotxt += t;
                   }
            	   
                   document.getElementById(acDiv).innerHTML=autotxt;
    if (document.getElementsByTagName("div")) {
       var abestBets = document.getElementsByTagName("div");
       for (var i = 0; i< abestBets.length; i++){
          if (abestBets[i].className=='usresult')
          abestBets[i].style.zIndex=-1;
       }
    }

                   $("#"+acDiv).show();
               }
         });
         } else {
            if(acList.length){acListLen = acList.length;}
            if (null == acList || acListLen == 0) {
               if (acData.length > 7){
                  acList = acData.slice(0,7);
               } else {
                  acList = acData;
               }
            }
            if (acList.length > 0) {
               var autotxt = '';
               for (var i = 0; i < acList.length; i++) {
                  var t = acItem;
                  t = t.replace("[[search_term]]",acList[i]).replace("[[search_term]]",acList[i]);
                  autotxt += t;
               }
                document.getElementById(acDiv).innerHTML=autotxt;
    if (document.getElementsByTagName("div")) {
       var abestBets = document.getElementsByTagName("div");
       for (var i = 0; i< abestBets.length; i++){
          if (abestBets[i].className=='usresult')
          abestBets[i].style.zIndex=-1;
       }
    }
               	$("#"+acDiv).show();
            }
         }  
      }
   }
 
   $(document).ready(function(){
      $("#txt_input").bind("keyup",autoFillTxt);
      $("#txt_input1").bind("keyup",autoFillTxt1);
    if (document.getElementsByTagName("div")) {
       var abestBets = document.getElementsByTagName("div");
       for (var i = 0; i< abestBets.length; i++){
          if (abestBets[i].className=='usresult')
          abestBets[i].style.zIndex=0;
       }
    }

   });

function hideAutoc(e){
   var myTarget = e.target || e.srcElement;
     if (myTarget.nodeName != "A") {
       $("#usautocmain").hide();
         $("#usautocmain1").hide();
    if (document.getElementsByTagName("div")) {
       var abestBets = document.getElementsByTagName("div");
       for (var i = 0; i< abestBets.length; i++){
          if (abestBets[i].className=='usresult')
          abestBets[i].style.zIndex=0;
          
       }
    }

     }
   return true;
}

if (document.addEventListener){
  document.addEventListener('mousedown', hideAutoc, false); 
} else if (document.attachEvent){
  document.attachEvent('onmousedown', hideAutoc);
}

//document.addEventListener('mousedown', function(e) {
//alert(e);   

//   var myTarget = e.target || e.srcElement;
//     if (myTarget.nodeName != "A") {
//     	 $("#usautocmain").hide();
//         $("#usautocmain1").hide();
//     }
//  return true;
//  }, false);    
    

