﻿

// JScript File
var selectedSubEngine = 0;
var selectedEngine = 0;

function addinfo(str) {
//	document.getElementById('info').value = document.getElementById('info').value + '\n' + str ;

}

function OpenEngine(id) {
    var longButtonId = "engineArea_" + id;
    var shortButtonId = "imageArea_" + id;

    var longButton = document.getElementById(longButtonId);
    var shortButton = document.getElementById(shortButtonId);
    
    var subitems = 0;
    if(document.getElementById("engineArea_" + id) != null)
    {
        subitems = document.getElementById("engineArea_" + id).getAttribute("subitems");
    }
    
    var keyword = document.getElementById("search").value;
    var isKeywordFilled = (keyword.length > 0);
   
    CloseEngines(); 
 
    if((subitems == "1") || (subitems == "0"))
    {
        MarkEngineClicked(id);
    }
    else
    {
        MarkEngineOpened(id);
        ExpandSubEngines(id);
    }    
   
    if(!isKeywordFilled || (id < 1))
    {
    	var href = GetHrefForDefaultSubEngine(id);
    	addinfo(id);
    	addinfo(href);
        if((href == "#") || (href == ""))
        {
            var href = GetFirstNonDefaultLink(id);
            var subId = GetFirstNonDefaultSubItemId(id);
            MarkSubEngineClicked(subId);
            //href = InsertKeywordToLink(href, " ");
        }
        else
        {
            MarkSubEngineClicked(-id);
        }        
        GoToHref(href);
    }
    else
    {
    	var href = GetFirstNonDefaultLink(id);
        var subId = GetFirstNonDefaultSubItemId(id);
        MarkSubEngineClicked(subId);
        href = InsertKeywordToLink(href, keyword);
        GoToHref(href);

        if (selectedEngine != id) {
        	        selectedSubEngine = GetFirstNonDefaultSubItemId(id);        
        	        selectedEngine = id;
        } 
    }
    
   
        
}

function MarkEngineOpened(id)
{  
    var longButtonId = "engineArea_" + id;
    var shortButtonId = "imageArea_" + id;

    var longButton = document.getElementById(longButtonId);
    var shortButton = document.getElementById(shortButtonId);    
    
    longButton.className = "right_block_long_clicked_" + direction;
    shortButton.className = "left_block_small_clicked_" + direction;  
    
}

function ExpandSubEngines(id)
{
    var enginesMenu = document.getElementById("enginesMenu");
    var submenu = document.getElementById("submenuMain_" + id);    
   
    for(var i = 0; i < enginesMenu.getElementsByTagName("ul").length; i++)
    {
        if(enginesMenu.getElementsByTagName("ul")[i].id.indexOf("submenuMain_") == 0)
        {
            var submenuId = enginesMenu.getElementsByTagName("ul")[i].id.split("_")[1];           
            if(submenuId == id)
            {
                enginesMenu.getElementsByTagName("ul")[i].style.display = "block";
                enginesMenu.getElementsByTagName("ul")[i].style.visibility = "visible";
            }         
        }       
    }
    
    MarkSubEnginesUnclicked(id);
}

function MarkSubEnginesUnclicked(engineId)
{
    var submenu = document.getElementById("submenuMain_" + engineId);
    for(var i = 0; i < submenu.getElementsByTagName("li").length; i++)
    {
        var isDefault = (submenu.getElementsByTagName("li")[i].getAttribute("isDefault").toLowerCase() == "true");
        submenu.getElementsByTagName("li")[i].className = "submenuNormal" + (isDefault ? "Default" : "");
        for(var j = 0; j < submenu.getElementsByTagName("li")[i].getElementsByTagName("a").length; j++)
        {
            if(submenu.getElementsByTagName("li")[i].getElementsByTagName("a")[j].id == ("submenuLink"))
            {
                submenu.getElementsByTagName("li")[i].getElementsByTagName("a")[j].className = "submenuLink";
            }
        }
    }
}

function MarkEngineClicked(id)
{
    if(id < 1)
    {
        return;
    }
    
    var longButtonId = "engineArea_" + id;
    var shortButtonId = "imageArea_" + id;

    var longButton = document.getElementById(longButtonId);
    var shortButton = document.getElementById(shortButtonId);

    var enginesMenu = document.getElementById("enginesMenu");
    longButton.className = "right_block_long_clickedsingle_" + direction;
    shortButton.className = "left_block_small_clicked_" + direction;
}

function ClickSubmenu(engineId, id)
{   
    var keyword = document.getElementById("search").value;
    var submenu = document.getElementById("submenuMain_" + engineId);
    
    // check if link has %Q
    // if has and keyword is empty - then perform no action, just return
    
    for(var i = 0; i < submenu.getElementsByTagName("li").length; i++)
    {
        var isDefault = (submenu.getElementsByTagName("li")[i].getAttribute("isDefault").toLowerCase() == "true");        
        
        if(submenu.getElementsByTagName("li")[i].id == ("submenu_" + id))
        {
            var href = "";
            for(var j = 0; j < submenu.getElementsByTagName("li")[i].getElementsByTagName("a").length; j++)
            {
                if(submenu.getElementsByTagName("li")[i].getElementsByTagName("a")[j].id == ("submenuLink"))
                {   
                    href = submenu.getElementsByTagName("li")[i].getElementsByTagName("a")[j].getAttribute("Ahref");
                    href = InsertKeywordToLink(href, keyword);
                    MarkEngineOpened(engineId)
                    MarkSubEnginesUnclicked(engineId);
                    submenu.getElementsByTagName("li")[i].className = "submenuClicked" + (isDefault ? "Default" : "") + "_" + direction;
                    submenu.getElementsByTagName("li")[i].getElementsByTagName("a")[j].className = "submenuLinkClicked";
                    GoToHref(href);
                }
            }
        }
    }    
}

function MarkSubEngineClicked(id)
{
    var subitem = document.getElementById("submenu_" + id);
    
    if(subitem == null)
    {
        return;
    }
    
    var isDefault = (subitem.getAttribute("isDefault").toLowerCase() == "true");
    subitem.className = "submenuClicked" + (isDefault ? "Default" : "") + "_" + direction;
    for(var j = 0; j < subitem.getElementsByTagName("a").length; j++)
    {
        subitem.getElementsByTagName("a")[j].className = "submenuLinkClicked";
    }
}


function GetFirstNonDefaultLink(engineId)
{
    if(engineId < 1)
    {
        return "#";
    }
    
    var submenu = document.getElementById("submenuMain_" + engineId);
    for(var i = 0; i < submenu.getElementsByTagName("li").length; i++)
    {
        var isDefault = (submenu.getElementsByTagName("li")[i].getAttribute("isDefault").toLowerCase() == "true");
        if(!isDefault)
        {
            for(var j = 0; j < submenu.getElementsByTagName("li")[i].getElementsByTagName("a").length; j++)
            {
                if(submenu.getElementsByTagName("li")[i].getElementsByTagName("a")[j].id == ("submenuLink"))
                {
                    return submenu.getElementsByTagName("li")[i].getElementsByTagName("a")[j].getAttribute("Ahref");
                }
            }
        }
    }
    
    return "#";
}

function GetFirstNonDefaultSubItemId(engineId)
{
    if(engineId < 1)
    {
        return 0;
    }
    
    var submenu = document.getElementById("submenuMain_" + engineId);
    for(var i = 0; i < submenu.getElementsByTagName("li").length; i++)
    {
        var isDefault = (submenu.getElementsByTagName("li")[i].getAttribute("isDefault").toLowerCase() == "true");
        if(!isDefault)
        {
            return submenu.getElementsByTagName("li")[i].id.split("_")[1];
        }
    }
    
    return 0;
}

function InsertKeywordToLink(link, keyword)
{
    var newHref = ''; 

	keyword = keyword.replace(/\\/g, "%5C");
    keyword = keyword.replace(/:/g, "%3A");
    keyword = keyword.replace(/\//g, "%2F");
    keyword = keyword.replace(/&/g, "%26");
    keyword = keyword.replace(/#/g, "%23");
    keyword = keyword.replace(/\?/g, "%3F");
    keyword = keyword.replace(/ /g, "+");

	newHref = link.replace("*Q", keyword);
	newHref = newHref.replace("*LANG", language);
    
    if(newHref.length > 0)          
        if((newHref.charAt(newHref.length - 1) == " ") && (newHref.indexOf("?") == -1))
			newHref = newHref + "/";
        
    return encodeURI(newHref);
}

function CloseEngines()
{
    var enginesMenu = document.getElementById("enginesMenu");
    
    for(i = 0; i < enginesMenu.getElementsByTagName("ul").length; i++)
    {
        if(enginesMenu.getElementsByTagName("ul")[i].id.indexOf("submenuMain_") == 0)
        {  
            enginesMenu.getElementsByTagName("ul")[i].style.display = "none";
            enginesMenu.getElementsByTagName("ul")[i].style.visibility = "hidden";            
        }        
    } 
    
    for(i = 0; i < enginesMenu.getElementsByTagName("td").length; i++)
    {
        if(enginesMenu.getElementsByTagName("td")[i].id.indexOf("engineArea_") == 0)
        {
            enginesMenu.getElementsByTagName("td")[i].className = "right_block_long_" + direction;
        }
        
        if(enginesMenu.getElementsByTagName("td")[i].id.indexOf("imageArea_") == 0)
        {
            enginesMenu.getElementsByTagName("td")[i].className = "left_block_small_" + direction;
        }
    }
}

function SetEngineHighlighted(object)
{
	var selectedEngine = object.id.split("_")[1];
	addinfo("fuba");
	addinfo(selectedEngine);
    var longButtonId = "engineArea_" + selectedEngine;
    var shortButtonId = "imageArea_" + selectedEngine;
    
    var longButton = document.getElementById(longButtonId);
    var shortButton = document.getElementById(shortButtonId);
      
    if(longButton.className.indexOf("_clicked") > -1)
    {
        return;
    }  
      
    longButton.className = "right_block_long_highlighted_" + direction;
    shortButton.className = "left_block_small_highlighted_" + direction;
    
    for(i = 0; i < longButton.getElementsByTagName("a").length; i++)
    {
        if(longButton.getElementsByTagName("a")[i].id == "link")
        {
            longButton.getElementsByTagName("a")[i].className = "engineLinkHighlighted_" + direction;
        }
    }
}

function SetEngineNormal(object)
{
	var selectedEngine = object.id.split("_")[1];
	addinfo("khar");
	addinfo(selectedEngine);

    var longButtonId = "engineArea_" + selectedEngine;
    var shortButtonId = "imageArea_" + selectedEngine;
    
    var longButton = document.getElementById(longButtonId);
    var shortButton = document.getElementById(shortButtonId);
   
    if(longButton.className.indexOf("_clicked") > -1)
    {
        return;
    } 
    
    longButton.className = "right_block_long_" + direction;
    shortButton.className = "left_block_small_" + direction;
    
    for(i = 0; i < longButton.getElementsByTagName("a").length; i++)
    {
        if(longButton.getElementsByTagName("a")[i].id == "link")
        {
            longButton.getElementsByTagName("a")[i].className = "engineLink";
        }
    }
}

function OuterSearch(keyword, id)
{
    document.getElementById("search").value = keyword;
    OpenEngine(id);
}

function ClickSearchButton()
{
    ClickSearch();
}

function ClickSearch()
{
    var keyword = document.getElementById("search").value;
    keyword = RightTrim(keyword);
    if(firstEngineId < 0)
        return;

    if(selectedEngine == 0 || keyword == "") {
    	addinfo(firstEngineId);
        OpenEngine(firstEngineId);
    }

    MarkSubEnginesUnclicked(selectedEngine)
    MarkSubEngineClicked(selectedSubEngine);
    var href = GetSelectedHref(selectedEngine, selectedSubEngine);
    href = InsertKeywordToLink(href, keyword);
    GoToHref(href);    
}

function GetSelectedHref(engineId, subEngineId)
{
    if(engineId < 1)
    {
        return "#";
    }
    
    var submenu = document.getElementById("submenuMain_" + engineId);
    for(var i = 0; i < submenu.getElementsByTagName("li").length; i++)
    {
        if(submenu.getElementsByTagName("li")[i].id == ("submenu_" + subEngineId))
        {
            for(var j = 0; j < submenu.getElementsByTagName("li")[i].getElementsByTagName("a").length; j++)
            {
                if(submenu.getElementsByTagName("li")[i].getElementsByTagName("a")[j].id == ("submenuLink"))
                {
                    return submenu.getElementsByTagName("li")[i].getElementsByTagName("a")[j].getAttribute("Ahref"); 
                }
            }
        }
    }
    
    return "#";
}

function GoToHref(link)
{
    if(link == null)
    {
        return;
    }
    
    var isOutside = ((link.indexOf("http://") == 0) || (link.indexOf("https://") == 0));
    if(link.indexOf(serverPrefix) == 0)
    {
        isOutside = false;
    }
    
    var isTorrent = (dot == "torrents");    
  
    link = link.replace(/%22/g, "");
    
    if(isOutside && !isTorrent)
    {
        link = "/action/" + link.replace(/&/g, "%26").replace("http://","");
        
        parent.contentFrame.location.href = link;
    }
    else
    {        
        link = link.replace("/*Q", "/").replace("/%25Q", "/");
        //link = encodeURI(link);
		
	    parent.contentFrame.location.href = link;
    }
}

function RemoveBadCharactersFromLink(link)
{
    //link=encodeURI(link);
    
    link = link.replace(/%22/g, "");
    link = link.replace(/&/g, "%26");
    return link;
}

function ProcessEnter(evt)
{
	if (evt.keyCode == 13) {
		KillEvent(evt);
		ClickSearch();
	}
}

function saveQueryTop() {
	//alert(parent.contentFrame.ReadyState);
	
	parent.topbar.saveQuery(document.getElementById('search').value);
	parent.contentFrame.placeQueryFromExternal(document.getElementById('search').value);
}

function CheckOpenedEngine()
{
    if((selectedEngine == -1) && (firstEngineId > -1))
    {
        OpenEngine(firstEngineId);        
    }
}

function GetHrefForDefaultSubEngine(engineId)
{
    var linkObj = document.getElementById("engineArea_" + engineId);   
    var defaultHref = linkObj.getAttribute("defaultAction");    
    //defaultHref = InsertKeywordToLink(defaultHref, " ");
    return defaultHref;
}


function GetHref(id)
{  
    var linkObj;
    var submenu = document.getElementById("submenu_" + id);
    
    if(submenu != null)
    {
        linkObj = submenu.getElementsByTagName("a")[0];
    }

    if(linkObj != null)
    {
        var keyword = document.getElementById("search").value;
        //if(keyword == "")
        //{
        //    keyword = " ";
        //}

        var newHref = '';
        
		newHref = linkObj.href.replace("%25QUERY", keyword);
		newHref = newHref.replace("*Q", keyword);
		newHref = newHref.replace("*LANG", language);
     
        if(newHref.length > 0)
        {            
            if((newHref.charAt(newHref.length - 1) == " ") && (newHref.indexOf("?") == -1))
            {
                newHref = newHref + "/";
            }
        }        
        
        return encodeURI(newHref);
    }
    
    return "";
}


//if changeCookie == true then it switches the cookie, then does the opposite of the current status
function ShowHideLogo(changeCookie) {

		var logo;
		logo = readCookie("showlogo");

		if (!(logo == 'true' || logo == 'false')) {
			logo = 'true';
			createCookie('showlogo', 'true', 15);
		}

		if (changeCookie == true) {
			if (logo == 'false') {
				createCookie('showlogo', 'true', 15);
				logo = 'true';
			}
			else {
				createCookie('showlogo', 'false', 15);
				logo = 'false';
			}
		}

		var logoTR = document.getElementById("logoTR");
		var img = document.getElementById("logoArrow");
		var control = document.getElementById("logoControl");
		control.style.backgroundColor = '#B4D3E4';

		if (logo == 'true') {
			logoTR.style.visibility = "visible";
			logoTR.style.display = "";
			img.src = imageServerPath + "images/sidebar/min_arrowup.gif";

		}
		else {
			logoTR.style.visibility = "hidden";
			logoTR.style.display = "none";
			img.src = imageServerPath + "images/sidebar/min_arrowdown.gif";
		}


		AdjustScroll();
	
}

function createCookie(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		var expires = "; expires=" + date.toGMTString();
	}
	else var expires = "";
	document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for (var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ') c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
	}
	return null;
}



function MouseOver(id)
{
    window.status = GetHref(id);
    return true;
}

function MouseOut()
{
    window.status = "";
    return true;
}

function MouseOverSection(obj)
{
    if((obj.className != null) && (obj.className.indexOf("_clicked") > -1))
    {
        return;
    }
    obj.className = "upperMenuTable_highlighted";
}

function MouseOutSection(obj)
{
    if((obj.className != null) && (obj.className.indexOf("_clicked") > -1))
    {
        return;
    }
    obj.className = "upperMenuTable";
}


function stopPropagation(anEvent)
{
  if (!anEvent) anEvent = window.event;
  if (anEvent)
  {
    if (anEvent.stopPropagation) anEvent.stopPropagation(); else anEvent.cancelBubble = true;
  }
}

function preventDefault(anEvent)
{
  if (!anEvent) anEvent = window.event;
  if (anEvent)
  {
  	if (anEvent.preventDefault) 
  		anEvent.preventDefault();
  	else 
		anEvent.returnValue = false;
  }
}

function KillEvent(anEvent)
{
  if (anEvent)
  {
    stopPropagation(anEvent);
    preventDefault(anEvent);
  }
  return false;
}

function Trim(orgString)
{
        return LeftTrim(RightTrim(orgString))
}
function LeftTrim(orgString)
{
    return orgString.replace(/^\s+/,'')
}
function RightTrim(orgString)
{
    return orgString.replace(/\s+$/,'')
}