var request;
var slideshow;

function setRequestObject()
{
    /// {{{

    if (window.XMLHttpRequest)
    {
        request = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        request = new ActiveXObject("Microsoft.XMLHTTP");
    }

    /// }}}
}


function getPosition(obj)
{
    /// {{{

    var left = 0;
    var top = 0;

    if (obj.offsetParent)
    {
        do
        {
            if (obj.id == 'container')
            {
                break;
            }

            left += obj.offsetLeft;
            top  += obj.offsetTop;
        }
        while (obj = obj.offsetParent);


        return [left, top];
    }

    /// }}}
}


function getDimension(obj)
{
    /// {{{

    return [obj.offsetWidth, obj.offsetHeight];

    /// }}}
}


function openWindow(url, identifier, width, height)
{
    /// {{{

    var popup = window.open(url, identifier, 'width=' + width + ', height=' + height + ', scrollbars=1, toolbar=0, menubar=0, status=0, location=0');

    if (! popup)
    {
        alert('弹出窗口被拦截，请您禁用弹出窗口拦截器！');
    }
    else
    {
        popup.focus();
    }


    return false;

    /// }}}
}


function toggleLayer(id)
{
    /// {{{

    var shade   = document.getElementById('shade');
    var shadow  = document.getElementById('shadow');
    var element = document.getElementById(id);

    switch (element.style.display)
    {
        case 'block':
            hideLayers();

            break;

        case 'none':
        default:
            hideLayers();

            shade.style.display   = 'block';
            shadow.style.display  = 'block';
            element.style.display = 'block';

            if (id == 'newsletter')
            {
                id = 'nlForm';
            }

            if (typeof sIFR == "function")
            {
                sIFR.replaceElement(named({sSelector:"div#" + id + " h3", sFlashSrc:relativePath + "swf/CorpoACon.swf", sColor:"#666666", sBgColor:"#ffffff"}));
            };

            break;
    }

    /// }}}
}


function hideLayers()
{
    /// {{{

    var shade    = document.getElementById('shade');
    var shadow   = document.getElementById('shadow');
    var elements = document.getElementsByTagName('div');

    for (i = 0; i < elements.length; i++)
    {
        if (elements[i].className.match(/layer/))
        {
            elements[i].style.display = 'none';
        }
    }

    shade.style.display  = 'none';
    shadow.style.display = 'none';

    document.getElementById('nlResponseSuccess').style.display = 'none';
    document.getElementById('nlResponseFailure').style.display = 'none';
    document.getElementById('nlForm').style.display = 'block';
    document.getElementById('nlValidateForm').style.display = 'none';

    /// }}}
}


function toggleOverview()
{
    /// {{{

    var overview      = document.getElementById('overview');
    var overviewCell  = document.getElementById('overviewCell');
    var overviewTable = document.getElementById('overviewTable');
    var special       = document.getElementById('special');

    switch (overview.style.display)
    {
        case 'block':
            special.style.display = 'block';

            hideOverview();
            startSlideshow();

            break;

        case 'none':
        default:
            stopSlideshow();

            special.style.display = 'none';
            overviewCell.style.visibility = 'visible';
            overview.style.display = 'block';

            drawShadow('overviewCell', 'overview_shadow');

            showPage(0);

            if (typeof sIFR == "function")
            {
                sIFR.replaceElement(named({sSelector:"td.overview h2", sFlashSrc:relativePath + "/swf/CorpoACon.swf", sColor:"#666666", sWmode:"transparent"}));
            };

            break;
    }

    /// }}}
}


function hideOverview()
{
    /// {{{

    var overview       = document.getElementById('overview');
    var overviewCell   = document.getElementById('overviewCell');
    var overviewTable  = document.getElementById('overviewTable');
    var overviewShadow = document.getElementById('overview_shadow');

    overview.style.display = 'none';
    overviewCell.style.visibility = 'hidden';
    overviewShadow.style.display = 'none';


    /// }}}
}


function showPage(id)
{
    /// {{{

    var element = document.getElementById('tab' + id);

    hidePages();

    element.style.display = 'block';

    /// }}}
}


function hidePages()
{
    /// {{{

    var overview = document.getElementById('overview');
    var elements = overview.getElementsByTagName('div');

    for (i = 0; i < elements.length; i++)
    {
        if (elements[i].className.match(/tab/))
        {
            elements[i].style.display = 'none';
        }
    }

    /// }}}
}


function showSpecial(id)
{
    /// {{{

    if (typeof id == 'undefined')
    {
        id = features.shift();
        features.push(id);
    }

    var special   = document.getElementById('special');
    var element   = document.getElementById('special' + id);
    var elementbg = document.getElementById('specialbg' + id);
    var link      = document.getElementById('specialLink' + id);

    hideSpecials();
    hideOverview();

    special.style.display   = 'block';
    element.style.display   = 'block';
    elementbg.style.display = 'block';
    // link.className = 'arrow active';

    var color = '#ffffff';

    if (element.getElementsByTagName('h1')[0].className.match(/invert/))
    {
        color = '#333333';
    }

    if (typeof sIFR == "function")
    {
        sIFR.replaceElement(named({sSelector:"div#special" + id + " h1", sFlashSrc:relativePath + "/swf/CorpoACon.swf", sColor:color, sWmode:"transparent"}));
    };

    /// }}}
}


function hideSpecials()
{
    /// {{{

    var elements   = document.getElementById('special').getElementsByTagName('div');
    var elementsbg = document.getElementById('specialbg').getElementsByTagName('div');
    var links      = document.getElementsByTagName('a');

    for (i = 0; i < links.length; i++)
    {
        if (links[i].className.match(/arrow active/))
        {
            links[i].className = 'arrow';
        }
    }

    for (i = 0; i < elements.length; i++)
    {
        if (elements[i].className.match(/special/))
        {
            elements[i].style.display = 'none';
        }
    }

    for (i = 0; i < elementsbg.length; i++)
    {
        if (elementsbg[i].className.match(/special/))
        {
            elementsbg[i].style.display = 'none';
        }
    }

    /// }}}
}


function startSlideshow()
{
    /// {{{

    slideshow = window.setInterval('showSpecial()', 5000);

    /// }}}
}


function stopSlideshow()
{
    /// {{{

    window.clearInterval(slideshow);

    /// }}}
}


function drawShadow(id, shadow)
{
    /// {{{

    try
    {
        var element  = document.getElementById(id);
        var shadow   = document.getElementById(shadow);
        var children = shadow.getElementsByTagName('div');

        var position  = getPosition(element);
        var dimension = getDimension(element);

        for (var i = 0; i < children.length; i++)
        {
            children[i].style.left   = (position[0] + i - 1) + 'px';
            children[i].style.top    = (position[1] + i - 1) + 'px';
            children[i].style.width  = (dimension[0] + 2) + 'px';
            children[i].style.height = (dimension[1] + 2) + 'px';
        }

        shadow.style.display = 'block';
    }
    catch (e)
    {
    }

    /// }}}
}


function nlSubscribe()
{
    /// {{{

    var url = relativePath + "/subscribe.php?";

    var form =
    {
        "sender_name": document.getElementById('nlName').value,
        "sender_addr": document.getElementById('nlMail').value,
        "gender": null,
        "lang": document.getElementById('nlLang').value
    }

    var elements = document.getElementsByName('gender');

    for (var i = 0; i < elements.length; i++)
    {
        if (elements[i].checked)
        {
            form['gender'] = elements[i].value;
        }
    }

    for (var key in form)
    {
        url += key + '=' + escape(form[key]) + '&';
    }

    request.onreadystatechange = nlReceipt;

    request.open("GET", url, true);
    request.send(null);

    /// }}}
}


function nlReceipt()
{
    /// {{{

    if (request.readyState == 4)
    {
        if (request.status == 200)
        {
            switch (request.responseText)
            {
                case '&errno=1':
                case '&errno=2':
                    document.getElementById('nlForm').style.display = 'none';
                    document.getElementById('nlResponseSuccess').style.display = 'block';

                    document.getElementById('nlSexFemale').checked = false;
                    document.getElementById('nlSexMale').checked = false;
                    document.getElementById('nlName').value = '';
                    document.getElementById('nlMail').value = '';

                    if (typeof sIFR == "function")
                    {
                        sIFR.replaceElement(named({sSelector:"div#nlResponseSuccess h3", sFlashSrc:relativePath + "/swf/CorpoACon.swf", sColor:"#666666", sBgColor:"#ffffff"}));
                    };

                    trackPage(null, {'events': 'event7'});

                    return;

                case '&errno=3':
                default:
                    document.getElementById('nlValidateForm').style.display = 'block';
                    return;
            }
        }
        else
        {
            document.getElementById('nlForm').style.display = 'none';
            document.getElementById('nlResponseFailure').style.display = 'block';

            if (typeof sIFR == "function")
            {
                sIFR.replaceElement(named({sSelector:"div#nlResponseFailure h3", sFlashSrc:relativePath + "/swf/CorpoACon.swf", sColor:"#666666", sBgColor:"#ffffff"}));
            };

            return;
        }
    }

    /// }}}
}


function toggleSound(state)
{
    /// {{{

    if (state == 1)
    {
        var hide  = 'soundoff';
        var show  = 'soundon';
        var sound = false;
    }
    else
    {
        var hide = 'soundon';
        var show = 'soundoff';
        var sound = true;
    }

    var movie = document.getElementById('flash');

    try
    {
        movie.setSound(sound);
    }
    catch (e)
    {
    }

    document.getElementById(hide).style.display = 'none';
    document.getElementById(show).style.display = 'inline';

    /// }}}
}


function toggleHeader(state)
{
    /// {{{

    if (state == 1)
    {
        var height = 563;
    }
    else
    {
        var height = 93;
    }

    var header = document.getElementById('t22head');

    header.style.height = height + 'px';

    /// }}}
}


function setHeaderText(text)
{
    /// {{{

    var movie = document.getElementById('t22head');

    try
    {
        movie.setHeadline(text);
    }
    catch (e)
    {
    }

    /// }}}
}


window.onload = function()
{
    setRequestObject();
    toggleSound();

    try
    {
        showSpecial();
        startSlideshow();
    }
    catch (e)
    {
    }

    try
    {
        var color = '#ffffff';

        if (document.getElementsByTagName('h1')[0].className.match(/invert/))
        {
            color = '#333333';
        }

        if (typeof sIFR == "function")
        {
            sIFR.replaceElement(named({sSelector:"div#feature h2", sFlashSrc:relativePath + "swf/CorpoACon.swf", sColor:"#666666", sWmode:"transparent"}));
            sIFR.replaceElement(named({sSelector:"div#mpc h2", sFlashSrc:relativePath + "swf/CorpoACon.swf", sColor:"#666666", sWmode:"transparent"}));
            // sIFR.replaceElementBetter(named({sSelector:"ul#branch li", sFlashSrc:relativePath + "/swf/CorpoACon.swf", sColor:"#003366", sBgColor:"#ffffff", sLinkColor:"#003366", sHoverColor:"#00adef", sWmode:"transparent", nPaddingBottom:"2", sFlashVars:"offsetTop=-2"}));
            sIFR.replaceElement(named({sSelector:"div#header h2", sFlashSrc:relativePath + "swf/CorpoACon.swf", sColor:"#666666", sWmode:"transparent"}));
            sIFR.replaceElement(named({sSelector:"h1#special", sFlashSrc:relativePath + "swf/CorpoACon.swf", sColor:color, sWmode:"transparent"}));
        };
    }
    catch (e)
    {
    }

    drawShadow('feature', 'feature_shadow');
    drawShadow('mpc', 'mpc_shadow');

    if (swfobject.getQueryParamValue('overview') == 1)
    {
        window.setTimeout('toggleOverview()', 250);
    }
}


