﻿// JScript File
bld = {

    Exists: function(elem)
    {
        return (elem != null && typeof elem != "undefined");
    },
    
    WinBounds: function() 
    {
        var w; var h; var scrollX; var scrollY;
        if (document.body && (document.body.clientWidth !=0)) 
        {
            w=document.body.clientWidth;
            h=document.body.clientHeight;
        }
        if (document.documentElement 
            && (document.documentElement.clientWidth!=0) 
            && (document.body.clientWidth + 20 >= document.documentElement.clientWidth)) 
        {
            w=document.documentElement.clientWidth;   
            h=document.documentElement.clientHeight;   
        }
        if (self.innerHeight) // For Safari
        {
            h = self.innerHeight;
        } 
        if (document.all)
        {
            if (!document.documentElement.scrollLeft)
                scrollX = document.body.scrollLeft;
            else
                scrollX = document.documentElement.scrollLeft;

            if (!document.documentElement.scrollTop)
                scrollY = document.body.scrollTop;
            else
                scrollY = document.documentElement.scrollTop;
        }   
        else
        {
            scrollX = window.pageXOffset;
            scrollY = window.pageYOffset;
        }
        return {width:w,height:h,x:scrollX,y:scrollY};
    },

    OptionDropDownChanged: function(elem)
    {
        var opt = elem.options[elem.selectedIndex];
        if (bld.Exists(opt))
        {
            var target;
            for (var x = 0; x < elem.options.length; x++)
            {
                target = $get(elem.options[x].getAttribute("target"));
                if (bld.Exists(target)) { Sys.UI.DomElement.removeCssClass(target, "Show"); } 
            }
            target = $get(opt.getAttribute("target"));
            if (bld.Exists(target)) { Sys.UI.DomElement.addCssClass(target, "Show"); }
        }    
    },
    
    ShowHideDesc: function(expandId, collapseId, fullDescId)
    {
        var expander = $get(expandId);
        var collapser = $get(collapseId);
        var desc = $get(fullDescId);
        if (bld.Exists(desc) && bld.Exists(expander)) 
        {
            if (Sys.UI.DomElement.containsCssClass(desc, "Show"))
            {
                Sys.UI.DomElement.addCssClass(expander, "Show");
                Sys.UI.DomElement.removeCssClass(collapser, "Show");
                Sys.UI.DomElement.removeCssClass(desc, "Show");
            }
            else
            {
                Sys.UI.DomElement.removeCssClass(expander, "Show");
                Sys.UI.DomElement.addCssClass(collapser, "Show");
                Sys.UI.DomElement.addCssClass(desc, "Show");
            }
        }
    },

    OptionRadioClick: function(radio)
    {
        var inputs = document.getElementsByTagName("input");
        var checked = (radio.parentNode.getAttribute("shadow") == "true");
        for(var i = 0; i < inputs.length; i++)
        {
            if (inputs[i].getAttribute("type") == "radio" && inputs[i].name == radio.name)
            {
                inputs[i].parentNode.setAttribute("shadow", "false");
            }
        }
        if (checked)
        {
            radio.checked = false;
        }
        else
        {
            radio.parentNode.setAttribute("shadow", "true");
        }
    },
    
    FloatFloorPlan: function(span)
    {
        Sys.UI.DomElement.addCssClass(span, "FloatFloorPlan");
    },
    
    UnFloatFloorPlan: function(span)
    {
        Sys.UI.DomElement.removeCssClass(span, "FloatFloorPlan");
    },
    
    ValidateRadio: function(sender, args)
    {
        var hdn = $get(sender.getAttribute("target"));
        var groupName = hdn.value;
        var inputs = document.getElementsByTagName("span");
        args.IsValid = false;
        for(var i = 0; i < inputs.length; i++)
        {
            if (inputs[i].getAttribute("grouping") == groupName)
            {
                var input = inputs[i].firstChild;
                if (input.type == "radio")
                {
                    args.IsValid = (args.IsValid || input.checked);
                }
            } 
        }
    },
    
    ValidateDropDown: function(sender, args)
    {
        var ddl = $get(sender.getAttribute("target"));
        var opt = ddl.options[ddl.selectedIndex];
        args.IsValid = (opt.value.length > 0);
    },
    
    ShowError: function(elemId)
    {
        var elem = $get(elemId);
        bld.ScrollTo(elem, 100);
        Sys.UI.DomElement.addCssClass(elem, "ChoiceErrorClick");
    },
    
    RemoveError: function(elemId)
    {   
        var elem = $get(elemId);
        Sys.UI.DomElement.removeCssClass(elem, "ChoiceErrorClick");
    },
    
    ScrollTo: function(elem, offset)
    {
        var b = Sys.UI.DomElement.getBounds(elem); //b.x; b.y; b.width; b.height;
        var win = bld.WinBounds(); //win.width; win.height, win.x, win.y;
        offset = (offset > b.y) ? b.y : b.y-offset;
        window.scrollTo(b.x, offset);
    },
    
    HighlightError: function(elemId)
    {
        var elem = $get(elemId);
        Sys.UI.DomElement.addCssClass(elem, "ChoiceError");
    },
    
    UnHighlightError: function(elemId)
    {
        var elem = $get(elemId);
        Sys.UI.DomElement.removeCssClass(elem, "ChoiceError");
    }
}

$(window).load(function () {
    var selector = jQuery('.ImageBox').prev('a');

    jQuery(selector).tooltip({effect: 'slide'}).dynamic({ bottom: { direction: 'down', bounce: true } });
});
