  
    var errorCount=0;   
    var twitter_link;

    // Create a search control
    var searchControl;

    function searchGoogle(query)
    {       
      searchControl.execute(query);
    }

   function searchTwitter(query)
   {
     twitter_link="http://search.twitter.com/search?q="+query;

     var s ="http://search.twitter.com/search.json?q="+query+"&rpp=20";

     var container = document.getElementById("twitter");
     container.innerHTML = "<img style='padding-top:100px;padding-right:100px' src='/got/loading.gif' alt='loading ...' border='0'/>";

     getTwitter(s+"&callback=results");
     		
   }

    function results(t)
    {
       var v;

       if (t) v = t.results;

       var container = document.getElementById('twitter');

       if (!v)
       {
         container.innerHTML="<div class='error'>nobody writes about that</div>";   
       }
       else
        if (v.length==0)
        {
         container.innerHTML="<div class='error'>nobody writes about that</div>";   
        }
        else
        {
         var sText = "";  
         for (var i=0; i<v.length; i++)
         { 
           sText +=getEntry(v[i]);
         }

    
         container.innerHTML=sText;

        /*
         var l = document.createElement("div"); 
         l.innerHTML="<a href='"+twitter_link+"' title='Twitter search' target='_blank'>See more from Twitter</a>"
                     +"<br/>&nbsp;";
         container.appendChild(l);
        */ 

       } 
    }

   function getEntry(entry)
    {

           var sText ="<a style='text-decoration:none' href='http://tinfo.linkstore.ru?u="+entry.from_user+"' target='_blank'><img src='"+entry.profile_image_url+"' style='float:left;padding-right:7px' border='0' width='48' height='48'/></a>"; 

           sText += proceedText(entry.text);

           if (entry.geo)
            if (entry.geo.coordinates)
              sText+="&nbsp; <a href='http://bigmap.linkstore.ru?lat="
                    +entry.geo.coordinates[0]
                    +"&lng="
                    +entry.geo.coordinates[1]
                    +"&zml=10" 
                    +"&mrk=1"  
                    +"' target='_blank' style='text-decoration:none' title='Show map'>"
                    +"<img alt='' width='16' height='16' border='' src='/got/map.jpg'/></a>";

           sText += "<br/>";
          
           sText+="<span style='font-size:80%;color:#555555'>"+dateDiff(new Date(entry.created_at), new Date());
 
          if (entry.from_user) 
             sText+=" by <a href='http://tinfo.linkstore.ru?u="+entry.from_user+"' target='_blank'>"+entry.from_user+"</a>";

           sText+="&nbsp;";
           sText+=" <a href='http://twitter.com/home?status=@"+entry.from_user+"&in_reply_to_status_id="+entry.id+"&in_reply_to="+entry.from_user
            +"' target='_blank' title='Reply to '"+entry.from_user+"'>Reply</a> "; 
           sText+="&nbsp;";
           sText+=" <a href='http://twitter.com/"+entry.from_user+"/statuses/"+entry.id
                 +"' target='_blank' title='Show tweet'>View tweet</a>";
          
           if (entry.text.indexOf("@")==0)
             sText+="&nbsp; "+"<a style='text-decoration:none' title='Conversation' target='_blank' href='http://tdialog.linkstore.ru?"+entry.id+"' target='_blank'><img alt='' border='0' src='/got/thread.png'/></a>&nbsp; ";

           sText+="</span><br/><br/><br/>";

           return sText;
    }

    function proceedText(text)
    {
        var tweet = text;
        var re = new RegExp("(([a-zA-Z]+:\/\/)([a-zA-Z][a-zA-Z0-9_\.-]*[a-zA-Z]{2,6})([a-zA-Z0-9~\#\/\._\?\&%-=]*[a-zA-Z0-9~\#\/_\?\&%-=]))", "g");
        tweet = tweet.replace(re, '<a style="' + 'text-decoration:none;" target="_new" href=$1 >$1</a>');
        re = new RegExp("@([a-zA-Z0-9_]+)", "g");
	tweet = tweet.replace(re, '@<a style="' + 'text-decoration:none;" target="_new" href=http://tinfo.linkstore.ru?u=$1>$1</a>');

        re = new RegExp("#([a-zA-Z0-9_]+)", "g");
	tweet = tweet.replace(re, '<a style="' + 'text-decoration:none;" href=http://got.linkstore.ru?q=%23$1>#$1</a>');

        tweet = tweet.replace(/&/g, '&');

        re = new RegExp("(http://twitpic.com/)([0-9a-zA-Z]*)");
	var m = re.exec(tweet);
	if  (!m || m.length == 0 || m[2] == "photos" || m[2] == "photo" || m[2] == "tag") {} 
	else {tweet = tweet+'<br/>' + '<center><a href="http://twitpic.com/' + m[2] + '" target="_blank"><img src="http://twitpic.com/show/thumb/' + m[2] + '" border=0 height=150 width=150></a></center>';}	

        re = new RegExp("(http://yfrog.com/)([0-9a-zA-Z]*)");
	var m = re.exec(tweet);
	if  (!m || m.length == 0) {} 
	else {tweet = tweet +'<br/>' + '<center><a href="http://yfrog.com/' + m[2] + '" target="_blank"><img src="http://yfrog.com/' + m[2] + '.th.jpg" border=0 height=150 width=150></a></center>';}	

      return tweet;
    }

   function getTrends()
   {
     var cbscript = document.createElement("script");
     cbscript.src = 'http://search.twitter.com/trends.json?callback=trends';
     cbscript.type = 'text/javascript';
     document.body.appendChild(cbscript);    
   }

   function init()
   {
    if (typeof searchControl !='undefined') return;
  
    searchControl = new google.search.SearchControl();

    // Add in a full set of searchers
    options = new google.search.SearcherOptions();
    options.setExpandMode(google.search.SearchControl.EXPAND_MODE_PARTIAL);
   
    options1 = new google.search.SearcherOptions();
    options1.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);

    var blogSearch = new google.search.BlogSearch();
    blogSearch.setResultOrder(google.search.Search.ORDER_BY_DATE);
    searchControl.addSearcher(blogSearch, options1);

    searchControl.addSearcher(new google.search.NewsSearch(), options1);

    //searchControl.addSearcher(new google.search.ImageSearch());
    //searchControl.addSearcher(new google.search.VideoSearch());

    google.search.Search.getBranding(document.getElementById("branding"));

    var drawOptions = new google.search.DrawOptions();

    // tell the searcher to draw itself in linear mode
    drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_LINEAR);

    
    // Tell the searcher to draw itself and tell it where to attach
    searchControl.draw(document.getElementById("google"),drawOptions);
  }

   function trends(d)
   {
      var v = d.trends;
      var o = document.getElementById("trends");
      var o1 = document.getElementById("gtrends");

      var s="";
      var s1 = "";
      cnt = 0;

      for (var i=0; i<v.length; i++)
      {
         var n = v[i].name;
         s+="<a href='javascript:void(0)' onClick=\"searchTrend('"+n+"')\" title='search this'>"+n+"</a>&nbsp; ";
         if (i==4) s+="<br/>";

         if (n.indexOf("#")!=0 && cnt<4) 
         {
           if (s1!='') s1+=",";
           s1+=n;
           cnt++; 
          }
      }
 
      o.innerHTML = s + "<br/>&nbsp;<br/>&nbsp;";

      var s2="<"+"iframe src='http://www.gmodules.com/ig/ifr?url=http://www.google.com/ig/modules/trends_gadget.xml&amp;source=imag&amp;up_is_init=true&amp;up_cur_term="
            +s1 //"Adam+Lambert,+Allison+Iraheta,+Danny+Gokey,+Kris+Allen"
            +"&amp;up_date=mtd"
            +"'" //+"&amp;up_region=US'"
            +" style='border:1px solid #ccc; padding:10px;' width='330' height='250' frameborder='0' scrolling='no'></iframe>";

      o1.innerHTML = s2;
   }

   function searchTrend(s)
   {
      document.forms['mf'].q.value=s;
      document.forms['mf'].submit();
   }

   function dateDiff(d1, d2)
   {
     var diff  = new Date();

     diff.setTime(Math.abs(d1.getTime() - d2.getTime()));

     var timediff = diff.getTime();

     var weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
     timediff -= weeks * (1000 * 60 * 60 * 24 * 7);

     var days = Math.floor(timediff / (1000 * 60 * 60 * 24)); 
     timediff -= days * (1000 * 60 * 60 * 24);

     var hours = Math.floor(timediff / (1000 * 60 * 60)); 
     timediff -= hours * (1000 * 60 * 60);

     var mins = Math.floor(timediff / (1000 * 60)); 
     timediff -= mins * (1000 * 60);

     var secs = Math.floor(timediff / 1000); 
     timediff -= secs * 1000;

     var ans ="";
     if (weeks!=0) ans+=weeks+" weeks ";

     if (days!=0)  ans+=days+" days ";

     if (hours!=0) ans+=hours+" hours ";
     else
     {
       if (mins!=0)  ans+=mins+" mins ";   
       else
          ans += secs +" secs "    
     }

     return ans+"ago";
   }

   function getName(s)
   {
     var i = s.indexOf(" ");
     if (i>0) return s.substring(0,i); 
     else     return s;
   }

   function search()
   {
      var s = document.forms['mf'].q.value;

      if (s!='')
      {
        var s0 = s;
        s= encodeURIComponent(s);

        var o = document.getElementById("gtrends");

        o.style.display = 'none';
        
        errorCount=0;
        searchGoogle(s0);
        searchTwitter(s);

        writeShare(s);
      } 

      return false;
   }


    function getTwitter(query)
    {
      var cbscript = document.createElement("script");
      cbscript.src = query;
      cbscript.type = 'text/javascript';
      document.body.appendChild(cbscript);
    }

   function writeShare(query)
   {
     var twitter_link="http://search.twitter.com/search?q="+query;
     var google_link = "http://blogsearch.google.com/?q="+query+"&as_drrb=q&as_qdr=d&scoring=d&ie=utf-8&num=15";
     var this_link=encodeURIComponent("http://got.linkstore.ru?q=")+encodeURIComponent(query);
     
     var subjectLine='Take a look at this search'; 
     var bodyText='See: '+this_link;

     var message_link = 'mailto:?subject='+escape(subjectLine)+'&body='+bodyText;
     
     var face_link = 'http://www.facebook.com/sharer.php?u='+this_link+'&t='+encodeURIComponent(subjectLine);
     
     var s = "<a href='"+google_link+"' title='Google search' target='_blank'>More Google</a> | "
           + "<a href='"+twitter_link+"' title='Twitter search' target='_blank'>More Twitter</a> | " 
           + "<a href='"+message_link+"' title='Share via email' target='_blank'>email</a> | "
	   + "<a href='"+face_link+"' title='Share via facebook' target='_blank'>facebook</a> | "
	   + "<a href='http://twitter.com/home?status="+this_link+"' target='_blank'>twit this</a>";

     document.getElementById('share').innerHTML = s;
   }

 
