﻿var _searchModule = new Object();
var _interactiveIcons = new Object();
var _activeNavItem = '';
var _searchHintShared = '';

function Search()
{
    init();
    
    function init()
    {
        var searchTextBox = $get('searchTextBox');        
        $addHandler(searchTextBox, 'click', searchEventHandlers); 
        $addHandler(searchTextBox, 'focus', searchEventHandlers);        
        $addHandler(searchTextBox, 'blur', searchEventHandlers);     
        $addHandler(searchTextBox, 'keypress', searchEventHandlers);   
        $addHandler($get('SearchButton'), 'click', searchEventHandlers);                            
    }

    this.doSearch = function()
    {
        var searchTextBox = $get('searchTextBox');
        if (searchTextBox)
        {
            var query = searchTextBox.value;
            window.location = '/Search.aspx?query=' + query;
            return true;
        }
        return false;
    }

    function searchEventHandlers(eventElement)
    {
        if (eventElement.target.id == 'SearchButton' && eventElement.type == 'click')
        {
            _searchModule.doSearch();
            return false;
        }
        else if (eventElement.target.id == 'searchTextBox')
        {
            if (eventElement.type == 'click' || eventElement.type == 'focus')
            {
                if (eventElement.target.value == _searchHintShared)
                {
                    eventElement.target.value = '';
                    Sys.UI.DomElement.removeCssClass(eventElement.target, 'watermarkOn');
                    Sys.UI.DomElement.addCssClass(eventElement.target, 'watermarkOff');
                }
            }
            else if (eventElement.type == 'blur')
            {
                if (eventElement.target.value == '') 
                { 
                    eventElement.target.value = _searchHintShared; 
                    Sys.UI.DomElement.removeCssClass(eventElement.target, 'watermarkOff');
                    Sys.UI.DomElement.addCssClass(eventElement.target, 'watermarkOn'); 
                } 
                else 
                {
                    Sys.UI.DomElement.removeCssClass(eventElement.target, 'watermarkOn');
                    Sys.UI.DomElement.addCssClass(eventElement.target, 'watermarkOff');
                }
            }
            else if (eventElement.type == 'keypress')
            {
                if (eventElement.charCode == 13) 
                {
                    _searchModule.doSearch();
                    return false;
                }
            } 
        }
    }
}

function InteractiveIcons()
{
    var map = {};
    for (var name in _icons)
    {
        map[_icons[name]] = name;
        map[name] = _icons[name];
    }   

    var docImages = document.images;    
    for (i=0; i < docImages.length; i++)
    {
        if (docImages[i].src in map)
        {          
            map[docImages[i].id] = 
            { 
                'mouseover': map[map[docImages[i].src] + 'Hover'],
                'mouseout' : docImages[i].src
            };
            $addHandler($get(docImages[i].id), 'mouseover', mouseOverOutHandler); 
            $addHandler($get(docImages[i].id), 'mouseout', mouseOverOutHandler); 
            $get(docImages[i].id).style.cursor = 'pointer';
        }
    }
    _icons = {};
    var item = null;
    for (var name in map)
    {
        item = map[name];    
        if (_activeNavItem == name)
        {
            item.mouseout = item.mouseover;
            var el = $get(name);
            if (el)
            {
                el.src = item.mouseover;
            }                        
        }
        _icons[name] = item;
    }
   
    function mouseOverOutHandler(eventElement)
    {
        if (!_icons[eventElement.target.id])
        {
            return;
        }
                
        if (eventElement.type == 'mouseover')
        {
            eventElement.target.src = _icons[eventElement.target.id].mouseover;            
        }
        else if (eventElement.type == 'mouseout')
        {
            eventElement.target.src = _icons[eventElement.target.id].mouseout;                                            
        }   
    }
    
    this.registerImage = registerImage;  
    
    function registerImage(image, overImgSrc, outImgSrc)
    {      
        _icons[image.id] =         
        { 
            'mouseover': overImgSrc,
            'mouseout' : outImgSrc
        }; 
        
        $addHandler(image, 'mouseover', mouseOverOutHandler); 
        $addHandler(image, 'mouseout', mouseOverOutHandler);
        image.style.cursor = 'pointer'; 
    }    
}

function SignedInOutHeader(currentUserGuid, currentUsername)
{
    if (currentUserGuid) {
        // caller needs to have defined el
        el = $get('signedIn');
        el.innerHTML = 'Signed in as ';
        el = $get('mySynthsLink');
        el.innerHTML = currentUsername;
    }
}
