/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
var p_request=null;
var maxRow=50;
var maxPage=18;
var sites=[
            "Alivetorrents" ,
            "Btjunkie" ,
            "Extratorrent",
            "Fenopy" ,
            "Isohunt",
            "Kickasstorrents" ,            
            "Seedpeer",
            "Sumotorrent",
            "Torrentbit",
            "Torrentdownloads" ,
            "Torrentreactor" ,
            "Torrentzap",
            "Vertor" ,            
          ];
 var search_sites =[           
            "Alivetorrents" ,
            "Btjunkie" ,
            "Extratorrent",            
            "Fenopy" ,
            "Isohunt",
            "Kickasstorrents" ,            
            "Seedpeer",
            "Sumotorrent",
            "Torrentbit",
            "Torrentdownloads" ,
            "Torrentreactor" ,
            "Torrentzap",
            "Vertor" ,

          ];

 var ajaxs=
         {
            "Alivetorrents":null ,
            "Btjunkie":null  ,
            "Extratorrent":null ,
            "Isohunt":null ,
            "Kickasstorrents":null  ,
            "Fenopy":null  ,
            "Seedpeer":null ,
            "Sumotorrent":null ,
            "Torrentbit":null ,
            "Torrentdownloads":null  ,
            "Torrentreactor":null  ,
            "Torrentzap":null ,
            "Vertor":null 
            
        };
var Request={};
Request.htimer=null;
Request.category={ "Games":0 ,"Movie":0 ,"Music":0 , "Pictures":0 , "Software":0 , "Other":0 };

Request.category_count=6;
Request.rows=[];
Request.tab=null;
Request.created=false;
Request.start=1;
Request.temp=null;
Request.total_torrent=0;
Request.total_leed=0;
Request.total_seed=0;
//==============================================================================
function inicial_request()
{
 Request.created=false;
 Request.total_torrent=0;
 Request.total_leed=0;
 Request.total_seed=0;

 //for(var i=0;i<sites.length;i++)
 //   Request["ajaxObj_"+i]["type"] = null;
  
}
//==============================================================================
function get_category(index)
{
    var cat="All";
    if(index==0)
        cat= "All";
    var i=1;
    jQuery.each( Request.category, function(name,cat_value)
    {
       
        if(i==index)
            {
                cat=name;
               // alert(name);
            }
          
        i++;
    });
    //alert(cat);
    return cat;
}
//==============================================================================
function  loadState(stat)
{
    if(stat)
     {
       document.getElementById("search_result").innerHTML= document.getElementById("div_loading").innerHTML;
     }   
}
//==============================================================================
function loadMultiple(state,type)
{
   if(state)
   {
      //jQuery("#sites").html("");
      jQuery("#div_site_loading").css({display:"block"});
      for(var i=0; i<search_sites.length; i++)
      {
          site = sites[i];
          var id_site = search_sites[i];
          if(id_site =='')
              jQuery("#"+site).css({display:"none","backgroundColor":"#1C94C4","color":"orange"});
          else
              jQuery("#"+site).css({display:"inline","backgroundColor":"#1C94C4","color":"orange"});
      }
    }
   else
   {
      jQuery("#"+type).css({display:"none"});
   }
}
//==============================================================================
function jsearch(search)
{
    inicial_request();
    for(var i=0,n=sites.length;i<n;i++)
    {
        var site=sites[i];
        if(ajaxs[site])
         {
            if(confirm("Searching is Not Finished Yet, Do You Want to Start a New Search Request?"))
                {
                  for(var j=0;j<n;j++)
                     {
                        if(Request["ajaxObj_"+j])
                             Request["ajaxObj_"+i].abort();
                     }
                    break;
                }
             else
                 return ;
         }
    }
    if(!$("#sites_hidden").html() && $("#sites_visible").html() )
        $("#sites_hidden").html($("#sites_visible").html());
    $("#sites_visible").html("");


    jQuery("#sites").hide();
    jQuery("#search_result").html("");

    $("#sites_right").show();



    Request.created=false;
    for(var i=0,n=search_sites.length;i<n;i++)
    {
       var site= search_sites[i];
       if(!site)
           continue;
       var data="search_box="+search+"&type="+site;
       Request["ajaxObj_"+i] =$.ajax({
                        "cache":false,
                        "type":"GET",
                        "url":"searchx.php",
                        "data":data,
                        "dataType":"json" ,
                        "timeout":4900,
                        "beforeSend":function()
                                    {
                                        
                                        loadMultiple(true,site);
                                        ajaxs[site]=1;                                        

                                    },
                       "complete":function (xhttp ,code )
                                    {
                                        
                                        
                                    }
                                    ,
                        "success": function(msg)
                                    {
                                       var type_url = msg["type"];
                                       ajaxs[type_url]=0;
                                       loadMultiple(false,type_url);  
                                       if(msg)
                                         {
                                             Request.rows[type_url]=(msg["rows"]);
                                             initial_tab(Request.rows[type_url],type_url);
                                             //var rand=Math.floor(Math.random()*8);
                                             //if(rand%2)
                                             setup_visual();
                                             set_check(search);
                                         }
                                                                            
                                       
                                    },
                        "error":function(xhttp,status)
                        {
                           var site = set_check_error(xhttp);
                           //alert(site);
                           if(site)
                           {
                             loadMultiple(false,site);
                             ajaxs[site]=0;
                             set_check(search);
                           }
                            
                        }
     });
   }
}
//==============================================================================


//==============================================================================
function initial_tab (datas,type_url)
{
    if(!datas || datas.length==0)
        return ;
    
    var total=datas.length;
    var size=0;
    
    if(Request.created==false)
    {
      var content = "<div id='tabs'> <ul> ";        
      content +=" <li> <a href='#tabs-0' id='t0' > All("+total+") </a> </li> ";      
      var c=1;
      jQuery.each( Request.category, function(name,cat_value)
       {
         var value=0;
         for(var i=0;i<datas.length;i++)
         {
              row=datas[i];
              cat=row["category"];
              cat=Request.map_category(cat);
              if(name.indexOf(cat)!=-1)
              {
                value++;
              }
         }
         content +=" <li><a href='#tabs-"+c+"' id='t"+c+"' > " + name +"(" + value +")" + " </a> </li> ";
         c++;
       });
       

       content +="</ul>";

       content += "<div id='tabs-0' >";       
       content +=  "<table class='tablesorter' id='table_0'  >";
       content +=    "<thead>";
       content +=     "<tr class='head'>";
       //content +=         "<th> # </th>";
       content +=         "<th > Title </th>";
       content +=         "<th   > Size </th>";
       content +=         '<th> Category </th>';
       content +=         '<th> Seed  </th>';
       content +=         '<th> Leech </th>';
       content +=         '<th> Site </th>';
       content +=    ' </tr>';
       content +=  '</thead>';
       content += "<tbody id='bd_0' >";

       var n=datas.length;
       Request.total_torrent+=n;
       for(i=0;i<n;i++)
       {
           var ind =1+i;
           var row= datas[i];
           var cls=i%2;
           var jsact =addLink(row['link']);
           
           if(!isNaN(row["seeds"]))
                Request.total_seed +=parseInt(row["seeds"]);
           if(!isNaN(row["leeds"]))
                Request.total_leed +=parseInt(row["leeds"]);

           size=getSize(row["size"]);
           content +=     "<tr class='tr"+cls+"' id='tr_0_"+i+"' onclick='"+ jsact + "'>";
           //content +=         "<td width=30 ><span>" + ind + "</span></td>";
           content +=         "<td  align='left'><span>" + row["title"]+ "</span></td>";
           content +=         '<td  ><span class="hvalue">'+ size + '</span><span class="hvalue1">'+row["size"]+'</span></td>';
           content +=         '<td ><span>'+row['category']+'</span></td>';
           content +=         '<td ><span>'+row['seeds']+ '</span></td>';
           content +=         '<td ><span>'+row['leeds']+ '</span></td>';
           content +=         '<td ><span>'+type_url+'</span></td>';
           content +=    ' </tr>';           
       }       
       content += "</tbody>";
       content += "<tfoot><tr><td colspan='6' id='t_paging_0' > " ;
       //content += "<div id='paging_0' > Main tab </div>";
       content +="</td></tr></tfoot>";
       content += "</table >";
       content += "<input type='hidden' name='count_0' id='count_0' value='"+ datas.length +"' />";
       
       content +="</div>";

       j=1;
       jQuery.each( Request.category, function(name,cat_value)
       {
           content +="<div id='tabs-"+j+"' >";           
           content +=  "<table class='tablesorter' id='table_"+j+"' >";
           content +=   "<thead>";
           content +=     "<tr class='head'>";
           //content +=         "<th> # </th>";
           content +=         "<th> Title </th>";
           content +=         '<th > Size </th>';
           content +=         '<th> Category </th>';
           content +=         '<th> Seed  </th>';
           content +=         '<th> Leech </th>';
           content +=         '<th> Site </th>';
           content +=    ' </tr>';
           content +=   '</thead>';
           content +=  "<tbody id='bd_" +j+"' >";

           var inc=0;
           for(var i=0;i<datas.length;i++)
           {
              row=datas[i];
              cat=row["category"];
              cat=Request.map_category(cat);
              if(name.indexOf(cat)!=-1)
                {
                       var cls=inc%2;
                       id="tr_"+j+"_"+inc;
                       inc++;
                       var jsact =addLink(row['link']);
                       size=getSize(row["size"]);
                       content +=    "<tr class='tr"+cls+"' id='" + id + "' onclick='"+ jsact + "' >";
                       //content +=         "<td width='30'><span>" + inc + "</span></td>";
                       content +=         "<td  align='left' ><span>" + row["title"]+ "</span></td>";
                       content +=         '<td ><span class="hvalue">'+ size + '</span><span class="hvalue1">'+row["size"]+'</span></td>';
                       content +=         '<td ><span>'+row["category"]+'</span></td>';
                       content +=         '<td ><span>'+row['seeds']+ '</span></td>';
                       content +=         '<td ><span>'+row['leeds']+ '</span></td>';
                       content +=         '<td ><span>'+type_url+'</span></td>';
                       content +=    "</tr>";                       
                }               
           }          
           content += "</tbody>";

           content += "<tfoot><tr><td colspan='6' id='t_paging_"+j+"' > " ;
           // content += "<div id='paging_"+j+"'  >  Tab " + j + " </div>";
           content += "</td> </tr></tfoot>";
           content += "</table >";
           content += "<input type='hidden' name='count_"+j+"' id='count_"+j+"' value='"+ inc +"' />";           
           content +="</div>";
           j++;
       });
       
       content +="</div>";
       jQuery("#search_result").html(content);
       $("#tabs").tabs({"selected":0} );
       Request.created=true;
       $("#sites_visible").html($("#sites_hidden").html());
       $("#sites_hidden").html("");
       $("#sites_visible").show();
    }
    //after result has been returned
    else
    {   
      //======main tab content ======
      var cant=document.getElementById("count_0").value;
      content="";
      
      n = datas.length ;
      Request.total_torrent +=n;
      for(i=0;i<n;i++)
      {
       row=datas[i];
       cls=cant%2;
       id="tr_0_"+cant;
       cant++;
       jsact =addLink(row['link']);
       size=parseFloat(getSize(row["size"]));

       //if(!isNaN(row["seeds"]) && jQuery.trim(row["seeds"]) !="-" )
       Request.total_seed +=parseInt(row["seeds"]);
       //if(!isNaN(row["leeds"])  && jQuery.trim(row["seeds"]) !="-")
       Request.total_leed +=parseInt(row["leeds"]);
       


       content +=     "<tr class='tr"+cls+"' id='"+ id +"' onclick='"+ jsact +"' >";
       //content +=         "<td width='30' ><span>" + cant + "</span></td>";
       content +=         "<td  align='left' ><span>" + row["title"]+ "</span></td>";
       content +=         '<td ><span class="hvalue">'+ size + '</span><span class="hvalue1">'+row["size"]+'</span></td>';
       content +=         '<td ><span>'+row["category"]+'</span></td>';
       content +=         '<td ><span>'+row['seeds']+ '</span></td>';
       content +=         '<td ><span>'+row['leeds']+ '</span></td>';
       content +=         '<td ><span>'+type_url+'</span></td>';
       content +=     "</tr>";
       
      }
      document.getElementById("t0").innerHTML="All("+cant+")";
      document.getElementById("count_0").value=cant;

      //var tbody=document.getElementById("bd_0");
      //var old=tbody.innerHTML;
      //tbody.innerHTML=old+content;

      var tbody=jQuery("#bd_0");
      tbody.append(content);

      

      var j=1;
      jQuery.each( Request.category, function(name, cat_value )
      {
         content="";
         cant=document.getElementById("count_"+j).value;
         for(var i=0;i<datas.length;i++)
         {
           row=datas[i];
           
           cat=row["category"];
           cat=Request.map_category(cat);       
          
           
           if(name.indexOf(cat)!=-1)
            {         
               cls=cant%2;
               id="tr_"+j+"_"+cant;
               cant++;
               var jsact =addLink(row['link']);
               size=getSize(row["size"]);
               content +=     "<tr class='tr"+cls+"' id='"+ id + "' onclick='"+jsact+"' >";
               //content +=         "<td width='30'><span>" + cant + "</span></td>";
               content +=         "<td  align='left' ><span>" + row["title"]+ "</span></td>";
               content +=         '<td ><span  class="hvalue">'+ size + '</span><span class="hvalue1">'+row["size"]+'</span></td>';
               content +=         '<td ><span>'+row["category"]+'</span></td>';
               content +=         '<td ><span>'+row['seeds']+ '</span></td>';
               content +=         '<td ><span>'+row['leeds']+ '</span></td>';
               content +=         '<td ><span>'+type_url+'</span></td>';
               content +=    ' </tr>';
            }           
          }
         document.getElementById("t"+j).innerHTML=name+"("+cant+")";
         document.getElementById("count_"+j).value=cant;

         //tbody=document.getElementById("bd_"+k);
         //old=tbody.innerHTML;
         //tbody.innerHTML=old+content;

         var tbody=jQuery("#bd_"+j);
         tbody.append(content);
         
         j++;
      });      
    }
    update_statistic();
  }
//==============================================================================
function getSize(str)
{
   res=""+str;
   if(res.indexOf("MB") !=-1)
    {
         res=1024*1024*parseFloat(res);
    }
   else if(res.indexOf("GB") !=-1)
    {
          res=1024*1024*1024*parseFloat(res);         
    }
   else if(res.indexOf("KB") !=-1)
    {
         res=1024*parseFloat(res);        
    }
   else if(res.indexOf("Byte") !=-1)
       res=parseFloat("res");
   
   return res;

}
//==============================================================================
function addLink(link)
{
  link=addslash(link);
  return "window.open(\""+link+"\") ";
}
//==============================================================================
function addslash(str)
{
    return (str+'').replace(/([\\"'])/g, "\\$1").replace(/\u0000/g, "\\0");
}
//==============================================================================
Request.map_category =function(cat)
{
  return cat;


  var cat_map=[
                  ["game"],
                  ["movie","video","serie","tv","show","porn","adult","action","adventure","drama"],
                  ["music","audio"],
                  ["pics","picture"],
                  ["software","apps","microsoft","window","office","security","application"]
             ];

  var key=["Game","Movie","Music" ,"Picture" ,"Software" ];
 
  for(var i=0,n=cat_map.length;i<n;i++)
  {
    var list =cat_map[i];
    for(var j=0;j<list.length;j++)
    {
      var name=list[j];
      cat=cat.toLowerCase();

      if(cat.indexOf(name)!=-1)
           return key[i];
    }
  }
  return "Other";
}
//==============================================================================
function set_check_error(xh)
{
  for(var i=0,n=sites.length;i<n;i++)
  {
     if(Request["ajaxObj_"+i] && Request["ajaxObj_"+i]==xh)
        return sites[i]
  }
  return null;
}
//==============================================================================
function set_check(search)
{
  for(var i=0,n=sites.length;i<n;i++)
  {
       var site = sites[i];
       var ajx=ajaxs[site];
       if( ajx== 1)
             return true;
  }    
try
{
  Request.created=false;
  jQuery("#sites").hide();
  combine_request(search);  
  return true;
}
 catch(ex)
 {
    return true;
 }
  
}
//==============================================================================
function setup_visual()
{
   var cant =Request.category_count;
   for(var i=0;i<=cant;i++)
   {
     try
     {
        var id="#table_"+i;

        $(id).tablesorter({
             textExtraction: function(node) {
          return $(node).children().eq(0).html();//childNodes[0].innerHTML;
        }
        , sortList: [[3,1]]
        })
     }
     catch(ex) {}
   }
  // navigate(0, 1);
//    $("table").tablesorter({
//         textExtraction: function(node) {
//      return $(node).children().eq(0).html();//childNodes[0].innerHTML;
//    }
//    , sortList: [[4,1]]
//    });
//
//    $("table").bind("sortEnd",function() {
//        alert("end");
//    });
}
//==============================================================================
function update_statistic()
{
    $("#total_torrents").html(Request.total_torrent);
    $("#total_seeders").html(Request.total_seed);
    $("#total_leechers").html(Request.total_leed);
 }
//==============================================================================
function combine_request(search)
{
    var data="search_box="+search;
    $.ajax({
            "cache":false,
            "type":"GET",
            "url":"searchx.php",
            "data":data,
            "beforeSend":function()
                {

                },
            "complete":function(obj,msg)
                {
                
                },
            "success": function(msg)
                {
                   document.getElementById("main_clouds").innerHTML=msg;                   
                   if(Request.total_torrent==0)
                      jQuery("#search_result").html("<h2 style='font-size:14px;' > No torrent found </h2>");
                   //else
                   //   setup_visual();
                }});
}
//==============================================================================
function createPaging()
{
  //if(Request.created)
   {
      var cant =Request.category_count;
      for(var i=0;i<=cant;i++)
      {
        navigate(i,1);
      }
   }
}
//==============================================================================
function buttonSearch()
{
    var search =document.getElementById("search_box").value;
    document.getElementById("hidden_search").value=search;
    jsearch(search);
   
    /*
     var search=document.getElementById("search_box").value;
     document.getElementById("page").value="1";
     document.getElementById("category").value="";

     if( search=="" || search=="search..." )
      {
        alert("Enter keywords to search");
        return false;
      }
     document.getElementById("hidden_search").value =search;
     doSearch();
     return false;
    */
}
//==============================================================================
function cloudx()
{
    document.getElementById("hidden_search").value =search;
    jsearch();
    return false;
}
//==============================================================================
function cloud(search)
{
   document.getElementById("hidden_search").value =search;
   doSearch();
   return false;
}
//==============================================================================
function search(category,page)
{
    document.getElementById("page").value=page;
    document.getElementById("category").value=category;
    //alert(document.getElementById("category").value);
    doSearch();     
}
//==============================================================================
function update_clouds()
{
    if(document.getElementById("div_clouds") && document.getElementById("div_clouds").innerHTML)
        document.getElementById("main_clouds").innerHTML = document.getElementById("div_clouds").innerHTML;
}
//==============================================================================
function doSearch()
{
     var data =$("#form_search").serialize();
     var div_update=document.getElementById("search_result");//$("#search_result");
     if(p_request)
      {
          if(!confirm(" Do you really want to send your search request again"))
              return;
          else
             p_request.abort();
      }

      p_request= $.ajax({
                        "cache":false,
                        "type":"GET",
                        "url":"search.php",
                        "data":data,
                        "beforeSend":function()
                                        {
                                            loadState(true);
                                        },
                        "complete": function ()
                                        {
                                          p_request=null;
                                        },
                        "success": function(msg)
                                        {
                                           div_update.innerHTML=msg;                                           
                                           createTab();
                                           update_clouds();
                                        }
     });
    
}
//==============================================================================
function createTab()
{
   //var tab=0;
   //if(document.getElementById("tab_active"))
   //    tab=document.getElementById("tab_active").value;

    
   $("#tabs").tabs({"selected":tab} );

   /****************************************************************************
       select: function(event, ui)
       {
          var index=ui["index"];
          var cat=document.getElementById("category_"+index).value;
          document.getElementById("t_category").value=cat;
          //search();
          return true;
       }
    ******************************************************************/
}
//==============================================================================
function createLoadingSite()
{
    //var dsites =jQuery("#sites").css("display","none");
    var dsites =jQuery("#div_site_loading").css("display","none");
    jQuery.each(ajaxs,function(name,value)
    {
       dsites.append("<span id='" + name +  "'  class='loading_site' > "+ name +" </span>" );
    });
}
//==============================================================================
$(document).ready(function()
  {
      $("#search_button").click(function()
      {
           buttonSearch();
           return false;
      });
      $("#search_box").keypress(function(event)
        {
            var code =event.keyCode |event.charCode;
            if(code==13)
              {
                 buttonSearch();
                 return false;
              }
        });
      createLoadingSite();      
      //En_Dis();
  }
);
//===========================================================================
function En_Dis()
{
//     var site ="";
//     for(var i= 0; i< 13; i++)
//        {
//            $("#url_"+i).click(function()
//                {
//                    var url = $(this).attr('id');
//                    var index = url.substr(4);
//                    var c = $(this).attr('class');
//                    if(c =="Enb")
//                        {
//                            $(this).attr('class','Dis');
//                            search_sites[index] = '';
//                            site = sites[index];
//                            update_data(site,false);
//                        }
//                    else
//                        {
//                            $(this).attr('class','Enb');
//                            search_sites[index] = sites[index];
//                            site = sites[index];
//                            update_data(site,true);
//                        }
//                }
//            );
//        }    
}
//==============================================================================
function site_click(q)
{
   var url = $(q).attr('id');
   var index = url.substr(4);
   var c = $(q).attr('class');
   if(c =="Enb")
   {
    $(q).attr('class','Dis');
    search_sites[index] = '';
    site = sites[index];
    update_data(site,false);
   }
   else
   {
    $(q).attr('class','Enb');
    search_sites[index] = sites[index];
    site = sites[index];
    update_data(site,true);
   }
}

//===========================================================================
function update_data(site,type)
{
  var cant=Request.category_count;
  try
  {
      for(var i=0;i<=cant;i++)
      {
        var table = document.getElementById("table_" + i);
        var rows = table.tBodies[0].rows;
        for(var j=0;j<rows.length;j++)
        {
           var row =rows[j];
           var cell=$(row.cells[5]);
           var stype =cell.text();
           if(stype==site)
            {
                if(type == false)
                 {
                     $(row).addClass("sHide");
                     $(row).hide();
                 }
                else
                {
                    $(row).removeClass("sHide");
                    $(row).show();
                }
            }
        }
      }
  }
  catch(ex)
  {
      
  }
  for(i=0;i<=cant;i++)
  {
      navigate(i, 1);
  }
    

}
//===========================================================================
function openWindow(url)
{
    window.open(url,"torrent" );
}