/**
 *  Filename: 	control.js
 *  Author:     Jason S. Webb
 *
 *  NOTE:       jquery must be loaded prior to loading this file
 */
$(document).ready(function(){
    // remove dotted lines from around links in firefox
	$("a").bind("focus", function(){
        $(this).blur();
    });

    // REPORTS FROM THE FIELD: LEFT TABS
    $("#reports ul li").click(function(){
        // list class == report id || HAHA this is very dirty!!!
        var cls = $(this).attr("class").split(" ");

        // de-activate all other list items and reports
        $("#reports *").removeClass("active");

        //activate new list item and report
        $("." +cls+ " span, #" +cls).addClass("active");
    });

    // FAQ: Hover on questions
    $(".questions li").hover(
        function(){$(this).addClass("over")},
        function(){$(this).removeClass("over")
    });

    // FAQ: Click on questions
    $(".questions li").bind("click", function(e){
        // Set up new question
        $(".questions li.active").removeClass("active");
        $(this).addClass("active");

        var ques = $(this).attr("id").split("-");

        // Set up new answer
        $("#faq-answers .active").removeClass("active");
        $("#ans-"+ques[1]).addClass("active");
    });

    // TIMETRIALS: email form
    $("#tt-emaillink").click(function(){
        $('#emailfrm').css('margin-left', ($('#emailfrm').width() / 2)*(-1)).show();
    });

    $(".closefrm").click(function() {
        $("#emailfrm, #emailty").hide();
        $("#emailfrm input").val("");
    });

    // TIMETRIALS: email form submission
    $(".submitbtn").click(function(){
        var x = $("input");
        var msg = pattern = '';
        var valid = true;

        // reset form error notices
        $(".error").remove();
        $("input").css("border","1px solid #0286C3");

        // validate
        x.each(function(i){
            switch($(this).attr("name")){
                case "email":
                    pattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
                    msg = 'A valid e-mail is required.';
                    break;
                default:
                    pattern = /^[a-zA-Z ]{1,20}$/;
                    msg = 'A valid input is required';
                    break;
            }

            if(!pattern.test($(this).val())){
                $(this).css("border", "1px solid #EC2127");
                $(this).after("<div class='error'>" +msg+ "</div>");
                valid = false;
            }
        });

        if(valid){
            // ajax call to store info
            $.post("emailsubmission.php", $("form").serialize(),
                function(data){
                    if(data == 'exist') {
                        $("form").prepend("<p class='error'>You have already signed up to receive alerts at this e-mail address!</p>");
                    } else if(data == true) {
                        $("#emailfrm").hide();
                        $('#emailty').css('margin-left', ($('#emailty').width() / 2)*(-1)).show();
                    } else {
                        $("form").prepend("<p class='error'>* Unable to save input. Please try again!</p>");
                    }
                }
            );
        }
    });

    // LOCATOR: State Selector hover
    $(".fcl-item").hover(
        function(){
            $(".fcl-over").removeClass("fcl-over");
            $(this).addClass("fcl-over");
        },
        function(){$(this).removeClass("fcl-over");}
    );

    // LOCATOR: State click
    $(".fcl-item").click(function(){
        $("input[name=faux-state]").val($(this).html());
        $("input[name=faux-state-hidden]").val($(this).attr("id"));
        $("#state-select").hide();
    });

    // LOCATOR: Trigger Hover, Mouse down/up, click
    $(".faux-trigger-static").hover(
        function(){
            $(this).removeClass();
            $(this).addClass("faux-trigger-over");
        },
        function(){
            $(this).removeClass();
            $(this).addClass("faux-trigger-static");
        }
    ).mousedown(
        function(){
            $(this).removeClass();
            $(this).addClass("faux-trigger-push");
        }
    ).mouseup (
        function(){
            $(this).removeClass();
            $(this).addClass("faux-trigger-over");
        }
    ).click(function(){
        var x = $(this).offset();
        var iW = $("input").css("width").replace(/px/,"");
        var iH = $(this).css("height").replace(/px/,"");
        var x_shadowDepth = 4;
        var y_shadowDepth = 7;

        $("#state-select").css({
            left: Number(x.left) - Number(iW) + x_shadowDepth,
            top: Number(x.top) + Number(iH) - y_shadowDepth
        }).show();

        return false;
    });


    // LOCATOR: SELECTION loses focus
    $("body").click(function(){
        $("#state-select").hide();
    });
});