﻿/// <reference path="jquery-1.2.6-vsdoc.js" />
/// <reference path="jquery.blockUI.js" />
/// <reference path="jquery.cookie.js" />
/// <reference path="jquery.dimensions.js" />


jQuery.fn.tagName = function() {
    if (1 === this.length) {
        return this[0].tagName.toLowerCase();
    } else {
        var tagNames = [];
        this.each(function(i, el) {
            tagNames[i] = el.tagName.toLowerCase();
        });
        return tagNames;
    }
};

var isRegistered;
var common = function() {
    function init(container) {
        isRegistered = $.cookie("isRegistered") == "True";
        $("a").filter(function() { if (this.hostname != location.hostname) $(this).attr('target', '_blank').attr("rel", "nofollow"); });
        $(container).find("a.void").click(function event_handler(event) { event.preventDefault(); });
        $(container).find(".lb_closer").click(close_lightbox);
        $("div.tab").hover(function h() { show_subMenu(this); }, function o() { hide_subMenu(this); });
        //$(".tabs .tab a").click(function c(e) { event_tabClick(e, this); });
    }

    function event_tabClick(e, a) {
        e.preventDefault();
        var tab = $(a).parents(".tab");
        var tabId = tab.attr("id");
        var tab_content = $(".tabs_content").find(".tab_content[tabid=" + tabId + "]");

        $(".tab").removeClass("selected");
        $(".tab_content").hide().removeClass("selected");

        tab.addClass("selected");
        tab_content.fadeIn().addClass("selected");
    }

    function show_subMenu(tab) {
        var sub_menu = $(tab).find("div.submenu");
        $("div.submenu").hide();
        sub_menu.show();
    }
    function hide_subMenu(tab) {
        var sub_menu = $(tab).find("div.submenu");
        sub_menu.hide();
    }

    function validate_form(form) {
        var arr_inputs = $(form).find(".required");
        arr_inputs.each(function ea() { validate_input(this); });
        var isValid = $(form).find(".invalid").length == 0;
        return isValid;
    }

    function validate_input(input) {
        var tag = $(input).tagName();
        var value = $(input).val();
        var isRegex = $(input).is("[regexp]");
        var regex = new RegExp($(input).attr("regexp"));
        var isValid = value != null && value != "" && (isRegex ? regex.test(value) : true);

        if (isValid) {
            $(input).addClass("valid").removeClass("invalid");
        } else {
            $(input).addClass("invalid").removeClass("valid");
            $(input).focus();
        }

        return isValid;
    }


    function close_lightbox() {
        var lightBox_element = $("div.blockUI").find(".lightbox_container");
        var lightbox_content = lightBox_element.find(".lb_content");
        lightbox_content.slideUp(300, function fn() { $.unblockUI(); });
    }

    function open_lighbox(data) {
        var lightBox_element = $("#master_lightbox").find(".lightbox_container");
        var lightbox_content = lightBox_element.find(".lb_content");
        lightbox_content.empty();
        lightbox_content.append(data);
        $.blockUI({ message: lightBox_element });
        $(data).fadeIn();
        lightbox_content.slideDown(500, function cb() {
            var client_height = $(".blockOverlay").innerHeight();
            var content_height = lightbox_content.outerHeight() + 75;
            var blockUI_position = client_height > content_height ? "fixed" : "absolute";

            $(document).find(".blockPage").css("position", blockUI_position);
            if (blockUI_position == "absolute") {
                $(document).find(".blockPage").animate({ "top": "10px" }, 1000);
            }
        });

    }

    $(document).ready(function ini() { init(this); });
    return { close_lightbox: close_lightbox, open_lighbox: open_lighbox, validate_form: validate_form, init: init }
} ();
