﻿var ql_state = "Hidden";
var ql_hideTimeout = 0;
var ql_showTimeout = 0;

function ShowHideBox()
{
    var o = document.getElementById("searchbtn");

    if (ql_state == "Hidden")
        QuickLinkOver(o);
    else
        QuickLinkOut(o);
}

function QuickLinkOver(o)
{
    if (ql_showTimeout > 0)
    {
        clearTimeout(ql_showTimeout);
        ql_showTimeout = 0;
    }

    if (ql_hideTimeout != 0)
    {
        clearTimeout(ql_hideTimeout);
        ql_hideTimeout = 0;
    }

    ql_showTimeout = setTimeout(_QuickLinkOver, 100);
}

function _QuickLinkOver(o)
{
    if (ql_state == "Hidden")
    {
        var o = new ISAnimatedObject1();
        o.Element = document.getElementById("searchbox");

        var style = o.Element.style;
        style.left = (ISPosLib.getLeft(document.getElementById("searchbtn")) - 120) + "px";
        style.top = (ISPosLib.getTop(document.getElementById("searchbtn")) + 30) + "px";

        if (!IS.ie) o.EnableFading = true;
        o.Type = "MenuSlideDown";
        o.Speed = "Slow";
        o.OnCompleted = OnCompletedOver;
        o.Play();
    }
    else
    {
        if (ql_hideTimeout != 0)
        {
            clearTimeout(ql_hideTimeout);
            ql_hideTimeout = 0;
        }
    }
}

function OnCompletedOver(o)
{
    ql_state = "Visible";
    var o = document.getElementById("searchbtn");
    o.style.backgroundImage = "url('/WebResources/Images/Search/searchbtnpressed.png')";
    var txtbox = document.getElementById("txtSearch");
    txtbox.focus();
    ql_showTimeout = 0;
}

function QuickLinkOut(o)
{
    if (o.contains(event.toElement) | o == event.toElement)
        return;

    if (ql_hideTimeout != 0)
    {
        clearTimeout(ql_hideTimeout);
        ql_hideTimeout = 0;
    }

    if (ql_showTimeout > 0)
    {
        clearTimeout(ql_showTimeout);
        ql_showTimeout = 0;
    }

    ql_hideTimeout = setTimeout(_QuickLinkOut, 100);
}

function _QuickLinkOut()
{
    if (ql_state == "Visible")
    {
        var o = new ISAnimatedObject1();
        o.Element = document.getElementById("searchbox");
        if (!IS.ie) o.EnableFading = true;
        o.Type = "MenuSlideUp";
        o.Speed = "Slow";
        o.OnCompleted = OnCompletedOut;
        o.Play();
    }
}

function OnCompletedOut(o)
{
    ql_state = "Hidden";
    var o = document.getElementById("searchbtn");
    o.style.backgroundImage = "";
    ql_hideTimeout = 0;
}

function isSpaceString(text)
{
    var flag = true;
    var i;
    for (i = 0; i < text.length; i++)
    {
        if (text.substr(i, 1) != " ")
        {
            i = text.length;
            flag = false;
        }
    }
    return flag;
}

function cancelSearch(o)
{
    if (o.value == "" || isSpaceString(o.value))
        ShowHideBox();
}

function SearchOnKeyDown()
{
    var srcEl = event.srcElement.tagName;

    if (srcEl = "INPUT")
    {
        if (event.keyCode == 13 || event.srcElement.tagName == "IMG")
        {
            var islocal = true; // NOTE(!): set to false in deployment
            var startIndex = islocal ? 16 : 1;

            var query = document.getElementById("txtSearch").value;

            if (query == "")
                var query = document.getElementById("ctl00_a_txtlargeSearch").value;

            var url = window.location.pathname;
            var path = "/Search.aspx?QueryExpr=" + query;

            RedirectTo(path);

            event.returnValue = false;
            event.cancelBubble = true;
        }
        else if (event.keyCode == 27)
            document.getElementById("txtSearch").blur();
    }
}

function RedirectTo(url)
{
    window.location = url;
}
