﻿/**
 * op2.js
 */


//==================================================
// OP2
//==================================================
var OP2 =
{
    isLteIE6: false,
    aImages: new Array(),
    bImages: new Array(),
    
    /**
     * Initializes the script object, initiates page initialization.
     */         
    Init: function ()
    {
        if (window.isLteIE6)
        {
            OP2.isLteIE6 = true;
        }

        // Home
        if (OP2.Page.IsId('home'))
        {
            OP2.Home.Init();
        }
        
        // Pages containing slideshows
        if ($('.slideshow'))
        {
            OP2.Slideshow.Init();
        }
        
        OP2.AddRolloverEvents();
    },
    
    AddRolloverEvents: function ()
    {
        var imgs = $('.rollover');        
        imgs.each(function (i)
        {
            OP2.Image.SetRollover($(this));
        });
    }
}
//==================================================



//==================================================
// OP2.Home
//==================================================
OP2.Home =
{
    /**
     * Executes page initialization behaviors.
     */         
    Init: function ()
    {
        OP2.Home.InsertFlash();
    },
    
    /**
     * Inserts SWF into page using SWFObject.
     */
    InsertFlash: function ()
    {
        if ($('#flashdiv').length)
        {
            var so = new SWFObject("/images/home/op2_front_animation.swf", "intro", "100%", "407", "8", "#ffffff");
            so.addParam("wmode", "transparent");
            so.write("flashdiv");
        }
    }
}
//==================================================


//==================================================
// OP2.Slideshow
//==================================================
OP2.Slideshow =
{
    oldSlideId: 0,
    newSlideId: 0,
    
    /**
     * Executes initialization behaviors.
     */
    Init: function ()
    {
        // Hide all slides.
        OP2.Slideshow.HideSlides();
        
        // Add 'click' events to controls.
        OP2.Slideshow.InitControls();
        
        // Show the 1st slide.
        OP2.Slideshow.ShowSlide(1);
    },
    
    ShowSlide: function (id)
    {
        OP2.Slideshow.newSlideId = id;
        
        var slide = 'li#slide_' + id;
        
        OP2.Slideshow.SetButtonSelected(id);
        
        // jquery
        $(slide).fadeIn('slow');        
    },
    
    HideSlides: function ()
    {
        var slides = $('li.slide');
        var numSlides = slides.length;        
        for (var i = 1; i <= numSlides; i++)
        {
            OP2.Slideshow.HideSlide(i);
        }
    },
    
    HideSlide: function (id)
    {
        var slide = 'li#slide_' + id;
        $(slide).hide();
    },
    
    HideThenShow: function (id)
    {
        OP2.Slideshow.oldSlideId = OP2.Slideshow.newSlideId;
        OP2.Slideshow.newSlideId = id;
        
        if (OP2.Slideshow.oldSlideId != 0)
        {
        var slide = 'li#slide_' + OP2.Slideshow.oldSlideId;
        $(slide).fadeOut('fast', OP2.Slideshow.ShowNew);
        }
        else
        {
            OP2.Slideshow.ShowNew();
        }
        
    },
    
    ShowNew: function ()
    {
        OP2.Slideshow.ShowSlide(OP2.Slideshow.newSlideId);
    },
    
    InitControls: function ()
    {
        var buttons = $('div.button');
        var numButtons = buttons.length;
        for (var j = 1; j <= numButtons; j++)
        {
            OP2.Slideshow.AddClickEvent(j, j);
            OP2.Slideshow.SetButtonNotSelected(j);
        }
    },
    
    AddClickEvent: function (buttonId, slideId)
    {
        var button = 'div#button_' + buttonId;
        $(button).bind('click', function ()
        {
            OP2.Slideshow.HideThenShow(slideId);
        });
    },
    
    SetButtonSelected: function (id)
    {
        OP2.Slideshow.SetButtonsNotSelected();
        
        var img = 'img#button_' + id + '_image';
        var src;
        switch (id)
        {
            case 1:
                src = '/images/slideshow/btn_slideshow_1_o.png';
                break;
            case 2:
                src = '/images/slideshow/btn_slideshow_2_o.png';
                break;
            case 3:
                src = '/images/slideshow/btn_slideshow_3_o.png';
                break;
            case 4:
                src = '/images/slideshow/btn_slideshow_4_o.png';
                break;
        }
        $(img).attr("src", src);
        
        $(img).unbind('mouseover');
        $(img).unbind('mouseout');
        
    },
    
    SetButtonsNotSelected: function ()
    {
        var buttons = $('div.button');
        var numButtons = buttons.length;
        for (var i = 1; i <= numButtons; i++)
        {
            OP2.Slideshow.SetButtonNotSelected(i);
        }
    },
    
    SetButtonNotSelected: function (id)
    {
        var img = 'img#button_' + id + '_image';
        var src;
        switch (id)
        {
            case 1:
                src = '/images/slideshow/btn_slideshow_1.png';
                break;
            case 2:
                src = '/images/slideshow/btn_slideshow_2.png';
                break;
            case 3:
                src = '/images/slideshow/btn_slideshow_3.png';
                break;
            case 4:
                src = '/images/slideshow/btn_slideshow_4.png';
                break;
        }
        $(img).attr("src", src);
        
        OP2.Slideshow.AddRolloverEvents(img);
    },
        
    AddRolloverEvents: function (selector)
    {
        OP2.Image.SetRollover($(selector));
    }
}
//==================================================


//==================================================
// OP2.Page
//==================================================
OP2.Page =
{
    /**
     *
     *
     * @param string id
     * @return boolean
     */
    IsId: function (id)
    {
        var selector = 'body#' + id;
        if ($(selector))
        {
            return true
        }
        else
        {
            return false;
        }
    },
    
    /**
     *
     *
     * @param string class
     * @return boolean
     */
    IsClass: function (c)
    {
        var selector = 'body.' + c;
        if ($(selector).length > 0)
        {
            return true
        }
        else
        {
            return false;
        }
    }
}
//==================================================



//==================================================
// OP2.Image
//==================================================
OP2.Image =
{
    Preload: function (img)
    {
    },
    
    GetSrcA: function (img)
    {
        return $(img).attr('src');
    },
    
    GetSrcB: function (img)
    {
        var nodes = OP2.Image.GetSrcA(img).split('/');
        var numNodes = nodes.length;
        var imgDir = '';
        for (var i = 0; i < (numNodes - 1); i++)
        {
            if (nodes[i] != '')
            {
                imgDir += '/' + nodes[i];
            }
        }
        imgDir += '/';
        var file = nodes[numNodes - 1];
        var fileParts = file.split('.');
        var fileName = fileParts[0];
        var fileExt = fileParts[1];
        var src = imgDir + fileName + '_o.' + fileExt;
        return src;
    },
    
    SetRollover: function (img)
    {
        var a = OP2.Image.GetSrcA(img);
        var b = OP2.Image.GetSrcB(img);
        
        var n = OP2.aImages.length;
        
        OP2.aImages[n] = new Image();
        OP2.aImages[n].src = a;
        OP2.bImages[n] = new Image();
        OP2.bImages[n].src = b;
        
        img.bind('mouseover', function ()
        {
            img.attr('src', OP2.bImages[n].src);
        });
        
        img.bind('mouseout', function ()
        {
            img.attr('src', OP2.aImages[n].src);
        });
    }
}
//==================================================


// Initialize main script object.
$(document).ready(function ()
{
    OP2.Init();
});

// EOF