﻿var IE6 = false/*@cc_on || @_jscript_version < 5.7@*/;

var selectedImgName;

var pageQueue=new Array();
var currentItemIndex = -1;

// Global top / left adjustments
var TOP_ADJUST = -70;
var LEFT_ADJUST = -20;

// Size Used to change changeover of 2 size pages
var SMALL_2_WIDTH = 1100; // good
var SMALL_2_HEIGHT = 600;
var BIG_2_WIDTH = 1300;
var BIG_2_HEIGHT = 835;

// Sizes Used to change changeover of 3 size pages
var BIG_3_WIDTH = 1420;
var BIG_3_HEIGHT = 900;
var MEDIUM_3_WIDTH = 1200;
var MEDIUM_3_HEIGHT = 650;
var SMALL_3_WIDTH = 900;
var SMALL_3_HEIGHT = 600;

var BACKBUTTON_MIN_WIDTH = 1260;
var BACKBUTTON_MIN_HEIGHT = 650;

var lastSize;
var lastclearPageQueue;
var clientWidth = 0;
var clientHeight = 0;

function displayPdf(pdfName) {
    window.open(pdfName);
}


function backClick() {
    if (currentItemIndex > 0) {
        var newPage = pageQueue[--currentItemIndex];
        menuClick(newPage, false);
    }
}


function menuClick(pageName, clearPageQueue) {
    $('#imgProject').stopTime('imgProject');
    if (pageName != pageQueue[currentItemIndex]) {
        currentItemIndex = clearPageQueue ? 0 : ++currentItemIndex;
        pageQueue[currentItemIndex] = pageName;
    }

        $.ajax({
        url: addExtraParamsToUrl(pageName),
        cache: false,
        success: onMenuLoadComplete
    });
}


function onMenuLoadComplete(html) {
    $('#content').html(html);
    $('#content *').persistOriginalSize();

    updateRollover('media/Buttons', 'Back', 'UP');
    updateRollover('media/Buttons', 'Next', 'UP');

    if (pageQueue[currentItemIndex].indexOf('ProjectLists.aspx') != -1) {
        updateRollover('media/Projects/PROJECT-LISTS', 'NewBuild', 'UP');
        updateRollover('media/Projects/PROJECT-LISTS', 'Schools', 'UP');
        updateRollover('media/Projects/PROJECT-LISTS', 'Refurbishment', 'UP');
    }
  
    $('#content a[rel="lightbox"]').fancybox();
    
    alignContent();
    adjustBackground();
    
    $(document).pngFix();
}

function adjustBackground() {
    if (pageQueue[currentItemIndex].indexOf('Gallery.aspx') == -1) {
        
        $('#background')[0].src = IE6 ? '' : 'media/FABack.png'
    }
    else {
        $('#background')[0].src = ''
    }
}

function mainMenuClick(img_name, pageName) {
    var oldSelectImgName = selectedImgName;
    selectedImgName = img_name;
    updateRollover('media/Buttons', oldSelectImgName, 'UP');
    updateRollover('media/Buttons', img_name, 'DOWN');
    menuClick(pageName, true);
}


function addExtraParamsToUrl(passedUrl) {
    var result = passedUrl;

    if (passedUrl.indexOf('?') != -1) {
        result = result + '&size=' + getSize();
    }
    else {
        result = result + '?size=' + getSize();
    }

    result = result + '&rnd=' + Math.random();
    return result;
}


function updateRollover(imageDir, img_name, img_type) {
    var tmp = $('#btn' + img_name);
    if (tmp.length > 0) {
        if ((img_name == selectedImgName))
            img_type = 'DOWN';

        tmp[0].src = getImageName(imageDir, img_name, img_type);
    }
}


function getImageName(imageDir, img_name, img_type) {
    return imageDir + '/' + img_name + '-' + img_type + '.png';
}


$(function() {
    updateRollover('media/Buttons', 'Home', 'UP');
    updateRollover('media/Buttons', 'Products', 'UP');
    updateRollover('media/Buttons', 'Services', 'UP');
    updateRollover('media/Buttons', 'Projects', 'UP');
    updateRollover('media/Buttons', 'Gallery', 'UP');
    updateRollover('media/Buttons', 'AboutUs', 'UP');

    mainMenuClick('Home', 'home.aspx', true);
});


$.fn.persistOriginalSize = function() {
    return this.each(function() {
        var left = this.style.left;
        var top = this.style.top;
        var position = this.style.position;
        if (position.toUpperCase() == 'ABSOLUTE') {
            if (left.indexOf('px') != -1) {
                left = left.substring(0, left.length - 2);
                left = Number(left) + LEFT_ADJUST;
                this.style.originalLeft = left;
            }
            if (top.indexOf('px') != -1) {
                top = top.substring(0, top.length - 2);
                top = Number(top) + TOP_ADJUST;
                this.style.originalTop = top;
            }
        }
    });
}

$.fn.adjustLeft = function() {
    return this.each(function() {
        var left = this.style.left;
        var originalLeft = this.style.originalLeft;
        var position = this.style.position;
        if (position.toUpperCase() == 'ABSOLUTE') {
            if (left.indexOf('px') != -1) {
                left = left.substring(0, left.length - 2);
                left = Number(left);
                left = adjustLeft(left, originalLeft);
                left = left + 'px';
                this.style.left = left;
            }
        }
    });
}

$.fn.adjustTop = function() {
    return this.each(function() {
        var top = this.style.top;
        var originalTop = this.style.originalTop;
        var position = this.style.position;
        if (position.toUpperCase() == 'ABSOLUTE') {
            if (top.indexOf('px') != -1) {
                top = top.substring(0, top.length - 2);
                top = Number(top);
                top = adjustTop(top, originalTop);
                top = top + 'px';
                this.style.top = top;
            }
        }
    });
}

$(window).resize(function() {
    if (lastSize != getSize()) {
        if (currentItemIndex != -1) {
            menuClick(pageQueue[currentItemIndex], lastclearPageQueue);
        }
    }
    else {
        alignContent();
    }
});

function alignContent() {
    var p = $('#content *').adjustLeft();
    if (getSizeCount() == 2) {
        p.adjustTop();
    }

    lastSize = getSize();
}

function adjustLeft(left, originalLeft) {
    var minClientWidth;
    switch (getSize()) {
        case 'small': minClientWidth = SMALL_2_WIDTH;
            break;
        case 'big': minClientWidth = BIG_2_WIDTH;
            break;
        case "3sizeBig": minClientWidth = BIG_3_WIDTH;
            break;
        case "3sizeMedium": minClientWidth = MEDIUM_3_WIDTH;
            break;
        case "3sizeSmall": minClientWidth = SMALL_3_WIDTH;
            break;
    }

    if (clientWidth <= minClientWidth) {
        // adjust to originaLeft
        left = originalLeft;
    }
    else {
        // resize
        left = Number(originalLeft) + ((clientWidth - minClientWidth) / 2);
    }
    return left;
}

function adjustTop(top, originalTop) {
    var minClientHeight;
    switch (getSize()) {
        case 'small': minClientHeight = SMALL_2_HEIGHT;
            break;
        case 'big': minClientHeight = BIG_2_HEIGHT;
            break;
        case "3sizeBig": minClientHeight = BIG_3_HEIGHT;
            break;
        case "3sizeMedium": minClientHeight = MEDIUM_3_HEIGHT;
            break;
        case "3sizeSmall": minClientHeight = SMALL_3_HEIGHT;
            break;
    }

    if (clientHeight <= minClientHeight) {
        // adjust to originaTop
        top = originalTop;
    }
    else {
        // resize
        top = Number(originalTop) + ((clientHeight - minClientHeight) / 2);
    }
    return top;
}

function getSizeCount() {
    return ((pageQueue[currentItemIndex] != 'home.aspx') &&
            (pageQueue[currentItemIndex] != 'AboutUs.aspx') &&
            (pageQueue[currentItemIndex].indexOf('ProjectLists.aspx') == -1) &&
            (pageQueue[currentItemIndex].indexOf('Gallery.aspx') == -1)) ? 2 : 3;
}

function getSize() {
    var result;
    clientWidth = $('body')[0].clientWidth;
    clientHeight = $('body')[0].clientHeight;
    if (getSizeCount() == 2) {
        if ((clientWidth < BIG_2_WIDTH) || (clientHeight < BIG_2_HEIGHT)) {
            result = "small";
        }
        else {
            result = "big";
        }
    }
    else {
        if ((clientWidth < MEDIUM_3_WIDTH) || (clientHeight < MEDIUM_3_HEIGHT)) {
            result = "3sizeSmall";
        }
        else if ((clientWidth < BIG_3_WIDTH) || (clientHeight < BIG_3_HEIGHT)) {
            result = "3sizeMedium";
        }
        else {
            result = "3sizeBig";
        }
    }
    return result;
}

function TestMethod() {
}



