$(document).ready(function() {

    if ($('#home_intro').length > 0 || $('#city_home_intro').length > 0) {
        Cufon.replace('#home_intro h1, #city_home_intro h1');
    }
    var divOff = "-1px 0px";

    // remove dotted dividers from menu items adjacent to active menu item
    function removeActiveDivs() {

        // if this item is not class rightItem, shift it to hide the div
        $('#nav li a.active').parent('li:not(.rightItem)').css({ "background-position": divOff });

        var list1 = $('#nav li a.active').parent('li').next('li.special');
        var list2 = $('#nav li a.active').parent('li').next('li.rightItem');

        if (list1.length == 0 && list2.length == 0) {

            // if there is a next element, it is not special and not rightItem
            // Shift it to eliminate the div

            var list3 = $('#nav li a.active').parent('li').next('li');
            list3.css({ "background-position": divOff });
        }

        // If class of next li is rightItem, we need to use the bg image with no div in it
        if (list2.length == 1) {
            // Only do if next is class rightItem
            list2.css({ "background-image": "url('../images/nav/bg-nav-right-no-div.gif')" });
        }
        // If class of this li is rightItem, we use the image with no div in it
        $('#nav li a.active').parent('li.rightItem').css({ "background-image": "url('../images/nav/bg-nav-right-no-div.gif')" });
    }
    removeActiveDivs();

    // init superfish drop-downs
    $('#nav').superfish({
        delay: 1000,                            // one second delay on mouseout 
        animation: { opacity: 'show' },  			  // fade-in and slide-down animation 
        speed: 'fast',                          // faster animation speed 
        autoArrows: false,                           // disable generation of arrow mark-up 
        dropShadows: true                            // disable drop shadows 					
    });

    // home intro questions
    $('#home_join').children('p').hide();
    $('#home_join').children('p:first').show();

    $('#home_join ul li a').hover(function() {
        id = $(this).attr("href");
        $('#home_join ul li a').removeClass('current');
        $('#home_join').children('p').hide();
        $(this).addClass('current');
        $('#home_join').children('p' + id).show();
        return false;
    });
    $('#home_join ul li a').click(function() { return false; });


    // print page
    $('a.print_page').click(function() {
        window.print();
        return false;
    });


    /* FAQ's */

    // FAQ show/hide answers
    if ($('#content .faq').length > 0) {
        $('#content .faq dd').addClass('rounded');
        $('#content .faq dd.rounded').wrapInner('<span class="inner_rounded"></span>');
        $('#content .faq dt').not('.open').next('dd').hide();
        $('#content .faq dt').not('.open').addClass('closed');

        // ie6 & 7 bug: reset form position on slideDown
        var opacity = 1.0;
        $.pushFormFields = function() {
            if ($.browser.msie && ($.browser.version == 6 || $.browser.version == 7)) {
                if (opacity != 0.99) { opacity = 0.99 } else { opacity = 1.0 }
                $('#faq_form').animate({ 'opacity': opacity }, 'fast');
            }
        }


        $('#content .faq dt').click(
			function() {
			    $(this).next('dd:visible').prev('dt').addClass('closed');
			    $(this).next('dd:visible').slideUp('fast', function() {
			        $.pushFormFields();
			    });

			    $(this).next('dd:not(:visible)').prev('dt').removeClass('closed');
			    $(this).next('dd:not(:visible)').slideDown('fast', function() {
			        $.pushFormFields();
			    });
			}
		);


    }

    // case insensitive filter
    $.expr[":"].containsNoCase = function(el, i, m) {
        var search = m[3];
        if (!search) return false;
        return eval("/" + search + "/i").test($(el).text());
    };



    // on search submit
    $('.search_field').show();


    /* this goes inline
    $('.search_field').submit(function(){													   
		
		var searchTerm = $('.search_field input.inputText').val();
		
		if(searchTerm.length > 0){
    $("#content .faq dt, #content .faq dd").removeHighlight();		
    $("#content .faq dt, #content .faq dd").highlight(searchTerm);					
			
    $('#content .faq dd')
    .hide()
    .removeClass('highlight')
    .prev('dt')
    .addClass('closed');
					
    ddItemsFound = $('#content .faq dd:containsNoCase('+searchTerm+')');
    dtItemsFound = $('#content .faq dt:containsNoCase('+searchTerm+')');
			
    $(ddItemsFound)
    .prev('dt')			
    .removeClass('closed')
    .addClass('open')
    .next('dd')
    .addClass('highlight')
    .slideDown('fast', function(){
    $.pushFormFields();														
    });				
					
    $(dtItemsFound)					
    .removeClass('closed')
    .addClass('open')	
    .next('dd')
    .addClass('highlight')
    .slideDown('fast', function(){
    $.pushFormFields();														
    });				
			
    if (ddItemsFound.length > 0 ) theTarget = ddItemsFound.prev('dt');
    if (dtItemsFound.length > 0 ) theTarget = dtItemsFound;
			
    $.scrollTo(theTarget, 400);			
					
    if( $('#content .faq dt:containsNoCase('+searchTerm+')').length <= 0 &&  $('#content .faq dd:containsNoCase('+searchTerm+')').length <= 0){
    $('.search_field input.inputText').val('no results!');
    }
    } else {
    $('.search_field input.inputText').val('enter term!');
    }
    return false;
    });
    */


    /* HOW IT WORKS ACCORDION */

    // enable close buttons
    $('#follow_steps .close_step').css({ 'display': 'inline-block' });

    // close all accordions
    $('#follow_steps .step')
		.removeClass('open')
		.addClass('closed');

    // adjust button text
    $('#follow_steps .step .float_header .button')
		.removeClass('std_dark')
		.addClass('alternate')
		.children('span')
			.text('More Information');

    // open/close step
    $('#follow_steps .step .float_header a.close_step').toggle(

		function() { // open

		    $(this).parent().parent().parent().parent().parent('.step')
				.removeClass('closed')
				.addClass('open');

		    $(this).removeClass('alternate')
				.addClass('std_dark')
				.children('span')
					.text('Close');

		    return false;
		},

		function() { // close													 

		    $(this).parent().parent().parent().parent().parent('.step')
				.removeClass('open')
				.addClass('closed');

		    $(this).removeClass('std_dark')
				.addClass('alternate')
				.children('span')
					.text('More Information');

		    return false;
		}
	);

    // close from secondary close button
    $('#follow_steps .step .btn_row a.close_step').click(function() {

        $(this).parent().parent().parent().parent('.step')
			.removeClass('open')
			.addClass('closed');

        $(this).parent().parent().prev('.float_header').children().children().children('.close_step')
			.removeClass('std_dark')
			.addClass('alternate')
			.click() // neccessary to revert toggle state
			.children('span')
				.text('More Information');

        return false;
    });

    /* TOOLTIP */
    if ($("#content a.whatsthis").length > 0) {
        $("#content a.whatsthis").tooltip({
            track: true,
            delay: 150,
            showURL: false,
            fixPNG: true,
            showBody: " | ",
            extraClass: "tooltip_pretty",
            top: -73,
            left: 15
        });

        $("#content a.whatsamex").tooltip({
            track: true,
            delay: 150,
            showURL: false,
            fixPNG: true,
            showBody: " | ",
            extraClass: "tooltip_pretty2",
            top: -73,
            left: 15
        });
    }

    /* LIGHTBOXES */

    function convertLinkToIframe(elm) {
        var href = $(elm).attr('href');

        if (href != null) {
            var parts = new Array();
            parts = href.split('/');
            filename = parts[parts.length - 1];
            filename = 'iframe' + filename;
            //filename = 'iframe-' + filename;
            href = "";
            for (i = 0; i < parts.length; i++) {
                if (i != parts.length - 1) {
                    href = href + parts[i];
                }
                else {
                    href = href + filename;
                }
            }
            $(elm).attr('href', "/" + href);
            // $(elm).attr('href', href);
        }
    }

    convertLinkToIframe('#welcome a.login_link');
    convertLinkToIframe('#footer a.terms_link');
    convertLinkToIframe('#sitemap_wrap a.terms_link');
    convertLinkToIframe('.summaryTable a.calculatetotalmileslink');
    convertLinkToIframe('.summaryTable a.extendrenewrejoinlink');
    convertLinkToIframe('.summaryTable a.whatsthisbride');
    convertLinkToIframe('.summaryTable a.calculatecarbonoffsetlink');
    convertLinkToIframe('.summaryTable a.calculatecaloriesburnedlink');
    convertLinkToIframe('.summaryTable a.calculatemoneysaved');
    convertLinkToIframe('.summary a.mapmyridelink');
    convertLinkToIframe('#content a.pricing_link');


    // login lightbox
    $('#welcome a.login_link').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': 491,
        'height': 270,
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'
    });

    // password recovery lightbox
    $('#welcome a.recoverpass_link').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': 491,
        'height': 372,
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'
    });

    // t&c's lightbox
    $('#footer a.terms_link, #sitemap_wrap a.terms_link').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': 493,
        'height': 305,
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'
    });

    // view demo link
    $('#header a.viewdemo_link, #sitemap_wrap a.viewdemo_link').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': 555,
        'height': 410,
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'
    });

    // calculate miles link
    $('#content a.calculatetotalmileslink').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': 493,
        //'height': 270, 
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'
    });

    // extend renew rejoin link
    $('#content a.extendrenewrejoinlink').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': 493,
        'height': 305,
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'
    });

    // extend renew rejoin link
    $('#content a.whatsthisbride').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': 800,
        'height': 750,
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'
    });

    //,
    //'frameHeight': window.screen.height
    // map my ride link
    $('#content a.mapmyridelink').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': window.screen.width,
        'height': window.screen.height,
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'
    });

    // calculate carbon link
    $('#content a.calculatecarbonoffsetlink').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': 493,
        //'height': 270,
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'
    });

    // calculate link
    $('#content a.calculatecaloriesburnedlink').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': 493,
        'height': 300,
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'
    });

    // calculate money link
    $('#content a.calculatemoneysaved').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': 493,
        'height': 400,
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'

    });

    // view pricing examples link
    $('#content a.pricing_link').fancybox({
        'padding': 0,
        'overlayShow': true,
        'overlayOpacity': 0.5,
        'width': 730,
        'height': 485,
        'scrolling': 'no',
        'overlayColor': '#000',
        'hideOnContentClick': false,
        'transitionIn': 'none',
        'transitionOut': 'none'
    });




    /* SELECT BOXES */
    function hideSubmit() {
        $('#sort_news_form input[type="submit"]').hide(); // hide submit button for js capable	
    }
    function doSubmit(args) {
        //alert(args.selectedVal);
    }

    if ($('.sortby').length > 0) {
        $('.sortby').selectbox({
            onInitCallback: hideSubmit()
            //onChangeCallback: doSubmit
        });
    }

    if ($('.select_topic').length > 0) {
        $('.select_topic').selectbox({
            inputClass: 'selectbox_contact'
        });
    }

    if ($('.security_question').length > 0) {
        $('.security_question').selectbox({
            inputClass: 'selectbox_question',
            loopnoStep: true
        });
    }


    /* BUZZ */


    if ($('ul.press_items').length > 0) {

        $.urlParam = function(name) {
            var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
            if (!results) { return 0; }
            return results[1] || 0;
        }
        var expand = eval($.urlParam('expand'));

        if (expand != true) {
            // buzz - show more links
            $("ul.press_items li:gt(4)").hide();

            if ($("ul.press_items li").length > 5) {
                $("ul.press_items").after('<a href="showmore-press.html" class="show_more">Show More</a>');
            }

            $("ul.tweet_items li:gt(6)").hide();
            if ($("ul.tweet_items li").length > 7) {
                $("ul.tweet_items").after('<a href="showmore-tweet.html" class="show_more">Show More</a>');
            }

            $("#press_col a.show_more").click(function() {
                $("#news_listings ul.press_items li:gt(4)").fadeIn();
                $(this).remove();
                return false;
            });

            $("#tweet_col a.show_more").click(function() {
                $("ul.tweet_items li:gt(6)").fadeIn();
                $(this).remove();
                return false;
            });

        }

    }

    // comments	
    if ($('#comments').length > 0) {

        var commentsShown = 20;
        var commentsHidden = $("#comments ul li").length - commentsShown;

        if (commentsHidden > 0) {
            $("#comments ul li:gt(" + (commentsShown - 1) + ")").hide();
            $("#comments ul").after('<a href="#" class="show_more">' + commentsHidden + ' more comments</a>');

            $("#comments a.show_more").click(function() {
                $("#comments ul li:gt(" + (commentsShown - 1) + ")").fadeIn();
                $(this).remove();
                return false;
            });
        }

    }


    /* MY ACCOUNT */

    // tabs	
    if ($('#content div.tabs').length > 0) {
        var tabContainers = $('#content div.tabs > div > div');

        $('#content div.tabs ul.tabNavigation li a').click(function() {
            tabContainers.hide().filter(this.hash).show();

            $('#content div.tabs ul.tabNavigation li').removeClass('selected');
            $(this).parent('li').addClass('selected');

            return false;
        }).filter('.selected a').click();
    }

    // expand my trip details	
    if ($('#content .tripsTable').length > 0) {

        $('.tripsTable tr.detailRow').hide();
        $('.tripsTable tr.summary td.expand a').toggle(
			function() {
			    $(this).parent().parent('tr.summary').next('tr.detailRow').show()
					.prev('tr.summary').children('td.expand').children('a').addClass('open')
					.end().parent('tr.summary').addClass('open');
			    return false;
			},
			function() {
			    $(this).parent().parent('tr.summary').next('tr.detailRow').hide()
					.prev('tr.summary').children('td.expand').children('a').removeClass('open')
					.end().parent('tr.summary').removeClass('open');
			}
		);

    }

    if ($('#content .statementTable').length > 0) {

        $('.statementTable tr.detailRow').hide();
        $('.statementTable tr.summary td.expand a').toggle(
			function() {
			    $(this).parent().parent('tr.summary').next('tr.detailRow').show()
					.prev('tr.summary').children('td.expand').children('a').addClass('open')
					.end().parent('tr.summary').addClass('open');
			    return false;
			},
			function() {
			    $(this).parent().parent('tr.summary').next('tr.detailRow').hide()
					.prev('tr.summary').children('td.expand').children('a').removeClass('open')
					.end().parent('tr.summary').removeClass('open');
			}
		);

    }

    /* addthis tooltips */
    $('#content .addthis_position').hoverIntent(
		function() {
		    if ($.browser.msie) { $(this).children('.addthis_tooltip').show(); }
		    else { $(this).children('.addthis_tooltip').fadeIn(); }
		},
		function() {
		    $(this).children('.addthis_tooltip').hide();

		}
	);

    $('#content .addthis_position > a').click(function() { return false; });

    /* addthis footer popup */
    $('#social .share_button, #share_pop').mouseenter(function() {
        $('#share_pop').fadeIn('fast');
        $('#social .share_button').addClass('active');
        $(this).data('in', true);
        $('#share_pop').data('hidden', false);
    }).mouseleave(function() {
        $(this).data('in', false);
        setTimeout(hideMenu, delayPop);
    });

    var delayPop = 400;
    function hideMenu() {
        if (!$('#social .share_button').data('in') && !$('#share_pop').data('in') && !$('#share_pop').data('hidden')) {
            $('#share_pop').fadeOut('fast');
            $('#social .share_button').removeClass('active');
            $('#share_pop').data('hidden', true);
        }
    }

    $('#social .share > a.share_button').click(function() { return false; });


    // close welcome
    $('#myaccount_welcome a.close_btn, #myaccount_welcome a.button').click(function() {
        $(this).parent().fadeOut();
    });


    /* FORMS */

    // show/hide field values
    // NOTE: this will only work if one of these kind of input fields are on the page!
    //       it looks like this is always the case, else will need to adjust
    var inputVal = null;
    inputVal = $('input.inputTextLabel').attr('value');
    $('input.inputTextLabel').focus(function() {
        if ($(this).attr('value') == inputVal) {
            inputVal = $(this).attr('value');
            $(this).attr('value', '');
        }
    }).blur(function() {
        if ($(this).attr('value') == '') {
            $(this).attr('value', inputVal);
        }
    });


    // disable/enable items
    function disableEnableField(elm, state) {
        if (state == 'disable') {
            $(elm).addClass('disabled');
            $(elm).find('input').attr('disabled', 'disabled');
        } else {
            $(elm).removeClass('disabled');
            $(elm).find('input').removeAttr('disabled');
        }
    }

    if ($.browser.msie) {
        $('.field_col_payperiod .inputRadio:not(:last)').click(function() {
            this.blur();
            this.focus();
            disableEnableField('.field_col_autorenew', 'disable');
        });
        $('.field_col_payperiod .inputRadio:last').click(function() {
            this.blur();
            this.focus();
            disableEnableField('.field_col_autorenew', 'enable');
        });
    } else {
        $('.field_col_payperiod .inputRadio:not(:last)').change(function() {
            disableEnableField('.field_col_autorenew', 'disable');
        });

        $('.field_col_payperiod .inputRadio:last').change(function() {
            disableEnableField('.field_col_autorenew', 'enable');
        });
    }

    (function() {
        var scrolled = false;
        $('#inline_terms .scrollable').scroll(function() {
            if (!scrolled) disableEnableField('#join_form .field_terms', 'enabled');
            scrolled = true;
        });
    })();

    // show/hide billing address	
    if ($('#billing_address').length > 0) {

        $('#billing_address').hide();

        if ($.browser.msie) {
            $('.field_col_billing input[type=checkbox]').click(function() {
                this.blur();
                this.focus();
                if ($('.field_col_billing input[type=checkbox]:checked').length) {
                    $('#billing_address').fadeIn();
                } else {
                    $('#billing_address').hide();
                }
            });
        } else {
            $('.field_col_billing input[type=checkbox]').change(function() {
                if ($('.field_col_billing input[type=checkbox]:checked').length) {
                    $('#billing_address').fadeIn();
                } else {
                    $('#billing_address').hide();
                }
            });
        }
    }



});


