﻿$(document).ready(function () {
    initMenu();
    centerContentEffect();
    attachHoverEvents();
});
//Absolute center and the radius
var centerX = 500;
var centerY = 266;
var radius = 472;
//Direction of the menu 0 for clockwise 1 for anticlockwise
var menuDirection = 0;
//To be used for any manual adjustments in positioning
var manualOffsetArray;
//Bottom and Top margin offsets
var offsetMarginTop = 60;
var offsetMarginBottom = 60; 
//Name of the div containing menu 
var mainMenuDivId = "menu"
var mainMenuUlId = "mainMenuItems";


var getCumulativeOffset = function (obj) {
    var left, top;
    left = top = 0;
    if (obj.offsetParent) {
        do {
            left += obj.offsetLeft;
            top += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return {
        x: left,
        y: top
    };
};

function initMenu() {
    
    var numMenuItems = 0;
    var startAngle = 0;
    var endAngle = 0;
    var spaceAngle = 0;
    var divStartPointY = 0;
    var divEndPointY = 0;   
    var spaceAngle = 0;
    var i = 0;
    var menuItemPos = new Array();

    manualOffsetArray = new Array();
    manualOffsetArray = [{ x: 5, y: 0 },    //Industries
                         { x: 3, y: 0 },    //Services
                         { x: -3, y: 0 },   //Technologies
                         { x: 0, y: 0 },    //Case Studies
                         { x: 0, y: 0 },    //Articles
                         { x: 0, y: 0 },    //Blogs
                         { x: 2, y: 0 },    //Clients
                         { x: 4, y: 0 } ];  //About Us
    
    var pElement = document.getElementById(mainMenuDivId);
    numMenuItems = pElement.children[0].children.length;
      
    divStartPointY = getCumulativeOffset(pElement).y + offsetMarginTop;
    divEndPointY = getCumulativeOffset(pElement).y + pElement.offsetHeight - offsetMarginBottom - pElement.children[0].children[0].offsetHeight;
        
    startAngle = Math.asin((centerY - divStartPointY) / (radius));
    
    endAngle = Math.asin((centerY - divEndPointY) / (radius));
    
    spaceAngle = (startAngle - endAngle) / (numMenuItems-1);
    for (i = 0; i < numMenuItems; i++) {
        menuItemPos[i] = { x: centerX - radius*Math.cos(startAngle - i * spaceAngle), y: centerY - radius*Math.sin(startAngle - i * spaceAngle) };

        if (manualOffsetArray[i]) {
            pElement.children[0].children[i].style.top = (menuItemPos[i].y - getCumulativeOffset(pElement).y + manualOffsetArray[i].y).toFixed(0) + 'px';
            pElement.children[0].children[i].style.left = (menuItemPos[i].x + manualOffsetArray[i].x).toFixed(0) + 'px';
        }
        else {
            pElement.children[0].children[i].style.top = (menuItemPos[i].y - getCumulativeOffset(pElement).y).toFixed(0) + 'px';
            pElement.children[0].children[i].style.left = (menuItemPos[i].x).toFixed(0) + 'px';
        }

    }
    
};

function centerContentEffect() {

    if ($.browser.msie) {
        if (($.browser.version) == 6.0) { DD_belatedPNG.fix('#centerContent'); }
        $('#centerContent').css('background-color', 'transparent');
        $('#centerContent').css('filter', 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="images/centerContent.png", sizingMethod="scale")');
        $('#centerContent').fadeTo(2000, 0.75, function () {
            if (($.browser.version) != 6.0) {
                $('#centerContent').css('background-image', 'url(images/centerContent.png)');
                $('#centerContent').css('filter', 'progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled="False")');
            }
            $('#centerContentLine1').animate({ left: 'toggle', width: 'toggle' }, 2000);
            $('#centerContentLine2').animate({ width: 'toggle' }, 2000);
        });        
        $('#centerContentText').fadeIn(2000, function () { $(this).css('filter','alpha(opacity:100)'); });
    }
    else {
        $('#centerContent').fadeIn(2000, function () {            
            $('#centerContentLine1').animate({ left: 'toggle', width: 'toggle' }, 2000);
            $('#centerContentLine2').animate({ width: 'toggle' }, 2000);
        });
        $('#centerContentText').fadeIn(2000)
    }
}

function attachHoverEvents() {
    if (($.browser.msie) && (($.browser.version) == 6.0))
        return;
    else
        $('#menu ul ul').each(
        function () {
            if ($(this).children().size() > 0) {
                $(this).parent().hover(
                    function () {
                        $('#centerContentText').css('color', 'gray');
                        $('#centerContent').css('background-image', 'url(images/centerContentInactive.png)');
                        $('#centerContentLine1').css('border-bottom-color', 'gray');
                        $('#centerContentLine2').css('border-bottom-color', 'gray');
                        if ($.browser.msie) { $('#centerContentText').get(0).style.removeAttribute('filter'); };
                    },
                    function () {
                        $('#centerContentText').css('color', 'white');
                        $('#centerContent').css('background-image', 'url(images/centerContent.png)');
                        $('#centerContentLine1').css('border-bottom-color', 'white');
                        $('#centerContentLine2').css('border-bottom-color', 'white');
                    });
            }
        });   
}
