$(document).ready(function() {

    //console.log(jQuery.url.segment(0));
    //console.log(jQuery.url.segment(1));

    // set active states on main nav
    $('#navigation>li>a').each(function(index) {
        //console.log(index + ': ' + $(this).text());
        $("." + jQuery.url.segment(0) + "").addClass('selected');
    });
    
    // set active states on sub-nav
    $('#subnavigation a').each(function(index) {
        //console.log(index + ': ' + $(this).text());
        $("." + jQuery.url.segment(1) + "").addClass('selected');
    });

    // image button hover
    $('input.bttn').hover(function() {
        $(this).css('background-position', '0 -28px');
    },
	    function() {
	        $(this).css('background-position', '0 0');
	    }
    );

    // init gallery script
    if (document.getElementById("thumbs")) {
        $.getScript('/assets/js/jquery.galleriffic.js', function() {
            $('#thumbs').galleriffic({
                delay: 4000,
                numThumbs: 10,
                preloadAhead: 10,
                enableTopPager: false,
                enableBottomPager: false,
                imageContainerSel: '#slideshow',
                controlsContainerSel: '#controls',
                captionContainerSel: '#caption',
                loadingContainerSel: '#loading',
                renderSSControls: false,
                renderNavControls: true,
                playLinkText: 'Play Slideshow',
                pauseLinkText: 'Pause Slideshow',
                prevLinkText: '&lsaquo; Previous Photo',
                nextLinkText: 'Next Photo &rsaquo;',
                nextPageLinkText: 'Next &rsaquo;',
                prevPageLinkText: '&lsaquo; Prev',
                enableHistory: false,
                enableKeyboardNavigation: true,
                autoStart: true,
                syncTransitions: true,
                defaultTransitionDuration: 1500
            });
            // centers nav dots
            $('.thumbs').css({ top: '50%', left: '50%', margin: '-' + ($('.thumbs').height() / 2) + 'px 0 0 -' + ($('.thumbs').width() / 2) + 'px' });
        });
    }

    function DisableForm() {
        $("#submit").fadeTo("fast", ".2");
        $("#submit").attr("disabled", "disabled").css("cursor", "progress");
    }

    function EnableForm() {
        $("#submit").fadeTo("fast", "1");
        $("#submit").removeAttr("disabled").css("cursor", "pointer");
    }

    function UpdateStateSelect() {
        DisableForm();
        $.getJSON($("#StateLookupUrl").val() + $("select#Country").val(), {}, function(j) {
            var options = '<option value="">' + $("#SelectState").val() + '</option>';

            if (j != null) {
                for (var i = 0; i < j.length; i++) {
                    options += '<option value="' + j[i].StateId + '">' + j[i].Name + '</option>';
                }
                $("select#State").html(options);

                if (j.length > 1) {
                    $("select#State").parent().show();
                    $("input#PostalCode").parent().show();
                } else {
                    $("select#State").parent().hide();
                    $("input#PostalCode").parent().hide();
                }
            }

            EnableForm();
        });
    }

    // contact form validation & country/state selector
    if (document.getElementById("contactform")) {
        if ($("select#Country").val() == "-1") {
            $("select#State").parent().hide();
        } else if ($("select#State option").length < 2) {
            UpdateStateSelect();
        }

        $("select#Country").change(function() {
            UpdateStateSelect();
        });

        $("#contactform").validate({
            rules: {
                FirstName: {
                    required: true
                },
                LastName: {
                    required: true
                },
                Address1: {
                    required: true
                },
                City: {
                    required: true
                },
                State: {
                    required: "#State:visible"
                },
                Zip: {
                    required: true
                },
                Email: {
                    required: true,
                    email: true
                }
            },
            errorElement: "div",
            wrapper: "div",  // a wrapper around the error message
            errorPlacement: function(error, element) {
                offset = element.offset();
                error.insertAfter(element)
                error.addClass('message');  // add a class to the wrapper
            }
        });

        $("select#Country").rules("add", { min: 1, messages: { min: "Please select a country."} });
        $("select#State").rules("add", { min: 1, messages: { min: "Please select a state."} });
    }

    // tour form validations
    if (document.getElementById("tourform")) {
        $("#tourform").validate({
            rules: {
                Dates: {
                    required: true
                },
                FirstName: {
                    required: true
                },
                LastName: {
                    required: true
                },
                Email: {
                    required: true,
                    email: true
                },
                DaytimePhone: {
                    required: true
                }
            },
            errorElement: "div",
            wrapper: "div",  // a wrapper around the error message
            errorPlacement: function(error, element) {
                offset = element.offset();
                error.insertAfter(element)
                error.addClass('message');  // add a class to the wrapper
            }
        });
    }


});
