jQuery.fn.exists = function(){return jQuery(this).length>0;}

var $j = jQuery.noConflict();

$j(document).ready(function(){
    
    Menu.setup();

    if($j('.textFieldHint').exists())
    {
        $j('.textFieldHint').each(function(){
            $j(this).val($j(this).attr('hintText'));
            $j(this).addClass('textHint');
        });

        $j('.textFieldHint').focus(function(){
            if($j(this).val() == $j(this).attr('hintText'))
            {
                $j(this).val('');
                $j(this).removeClass('textHint');
            }
        });

        $j('.textFieldHint').blur(function(){
            if($j(this).val() == '')
            {
                $j(this).val($j(this).attr('hintText'));
                $j(this).addClass('textHint');
            }
        });
    }

    $j('#nav-bar ul li').hover(function(){
        $j(this).toggleClass('selected');
    });
});

var Menu = {

    'setMinWidth' : function(){
        var num_buttons = $j('.menu-item, .three-col-menu-item').length;
        var button_width = (580 / num_buttons) + 'px';
        var text_size = 14;
        var line_height = 30;
        var padding = 4;
        if(num_buttons > 5)
        {
            text_size = 13;
            line_height = 15;
        } else {
            button_width = 'auto';
            padding = 8;
        }
        $j('.menu-item .title, .three-col-menu-item .title').each(function(i){
            $j(this).css({
                    'width' : button_width,
                    'font-size' : text_size + 'px',
                    'line-height' : line_height + 'px',
                    'padding-left' : padding + 'px',
                    'padding-right' : padding + 'px'
                });
        });

        $j('.menu-item, .three-col-menu-item').each(function(i){
            var w = $j(this).width();
            var dropdown = $j(this).children('.dropdown');

            if(dropdown.width() < w)
            {
                dropdown.outerWidth(w);
            }
        });

        var nav_bar = $j('#nav-bar');
        var max_w = nav_bar.offset().left + nav_bar.outerWidth();
        $j('.dropdown').each(function() {
            var obj = $j(this);
            var offset = obj.outerWidth() + obj.parent().offset().left;
            if(offset > max_w)
            {
                obj.css('margin-left' , '-' + (offset - max_w) + 'px');
            }
        });
    },

    'setup' : function(){

        this.setMinWidth();

        $j('.menu-item').hover(
            function(){
                $j(this).addClass('selected');
            },
            function(){
                $j('.menu-item').removeClass('selected');
            }
        );

        
        $j('.three-col-menu-item').hover(
            function(){
                $j(this).addClass('selected');
            },
            function(){
                $j('.three-col-menu-item').removeClass('selected');
            }
        );
    }
}

function array_chunk(input, size) {
    for(var x, i = 0, c = -1, l = input.length, n = []; i < l; i++) {
        (x = i % size) ? n[c][x] = input[i] : n[++c] = [input[i]];
    }

    return n;
}

function setLocation(url) {
    document.location.href = url;
    return true;
}

var AddressLookup = {
    'getAddressesByPostCode' : function(post_code)
    {
        var addresses = false;

        jQuery.ajax({
            url : "/ajax/postcode.php",
            data : {'postcode' : post_code},
            async : false,
            success : function(data){
                addresses = JSON.parse(data);
            }
        });

        return addresses;
    },

    'getAddressById' : function(address_id)
    {
        var address = false;

        jQuery.ajax({
            url : "/ajax/postcode.php",
            data : {'address_id' : address_id},
            async : false,
            success : function(data){
                address = JSON.parse(data);
            }
        });

        return address;
    }
}

