var RazsorLayoutJS = {};

RazsorLayoutJS.init = function () {
    RazsorLayoutJS.globalJS();
    RazsorLayoutJS.showCaseVehicleHideWelcomeText();
    RazsorLayoutJS.addSocialAndPrintButtons();
    RazsorLayoutJS.readMoreAndLess('.right .rzc-opening-times .additionalInformation');
    RazsorLayoutJS.fullFinanceForm();
    RazsorLayoutJS.setToBiggestWidth('ul.showcase-specs li strong');
    RazsorLayoutJS.expandWhenVideoPresent();
    RazsorLayoutJS.setNumberOnlyInputs('.text-year'); // CSS name
    RazsorLayoutJS.createDateTimePicker('.selected-date');
    RazsorLayoutJS.techSpecBehaviour();
    RazsorLayoutJS.techSimilarFinanceFunctionality();
    RazsorLayoutJS.createPrintDescription();
    RazsorLayoutJS.stocklistFinanceCalculator();
    RazsorLayoutJS.showStockCarousel();
    RazsorLayoutJS.carouselFade();
    RazsorLayoutJS.cannedSearchAlt();
    RazsorLayoutJS.showHideVideoOrImg();
    RazsorLayoutJS.showHideSideText();
};

RazsorLayoutJS.globalJS = function () {
    // mark as javascript enabled
    $("body").addClass("js");
    balanceHeightOfPromotionsAfterTimeout(250);
};

RazsorLayoutJS.createPrintDescription = function () {
    // Detail page, truncate text
    $(".printversion").html($('.rzp-used-cars .rzc-advert .description .more p').html());
    $('.rzp-used-cars .rzc-advert .description .more p').trunc(320, '... <span class="trunc">[[More]]</span>', '<span  class="trunc hide">[[Hide]]</span>');
};

RazsorLayoutJS.setNumberOnlyInputs = function () {
    // Set the year text box to only accept numbers
    for (i = 0; i < arguments.length; i++) {
        $(arguments[i]).keyup(function () {
            this.value = this.value.replace(/[^0-9\.]/g, '');
        });
    }
};

RazsorLayoutJS.readMoreAndLess = function () {
    for (i = 0; i < arguments.length; i++) {
        $(arguments[i]).expandable();
    }

};

RazsorLayoutJS.createDateTimePicker = function () {
    for (i = 0; i < arguments.length; i++) {
        $(arguments[i]).datepicker({
            showOn: "button",
            dateFormat: 'dd/mm/yy'
        });
    }
};

RazsorLayoutJS.setToBiggestWidth = function () {
    for (i = 0; i < arguments.length; i++) {
        var max = 0;
        $(arguments[i]).each(function () {
            if ($(this).width() > max) max = $(this).width();
        });
        $(arguments[i]).width(max + 1);
    }
};


RazsorLayoutJS.techSimilarFinanceFunctionality = function () {
    $(".rzc-advert .rzc-c-s-strip, .rzc-finance-calculator").hide();
    $("#similarVehiclesComponent").show();
    if ($('#capTechSpecComponent').is(":visible")) {
        $(".tab-tech-spec").addClass("tab-on");
        $("#similarVehiclesComponent").hide();
    } else $(".tab-similar-cars").addClass("tab-on");

    if ($('#capTechSpecComponent').length < 1 && $("#similarVehiclesComponent").length < 1) {
        $('.tab-finance-calculator').addClass("tab-on");
        $('#financeCalculatorComponent').show();
    }


    $(".advert-detail-more-info-tabs li a").click(function () {
        if (!$(this).hasClass("tab-on")) {
            $(".more-details, .rzc-c-s-strip, .rzc-finance-calculator").slideUp();
            $(".advert-detail-more-info-tabs li a").removeClass("tab-on");
            var moreInfoArea = $(this).attr("class");
            moreInfoArea = moreInfoArea.split(" ");
            switch (moreInfoArea[0]) {
            case "tab-tech-spec":
                $(".tab-tech-spec").addClass("tab-on");
                $(".more-details").slideDown();
                break;
            case "tab-similar-cars":
                $(".tab-similar-cars").addClass("tab-on");
                $(".rzc-c-s-strip").slideDown();
                break;
            case "tab-finance-calculator":
                $(".tab-finance-calculator").addClass("tab-on");
                $(".rzc-finance-calculator").slideDown();
                break;
            }
        }
        return false;
    });
};

RazsorLayoutJS.addSocialAndPrintButtons = function () {
    // Add print button to main menu
    $(".rzc-main-menu ul.social-menu").append('<li class="print"><a href="#"><span>Print page</span></a></li>');

    // Open print dialog
    $(".rzc-main-menu ul .print").click(function () {
        window.print();
        return false;
    });

    $(".stockFacebook, .stockTwitter").click(function () {
        return false;
    });
};

RazsorLayoutJS.showCaseVehicleHideWelcomeText = function () {
    if ($('.left-content .showcase-vehicle-wrapper #showcaseVehicleTitleComponent').is(":visible")) {
        $('.left-content .showcase-vehicle-wrapper').show();
        $('.left-content .showcase-vehicle-wrapper').next().hide();
    } else $('.left-content .showcase-vehicle-wrapper').hide();
};

RazsorLayoutJS.techSpecBehaviour = function () {
    // Detail page, tech specs
    $('.rzc-advert .more-details h3:eq(0)').addClass('on');
    $('.rzc-advert .more-details .box:not(:eq(0))').hide();
    $('.rzc-advert .more-details h3').click(function () {
        if ($(this).hasClass('on')) {
            $(this).removeClass('on');
            $(this).next().slideUp();
        } else {
            $(this).parent().find('h3').removeClass('on');
            $(this).parent().find('.box').slideUp();
            $(this).addClass('on');
            $(this).next().slideDown();
        }
    });
    $(".rzc-advert .more-details table tbody tr:even").addClass('alt');
};


RazsorLayoutJS.fullFinanceForm = function () {
    $(".rzc-finance .switch").hide();
    $(".rzp-finance .submit-and-warning button.submit span").text("Send my finance enquiry");

    // For promote, if the dealer has chosen full finance forms then we just show the full finance form.
    if($("#full") !== null){    	
    	$("#full-enquiry-form").attr("value", "true");
    	$(".rzc-finance .full").show();
        $(".rzc-finance .quick").hide();    	
    }else{
        $(".rzc-finance .full").hide();
        $(".rzc-finance .quick").show();    	
    }

    $(".current-address").change(function () {
        var yearsCheckAddress = parseInt($(".current-address").val(), 10);
        if (yearsCheckAddress > 3) {
            $(".previous-address input").attr("disabled", "disabled");
            $(".previous-address input").attr("style", "background:#EBEBE4;");
        } else {
            $(".previous-address input").removeAttr("disabled");
            $(".previous-address input").removeAttr("style");
        }
    });

    $(".current-employer").change(function () {
        var yearsCheckEmp = parseInt($(".current-employer").val(), 10);
        if (yearsCheckEmp > 2) {
            $(".previous-employer input").attr("disabled", "disabled");
            $(".previous-employer input").attr("style", "background:#EBEBE4;");
        } else {
            $(".previous-employer input").removeAttr("disabled");
            $(".previous-employer input").removeAttr("style");
        }
    });
    
    $(".dob").datepicker({
		dateFormat : 'dd/mm/yy' ,
		changeMonth: true,
		changeYear: true,
		yearRange: '-111:+0'
	});

};

RazsorLayoutJS.expandWhenVideoPresent = function () {
    if ($(".right-col-wrap .rzc-video").height() < 52) {
        $(".right .rzc-contact-details .adr, .rzc-opening-times, .right-col-wrap .rzc-link-button").show();
        $(".right .rzc-video .box").css({
            'border-style': 'none',
            'padding': '0'
        });
    } else {
        $(".right .rzc-video .box").css({
            'border-style': 'solid',
            'padding': '4px'
        });
    }
};



RazsorLayoutJS.stocklistFinanceCalculator = function() {
	if (!$(".finance-calculator .box-calculator").hasClass("rzc-hidden")) {
	$(".finance-calculator").append('<div class="finance-calculator-show-hide"><span>Adjust finance options</span</div>')
	$(".finance-calculator .wrapper").hide();
	$(".finance-calculator-show-hide").live('click',function(){
	 	if($(".finance-calculator .wrapper").hasClass("down")){		
			$(".finance-calculator .wrapper").slideUp().removeClass("down");
			$(this).find("span").html("Adjust finance options");
			$(this).css("bottom","-20px");
		} else {
			$(".finance-calculator .wrapper").slideDown().addClass("down");
			$(this).find("span").html("Close finance options");
			$(this).css("bottom","-30px");
		}
	});
	}
	$(".rzc-stocklist .calculateFinance").click(function(){		
		$(this).val("Updating...");	
	});
};

//Carousel buttons fade in /out
RazsorLayoutJS.carouselFade = function() {
	$('.image .rzc-carousel .controls, .rzp-used-cars .rzc-carousel .controls, .homepage .left-content1 .rzc-carousel .controls').hide();
	$('.image .rzc-carousel, .rzp-used-cars .rzc-carousel').mouseenter(function(){
		$('.image .rzc-carousel .controls, .rzp-used-cars .rzc-carousel .controls').fadeIn();
	});
	$('.image .rzc-carousel, .rzp-used-cars .rzc-carousel').mouseleave(function(){
		$('.image .rzc-carousel .controls, .rzp-used-cars .rzc-carousel .controls').fadeOut();
	});
	$('.homepage .left-content1 .rzc-carousel .controls').hide();
	$('.homepage .left-content1 .rzc-carousel').mouseenter(function(){
		$('.homepage .left-content1 .rzc-carousel .controls').fadeIn();
	});
	$('.homepage .left-content1 .rzc-carousel').mouseleave(function(){
		$('.homepage .left-content1 .rzc-carousel .controls').fadeOut();
	});
	
};



RazsorLayoutJS.showStockCarousel = function() {
	if($('.rzc-stocklist-finance-video ul li a').is(":visible")){
		$('.rzp-used-cars .rzc-offers-carousel').hide();
	}
	else
		$('.rzp-used-cars .rzc-offers-carousel').show();
	
};

RazsorLayoutJS.showHideVideoOrImg = function() {
	if($('#videoComponent').is('.video')){
		$('.inner-contact-holder .rzc-dealer-image').hide();
		$('.inner-contact-holder #videoComponent').css('width','136px');
	}
	else
		$('.inner-contact-holder .rzc-dealer-image').show();
		$('.inner-contact-holder #videoComponent').css('width','0px');
	
};

RazsorLayoutJS.showHideSideText = function() {
	if($('#showcaseVehicleTitleComponent').is(':visible')){
		$('#showcaseVehicleTitleComponent').siblings().hide;
	}
	else
		$('#showcaseVehicleTitleComponent').siblings().show;
	
};

RazsorLayoutJS.cannedSearchAlt = function () {
	var tabContainers = $('div.tabs > div');
	tabContainers.hide().filter(':first').show();
	
	$('div.tabs ul.tabNavigation a').click(function () {
		tabContainers.hide();
		tabContainers.filter(this.hash).show();
		$('div.tabs ul.tabNavigation a').removeClass('selected');
		$(this).addClass('selected');
		return false;
	}).filter(':first').click();
};

$(document).ready(function () {
    RazsorLayoutJS.init();
});


