﻿// определение scripting engine
var isMSIE = document.attachEvent != null;
var isGecko = !document.attachEvent && document.addEventListener;

//Перегрузка AccordionBehavior.set_SelectedIndex(ix)
//и Create/Play/Close функции анимации
AjaxControlToolkit.AccordionBehavior.prototype.set_SelectedIndex = function(value) {
	// this sets content divs to its initial (default) size
    if(document.getElementById("MasterMenu").style.height !== "" &&
       document.getElementById("MasterMenu").style.height !== "720px")
        SetHeight("720");
    // Close info-panel first
    CloseAnime();
    // Удаляем контент при щелчке на заголовке аккордиона
    if(value != -1)
        document.getElementById("MasterContent").innerHTML = "";
    
    // Deselect all headers
    var allHeaders = document.getElementById("ctl00_MyAccordion")._behaviors[0]._headers;
    if(allHeaders.length != 0)
    {
        document.getElementById("ABOUT_COMPANY").className = "menuHeader";
        document.getElementById("INSURANCE").className = "menuHeader";
        document.getElementById("REINSURANCE").className = "menuHeader";
        document.getElementById("FINANCIALS").className = "menuHeader";
        //document.getElementById("PRESS-CENTRE").className = "menuHeader";
        document.getElementById("USEFULL INFORMATION").className = "menuHeader";
        document.getElementById("FEEDBACK").className = "menuHeader";
    }

    // Do not open pane if clicked
    // only play animation on header
    if (value == 2 || value == 5) // 2 is REINSURANCE, 5 is FEEDBACK (was 6)
    {
        // Animate the pane changes
        // only if there IS pane to animate (i.e. this._selectedIndex != -1)
        if(this._selectedIndex != -1)
		    this._getAnimation(this._selectedIndex).play();
        
		this._selectedIndex = -1;
		// Save the selected pane to preserve on postbacks
        this.set_ClientState(this._selectedIndex);            
        this.raisePropertyChanged('SelectedIndex');
        
        // Lets play animation
        if (value == 2)
            PlayAnime("REINSURANCE");
        else
            PlayAnime("FEEDBACK");
            
        return;
    }
    // Make the change if they clicked a different pane
	// Close all panes if the same pane clicked
    if (this._selectedIndex != value) {
        var lastIndex = this._selectedIndex;
        this._selectedIndex = value;
        // Save the selected pane to preserve on postbacks
        this.set_ClientState(this._selectedIndex);
        // Animate the pane changes
        this._changePanes(lastIndex);
        this.raisePropertyChanged('SelectedIndex');
        
        if(allHeaders[this._selectedIndex])
        allHeaders[this._selectedIndex].firstChild.firstChild.className = "menuHeaderPressed";
    }
	else {
	    if(value != -1)
	    {
	        this.set_SelectedIndex(-1);
		    // Animate the pane changes
		    /*this._getAnimation(this._selectedIndex).play();
            
		    this._selectedIndex = -1;
		    // Save the selected pane to preserve on postbacks
            this.set_ClientState(this._selectedIndex);            
            this.raisePropertyChanged('SelectedIndex');*/
        }
	}
}
// DIVs HEIGHT
// This sets the height of left, center and right content divs
function SetHeight(size)
{
    var left = document.getElementById("MasterMenu");
    var center = document.getElementById("MasterContent");
    var right = document.getElementById("MasterRightContent");
    if(left && right)
    {
        left.style.height = center.style.height = right.style.height = size + "px";
    }
}

////////////////////////////////////////
// Извращаем анимацию во все пункты меню
////////////////////////////////////////
var myEl = document.getElementById("ctl00_HiddenDiv");
var newInfo = document.getElementById("info");
var resizeAnime = new Object();
var resizeAnime2 = new Object();
var fadeAnime = new AjaxControlToolkit.Animation.FadeInAnimation(newInfo, "0.5", "25", "0.1", "1.0");

// Эта функция создает и проигрывает анимацию,
// после щелчка по пункту меню.
// + меняем текст в <div id=MenuNodeName (это панелька-пункт меню)
function PlayAnime(eltId) {
	// this sets content divs to its initial (default) size
    if(document.getElementById("MasterMenu").style.height !== "" &&
       document.getElementById("MasterMenu").style.height !== "720px")
        SetHeight("720");
        
    CloseAnime();
    var newEl = document.getElementById(eltId);
    
    // Асинхронно загружаем страницу -
	// вставляем в MasterContent содержимое MasterContent, вернутого фром-da-сервер
	InsertHiddenDiv(eltId);
	GetAsyncContent(eltId);
    
    
    Cover($get(eltId), $get('flyout'), true);
    document.getElementById("flyout").style.display = "block";
    document.getElementById("flyout").style.visibility = "visible";
    document.getElementById("info").style.visibility = "visible";
    document.getElementById("info").style.display = "block";
    document.getElementById("info").style.width = "100px";
    document.getElementById("info").style.height = "0px";
    CreateAnime(eltId);        
    resizeAnime.play();
    Cover($get('flyout'), $get('info'), true);        
    fadeAnime.play();
    document.getElementById("flyout").style.display = "none";
    
    // меняем знак амперсанда & на &amp; в пункте меню "D&B report"
    if(eltId.search(/&/) !== -1) // find &
        eltId = "REPORT OF D&amp;B";
    document.getElementById("info").innerHTML = eltId;
}
// Создаем анимацию
function CreateAnime(eltId)
{
    var targt = document.getElementById("info");
    resizeAnime = new AjaxControlToolkit.Animation.ResizeAnimation(targt, "0.5", "25", "411", "21", "px");
}
// Эта функция просто прячет <div id=info/flyout>
// и устанавливает их значения в default
function CloseAnime() {
    document.getElementById("info").style.visibility = "hidden";
    document.getElementById("info").className = "info";
    document.getElementById("flyout").className = "flyout";
}

// Move an element directly on top of another element (and optionally
// make it the same size)
function Cover(bottom, top, ignoreSize) {
    var location = Sys.UI.DomElement.getLocation(bottom);
    top.style.position = 'absolute';
    top.style.top = location.y + 'px';
    top.style.left = location.x + 'px';
    if (!ignoreSize) {
        top.style.height = bottom.offsetHeight + 'px';
        top.style.width = bottom.offsetWidth + 'px';
    }
}
