
   var lastQuery = "";

   function showForm()
   {
     var o = document.getElementById("inp");
     if (o.style.display=='none') 
     {
       o.style.display='block';
       document.forms['mf'].q.focus();
     }
     else                         o.style.display='none';
   }
  
   function results(t)
    {
       var v ='';

       if (t) v = t.results;
       var i;

       if (v.length==0)
       {
         document.getElementById("twitter").innerHTML="<div class='error'>nobody writes about it</div>";   
       }
       else
       {
         var sText = "";  
         var tt = new Array();

         for (i=0; i<v.length; i++)
         { 
           var entry = v[i];
           var sEntry = getEntry(entry,tt); 

           if (i%3==0)
           {
            var c = sEntry.substring(0,1);

            if (goodCandidate(c))
             sEntry="<p class='bukv'>"+sEntry+"</p>";
           }
                     
           sText +="<div id='res"+i+"' class='res'>"+sEntry+"</div>";
           if ((i+1)%3==0) sText+="<br/>";
          }
     

         document.getElementById("inp").style.display='none';

         document.getElementById('twitter').innerHTML=sText;

         $('#twitter').columnize({columns:3}); 
         for (i=0; i<tt.length; i++)
         {
           $('#res'+i).qtip({
            content: tt[i],
            position: {
             corner: {
            target: 'topMiddle',
            tooltip: 'bottomLeft'
            }
           },
           style: { 
             tip:'bottomLeft',
             padding:'5px',
             name: 'green' // Inherit from preset style
           },
           hide:
           { fixed:true,
             delay:100 
           }
         });

        } 

        writeShare(lastQuery);

       }
    }

    function goodCandidate(c)
    {
       if ( c=='"' || c=='#' || c=='<' || c=="'" ||
            c=='[' || c=='(' || c=='{' || c=='>' ||
            c=='@' || c=='+' || c=='-' || c=='.' ||
            c==':' || c==';' ||
            !isNaN(c))
         return false;

       return true;
    }        

    function getEntry(entry,tt)
    {
       var sText = '';
       var sTt = '';
       var showAuthor = true; 

           var sPic = proceedPics(entry.text);

           if (sPic!=entry.text) 
           {
             sText+=sPic; 
             //sText += "<br/>";
             showAuthor=false;
           }

          
          //if (showAuthor)
          // 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>"; 

          sTt +="<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 +=proceedUrl(entry.text);
          
          sTt+="<span style='font-size:80%;color:#555555'>"+dateDiff(new Date(entry.created_at), new Date());
 
          if (entry.from_user) 
             //sTt+=" by <a href='http://twitter.com/"+entry.from_user+"' target='_blank'>"+entry.from_user+"</a>";
             sTt+=" by <a href='http://tinfo.linkstore.ru?u="+entry.from_user+"' target='_blank'>"+entry.from_user+"</a>";

           sTt+="&nbsp;";
           sTt+=" <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> "; 
           sTt+="&nbsp;";
           sTt+=" <a href='http://twitter.com/"+entry.from_user+"/statuses/"+entry.id
                 +"' target='_blank' title='Show tweet'>View tweet</a>";

           if (entry.text.indexOf("@")==0)
             sTt+=" <a style='text-decoration:none' href='http://tdialog.linkstore.ru?"+entry.id
                +"' target='_blank' title='Show conversation'><img alt='' border='0' src='/tgazeta/thread.png'/></a>";

           if (entry.geo)
            if (entry.geo.coordinates)
           {
            sTt+="&nbsp;";

            sTt+=" <a href='http://bigmap.linkstore.ru?lat="
                +entry.geo.coordinates[0]
                +"&lng="
                +entry.geo.coordinates[1]
                +"&zml=10" 
                +"&mrk=1"  
                +"' target='_blank' title='Show map'>Map</a>";
           }   

           sTt+="</span>";
                  
          tt[tt.length]=sTt;

          return sText;
    }

    function proceedUrl(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://twitter.com/$1>@$1</a>');

        re = new RegExp("#([a-zA-Z0-9_]+)", "g");
	tweet = tweet.replace(re, '<a style="text-decoration:none;" target="_new" href=http://search.twitter.com/search?q=%23$1>#$1</a>');


        tweet = tweet.replace(/&/g, '&');

        return tweet; 
    }

    function proceedPics(text)
    {
        var tweet = text;
     
        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 = '<a style="float:left;padding-right:7px" href="http://twitpic.com/' + m[2] + '" target="_blank"><img src="http://twitpic.com/show/thumb/' + m[2] + '" border="0" style="height:150;width:150;"></a>';}	

        re = new RegExp("(http://yfrog.com/)([0-9a-zA-Z]*)");
	var m = re.exec(tweet);
	if  (!m || m.length == 0) {} 
	else {tweet = '<a style="float:left;padding-right:7px" href="http://yfrog.com/' + m[2] + '" target="_blank"><img src="http://yfrog.com/' + m[2] + '.th.jpg" border="0" style="height:150;width:150;"></a>';}	

      return tweet;
    }


   function searchTwitter(_query,lat,lng)
   {
     var count = 30;
     var query=_query;

     if (lat!='' && lng!='')
      query+="&geocode="+lat+"%2C"+lng+"%2C15mi";

     lastQuery = query;
     var s = "http://search.twitter.com/search.json?lang=all&q="+query+"&rpp="+count;

     getTwitter(s+"&callback=results");
   }

   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 trends(d)
   {
      var v = d.trends;
      var o = document.getElementById("trends");
     
      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;";

   }

   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;
      var lat='';
      var lng='';

      if (document.forms['mf'].lat) 
         lat = document.forms['mf'].lat.value;

      if (document.forms['mf'].lng) 
         lng = document.forms['mf'].lng.value;

      if (s!='' || (lat!='' && lng!=''))
      {
        s= encodeURIComponent(s);
        
        o = document.getElementById("trends");

        o.style.display = 'none';

        lastQuery = s;

        
        
        searchTwitter(s,lat,lng);
      } 

      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://got.linkstore.ru?q="+query;
     var this_link="http://tgazeta.linkstore.ru?q="+query;
     var twit_link="http://tgazeta.linkstore.ru?q="+encodeURIComponent(query);
     
     var subjectLine='Take a look at this newspaper'; 
     var bodyText='See: '+this_link;

     var lat='';
     var lng='';

     if (document.forms['mf'].lat) 
         lat = document.forms['mf'].lat.value;

     if (document.forms['mf'].lng) 
         lng = document.forms['mf'].lng.value;

     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='"+this_link+"' title='Refresh'>Refresh</a> &nbsp; | ";

     if (lat!='' && lng!='')
          s+="<a href='http://geo.linkstore.ru?lat="+lat+"&lng="+lng+"' title='Geo search' target='_blank'>Geo search</a> | "; 

          s+= "<a href='"+google_link+"' title='Google search' target='_blank'>Google+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> | ";

           if (this_link.length>50)
            s+= "<a href='javascript:void(0)' title='share in twitter' onClick=\"twitThis('"+twit_link+"')\">Twit this</a>";
           else
	    s+= "<a href='http://twitter.com/home?status="+twit_link+"' target='_blank'>twit this</a>";

     s+="<br/>&nbsp;";

     document.getElementById('share').innerHTML = s;
   }
 
  function twitThis(s)
  {
     getTwitter('http://api.bit.ly/shorten?version=2.0.1&longUrl='+s
            + '&login=coldjava&apiKey=R_eaef9593ff7dafb595bf584116f7a108'
            + '&callback=myInfoCallback');
  }

  function myInfoCallback(t)
  {
     if (t.errorCode==0)
     {
        var res = t.results;
        for (var key in res) 
        {
           res = res[key];
           
           var s = 'Search+newspaper+'+res['shortUrl'];
           location.href='http://twitter.com/home?status='+s;
           break;

        }
     }
  }
