var $j = jQuery.noConflict();

/* Cufon, only if landRoverDontCufon has not been set by CMS */
if (typeof(landRoverDontCufon) == 'undefined') {
    Cufon.replace('.foundry12, #tabTop li, , .foundry13, .foundry14, .foundry20, .foundry24, .foundry27, .foundry28, .foundry32', { hover: true });
    Cufon.CSS.ready(function () {
        $j(document).ready(function () {
            // Load ie css3 pie stuff, if cufon is removed this neds to go back within pageEnhance
            if ($j.browser.msie && $j.browser.version < 9) {
                $j(".featureBlock").each(function () {
                    PIE.attach(this);
                })
            }
        })
    })
};


/**
 * DOM Load
 */
$j(document).ready(function() {
	pageEnhance();
	if($j.browser.msie && $j.browser.version<=6) {
		DD_belatedPNG.fix('img,#wrapper1,#newVehicleFlyout a,#nav,#bodyWrapper,#tabTop,#tabTop li a,#progressNav, #progressNav .circle, #approvedUsedFinderSelector li li');
	}
	
});

/**
 * General "init" function for progressively enhancing the page on DOM load
 */
function pageEnhance() {

	newWindowLinks();
	clickable();
	fnCountdown();
	
	
	$j(".newVehicleFlyoutTrigger").click(function(){
		$j("#newVehicleFlyout").show();
		var h = $j("#newVehicleFlyout .inner").outerHeight();
		$j("#mainNav").addClass("flyoutActive");
		$j("#navMask").fadeTo(500,.75,function(){
			$j("#newVehicleFlyout").animate({height:h+"px"},700,"easeOutCirc")
		});	
        $j('html, body').animate({ scrollTop: 0 }, 'slow');	
		return false;
	});
	$j("#newVehicleFlyout .close").click(function(){
		$j("#mainNav").removeClass("flyoutActive");
		$j("#newVehicleFlyout").animate({height:"0"},700,"easeOutSine",function(){
			$j(this).hide();
			$j("#navMask").fadeOut()
		})
		return false;
	})
	$j("#navMask").click(function(){$j("#newVehicleFlyout .close").click() })
	prepareScroller($j("#homeVehicleSelector"),{itemWidth:282,itemsOnShow:1,maskWidth:282,maskHeight:189})
	$j(".rowOfBlocks").each(function(){
		$j(".featureBlock .fbLink",this).equalHeights();
	})
	$j(".siteMapCol").equalHeights();
	$j("#homeBody .left, #homeBody .right").equalHeights();
	

	
	$j("#homeVehicleSelector li").hover(function(){
		$j("span",this).stop().animate({top:"128px"},300, "easeInSine")
	}, function() {
		$j("span",this).stop().animate({top:"200px"},500, "easeOutBounce")
	})
	$j("#modalWrapper").html('<div id="modalTarget"></div><a href="#modalWrapper" class="close">Close</a>');
	$j("#modalWrapper .close").click(function(){
		$j("#modalWrapper").fadeOut(500,function(){
				$j("#modalMask").fadeOut();
				$j("#modalWrapper").removeAttr('class');
		});
		return false;
	})
	$j("#modalMask").click(function(){$j("#modalWrapper .close").click() })
	$j(".modal, .photoThumbs a, .videoThumbs a").live("click", function () {
	    var target = $j("#modalTarget");
	    var wrapper = $j("#modalWrapper");
	    if ($j(this).hasClass("youtube")) {
	        modalType = "youtube";

	    } else if ($j(this).hasClass("nativevideo")) {
	        modalType = "video";
	    } else if ($j(this).hasClass("360")) {
	        modalType = "c360";
	    }else if ($j(this).hasClass("evoque")) {
	        modalType = "evoqueOverlay";
	    } else {
	        modalType = "image";
	    }
	    wrapper.attr("class", modalType);
	    var targetURL = $j(this).attr("href");
	    $j("#modalMask").fadeTo(300, .75, function () {
	        target.empty().css({ height: "360px" }).addClass("loader");
	        wrapper.fadeIn();

	        // Do images
	        if (modalType == "image") {
	            l = new Image();
	            l.onload = function () {
	                target.removeClass("loader");
	                var html = $j('<img src="' + targetURL + '" alt="" />');
	                html.hide()
	                target.html(html);
	                h = html.height();
	                target.animate({ height: h + "px" }, 300, "linear", function () {
	                    html.fadeIn(300)
	                })
	            }
	            l.src = targetURL;
	        }

	        // 360 video
	        if (modalType == "c360") {
	            target.removeClass("loader");
	            target.animate({ height: "425px" }, 300, "linear", function () {
	                var flashvars = {};
	                var params = { wmode: "transparent" };
	                var attributes = { id: "modalflash" };
	                target.html('<div id="flashModalTarget" style="height:425px"></div>');
	                swfobject.embedSWF(targetURL, "flashModalTarget", "864", "425", "9.0.0", null, flashvars, params, attributes);
	            })
	        }

	        // Native video
	        if (modalType == "video") {
	            target.removeClass("loader");
	            target.animate({ height: "425px" }, 300, "linear", function () {
	                var flvUrl = targetURL;
	                var flowplayerPath = "/landRoverAssets/flowplayer/flowplayer.commercial-3.1.5.swf";
	                var flashvars = {};
	                flashvars.config = encodeURI('{"key":"#@275976f81d3e19f8834","clip":{"captionUrl":"","autoPlay":true,"autoBuffering":true,"scaling":"fit","url":"' + flvUrl + '"},"play":{"url":"/landRoverAssets/flowplayer/play.png","width":90,"height":90},"plugins":{"content":{"url":"/landRoverAssets/flowplayer/flowplayer.content-3.1.0.swf","width":"100pct","height":40,"bottom":26,"borderRadius":0,"border":0,"backgroundColor":"#000000","opacity":0.7,"style":{"body":{"textAlign":"center","fontSize":11,"fontFamily":"Arial"}},"display":"none"},"captions":{"url":"/landRoverAssets/flowplayer/flowplayer.captions-3.1.4.swf","captionTarget":"content","button":null},"controls":{"url":"/landRoverAssets/flowplayer/flowplayer.controls.swf","tooltips":{"play":"Play","pause":"Pause","mute":"Sound Off","unmute":"Sound On","fullscreen":"Show Fullscreen","fullscreenExit":"Show Normal Size","captions":"Subtitles On","captionsOff":"Subtitles Off","buttons":true},"zIndex":2}},"playerId":"main-content","playlist":[{"captionUrl":"","autoPlay":true,"autoBuffering":true,"scaling":"fit","url":"' + flvUrl + '"}]}');
	                var params = { wmode: "transparent", allowfullscreen: "true", bgcolor: "#000000", cachebusting: "false", quality: "high", allowscriptaccess: "always" };
	                var attributes = { id: "modalflash" };
	                target.html('<div id="flashModalTarget" style="height:425px"></div>');
	                swfobject.embedSWF(flowplayerPath, "flashModalTarget", "720", "425", "9.0.0", null, flashvars, params, attributes);
	            })
	        }

	        // YouTube video
	        if (modalType == "youtube") {
	            target.removeClass("loader");
	            target.animate({ height: "425px" }, 300, "linear", function () {
	                target.html('<div id="flashModalTarget" style="height:425px"></div>');
	                var params = { allowScriptAccess: "always", wmode: "transparent", allowFullScreen: 'true', scale: 'showall' };
	                var attributes = { id: "ytplayer" };
	                var stub = targetURL.split('http://www.youtube.com/v/')[1]; swfobject.embedSWF("http://www.youtube.com/v/" + stub + "?enablejsapi=1&version=3&autoplay=1", "flashModalTarget", "720", "425", "9.0.0", null, null, params, attributes);

	            })
	        }
	        
	        // evoque overlay
	        if (modalType == "evoqueOverlay") {
	        	if (swfobject.hasFlashPlayerVersion('9.0.0')){
	        		target.parent().addClass('hasFlash');
	        	}
	        	
	        	$j('a.close', target.parent()).click(function(){
	        		$j.cookie('evoqueOverlay','true',{ path: '/', expires : 1});
	        	});
	        	
	            target.removeClass("loader");
	            target.animate({ height: "580" }, 300, "linear", function () {
	            	
	            	var testDriveLink = 'https://lxiukforms.aplicor.net/testdrive.aspx?marketid=4&langid=2&campaignid=LLR2410IN_YR&sreferrer=LLR2410IN_YR&__utma=1.1524342046.1314716654.1314716654.1314716654.1&__utmb=1.2.10.1314720191&__utmc=1&__utmx=-&__utmz=1.1314716654.1.1.utmcsr=preview02.landrover.com|utmccn=(referral)|utmcmd=referral|utmcct=/gb/en/lr/defender-concept/dc100/&__utmv=-&__utmk=258578442';
	            	var brochureLink = $j('#topButtons a').eq(0).attr('href');
	            	
	            	var flashPath = "/landRoverAssets/flash/evoque/evoque_overlay.swf?v=010911";
	                target.html('<div id="flashModalTarget" style="height:425px"><ul><li id="testDrive"><a href="'+testDriveLink+'">Book a Test Drive</a></li><li id="brochureRequest"><a href="'+brochureLink+'">Brochure Request</a></li></ul></div>');
	                var params = { allowScriptAccess: "always", wmode: "window", allowFullScreen: 'false'};
	                var attributes = { id: "evoqueFlash" };
	                var flashvars = {
	                	configPath: '/landRoverAssets/flash/evoque/config.xml',
	                	swf : "/landRoverAssets/flash/evoque/evoque_animation.swf",
	                	testDrive : escape(testDriveLink),
	                	brochure : escape(brochureLink),
	                	closeJs : "javascript:closeOverlay()"
                	}
	               
	                swfobject.embedSWF(flashPath, "flashModalTarget", "750", "580", "10.0.0", null, flashvars, params, attributes);

	            })
	        }


	    });
	    return false;
	})
	$j('body').append('<div id="approvedTooltip"></div>');

	$j("#approvedUsedThumbs a").hover(
		function(e){	
			var content = $j(".tooltip",this).html()
			$j("#approvedTooltip").html(content).show()
		},
		function(){
			$j("#approvedTooltip").empty().hide()
		}
	).mousemove(function(e){
		var x = e.pageX - this.offsetLeft;
		var y = e.pageY - this.offsetTop;
		$j("#approvedTooltip").css({left:(x+10)+"px",top:(y+10)+"px"})
	})
	
	$j("tr:even", '.bodyText table').addClass("stripe");
	
	
	// Concertina
	$j(".concertina .item").each(function()
	{
        $j(this).children('.title').click(function()
		{
		    var oT = $j(this).parent();
		    
            if (oT.hasClass('open'))
                oT.removeClass('open').children('.content').slideUp(400);
            else
            {
                // find anything that's already open
                var oOpen = oT.siblings('.open');
                if (oOpen.length > 0)
                {
                    // if the one that's open is further up the page, scroll the page
                    if (oOpen.position().top < oT.position().top)
                        $j.scrollTo('-='+oOpen.children('.content').height()+'px', 400);
                        
                    // hide it
                    oOpen.children('.title').click();
                }
                oT.addClass('open').children('.content').slideDown(400);
            }            
		});
	}).eq(0).find('.title').click(); // open the first item
	
	// Tab group
	$j(".tabGroup").each(function () {
	    var group = this;
	    $j(".inPageTabs a", group).click(function () {
	        $j(".inPageTabs a", group).removeClass("selected")
	        $j(this).addClass("selected")
	        $j(".tabContent", group).hide();
	        id = $j(this).attr("href");
	        $j(id).show()
	        return false
	    })
	    $j(".inPageTabs a:eq(0)", group).click();
        // If a hash is in the url then go to that tab
	    if (window.location.hash) {
            $j(".inPageTabs a[href=" + window.location.hash + "]", group).click();
	    }
	})
	
	// AJL removed 09/09/11
	//evoqueOverlay();
}


/* Clickable blocks */
function clickable() {
    $j(".clickable:has(a):not(.disabled)").live("click", function () {
    	
        var link = $j("a", this).eq(0).attr("href");
        var target = $j("a", this).eq(0).attr("target");
        var rel = $j("a", this).eq(0).attr("rel");
        if (rel != null && rel == "external") target="_blank";
        if (target != null && target.length > 0) {
            window.open(link, target);
        }
        else {
            window.location = link;
        }
        return false;
    }).hover(function () {
        if (!$j(this).hasClass("disabled")) {
            $j(this).addClass("hover").css({ "cursor": "pointer" });
        }
    }, function () {
        $j(this).removeClass("hover").css({ "cursor": "default" });
    })
}



/**	
 * Target new windows
 */
function newWindowLinks(){
	$j('a[rel=external]').live("click",function(){
		window.open($j(this).attr('href'));
		return false;
	});
}

function prepareScroller(targetWrapperObj,settings) {
	
		var itemWidth 	= settings.itemWidth 	|| 500;
		var itemsOnShow = settings.itemsOnShow 	|| 5;
		var maskWidth 	= settings.maskWidth 	|| 500;
		var maskHeight	= settings.maskHeight 	|| 100;
		var page		= settings.page			|| 1; // intial "page"	 
	
		targetWrapperObj.each(function(){
			var list 		= $j(this).find("ul:first");
			var count 		= list.children("li").size();
		
			targetWrapperObj.addClass("scrollerActive");
			
			
			var scrollWidth = count * itemWidth;
			var increment 	= itemsOnShow * itemWidth;
			var currentX	= 0;
			var maxScroll 	= -(scrollWidth-increment);

		
			list.wrap('<div class="scrollerMask" style="width:'+maskWidth+'px;height:'+maskHeight+'px;overflow:hidden;position:relative;" />');
			list.css({width:scrollWidth+"px"})
			
			if(count>itemsOnShow) {
				var prevButton 	= $j('<span class="prevButton disabled">Prev</span>');
				var nextButton 	= $j('<span class="nextButton">Next</span>');
				prevButton.click(function(){
					list.stop(true,true);
					if((currentX+increment) >= 0)	{
						var scrollTo = 0;
						$j(this).addClass("disabled")
					} else {
						var scrollTo = currentX+increment;
					}				
					list.animate({left: scrollTo+"px"},1000,"easeOutCirc");
					currentX = scrollTo;
					nextButton.removeClass("disabled")
				})
				nextButton.click(function(){
					list.stop(true,true);		
					if((currentX-increment) <= maxScroll)	{
						var scrollTo = maxScroll;
						$j(this).addClass("disabled")
					} else {
						var scrollTo = currentX-increment;
					}							
					list.animate({left: scrollTo+"px"},1000,"easeOutCirc");
					currentX = scrollTo;
					prevButton.removeClass("disabled")
				})
				$j(this).prepend(nextButton).prepend(prevButton)
			}
			if(page>1) {
				for(i=2;i<=page;i++) {			
					nextButton.click()
				}
			}
		})
	
	
}

function fnCountdown(){
	
	if ($j('.countdown').length > 0) {
    var layout = '<span class="countDownLayout"> <span class="image{d10}">{d10}</span><span class="image{d1}">{d1}</span><span class="imageDay">Days </span><span class="image{h10}">{h10}</span><span class="image{h1}">{h1}</span><span class="imageHour">Hours</span><span class="image{m10}">{m10}</span><span class="image{m1}">{m1}</span><span class="imageMin">Mins</span><span class="image{s10} sec">{s10}</span><span class="image{s1} sec">{s1}</span><span class="imageSec sec">Sec</span></span>';
		
    var launch = new Date(2011, 9-1, 9);
		
		$j('.countdown').countdown({until: launch, compact: true,  layout: layout});
	}
}

function evoqueOverlay(){
  if($j.cookie){
    if($j.cookie('evoqueOverlay') == 'true'){
      return false;
    }else if($j('body.home').length){
      $j('<a class="modal evoque"/>').click();
    }
	}
}

function closeOverlay(){
	$j("#modalWrapper .close").click();
}


