var formValidationError = false;

$(document).ready(function() {

    $("#carouselplay").hide();

    $("#paging #page1 a").css("background-position", "0px -15px");
    $("#pageidentifier").text($("#paging #page1 a").attr("title"));

    $('#carouselContent').cycle({
        fx: 'fade',
        timeout: 5000,
        fastOnEvent: true,
        next: '#carouselnext',
        prev: '#carouselprevious',
        prevNextClick: prevNextClick,
        timeoutFn: changeControls
    });

    $("#carouselpause").click(function() {
        $('#carouselContent').cycle('pause');
        $("#carouselpause").hide();
        $("#carouselplay").show();
    });

    $("#carouselplay").click(function() {
        clearErrorCondition();
        $('#carouselContent').cycle('resume');
        $("#carouselpause").show();
        $("#carouselplay").hide();

    });

    $(".pagenumber").click(function() {
        var index = $(this).attr("id").replace("page", "");
        $('#carouselContent').cycle(parseFloat(index - 1));
        $('#carouselContent').cycle('pause');
        $("#carouselpause").hide();
        $("#carouselplay").show();
        prevNextClick(true, index - 1, $("#carouselcontent" + 2));
        return false;
    });

    //pause carousel when form clicked on
    $(".miniForm input, .miniForm select, .calcBox input,").focus(function() {
        $('#carouselContent').cycle('pause');
        $("#carouselpause").hide();
        $("#carouselplay").show();
    });

    //pause carousel when user hover over a link
    $(".linkbox a, .linkbox_small a, .linkbutton").hover(function() {
        $('#carouselContent').cycle('pause');
        $("#carouselpause").hide();
        $("#carouselplay").show();
    },
	function() {
	    if (formValidationError)
	        return true;

	    $('#carouselContent').cycle('resume');
	    $("#carouselpause").show();
	    $("#carouselplay").hide();

	});

    function changeControls(currElement, nextElement, opts, isForward) {

        if (formValidationError)
            return true;

        var index = opts.currSlide;
        if (index + 1 != currElement.id.replace("carouselcontent", "")) {
            $("#paging #page" + (index + 1) + " a").fadeOut(500, function() {
                $("#paging .pagenumber a").css("background-position", "0px 0px");
                $("#paging #page" + (index + 1) + " a").css("background-position", "0px -" + (index + 1) * 15 + "px");
                $("#paging #page" + (index + 1) + " a").fadeIn(500);
            });

            $("#pageidentifier").fadeOut(500, function() {
                $("#pageidentifier").text($("#paging #page" + (index + 1) + " a").attr("title"));
                $("#pageidentifier").fadeIn(500);
            });
        }
        return false;
    }


    function pauseCarousel(isNext, zeroBasedSlideIndex, slideElement) {
        $('#carouselContent').cycle('pause');
        $("#carouselpause").hide();
        $("#carouselplay").show();
    }

    function prevNextClick(isNext, zeroBasedSlideIndex, slideElement) {

        clearErrorCondition();

        var index = zeroBasedSlideIndex;
        $("#paging #page" + (index + 1) + " a").hide(1, function() {
            $("#paging .pagenumber a").css("background-position", "0px 0px");
            $("#paging #page" + (index + 1) + " a").css("background-position", "0px -" + (index + 1) * 15 + "px");
            $("#paging #page" + (index + 1) + " a").show(1);
        });

        $("#pageidentifier").hide(1, function() {
            $("#pageidentifier").text($("#paging #page" + (index + 1) + " a").attr("title"));
            $("#pageidentifier").show(1);
        });

        $('#carouselContent').cycle('pause');
        $("#carouselpause").hide();
        $("#carouselplay").show();
    }

    function clearErrorCondition() {
        formValidationError = false;

        $("LABEL[class^=validationError]").removeClass("validationError");
        ClearErrorBox();

    }
});


