﻿
// JScript File
var CurShownElement     = null;
var CurShowingElement   = null;
var MouseEnterResizePnl = null;

function ShowElement(PositionElementName, ElementName, Left, Top, CheckWindowSizeLeft, CheckWindowSizeTop)
{
    if (Left == null)
        Left = 0;

    if (Top == null)
        Top = 0;

    var Element = document.getElementById(ElementName); 
    var PositionElement = document.getElementById(PositionElementName); 
    var Placement = GetPopupPlacement(PositionElement, PositionElement.offsetWidth); 
    
    //alert('left = ' + Placement.Left + ' top = ' + Placement.Top);
    if (CheckWindowSizeLeft != null)
        if (CheckWindowSizeLeft)
        {
            if (Placement.Left + Left + Element.offsetWidth > document.body.offsetWidth + document.body.offsetLeft)
                Placement.Left = document.body.offsetWidth + document.body.offsetLeft - Element.offsetWidth - Left;
        }

    if (CheckWindowSizeTop != null)
        if (CheckWindowSizeTop)
        {
            if (Placement.Top  + Top + PositionElement.offsetHeight + Element.offsetHeight > document.body.offsetHeight)
                Placement.Top  = document.body.offsetHeight - Element.offsetHeight - Top - PositionElement.offsetHeight;
        }    
        
    var LeftPos = Placement.Left + Left; 
    var TopPos  = Placement.Top  + Top + PositionElement.offsetHeight;
    
    if (LeftPos < 0)
        LeftPos = 0;
        
    if (TopPos < 0)
        TopPos = 0;        
    
    Element.style.left = LeftPos + 'px'; 
    Element.style.top  = TopPos + 'px'; 
    
    Element.style.visibility = 'visible'; 
    Element.style.position   = 'absolute';
    Element.style.zIndex     = 1000;
    CurShowingElement        = PositionElement; 
    CurShownElement          = Element;
}

function HideShownElement()
{
    if (CurShownElement != null)
    {
        CurShownElement.style.visibility = 'hidden';
        try { CurShownElement.src = ""; } catch (err) { }
        
        var FrameID  = CurShownElement.id;
        ClearTimerID = 'ResizeFrameInterval' + FrameID;
        try 
        {
            window.execScript("window.clearInterval('" + ClearTimerID + "')");
        }
        catch (err) 
        {
        }   

        CurShownElement   = null;
        CurShowingElement = null;
    }
}

function NavigateFrame(ElementName, Src)
{
    var Element = document.getElementById(ElementName); 
    if (Element != null) 
        if (Element.src != Src) 
        {
            Element.src = Src; 
            try { Element.focus(); } catch (err) { }
        }
        else
        {
            Element.contentWindow.execScript('try {__doPostBack("", "")} catch(err) { }', 'javascript');
        }
}

function BodyClicked()
{
    if (CurShownElement != null)
        if ((window.event.srcElement != CurShownElement) && (window.event.srcElement != CurShowingElement))
        {
            HideShownElement();
        }
}

function MouseLeaveShowingElement(Evt)
{
    if (Evt == null)
        Evt = window.event;
//'relatedTarget = ' + window.event.relatedTarget.id + ' currentTarget = ' + window.event.currentTarget.id 
//    alert('relatedTarget = ' + Evt.relatedTarget.id + ' CurShownElement = ' + CurShownElement.id + ' CurShowingElement = ' + CurShowingElement.id);
//    alert('asdasd');
    if (!ControlIsInControl(Evt.relatedTarget, CurShownElement) && !ControlIsInControl(Evt.relatedTarget, CurShowingElement) &&
        !ControlIsInControl(Evt.toElement, CurShownElement) && !ControlIsInControl(Evt.toElement, CurShowingElement))
     
        HideShownElement();
}

function ControlIsInControl(ControlA, ControlB)
{
    if (ControlA == null)
        return false;
        
    if (ControlB == null)
        return false;
        
    while (ControlA != null) 
        if (ControlA == ControlB) 
            return true; 
        else 
            ControlA = ControlA.parentNode; 
            
    return false;
}

function SelectItem(SenderString, SelectedStringElement)
{
    var SelectedElement = document.getElementById(SelectedStringElement); 
    if (SelectedElement != null)
    {
        var SelectedValue = SelectedElement.value;
        if (SelectedValue.indexOf(SenderString) != -1)
        {
            SelectedValue = SelectedValue.replace(SenderString, '');
            SelectedElement.value = SelectedValue;
            
            window.status = SelectedValue;
            return false;
        }
        else
        {
            if (SelectedValue != '')
                SelectedValue += ';';
            SelectedValue += SenderString;
            SelectedElement.value = SelectedValue;

            window.status = SelectedValue;
            return true;
        }
    }
}

function IsSelectedItem(SenderString, SelectedStringElement)
{
    var SelectedElement = document.getElementById(SelectedStringElement); 
    if (SelectedElement != null)
    {
        var SelectedValue = SelectedElement.value;
        if (SelectedValue.indexOf(SenderString) != -1)
            return true;
        else
            return false;
    }
}

function ShowDivisionItems(ImagesControlPrefix, SelectedImagesPrefix, UnselectedImagesPrefix, UnPriceArray, SelectedArray)
{
    for (I = 1; I < 10; I ++)
        for (J = 1; J <= I; J ++)
        {
            var Suffix   = I + "_" + J;
            var Element  = document.getElementById(ImagesControlPrefix + Suffix);
            if (Element != null)
            {
                var UnselSrc = SelectedImagesPrefix   + Suffix + '.gif';
                var SelSrc   = UnselectedImagesPrefix + Suffix + '_Selected.gif';

                var Selected = false;
                for (M in SelectedArray)
                    if (SelectedArray[M] == Suffix)
                    {
                        Selected = true;
                        break;
                    }
            
                if (Selected)
                    Element.src  = SelSrc;
                else                    
                    Element.src  = UnselSrc;
            }
            
            var PriceElmName = ImagesControlPrefix + Suffix;
            PriceElmName     = PriceElmName.replace('PartImage', 'PartPrice');
            var PriceElm     = document.getElementById(PriceElmName);
            var PriceElmCurr = document.getElementById(PriceElmName + '_CurrLbl');
            if (PriceElm != null)
            {
                if (UnPriceArray != null)
                    if (UnPriceArray[I] != null)
                    {
                        PriceElm.innerHTML = UnPriceArray[I];
                        if (UnPriceArray[I] == "0.00")
                        {
                            PriceElm.innerHTML     = "";
                            PriceElmCurr.innerHTML = "";
                        }
                    }
            }           
        }
}

function ShowDivisionPanel(Sender, DivisionPanel, Shower, ImagesControlPrefix, SelectedImagesPrefix, UnselectedImagesPrefix, UnPriceArray, SelectedArray)
{
    if (document.readyState != 'loading') 
    {
        ShowDivisionItems(ImagesControlPrefix, SelectedImagesPrefix, UnselectedImagesPrefix, UnPriceArray, SelectedArray);
        var Element = document.getElementById(DivisionPanel); 
        var Hidden  = Element.getElementsByTagName('INPUT'); 
        Hidden[0].value = Shower; 
        var LeftDeviasion = -40;
        if (navigator.appName == "Microsoft Internet Explorer")
            if (navigator.appVersion.indexOf("7.") > 0)
                LeftDeviasion += -100;

        ShowElement(Sender.id, DivisionPanel, LeftDeviasion, -15, true, true); 
    }
}

function RefreshMenu(ObjectID)
{
    HideShownElement();
    __doPostBack('BusinessMenuDefinitions:RefreshBusinessMenu', ObjectID);    
}

function SetCount(ElementID, Add, Number, MinValue)
{
    var Element  = document.getElementById(ElementID);
    
    if (Element == null)
        return;
    
    if (Add)        
        Element.innerText = parseInt(Element.innerText) + Number;
    else
    {
        Result = parseInt(Element.innerText) - Number;
        if (Result >= MinValue)
            Element.innerHTML = Result;
    }        
}

function OpenAjaxOptionFrame(Sender, FrameURL, Width)
{
    if (Width == null)
        Width = '430';
    
    var ParentID = Sender.id;
    ParentID     = ParentID.substring(0, ParentID.lastIndexOf('_') + 1) + 'OptionsTD';
    var Parent   = document.getElementById(ParentID);
    var DivID    = Sender.id;
    DivID        = DivID.substring(0, DivID.lastIndexOf('_') + 1) + 'OptionsPanel';
    var FrameID  = Sender.id;
    FrameID      = FrameID.substring(0, FrameID.lastIndexOf('_') + 1) + 'OptionsFrame';
    Parent.innerHTML = '<div id="' + DivID + '" OnScroll="PopedUpPanelScroll();" style="width:100%;"><iframe onload="FrameLoaded(this.id)" src="' + FrameURL + '" frameborder="0" allowTransparency="true" scrolling="no" MARGINHEIGHT="0" MARGINWIDTH="0" name="' + FrameID + '" id="' + FrameID + '" style="height:0px;width:' + Width + 'px;"></iframe></div>';
//    window.setInterval('var FrameID = "' + FrameID + '"; ResizeFrame(FrameID, 0, 0, false, false); var BtnName = FrameID.substring(0, FrameID.lastIndexOf("_") + 1) + "MoreOptions"; var BtnElem = document.getElementById(BtnName); if (BtnElem != null) CheckFrame(BtnElem);', 2000);
}

function FrameLoaded(FrameID)
{
    window.setTimeout('DoFrameLoaded("' + FrameID + '");', 5);   
    window.setInterval('ResizeFrame("' + FrameID + '", 0, 0, false, false, true);', 500);   
}

function DoFrameLoaded(FrameID)
{   
    ResizeFrame(FrameID, 0, 0, false, false, true); 
    var BtnName = FrameID.substring(0, FrameID.lastIndexOf("_") + 1) + "MoreOptions"; 
    var BtnElem = document.getElementById(BtnName); 
    if (BtnElem != null) 
    {
        CheckFrame(BtnElem);    
        try {
            BtnElem.fireEvent('onmouseout');            
            }
        catch (err) {
            var e = document.createEvent('MouseEvents'); 
            e.initEvent('mouseout', false, false); 
            BtnElem.dispatchEvent(e); 
        }
    }
}

function GetElementTop(Sender)
{
        var CurCtl                          = Sender;
        var Top                             = 0;
        while (CurCtl != null)
        {
            if (CurCtl.offsetTop > 0)
                Top    = Top  + CurCtl.offsetTop - CurCtl.scrollTop;    
            CurCtl = CurCtl.offsetParent;
        }
        return Top;
}

function CheckScrollBar()
{
    try {
        var WinSize    = -1;
        var WinSizeStr = window.location.href.toUpperCase();
        var Ind        = WinSizeStr.indexOf('WINSIZE=') ;
        if (Ind > 0)
        {
            WinSizeStr     = WinSizeStr.substring(Ind + 8);
            Ind            = WinSizeStr.indexOf('&');
            if (Ind > 0)
                WinSizeStr     = WinSizeStr.substring(0, Ind);
                
            WinSize = parseInt(WinSizeStr);  
        }
         
        if (WinSize == -1)
            return false;
             
        var Frames = document.frames;
        for (CurFrm = 0; CurFrm < Frames.length; CurFrm ++)
        {
            var Frame   = Frames[CurFrm].frameElement;
            var ElemTop = GetElementTop(Frame);
            if (ElemTop + Frame.offsetHeight + 100 > WinSize)
                return true;
        }

        var Buttons = document.getElementsByTagName('input');
        for (CurInp = 0; CurInp < Buttons.length; CurInp ++)
        {
            var Button  = Buttons[CurInp];
            var ElemTop = GetElementTop(Button);
            if (ElemTop + Button.offsetHeight + 100 > WinSize)
                return true;
        }

        var Btn     = Frame.name.substring(0, Frame.name.lastIndexOf('_') + 1) + 'MoreOptions';
        
    }
    catch (err) { }
    return false;
}

function CheckFrame(Sender)
{
    if (!CheckScrollBar())
        return;
    
    ElementTop = GetElementTop(Sender);
    var Frames = document.frames;
    for (CurFrm = 0; CurFrm < Frames.length; CurFrm ++)
    {
        var Frame   = Frames[CurFrm];
        var Btn     = Frame.name.substring(0, Frame.name.lastIndexOf('_') + 1) + 'MoreOptions';
        var Elem    = document.getElementById(Btn);
        var ElemTop = GetElementTop(Elem);
        if (ElemTop > ElementTop)
        {
            Elem.click();
            return;
        }
    }
    
    for (CurFrm = 0; CurFrm < Frames.length; CurFrm ++)
    {
        var Frame   = Frames[CurFrm];
        var Btn     = Frame.name.substring(0, Frame.name.lastIndexOf('_') + 1) + 'MoreOptions';
        var Elem    = document.getElementById(Btn);
        var ElemTop = GetElementTop(Elem);
        if (ElemTop != ElementTop)
        {
            Elem.click();
            return;
        }
    }
}

function OpenAjaxEditFrame(Sender, FrameURL, Width, PositionLeft)
{
    if (Width == null)
        Width = 450;
        
    if (PositionLeft == null)
        PositionLeft = false;

    HideShownElement();
    
    var Parent       = Sender;
    var FrameID      = Sender.id + '_EditFrame';

    var FrameElement = null;
    try { FrameElement = document.frames(FrameID); } catch(err) { }
    if (FrameElement == null)
    {
        var FrameString               = '<iframe src="' + FrameURL + '" frameborder="0" allowTransparency="true" scrolling="no" MARGINHEIGHT="0" MARGINWIDTH="0" id="' + FrameID + '" style="height:0px;width:' + Width + 'px; position: absolute;"></iframe>';
        FrameElement                  = document.createElement(FrameString);
        Sender.insertAdjacentElement("afterEnd", FrameElement);
    }
    else
    {
        FrameElement                  = FrameElement.frameElement;
        FrameElement.src              = FrameURL;
        FrameElement.style.visibility = 'visible';
    }
    if (PositionLeft)
    {
        var Pos                       = GetPopupPlacement(Sender); 
        FrameElement.style.left       = Pos.Left + 'px';    
    }
    window.execScript('var ResizeFrameInterval' + FrameID + ' = window.setInterval("ResizeFrame' + FrameID + '()", 100); function ResizeFrame' + FrameID + '() { ResizeFrame("' + FrameID + '", 0, 0, false, false); ; }', 'javascript');

    CurShowingElement        = Sender; 
    CurShownElement          = FrameElement;
}

function CloseAjaxOptionFrame(Sender)
{
    var ParentID = Sender.id;
    ParentID     = ParentID.substring(0, ParentID.lastIndexOf('_') + 1) + 'OptionsTD';
    var Parent   = document.getElementById(ParentID);
    Parent.innerHTML = '';

}

function ShowBiggerImg(ElementID, ImgID, Src)
{
    var Element = document.getElementById(ElementID);
    var Img     = document.getElementById(ImgID);
    if ((Element != null) && (Img != null))
    {
        if (Src != "")
            Img.src = Src;
        ShowFadeInElement(Element);
    }
}

function ShowFadeInElement(Element, Effect)
{
    try {
        if (Effect == null)
            Effect = 'blendTrans(duration=1)';
        Element.style.filter = Effect; 
        if (Element.filters.blendTrans.status != 2) 
        { 
            Element.filters.blendTrans.apply(); 
            Element.style.visibility = 'visible';
            Element.filters.blendTrans.play();
        }
    }
    catch(ex)
    {
        Element.style.visibility = 'visible';
    }
}

function HideFadeInElement(Element)
{
    Element.style.visibility = 'hidden'; 
    try {
        Element.filters.blendTrans.stop();
    }
    catch (err)
    { }
}

function MoreOptionsScript(ThisElement, ValueElement, FrameSrc, Image2StageSrc, ImageSrc, ClientID, FrameClientID, FrameWidth, WaitingImg)
{
    if (ValueElement.value == '1') 
    {
        if (WaitingImg != null)
            ThisElement.src = WaitingImg;

        OpenAjaxOptionFrame(ThisElement, FrameSrc, FrameWidth); 
        var ChangeImg = window.setInterval('try { var ImgElem = document.getElementById("' + ClientID + '"); var FrameElem = document.getElementById("' + FrameClientID + '"); if (FrameElem != null) if (FrameElem.contentWindow.document.readyState == "complete") if (ImgElem != null) if (ImgElem.src != "' + Image2StageSrc + '") ImgElem.src = "' + Image2StageSrc + '"; } catch(er) { }', 100); 
    } 
    else 
    { 
        CloseAjaxOptionFrame(ThisElement); 
        ThisElement.src = ImageSrc;
    } 
}

function ResizeElem(ResizeElement, PicElem, Width)
{
    var ResizeElem = document.getElementById(ResizeElement); 
    var PicElement = document.getElementById(PicElem); 
    if ((ResizeElem != null) && (PicElement == null)) 
    { 
        ResizeElem.style.pixelWidth = ResizeElem.style.pixelWidth + Width + 10; 
    }
}

function GeneralScrollToFrame(Elem1, Elem2, TimerElem)
{
    var Elem = document.getElementById(Elem); 
    if (Elem != null) 
    { 
        if (Elem.style.pixelHeight > 15) 
        { 
            var Elem2 = document.getElementById(Elem2); 
            if (Elem2 != null) 
            { 
                var Elem3 = null; 
                try { Elem3 = Elem2.offsetParent.offsetParent; } catch (err) { } 
                if (Elem3 != null) 
                { 
                    Elem3.scrollIntoView(true); 
                    window.clearInterval(TimerElem); 
                } 
            } 
        } 
        
    }
}

function CheckSameMenu(ThisElement, CurrMenu, Msg)
{
    if (ThisElement.value != CurrMenu) 
    {
        var Txt = ThisElement.options[ThisElement.selectedIndex].text;
        Msg     = Msg.replace("#0#", Txt);
        if (!confirm(Msg))
        {
            for (I = 0; I < ThisElement.options.length; I ++)
                if (ThisElement.options[I].value == CurrMenu)
                {
                    ThisElement.selectedIndex = I;
                    break;
                }
            event.cancelBubble = true;
            return false;
        }
        else
            return true;        
    }
}

document.body.onclick = BodyClicked;
