/*var SalesforceBridge = new Object();
SalesforceBridge.serviceRoot = "/superman/SalesforceBridge/";
SalesforceBridge.recordRegisteredEvent = function (session, property, eventType, eventSubtype, eventData, onComplete) {
    $.getJSON(SalesforceBridge.serviceRoot + "RecordRegisteredEvent",
		{
		    'session': session,
		    'property': property,
		    'type': eventType,
		    'subtype': eventSubtype,
		    'data': eventData
		},
		onComplete
	);
};
SalesforceBridge.recordAnonymousEvent = function (ip, webProperty, eventType, eventSubType, eventData, onComplete) {
    $.getJSON(SalesforceBridge.serviceRoot + "RecordAnonymousEvent",
		{
		    'ip': ip,
		    'property': webProperty,
		    'type': eventType,
		    'subtype': eventSubType,
		    'data': eventData
		},
		onComplete
	);
};*/

$(document).ready(function () {
    // jcarousel init
    $('.resource-library .resources').jcarousel({ scroll: 4 });
    // nivo slider init
    $('#slider').nivoSlider({
        effect: 'fade', // Specify sets like: 'fold,fade,sliceDown'
        animSpeed: 400, // Slide transition speed
        pauseTime: 6500, // How long each slide will show
        directionNav: true, // Next & Prev navigation
        directionNavHide: false, // Only show on hover
        controlNav: true, // 1,2,3... navigation
        keyboardNav: true, // Use left & right arrows
        pauseOnHover: false, // Stop animation while hovering
        manualAdvance: false, // Force manual transitions
        prevText: 'Previous', // Prev directionNav text
        nextText: 'Next', // Next directionNav text
        beforeChange: function () { }, // Triggers before a slide transition
        afterChange: function () { }, // Triggers after a slide transition
        slideshowEnd: function () { }, // Triggers after all slides have been shown
        lastSlide: function () { }, // Triggers when last slide is shown
        afterLoad: function () { } // Triggers when slider has loaded
    });
    // collapsible divs
    $('.collapsible .toggle').bind('click', function (e) {
        e.preventDefault();
        var p = $(this).parents('.collapsible');

        if (p.hasClass('collapsed')) {
            p.find('.body').slideDown();
            p.removeClass('collapsed');
        } else {
            p.find('.body').slideUp();
            p.addClass('collapsed');
        }
    });
    // hover states for resource library images
    $('.resource-library .resources div').bind('mouseover', function () {
        $(this).find('div').css({ display: 'block' });
    });
    $('.resource-library .resources div').bind('mouseout', function () {
        $(this).find('div').css({ display: 'none' });
    });
    // primary navigation
    $('#primary-nav>li.has-children').not("#primary-nav-contact-us,#primary-nav-news-events").find(">a").append('<span></span>');
    $('#primary-nav>li').bind('mouseover', function () {
        selectednav = $('#primary-nav li.selected,#primary-nav li.parent-selected');
        selectednav.addClass('disabled');
        $('#primary-nav').find('a').removeClass('mouseover');
        $('#primary-nav').find('ul').removeClass('mouseover');
        $('>a', this).addClass('mouseover');
        if ($(this).find('ul')) {
            $(this).find('ul').addClass('mouseover');
        }
    });
    $('#primary-nav').bind('mouseleave', function () {
        selectednav.removeClass('disabled');
        $('#primary-nav').find('a').removeClass('mouseover');
        if ($(this).find('ul')) {
            $(this).find('ul').removeClass('mouseover');
        }
    });
    // password reminder
    $("a.password-reminder").click(function () {
        if ($("#password-reminder").hasClass('open')) {
            $("#password-reminder").slideUp().removeClass('open');
        } else {
            $("#password-reminder").slideDown().addClass('open');
        }
        return false;
    });
    // benefits accordion
    $('#benefits').accordion({ autoHeight: false });
    // generic accordion
    $('.page-body-accordion').accordion({
        autoHeight: false,
        collapsible: true,
        active: false
    });
    // system requirements
    $('#system-requirements').tabs({ selected: 0 });
    // feature thumbs
    $('div.features-tour div.slides ul').jcarousel({
        scroll: 1,
        wrap: 'circular'/*,
        initCallback: setThumb*/
    });
    var productDialog = $('<div id="product-enlargement"></div>')
	.dialog({
	    autoOpen: false,
	    modal: true,
	    width: 920,
	    height: 700,
	    resizable: false,
	    draggable: true,
	    buttons: {
	        'Close Window': function () {
	            $(this).dialog('close');
	        }
	    }
	});
    $(".features-tour .jcarousel-item").click(function () {

        var productImage = $(this).find("input").val();
        var productTitle = $(this).find("img").attr('alt');
        var productCaption = $(this).find("p.slide-caption").text();
        productImage = "<img src='" + productImage + "' alt='' width='920' height='616' /><p>" + productCaption + "</p>";
        productDialog.dialog({ title: productTitle });
        productDialog.html(productImage);
        productDialog.dialog('open');
        return false;

    });

    // form validation
    var rePattern = new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i);
    $(".certara-form").submit(function () {
        var check = 0;
        var email = $('input#email').val();

        $(this).find("input.text.required,select.required,textarea.required,.captcha input").each(function () {

            if ($(this).val() == "") {
                if (!$(this).hasClass('error')) {
                    $(this).addClass("error").prev("label").append("<span class='error'>* Required Field</span>");
                }
                check = 1;
            } else {

                $(this).removeClass("error").prev("label").find(".error").remove();
            }

        })

        if (email != "") {

            if (!rePattern.test(email)) {
                $("input#email").addClass("error").prev("label").append("<span class='error'>* Email Address is invalid</span>");
                check = 1;
            }

        }

        if ($("input#password").val() != $("input#password_confirm").val() && $("input#password_confirm").val() != "") {
            $("input#password_confirm").addClass("error").prev("label").append("<span class='error'>* Passwords do not match</span>");
        }

        if (check == 1)
        { return false; }


    });

    $(".certara-form input.required,.certara-form select.required,.certara-form textarea.required,.captcha input").blur(function () {

        if ($(this).val() != "") {
            $(this).removeClass("error").prev("label").find(".error").remove();
        } else {
            if (!$(this).hasClass('error')) {

                $(this).addClass("error").prev("label").append("<span class='error'>* Required Field</span>")

            }
        }
        var email = $('input#email').val();
        if (email != "") {

            if (!rePattern.test(email)) {
                $("input#email:not(.error)").addClass("error").prev("label").append("<span class='error'>* Email Address is invalid</span>");
                check = 1;
            }

        }

        if ($(this).attr("id") == "password_confirm") {
            if ($("input#password").val() != $(this).val()) {
                $("input#password_confirm:not(.error)").addClass("error").prev("label").append("<span class='error'>* Passwords do not match</span>");
            } else {
                $(this).removeClass("error").prev("label").find(".error").remove();
                $(this).removeClass("error").prev("label").append("<span class='success'>Passwords match.</span>");
            }
        }

    });

    // capture download events
    // ensure all pdf downloads have correct class
    $("a[href$='.pdf']").addClass("download");
    $("a.download").click(function () {
        var session = $("input#download-session").val();
        var property = $("input#download-property").val();
        var remote_ip = $("input#download-ip").val();
        var subtype = $(this).attr("name");
        if (subtype == "")
        { subType = "Unknown"; }
        var dataLong = $(this).attr("href");
        var data = dataLong.replace(/^.*[\\\/]/, '');
        if (session == 0){
          SalesforceBridge.recordAnonymousEvent(remote_ip, property, 'Download', subtype, data);
        } else { 
          SalesforceBridge.recordRegisteredEvent(session, property, 'Download', subtype, data);
        }
    });

});


