﻿$(function() {
    css3();

    replaceCheckboxes('body');
    replaceRadioButtons('body');

    // magic current states
    var links = $('li a:not(.exempt)');

    // If link href matches the current pathname, set class="current"
    links.each(function() {
        var a = $(this);
        if (a.attr('href') == window.location.pathname) {
            a.parent().addClass('current');
        }
    });
});

function css3() {
    $('input:input').addClass("input");
    $('input:text').addClass("text");
    $('input:radio').addClass("radio");
    $('input:checkbox').addClass("checkBox");

    $("ul,ol").each(function() {
        $(this).children("li:nth-child(even)").addClass("alt");
        $(this).children("li:first").addClass("first");
        $(this).children("li:last").addClass("last"); 
    });

    $('table tbody tr:odd').addClass('alt');
    $('table tbody tr:first').addClass('first');
    $('table tbody tr:last').addClass('last');   
    $('table thead tr:first').addClass('first');
    $('table thead tr:last').addClass('last');
    $('table thead tr th:first').addClass('first');
    $('table thead tr th:last').addClass('last');

    $('ul.contactBlocks li:nth-child(3n)').addClass('borderless');
    $('ul.contactBlocks li:nth-child(4n)').addClass('borderless');
    $('ul.contactBlocks li:even').addClass('even');
    
    $('#artistIndex ul:last').addClass('last');
    $('.lightGrayBox .contactBlock:last').addClass('last');
    $('ul.gridView li:nth-child(3n)').addClass('endRow');
    $('div.artistProfile ul.galleryList li:nth-child(3n)').addClass('endRow');
    $('ul.threeCol li:nth-child(3n)').addClass('endRow');
    $('ul.searchResults.other li:nth-child(4n)').addClass('endRow');

}

function replaceCheckboxes(container) {
    // replace checkboxes
    $(container).find('input[type=checkbox]').each(function(i) {
        var checkbox = $(this);
        var label = checkbox.nextAll('label');

        if (label.size() == 0) return;

        checkbox.hide();
        label.hide();

        var a = $('<a href="#" class="checkbox"></a>');
        a.text(label.text());

        if (checkbox.is(':checked'))
            a.addClass('checked');

        a.click(function(e) {
            e.preventDefault();
            var a = $(this);
            var checkbox = a.nextAll('input[type=checkbox]');
            if (checkbox.is(':checked')) {
                a.removeClass('checked');
                checkbox.removeAttr('checked');
            }
            else {
                a.addClass('checked');
                checkbox.attr('checked', true);
            }
            checkbox.trigger('change'); // fire change event
        });
        checkbox.before(a);
    });
};

function replaceRadioButtons(container) {
    // replace radiobuttons
    $(container).find('input[type=radio]').each(function(i) {
        var radio = $(this);
        var label = radio.nextAll('label');

        if (label.size() == 0) return;

        radio.hide();
        label.hide();

        var a = $('<a href="#" class="radio"></a>');
        a.text(label.text());

        if (radio.is(':checked'))
            a.addClass('checked');

        a.click(function(e) {
            e.preventDefault();
            var a = $(this);
            var radio = a.nextAll('input[type=radio]');
            if (radio.is(':checked')) {
                a.removeClass('checked');
                radio.removeAttr('checked');
            }
            else {
                a.addClass('checked');
                radio.attr('checked', true);
            }
            radio.trigger('change'); // fire change event
        });

        radio.before(a);
    });
};