$(function(){

    $('input.confirm').click(function(e){
    
        var button = $(this);
        
        if(button.data('confirmed') === undefined){
            
            e.preventDefault();
    
            $('<div title="Confirm"><p>'+button.data('confirm')+'</p></div>').dialog({
                resizable: false,
                modal: true,
                buttons: {
                    'Delete': function(){
                        $(this).dialog('close');
                        button.data('confirmed', true);
                        button.click();
                    },
                    Cancel: function(){
                        $(this).dialog('close');
                    }
                }
            });
        }
    });

    $('button').click(function(e){
    
        if($(this).attr('id') !== undefined) $(this).closest('form').attr('action', $(this).attr('id')+'.php');
    });

    $('.faq').find('dd').hide().end().find('dt').click(function(e){
    
        $(this).next().slideToggle('fast');
    });

    $('.hiddenInformationToggle').click(function(){
        
        $('.hiddenInformation').toggleClass('information');
    });

    $('.expandToggle').each(function(){
    
        if($(this).is("h3")) $(this).append('<img style="float: right;" src="/_lib/_media/images/icon_expand.png"/>');
        
        var block = $(this).parent().find('.expandable');
        block.hide();
        
        $(this).click(function(){
        
            block.slideToggle('fast');
        });
    });

    $('div.hiddenFunctions').each(function(){ if(!Modernizr.touch){
        
        var block = $(this);
        block.hide();
        
        $(this).parent().hover(function(){
        
            block.toggle();
        });
    }});

    $('div.hiddenSubmit').each(function(){
        
        var block = $(this);
        
        $(this).closest("form").find(":input").focus(function(){
        
            block.show();
            
        }).blur(function(){
        
            if($(this).val() === "") block.hide();
            
        }).blur();
    });

    $('textarea').bind('keyup click input', function(){
    
        var countBox = $(this).next('.textareaCount');
        var maxlength = $(this).attr('maxlength');
        var count = maxlength-$(this).val().length;
        
        countBox.toggleClass("outOfRange", count < 0);
        countBox.html(count);
    }).keyup();

    $('[name$="Confirm"]').each(function(){
    
        var block = $(this).closest('.formConfirm');
        
        $('#'+$(this).attr('name').replace('Confirm','')).bind('keyup click input', function(){
            block.toggle($(this).val() !== '');
        }).keyup();
    });

    $('[name$="Specify"]').each(function(){
    
        var block = $(this).closest('.formSpecify');
        
        $('#'+$(this).attr('name').replace('Specify','')).change(function(){
            block.toggle($(this).val().indexOf('specify') !== -1);
        }).change();
    });

    $('[id$="New"]').each(function(){
        
        var block = $(this);
        
        $('#'+$(this).attr('id').replace('New','')).change(function(){
            block.toggle($(this).val().indexOf('new') !== -1);
        }).change();
    });

    $('[id$="Other"]').each(function(){
        
        var block = $(this);
        
        $('#'+$(this).attr('id').replace('Other','')).change(function(){
            block.toggle($(this).val().indexOf('other') !== -1);
        }).change();
    });

    $('[id*="Conditional"]').each(function(){
        
        var block = $(this);
        var values = block.attr('id').split('Conditional');
        
        $('#'+values[0]).change(function(){
            
            var block2 = $(this);
            var match = false;
            var splitValues = values[1].split('|');
            
            $.each(splitValues, function(i, v){ 
                if(block2.val().indexOf(v) !== -1) match = true;
            });
            
            block.toggle(match);
            
        }).change();
    });
    
    $('html.oldie').find('select').focus(function(){
    
        $(this).data('width', $(this).width());
        $(this).width('auto');
        $(this).click();
    }).blur(function(){
    
        $(this).width($(this).data('width'));
    });
    
    $('html.oldie').find('body').prepend("<div id=\"oldieBanner\">You are using an old browser. You may experience some security, functionality & styling issues. Please <a href=\"http://www.updateyourbrowser.net\">update your browser</a>. &nbsp; <a href=\"\" id=\"oldieBannerClose\">[x]</a></div>");
    
    $('#oldieBanner').fadeIn();
    
    $('#oldieBannerClose').click(function(e){
        e.preventDefault(); $('#oldieBanner').fadeOut();
    });

    $('textarea').autoResize({
        maxHeight: 999999,
        extraSpace: 0,
        animate: {duration: 1, complete: function(){}}
    });
    
    if(!Modernizr.inputtypes.date) $('input[type="date"]').datepicker({ dateFormat: 'yy-mm-dd' });
    $('input[type="date"]').blur();

    $('select.autosubmit').change(function(){ $(this).closest('form').submit(); });
    $('input.autosubmit').keyup(function(){ $(this).closest('form').submit(); });
    $('textarea.autosubmit').keyup(function(){ $(this).closest('form').submit(); });
    $('.checkbox.autosubmit').click(function(){ $(this).closest('form').submit(); });
    
    $('.backButton').click(function(){ history.go(-1); });
    
    $('.closeButton').click(function(){ window.close(); });
    
    $('a.dialog').click(function(e){
        e.preventDefault();
        window.open($(this).attr('href'), '_blank', 'width=500, height=300, scrollbars=yes');
    });
    
    $("div.helpDialog").dialog({ autoOpen: false, width: 500 });

    $('[class$="DialogToggle"]').click(function(){
        
        $('#'+$(this).attr('class').replace('Toggle','')).dialog('open');
    });
});
