if (window.adWordsImgURLDemo == null) alert('Variable not available to this page.');
if (window.conversionSource == null) alert('Variable not available to this page.');

// DEPENDENCY: click handler bound in
// homepage_main.js
// sidebar_nav.js
// landing_pgae.js
var openDialog = function() {
    
    // tracking CTA clicks
    _gaq.push(['_trackEvent', 'PBS', 'Request-Pricing-Click']);
    
    // fix for using fade with IE
    $('.dialog_mask').css('filter', 'alpha(opacity=30)');
    // fade in dialog
    $('#dialog_container, .dialog_mask').fadeIn().addClass('active');
    
    return false;
};

$(document).ready(function() {
    
    // INBOUND LEAD DIALOG
    // DEPENDENCY: uses generic functions from basic_form.js
    var submitDialogCta = function() {
        
        var adWordsImgSrc = adWordsImgURLDemo + "&amp;value="+ email;
        
        // variables for checkForEmpties()
        var email = $('#basic_form').find('#email').val();
        var website = $('#basic_form').find('#websites input').val();
        var opt_in = $('#basic_form').find('#newsletter_opt_in').attr('checked');
        
        // creating array of websites submitted
        var websites = [];
        var createWebsiteList = function() {
            $('#basic_form').find('#websites input').each(function() {
                
                var websiteVal = $(this).val();
                websites.push(websiteVal);
            });
        };
        
        createWebsiteList();
        
        // unbind submit button, display loading message
        $('#cta_submit').unbind('click', submitDialogCta );
        displayLoadingMessage();
        
        // check for empty required fields
        if ( email === '' ){
            
            checkForEmpties();
            messageHandler('Please fill in required fields.', true, bindDialogCta );
            
            return false;
        } else {
            
            // submit form
            $.ajax({
                type: 'POST',
                url: '/account/collect_email/',
                data: {
                    email:email,
                    websites:websites,
                    opt_in:opt_in,
                    reason: 'REQUEST_PRICING',
                    source: conversionSource,
                    allow_dups: true
                }, success: function(response) {
                    if( response.success === true) {
                        
                        // tracking submit
                        _gaq.push(['_trackEvent', 'PBS', 'Request-Pricing', email]);
                        $('<img />').attr({
                            'src': adWordsImgSrc,
                            'height': 1,
                            'width': 1,
                            'alt': ''}).appendTo('#wrap');
                        
                        // show info message
                        $('.info_section .intro, .form').slideUp(100).remove();
                        $('#basic_form').animate({
                            height: '130px'
                        }, 300, function() {
                            $('.info_section .followup').fadeIn(100);
                        });
                        
                    } else {
                        if( response.reason === 'invalid_email' ) {
                            $('#basic_form').find('#email').addClass('error');
                            messageHandler('Please enter a valid email address.', true, bindDialogCta );
                        } else {
                            messageHandler('Unable to submit. Please <a href="mailto:contact@perpetually.com">contact us</a>.', false, bindDialogCta);
                        }
                    }
                }, error: function() {
                    messageHandler('Unable to submit. Please <a href="mailto:contact@perpetually.com">contact us</a>.', false, bindDialogCta);
                }
            });
            
            return false;
        }
        
        
    };
    
    // keep most recent input at bottom
    var scrollToBottom = function() {
        var container_height = $('.website_section').height() + $('.email_section').height();        
        $('.fields').scrollTop(container_height);
    };
    
    // add input code
    $('.add_input').click(function(){
        
        var input_old = $(this).parent('.input_wrapper');
        var input_new = $(this).parent('.input_wrapper').clone();
        
        // prepare input_new to be inserted above
        // this way, we bind rm_input to input_new and don't have
        // to rebind the add_input to a new DOM element
        input_new.children('.add_input').removeClass('add_input')
            .addClass('rm_input').click(function() {
                $(this).parent('.input_wrapper').remove();
                return false;
            });
        
        // place input_new above
        // clear input_old value to start fresh
        $(input_old).before(input_new);
        $(input_old).find('input').attr('value', '').focus();
        
        scrollToBottom();
        
        return false;
    });
    
    // DEPENDENCY: basic_form.js
    // binding form inputs to focus and keydown events
    $('#basic_form .form input').bind({
        'focus': userFormFieldFocus,
        'keydown': userFormFieldKeydown
    });
    
    // click handler for exiting dialog
    $('#close_dialog').click(function() {
        // fix for using fade with IE
        $('.dialog_mask').css('filter', 'alpha(opacity=0)');
        // fade out dialog
        $('#dialog_container, .dialog_mask').fadeOut().removeClass('active');
        
        return false;
    });
    
    // function to bind CTA to error checks and ajax POST
    var bindDialogCta = function() {
        $('#cta_submit').bind('click', submitDialogCta );
    };
    
    // bind CTA
    bindDialogCta();
});
