﻿var buttonSendInviteClicked = false;
var buttonSearchClicked = false;
var ws = null;
var runSearchAfterLoad = false;
var round = 1;

function focusSearchInput()
{
    document.forms[0].searchCriteria.focus();
}

function addBookmark(url,desc)
{
	var bookmarkurl      = url;
	var bookmarktitle    = desc;
	var nonie            = 'Omlouváme se, ale tato funkce je podoprována pouze pro prohlížeče Mozilla Firefox a Internet Explorer\nStránku můžete přidat mezi své oblíbené záložkyS také ručně.';

	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(bookmarktitle, bookmarkurl,"");
	} else if(document.all){ // IE Favourites
		window.external.AddFavorite(bookmarkurl,bookmarktitle);
	} else {
		alert(nonie);
	}
}

function SetChatTextScrollPosition()
{
    var chatText = document.getElementById("ChatText");
    chatText.scrollTop = chatText.scrollHeight;
    window.setTimeout("SetChatTextScrollPosition()", 1);
}

function onLoad()
{
    dojo.addOnLoad(function()
    {
      SetChatTextScrollPosition();
    
      //var results = dojo.byId("results");
      var resultsPartUp = dojo.byId("resultsPartUp");
      var resultsPartDown = dojo.byId("resultsPartDown");
      var cursor = dojo.byId("cursor");
      
      ws = new google.search.WebSearch();
      ws.setNoHtmlGeneration();
      ws.setRestriction(google.search.Search.RESTRICT_SAFESEARCH,google.search.Search.SAFESEARCH_STRICT);
      //ws.setSiteRestriction("(www.mp3-ke-stazeni.cz OR mp3s.nadruhou.net)");
      var s = "site:www.mp3-ke-stazeni.cz OR " +
                          "site:mp3-ke-stazeni-zdarma.net OR " +
                          "site:www.mp3fun.eu OR " +
			  "site:www.najhudba.netuje.cz OR " +
			  "site:uloz.to OR " +
                          //"site:www.mp3zadarmo.cz OR " +
                          "site:mp3s.nadruhou.net OR " +
			  "site:www.mp3mania.sk OR " +
			  "site:www.mediafire.com OR " +
                          "site:www.ceskemp3.cz OR " +
  			  "site:filmovezvuky.fdb.cz OR " +
                          //"site:beemp3.com OR " +
			  "site:mp3ky.net OR " +
			  //"site:www.mp3hits.cz OR " +
			  //"site:rapidlibrary.com OR " +
			  //"site:www.mp3kestazenizdarma.net OR " 
			  //"site:www.oblibeny.cz/mp3 OR " +
			  "site:www.oblibeny.cz/mluvene-slovo OR " +
			  "site:jajamp3.cz/mp3 OR " +
			  "site:mp-3.cz OR " +
			  "site:wsn.cz/file OR " +
			  //"site:www.moje-mp3.cz OR " +
        "site:www.mp3stahuj.cz";
      ws.setQueryAddition(s);
			  
      ws.setResultSetSize(google.search.Search.LARGE_RESULTSET);
      
      ws.setSearchCompleteCallback(null, function(w)
      {
        SetVisibility('searching', false);
        //SetVisibility('no-more-search-results', false);
        SetVisibility('resultsPartUp', true);
        SetVisibility('resultsPartDown', true);
        SetVisibility('cursor', true);
        
        if(!w.results)
        {
          return;
        }
        
        var len=w.results.length;
        
        var noSearchResults = dojo.byId("");
        var searchResults = dojo.byId("");
        
        SetVisibility('google-result-advert', true);
        
        //results.innerHTML = "";
        resultsPartUp.innerHTML = "";
        resultsPartDown.innerHTML = "";
        cursor.innerHTML = "";
        
        //var d = dojo.doc.createElement("div");
        //results.appendChild(d);
        
        var removedResults = 0;
        for(var i=0; i<len; i++)
        {
          var r = w.results[i];
          //smazeme nezadouci vysledky
          //videa z mp3stahuj:
          var regexp=/http:\/\/www.mp3stahuj.cz\/[a-z]/g;
          var result=r.url.match(regexp);
          if ((result != undefined && result.length > 0) && r.url.indexOf("jak_stahovat") < 0 
            && r.url.indexOf("prehravac") < 0)
          {
            removedResults = removedResults + 1;
            continue;
          }
          
          //www.mp3-ke-stazeni.cz/hledej
          var regexp=/http:\/\/www.mp3-ke-stazeni.cz\/hledej/g;
          var result=r.url.match(regexp);
          if (result != undefined && result.length > 0) 
          {
            removedResults = removedResults + 1;
            continue;
          }
          
          //mp3s.nadruhou.net
          var regexp=/http:\/\/mp3s.nadruhou.net\/(watch.php|index.php|text.php)/g;
          var result=r.url.match(regexp);
          if (result != undefined && result.length > 0) 
          {
            removedResults = removedResults + 1;
            continue;
          }
          
          //ceskemp3.cz
          var regexp=/http:\/\/www.ceskemp3.cz\/index.php/g;
          var result=r.url.match(regexp);
          if (result != undefined && result.length > 0) 
          {
            removedResults = removedResults + 1;
            continue;
          }
          
          //mp3ky.net
          var regexp=/mp3ky.net\/mp3/g;
          var result=r.url.match(regexp);
          if (result != undefined && result.length > 0) 
          {
            removedResults = removedResults + 1;
            continue;
          }
           
          //uloz.to
          if (round == 1) {
            var regexp=/uloz.to\/(browse\/\?type=user|hledej)/g;
            var result=r.url.match(regexp);
            if (result != undefined && result.length > 0)
            {
              removedResults = removedResults + 1;
              continue;
            }
          }
          
          //mp-3.cz
          var regexp=/www.mp-3.cz\/stahujmp3/g;
          var result=r.url.match(regexp);
          if (r.url.indexOf("www.mp-3.cz") >= 0 && (result == undefined || result.length == 0)) 
          {
            removedResults = removedResults + 1;
            continue;
          }
           
          w.createResultHtml(r);
          
          if(r.html)
          {
            var n = r.html.cloneNode(true);
//            
//            dojo.query(".gs-visibleUrl-short", n).forEach(function(p)
//            {
//              p.parentNode.removeChild(p);
//            });

//            dojo.query(".gs-visibleUrl", n).forEach(function(p)
//            {
//              p.parentNode.removeChild(p);
//            });
            //var title = n.childNodes[0].innerText || n.childNodes[0].textContent; //IE ,FF a Opera hack
            //odfiltrovani tech vysledku, ktere nemaji v titulku hledany text
            //if (title.toLowerCase().indexOf(GetSearchCriterium().toLowerCase()) == -1)  
            //{
            //   removedResults = removedResults + 1;
            //   continue;
            //}

            //prohozeni url serveru s dlouhou url
            var shortUrl = n.childNodes[2];
            var longUrl = n.childNodes[3];
            n.removeChild(shortUrl);
            n.removeChild(longUrl);
            n.appendChild(longUrl);
            n.appendChild(shortUrl);

            dojo.query(".gs-watermark", n).forEach(function(p)
            {
              p.parentNode.removeChild(p);
            });
            
             dojo.query(".gs-snippet", n).forEach(function(p)
            {
              p.parentNode.removeChild(p);
            });
            
//            dojo.query("a", n).forEach(function(p)
//            {
//              if(p.getAttribute("target"))
//              {
//                p.removeAttribute("target");
//              }
//            });
            //results..appendChild(n);
            
            //pridani prvnich dvou vysledku nad reklamy a zbytek pod reklamy
            if (i - removedResults < 2)
            {
                resultsPartUp.appendChild(n);
            }
            else
                resultsPartDown.appendChild(n);
          }
        }
        //pokud byly odstraneny vsechny vysledky a nejsem na posledni strance,
        //tak zavolam rovnou dalsi stranku
        var nextPage = false;
        if (len > 0 && removedResults == len)
        {
          if (w.cursor.pages.length != (w.cursor.currentPageIndex+1)) {
            ws.gotoPage(w.cursor.currentPageIndex+1);
            nextPage = true;
            }
        }
        //kdyz nemame zadne vysledky, provedeme druhe hledani bez allintitle
        if (!nextPage)
          len = len - removedResults;
        
        if(len == 0 && round == 2)
        {
          SetVisibility('search-results', true);
          SetVisibility('no-search-results', true);
        }
        else if(len == 0 && round == 1)
        {
          DoSearch(false);
        }
        else
        {
          SetVisibility('search-results', true);
          SetVisibility('no-search-results', false);
        }
        
        if(w.cursor)
        {
          var cn = dojo.doc.createElement("div");
          cn.className = "gsc-cursor";
          var label = dojo.doc.createElement("div");
          label.innerHTML = "Stránky:";
          label.className = "label";
          cn.appendChild(label);
          for(var i=0, len=w.cursor.pages.length; i<len; i++)
          {
            var pn = dojo.doc.createElement("div");
            pn.className = "gsc-cursor-page";
            if(i == w.cursor.currentPageIndex)
            {
              pn.className += " gsc-cursor-current-page";
            }
            
            pn.innerHTML = w.cursor.pages[i].label;
            pn.idx = i;
            dojo.connect(pn, "onclick", function(evt)
            {
              ws.gotoPage(evt.target.idx);
            });
            cn.appendChild(pn);
          }
          cursor.appendChild(cn);
        }
      }, [ws]);
      
      // attach "powered by Google" branding
      google.search.Search.getBranding(document.getElementById("branding"));

      function query(evt)
      {
        var eventArg = "1";
        
        if (evt.keyCode == 13)
        {
            buttonSearchClicked = true;
            eventArg = "2";
        }
        else if(evt.type == "keypress")
            return true;

        dojo.stopEvent(evt);
            
        PrepareSearch(eventArg);
      }
      
      function captureEnter(evt)
      {
        if (evt.keyCode == 13)
        {
            dojo.stopEvent(evt);
            return false;
        }
      }

      dojo.connect(dojo.byId("searchButton"), "onclick", query);
      dojo.connect(dojo.byId("searchCriteria"), "onkeypress", query);
      dojo.connect(dojo.byId("txtNewChatMessage"), "onkeypress", captureEnter);
      //dojo.connect(dojo.byId("searchForm"), "onsubmit", query);
      
      if (runSearchAfterLoad)
      {
        runSearchAfterLoad = false;
        PrepareSearch('1');
      }
    });
}

function PrepareSearch(eventArg)
{
    if (buttonSendInviteClicked)
    {
        buttonSendInviteClicked = false;
        doPostBackAsync("btnSendInviteFriend", "3");
    }

    if (buttonSearchClicked)
    {
        buttonSearchClicked = false;
        
        doPostBackAsync("searchButton", eventArg);
        SetVisibility('search-results', false);
        SetVisibility('no-search-results', false);
        SetVisibility('google-result-advert', false);
        SetVisibility('resultsPartUp', false);
        SetVisibility('resultsPartDown', false);
        SetVisibility('cursor', false);
        SetVisibility('searching', true);
        
        window.setTimeout("DoSearch(true)", 800);
    }
}

function DoSearch(allInTitle)
{
    if (ws != null)
    {
        if (allInTitle)
        {
          round = 1;
	  ws.execute("allintitle:" + GetSearchCriterium());
        }
	else
  	{
	  round = 2;
	  ws.execute(GetSearchCriterium());
	}
    }
}

function GetSearchCriterium()
{
    return dojo.trim(dojo.byId("searchCriteria").value);
}

function SetVisibility(elementId, visible)
{
    var searching = dojo.byId(elementId);
    if (searching != null)
        searching.style.display = (visible)? 'block' : 'none';
}

function entsub(myform) {
  if (window.event && window.event.keyCode == 13)
    myform.submit();
  else
    return true;}

function post_to_url(path) {
    //odeslani formulare postem
    var form = document.createElement("form");
    form.setAttribute("method", "post");
    form.setAttribute("action", path);
    form.setAttribute("target", "_blank");

    var hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");
    hiddenField.setAttribute("name", "name");
    hiddenField.setAttribute("value", "stahnoutmp3");
    form.appendChild(hiddenField);
    
    hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");
    hiddenField.setAttribute("name", "domain");
    hiddenField.setAttribute("value", "webovastranka.sk");
    form.appendChild(hiddenField);
    
    hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");
    hiddenField.setAttribute("name", "password");
    hiddenField.setAttribute("value", "mazli123");
    form.appendChild(hiddenField);

    document.body.appendChild(form);
    form.submit();
}

function doPostBackAsync( eventName, eventArgs )
{
    var prm = Sys.WebForms.PageRequestManager.getInstance();

    if( !Array.contains( prm._asyncPostBackControlIDs, eventName) )
    {
        prm._asyncPostBackControlIDs.push(eventName);
    }
 
    if( !Array.contains( prm._asyncPostBackControlClientIDs, eventName) )
    {
        prm._asyncPostBackControlClientIDs.push(eventName);
    }
 
    __doPostBack( eventName, eventArgs );
}


