$(function (evt) {

    Cufon.replace('h2,h3,h4,h5,h6');

    $("a.new-window").live("click", function (evt) { window.open($(this).attr("href")); return false; });

    $("#header .nav li.nav-level-1-item").mouseenter(function (evt) {

        var $navItem = $(this);
        $navItem.children(".nav-level-1-link").addClass("nav-level-1-link-hover");
        $navItem.children("ul").show();

        $navItem.closest("#header").addClass("active");

    }).mouseleave(function (evt) {

        var $navItem = $(this);
        $navItem.children(".nav-level-1-link").removeClass("nav-level-1-link-hover");
        $navItem.children("ul").hide();

        $navItem.closest("#header").removeClass("active");

    });

    $(".panel-wrap").each(function (evt) {

        var $wrapper = $(this);
        var $panels = $wrapper.find(".panels>.panel");
        var $links = $wrapper.find(".panel-links");

        $panels.hide().find(".panel-title").hide();

        //$links.find("li:eq(0)>a").addClass("active");

    });

    $(".cross-link").click(function (evt) {

        var $link = $(this);
        var $panel = $($link.attr("href"));

        if ($panel.size() == 1) {

            $panel.siblings(".active").removeClass("active").hide();
            $panel.show().addClass("active");

            $link.parent().parent(".panel-links").find("a.active").removeClass("active");
            $link.addClass("active");

        }

        return false;

    });

    $(".panel-links .cross-link:eq(0)").click();

    $(".watermark").watermark();
    $(".form-grid input[type=text]").textbox();
    $("fieldset.search input[type=text]").textbox();
    $(".form-grid select").select();

    $("#candidate-fields, #client-fields").hide();

    $(".form-grid #_selType").change(function (evt) {

        var $sel = $(this);

        switch ($sel.val()) {

            case "Candidate":
                $("#candidate-fields").show();
                $("#client-fields").hide();
                break;
            case "Client":
                $("#candidate-fields").hide();
                $("#client-fields").show();
                break;
            default:
                $("#candidate-fields, #client-fields").hide();
                break;

        }

    });

    $("form#form-contact-us").submit(function (evt) {

        var emailtest = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        var phonetest = /^[0-9]{3}.*[0-9]{3}.*[0-9]{4}$/;

        var $txtName = $("#_txtName");
        var $txtPhone = $("#_txtPhone");
        var $txtEmail = $("#_txtEmail");
        var $selType = $("#_selType");
        var $txtCompany = $("#_txtCompany");
        var $txtSkillArea = $("#_txtSkillArea");
        var $txtSkillLevel = $("#_txtSkillLevel");

        var type = $selType.val();

        if ($txtName.val().length < 2) {
            alert("A name is required");
            $txtName.focus();
            return false;
        } else if ($txtPhone.val().length > 0 && !phonetest.test($txtPhone.val())) {
            alert("A valid phone number is required.");
            $txtPhone.focus();
            return false;
        } else if (!emailtest.test($txtEmail.val())) {
            alert("A valid email address is required.");
            $txtEmail.focus();
            return false;
        } else if ($selType.val() == "") {
            alert("Please selected whether you are a client or candidate.");
            $selType.focus();
            return false;
        } else if (type == "Client" && $txtCompany.val().length < 2) {
            alert("A company name is required.");
            $txtCompany.focus();
            return false;
        } else if (type == "Candidate" && $txtSkillArea.val().length < 2) {
            alert("Please specify your area of skill.");
            $txtSkillArea.focus();
            return false;
        } else if (type == "Candidate" && ($txtSkillLevel.val().length < 2 || isNaN($txtSkillLevel.val()))) {
            alert("Please specify your skill level in years.");
            $txtSkillLevel.focus();
            return false;
        }

    });

    var $searchSidebar = $(".search-container .side-bar");
    var $searchResults = $(".search-container .search-results");
    var $searchFloater = $searchSidebar.find(".side-bar-floater");

    if ($searchFloater.height() > $searchResults.height())
        $searchResults.css("min-height", $searchFloater.outerHeight(true) + 20 + "px");

    $(window).scroll(function () {

        var offset = $(this).scrollTop();
        var start = $searchSidebar.offset().top;
        var end = $searchSidebar.height() - $searchFloater.outerHeight();

        if (offset > start) {
            var newPos = offset - start;
            $searchFloater.stop().animate({ top: (newPos >= end ? end : newPos) }, 250);
        }
        else
            $searchFloater.stop().animate({ top: 0 }, 250);

    });

    $(".filter-list a.expand-collapse").live("click", function () {

        var $link = $(this);
        var $li = $link.closest("li");

        if ($li.is(".collapsed")) {

            $li.removeClass("collapsed").addClass("expanded").children("ul").show();
            $link.text("-");

        } else {

            $li.removeClass("expanded").addClass("collapsed").children("ul").hide();
            $link.text("+");

        }

        if ($searchFloater.height() > $searchResults.height())
            $searchResults.css("min-height", $searchFloater.outerHeight(true) + 20 + "px");

        return false;

    });

});

function registerFlashUploader() {

    //alert($(".upload-container .editor .button-placeholder").size());

    var $container = $(".upload-container");

    if ($container.size() > 0) {
        var swfu = new SWFUpload({
            // Backend Settings
            upload_url: "/Job-Search/Upload.ashx", // Relative to the SWF file

            file_post_name: 'upload',

            // File Upload Settings
            file_size_limit: "5120", // 2MB
            file_types: "*.pdf;*.doc;*.docx;*.rtf;*.txt",
            file_types_description: "Documents",
            file_queue_limit: 1,
            file_upload_limit: 0,
            begin_upload_on_queue: true,
            use_server_data_event: true,
            button_placeholder: $container.find(".button-placeholder")[0],
            button_width: 77,
            button_height: 28,
            button_image_url: '/img/search/browse.png',
            button_cursor: SWFUpload.CURSOR.HAND,
            button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,

            // Event Handler Settings
            upload_success_handler: function (file, data) {

                var swfu = this;

                $container.find(".loader").hide();

                data = data.split(";");

                $container.find(".file-name input.file-name-value").val(data[1]).siblings("input[type=hidden]").val(data[0]);
                $container.find(".file-name").show().find("span").text(data[0]);
                swfu.setButtonDisabled(false);

            },

            upload_error_handler: function (file, code, message) {

                var swfu = this;

                $container.find(".file-name input.file-name-value").val("");
                $container.find(".loader").hide();
                $container.find(".file-name").hide();
                swfu.setButtonDisabled(false);

            },

            file_queued_handler: function (file) {

                var swfu = this;

                $container.find(".file-name input.file-name-value").val("");
                $container.find(".loader").show();
                $container.find(".file-name").hide();
                swfu.setButtonDisabled(true);
                swfu.startUpload();

            },

            // Flash Settings
            flash_url: "/js/swfupload/swfupload.swf", // Relative to this file

            // UI Settings
            ui_container_id: "swfu_container",
            degraded_container_id: "degraded_container",

            // Debug Settings
            debug: false
        });
    }
}