﻿$(document).ready(function () {
    Address.Start();
    Menu.Start();
});

var Menu = new (function () {

    var that = this;
    var tabContainer = $('#Menu .Tabs > div');

    that.LoadImage = function (URL) {
        $('#Menu .Image').fadeOut(200, function () {
            $('#Menu .Image').html('<img src="' + URL + '" alt="" />').fadeIn(200);
        });
    };

    that.LoadSection = function (Section) {

        if ($('#Menu .Top .Selected').hasClass(Section)) return;
        $('#Menu .Image').hide();
        tabContainer.hide().filter(Section).fadeIn();
        $('#Menu .Top .Selected').removeClass('Selected');
        $('#Menu .Top .' + Section).addClass('Selected');
        $('#Menu .Tabs #' + Section).show();
        that.ShowMenu();
        
        /*$.address.value($($('#' + Section + ' a')[0]).attr('href'));*/
    };

    that.ShowMenu = function () {
        $('#Menu .Middle').slideDown(200);
        $('#Menu .Shadow').fadeIn(200);
    };

    that.HideMenu = function () {
        $('#Menu .Top').children().removeClass('Selected');
        $('#Menu .Middle').slideUp(200);
        $('#Menu .Shadow').fadeOut(200);
    };

    that.Start = function () {
        $('#Menu .Top:first').show();
        $('#Menu .Top').children().click(function () {
            that.LoadSection($(this).attr('class'));
        });
    }

})();

var Address = new (function () {
    var OnLoadCallbacks = new Array();
    var rootContent = '#Main-Content';
    var pageLoad = true;
    var that = this;

    that.Start = function () {
        $.address.change(function (event) {
            if (event.path == '/') {
                if (pageLoad)
                    return;
                else {
                    var url = $.url.attr('relative');
                    if (url[url.length - 1] == '#') url = url.substring(0, url.length - 1);
                    event.path = url;
                }
            }
            $.ajax({ url: event.path, type: 'GET', data: 'MasterPage=true&' + event.queryString, dataType: 'html',
                success: function (data, textStatus) {
                    $(rootContent).html(data);
                    var title = $('#TitlePage');
                    if (title.length > 0) {
                        $.address.title($(title).html());
                    }
                    $(rootContent).find('a:not(.no-jquery-address)').click(that.Links);
                    $.scrollTo('#Header', 500);
                    for (var i in OnLoadCallbacks)
                        OnLoadCallbacks[i]();
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    $(rootContent).html(textStatus + '<br/>' + errorThrown);
                }
            });
            if (pageLoad) pageLoad = false;
        });
        $('a:not(.no-jquery-address)').click(that.Links);
    };

    that.Links = function () {
        if ($(this).attr('href') == undefined || $(this).attr('href').toLowerCase().indexOf("upload/") != -1 || $(this).attr('href').indexOf("http://") != -1 || $(this).attr('href').indexOf("mailto:") != -1 || $(this).hasClass('no-jquery-address'))             
            return true;        

        $.address.value($(this).attr('href'));
        return false;
    };

    that.OnLoad = function (fn) {
        OnLoadCallbacks.push(fn);
    };
})();


var Home = new (function () {

    var that = this;

    that.ContactReset = function () {
        $('#txtName').attr('value', '');
        $('#txtEmail').attr('value', '');
        $('#txtPhone').attr('value', '');
        $('#txtMessage').attr('value', '');
        $('#txtName').focus();
    }

    that.ContactSubmit = function () {

        var submit = true;
        var fields = $('.required');
        var scrollto = null;
        for (var i = fields.length - 1; i >= 0; --i) {
            if (($(fields[i]).attr('title') == $(fields[i]).val()) || ($(fields[i]).hasClass('select') && $(fields[i]).val() == '0')) {
                $(fields[i]).css('color', 'red');
                submit = false;
                scrollto = '#' + $(fields[i]).attr('id');
            }
            else
                $(fields[i]).css('color', '#333333');
        }

        if (!Validation.IsEmail($('#EmailTxb').val())) {
            $('#EmailTxb').css('color', 'red');
            submit = false;
        } else {
            $('#EmailTxb').css('color', '#333333');
        }

    }

})();
