if ( typeof(window.mb)=="undefined"){ mb={}; }

/**
 * Owners
 */
mb.owners = new ( function($) 
		{
	var me = this;
	var ipad = (navigator.userAgent.match(/iPad/i)) ? true : false;

	mb.broadcaster.addListener( mb.events.INITED, function() { mb.owners.init(); });

	me.init = function(doc)
	{
		mb.logger.log("owners.init()");
		mb.broadcaster.addListener( mb.events.FRAGMENT_LOADED, function(d){mb.owners.onFragmentLoaded(d); });
		mb.broadcaster.addListener( mb.events.PAGE_LOADED, function(e,args){mb.owners.onPageLoaded(e);});
	}

	me.onPageLoaded = function( d )
	{
		mb.logger.info("owners.onPageLoaded("+typeof(d)+")");
	
		if (d.getProperty("subsection") == "owners_registration" )
		{
			//numeric field validation
			$("input#zip").numeric();
			$("#vehicleIdNumber").alphanumeric();
			$("#username").alphanumeric();			
			
			$.validator.addMethod('alpha', function (value) { 
				return /[A-Za-z]+$/.test(value); 
			}, 'Please enter valid characters.');

			$.validator.addMethod("properName", function(value, element) {
				return /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z])?[a-zA-Z]*)*$/.test(value);
			}
			, "Proper names only please");

				$.validator.addMethod('vin', function (value) { 
					return /[A-Za-z0-9]{17}$/.test(value); 
				}, 'Please enter a valid VIN.');

				$.validator.addMethod('zip', function (value) { 
					return /^([0-9]{5})(?:[-\s]*([0-9]{4}))?$/.test(value); 
				}, 'Please enter a valid zip code.');

				$.validator.addMethod('login', function (value) { 
					return /^[A-Za-z0-9]{6,12}$/.test(value); 
				}, 'Please enter a valid login.');

				$.validator.addMethod('matchPassword', function (value) { 
					var valid = true;
					if($("#password").val()!= $("#retypepassword").val())
					{
						valid = false;
					}
					return valid;
				}, 'Please make sure both password entries match.');

				$("#submit-reg").click(function(){
					$("#owners-registration-form").submit();
					return false;
				});

//				owners registration form validator 
				$("#owners-registration-form").validate({
					rules : {
					firstName :{
					required:true,
					properName:true
				},
				lastName :{
					required:true,
					properName:true
				},
				'address.street' : "required",
				'address.city' :{
					required:true,
					alpha:true
				},
				'address.state' : "required",
				'address.zip' :{
					required:true,
					zip:true
				},
				vehicleIdNumber :{
					required:true,
					vin:true
				},
				login :{
					required:true,
					login:true
				},
				password :{
					required:true,
					login:true
				},
				retypepassword : {
					required:true,
					matchPassword:true
				},
				email: {
					required: true,
					email: true
				}
				}
				,messages: {
					firstName: {
					required: "Please enter your first name.",
					properName: "Please enter a valid first name."
				},
				lastName: {
					required: "Please enter your last name.",
					properName: "Please enter a valid last name."
				},
				email: {
					required: "Please enter your email address.",
					email: "Please enter a valid email address."
				},
				'address.street': "Please enter your address.",
				'address.city': {
					required: "Please enter your city.",
					alpha: "Please enter a valid city."
				},
				'address.state': "Please select your state.",
				'address.zip': {
					required: "Please enter your zip.",
					zip: "Please enter a valid zip code."
				},
				vehicleIdNumber: "Please enter your VIN.",
				login: {
					required: "Please enter your username.",
					login: "Please enter a valid username."
				},
				password: {
					required: "Please enter your password.",
					login: "Please enter a valid password."
				},
				retypepassword: {
					required: "Please re-enter your password.",
					matchPassword: "Please make sure both password entries match."
				}
				}
				,errorPlacement: function(error, element) {
					if(error.size() > 0)
					{
						if(element.attr("name") == "login" || element.attr("name") == "password" || element.attr("name") == "retypepassword")
						{
							$("#account-error").addClass("error-messages");
							$("#account-error").append(error);
						}
						else
						{
							$("#error-container").addClass("error-messages");
							$("#error-container").append(error);					
						}

					}
				}
				});

		}
		else if (d.getProperty("subsection") == "welcome" )
		{			
			$("#owner-toolbox").css("top","71px");	
			//$("#ooname").css("text-transform", "capitalize");
			$('.save_comp').bind('click', function() {
			   var link = $(this).attr('href');
			   if (link.indexOf('&b=') > -1) {	
				   link = link.substring(0,link.indexOf('&b='));
			   }
			    link = link +"&b="+Math.random();
			    $(this).attr('href',link);
			 });

		}
//		owners Online Login/Intro Page
		else if (d.getProperty("subsection") == "owners_online" )
		{
			$("#login").alphanumeric();		
			$("#user").alphanumeric();		
			
			$("#welcome-background").show();
			if($("#userId").val() != '')
			{
				$("#form-login").hide();
				$("#form-forgot-password").show();
			}
			else
			{
				$("#form-forgot-password").hide();
				$("#form-login").show();
			}
//			var section = window.location.hash ? window.location.hash : '#welcome';
//			section = section.substr(1);
			mb.owners.loadSection("welcome");

			//$("#user").alphanumeric({allow:".,@'-_"});
			//$("#login").alphanumeric({allow:".,@'-_"});

			$.validator.addMethod('alphaNumeric', function (value) { 
				return /[A-Za-z0-9]+$/.test(value); 
			}, 'Please enter valid characters.');

			$.validator.addMethod('login', function (value) { 
				return /^[A-Za-z0-9]{6,12}$/.test(value); 
			}, 'Please enter a valid login.');
			
//			Login Form validator
			$("#form-login").validate({
				rules : {
				j_username : {required: true,login:true},
				j_password : {required: true,login:true}
			}  
			,messages: {
				j_username: {
					required: "Please enter Username.",
					login: "Please enter valid Username."
				},
				j_password: { 
					required: "Please enter Password."
				}
			}
			,groups: {
				username: "j_username j_password"
			}
			,errorPlacement: function(error, element) {
				if (element.attr("name") == "j_username" 
					|| element.attr("name") == "j_password" )
				{
					//error.insertBefore("#user");
					$("#form-login div.error").html(error);
				}
				else
				{
					error.insertAfter(element);
				}
			}
			});

//			forgot password validator
			$("#form-forgot-password").validate({
				rules : {
				login : {
				required:true,
				login:true,
				alphaNumeric:true
				}
			}
			,messages: {
				login: {
				required: "Please enter your Username.",
				login: "Please enter a valid username."
			}
			}
			,groups: {
				login: "login"
			}
			,errorPlacement: function(error, element) {
				error.insertBefore("#login");
			}
			});

//			Join owners validator
			$("#form-join-owners").validate({
				rules : {
				email: {
				required: true,
				email: true
			}
			}
			,messages: {
				email: {
				required: "Please enter a valid email address",
				email: "Please enter a valid email address"
			}

			}
			,groups: {
				email: "email"
			}
			,errorPlacement: function(error, element) {
				error.insertBefore("#email");
			}

			});

//			Click handlers
			$(".login-owners input").click(function() {
				if ($(this).attr("name") == "j_username" || $(this).attr("name") == "j_password" || $(this).attr("name") == "login")
				{
					if($(this).attr("value") == "UserName" || $(this).attr("value") == "username")
					{
						$(this).attr("value","");
					}
				}

			});

			$(".login-owners input#password").focus(function() {
				$(this).select();
			});
			$("#forgot-password").click(function() {
				$("#form-login").hide();
				$("#form-forgot-password").show();
				$("#userId").attr("value","");
				return false;
			});
			$("#back-to-login").click(function() {
				$("#form-login").show();
				$("#form-forgot-password").hide();
				return false;
			});
			$(".bottom-touts ul li").hover(
					function(event) {
						var link = $(event.target || event.srcElement);
						var linkId = link.attr("id")?link.attr("id"):link.parent().attr("id");
						if(!$(".bottom-touts ul li#"+linkId).hasClass("selected"))
						{
							$(".bottom-touts ul li#"+linkId).addClass("hover");
						}
					},
					function(event) {
						var link = $(event.target || event.srcElement);
						var linkId = link.attr("id")?link.attr("id"):link.parent().attr("id");
						$(".bottom-touts ul li#"+linkId).removeClass("hover");
					}
			);

			$(".bottom-touts ul li").click(function(event) {
				var link = $(event.target || event.srcElement);
				var linkId = link.attr("id")?link.attr("id"):link.parent().attr("id");
//				window.location.hash = linkId;
				mb.owners.loadSection(linkId);
				$(".bottom-touts ul li#"+linkId).removeClass("hover");
				$(".bottom-touts ul li#"+linkId).addClass("selected");
				clearTimeout(carouselAutoPlay);
				return false;
			});

			carousels = $(".bottom-touts ul li");
			mb.owners.carouselPlayNext();

		}

		if (d.getProperty("subsection") == "hotel_program" )
		{
			$('.hotel-body p a').addClass('carat');
			if($.cookie('OO_BENEFIT_KEY') != null)
			{				
				$.cookie('OO_BENEFIT_KEY', "", {path:"/"});
				$.cookie('OO_BENEFIT_KEY', null, {path:"/"});
			}
		}

		$('a#owners-videos').click(function() {
			if($.cookie('C_VID_CLASS_PATH') != null)
			{
				$.cookie('C_VID_CLASS_PATH', "", {path:"/mercedes/owners/videos/"});
				$.cookie('C_VID_CLASS_PATH', null, {path:"/mercedes/owners/videos/"});
			};
		});
			
		/****	START Owners Videos	****/
		if (d.getProperty("subsection") == "videos" )
		{
            
            if (mb.logger.level <= INFO) { mb.logger.info("section = " + d.getProperty("section") + " and subsection = " + d.getProperty("subsection"));}

            //Autoplay videos, bound custom event since order of JS has owners before video
            $('.video-click-shield').eq(0).bind(
                'click-shield-bound'
                , function(){
                    $(this).trigger('click');
                }
            );

			$('.back-referer').click(function() {
				var url = document.referrer;				
				 $(this).attr('href', url);				
			});
					
			if(typeof(mb.siteshare != "undefined"))
				mb.siteshare.setContent(mb.socialMedia);
			
			/** if($.cookie('embed') == "true"){
				$(".subnavigation li a").each(function() {
					if (! $(this).hasClass('active')) {
					    $(this).hide();
					}
				});
				$("#videos-bottom").hide();
			}*/ 
						
			if ($.url.segment('6') != null) {
				var vidId = ($.url.segment('6').split('videoId-')[1]);
				$('.vid-item').each(function(){
					if ($(this).attr('id') == vidId) {
						$(this).find('.vid-play').attr('class','vid-playing').css('background-position','0px -26px');
						$(this).find('a.vid-link img').css('cursor','default');
						$(this).find('a.vid-link').css('border','4px solid #5288c6');
						$(this).find('a.vid-link').addClass('video-playing');
						$(this).find('div.vid-item-title').addClass('selected');
						$(this).find('div.vid-item-duration').addClass('selected');
						$(this).find('a.vid-link').css('cursor','default').click(function(){
							return false
						});
					};
				});
				var currentUrl = window.location.href;
				if($.cookie('embed') == "true"){
					var backUrl = currentUrl.split('&videoId')[0];
				} else {
					var backUrl = currentUrl.split('/videoId')[0];
				}
				$('#link-back a').attr('href',backUrl);
			};
			
			/****	START Owners Videos - CAPTIONS	****/
			jQuery.each(jQuery.browser, function(i) {
				if($.browser.msie && $.browser.version <= 8){
					$('.vid-item').hover(
							function(e){
								$(this).find('.vid-pop-caption').show();
								$(this).find('.vid-play').css('background-position','0px -26px');
								$(this).find('a.vid-link').css('border','4px solid #5288c6');
							},
							function(){
								$(this).find('.vid-pop-caption').hide();
								$(this).find('.vid-play').css('background-position','0px 0px');
								if($(this).find('a.vid-link').hasClass('video-playing')==false)
									$(this).find('a.vid-link').css('border','4px solid #ffffff');
							});
				}else{
					$('.vid-item').hover(
							function(e){
								$(this).find('.vid-pop-caption').fadeIn();
								$(this).find('.vid-play').css('background-position','0px -26px');
								$(this).find('a.vid-link').css('border','4px solid #5288c6');
							},
							function(){
								$(this).find('.vid-pop-caption').fadeOut();
								$(this).find('.vid-play').css('background-position','0px 0px');
								if($(this).find('a.vid-link').hasClass('video-playing')==false)
									$(this).find('a.vid-link').css('border','4px solid #ffffff');
							});
				}
			});
			/****	END Owners Videos - CAPTIONS	****/
			$('#welcome').hover(
				function(){
					$(this).find('.vid-play-intro').css('background-position','0px -26px');
					$(this).find('.tout-thumbnail a').css('border','3px solid #99A1A9');
				},
				function(){
					$(this).find('.vid-play-intro').css('background-position','0px 0px');
					$(this).find('.tout-thumbnail a').css('border','3px solid #5C646D');
				});

			$('a.vid-link').each(function() {
				var currentUrl = window.location.href;
				
				var videoId = $(this).attr('href');
				vidId = ($.url.param('videoId'));
				if($.cookie('embed') == "true") {
					var currentUrlNoVideo = currentUrl.split('&videoId')[0];
					var newUrl = currentUrlNoVideo+'&videoId='+videoId;
				} else {
					var currentUrlNoVideo = currentUrl.split('/videoId')[0];
					var newUrl = currentUrlNoVideo+'/videoId-'+videoId;
				}
				$(this).attr('href','').attr('href',newUrl);
			});

			/****	START Owners Videos - select lists	****/
						me.populateClass();

			if ($.cookie('C_VID_CLASS_PATH') !=null) {
				classPath = $.cookie('C_VID_CLASS_PATH');
				modelPath = $.cookie('C_VID_MODEL_PATH');
				me.getModels();
				me.changeHrefModel();
				me.changeHrefClass();
			} 
			$('select#class').change(function() {
				$(this).css('background-color','#ffffff');
				classPath = $(this).val();
				me.getModels();
				me.changeHrefClass();
				if ($('select#class').val() == '') {
					$('select#model').find('option').remove().end().append('<option value="All">All</option>').val('');
					$('div.button a#find').attr('href','#');
				};
			});
			$('select#model').change(function() {
				modelPath = $(this).val();
				me.changeHrefModel();
			});

			$('select#year').change(function() {
				modelYear = $(this).val();
				me.populateClass();
				me.changeHrefYear();
			});

			/*Adjust Find button for IE7 & Chrome*/
			if(($.browser.msie && $.browser.version == '7.0')|| navigator.userAgent.toLowerCase().indexOf('chrome') > -1){
				if(($.browser.msie && $.browser.version == '7.0')){
					$('#videos-container #videos-search #search-form #search-fields div.button').css("bottom","-20px");
					$('#videos-container #videos-results-search #search-form #search-fields div.button').css("bottom","1px");
					$('#videos-container #videos-results-search #search-form #search-fields div.button').css("margin-left","12px");
				}
				if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1){
					$('#videos-container #videos-search #search-form #search-fields div.button').css("bottom","-24px");
					$('#videos-container #videos-results-search #search-form #search-fields div.button').css("bottom","-3px");
					$('#videos-container #videos-results-search #search-form #search-fields div.button').css("margin-left","12px");
				}
			}
			$('a#find').click(function() {
				if (window.classPath) {
					$.cookie('C_VID_CLASS_PATH',null);
					$.cookie('C_VID_CLASS_PATH',classPath, {path:'/mercedes/owners/videos/'});
				};
				if (window.modelPath) {
					$.cookie('C_VID_MODEL_PATH',null);
					$.cookie('C_VID_MODEL_PATH',modelPath, {path:'/mercedes/owners/videos/'});
				};
                var modelClass = $("select#class").attr("value");             
              	
                if(modelClass == "--Select--" || modelClass == "" || modelClass.length ==0)
                {
                	$('select#class').css('background-color','#ffefe5');
                	return false;
                }
				if ($(this).attr('href') == '#') {
					//$('select#class').css('background-color','#ffefe5');
					return false;
				};
			});

		}
		/****	END Owners Videos - select lists	****/
		
		/****   START Owners Mobile Applications    ****/
		else if (d.getProperty("subsection") == "mobile" ){
			var FADE_OUT_DELAY=600;
			var FADE_IN_DELAY=600;
			/*setup click on application type filter*/
			$('.mobile-header .type-filter.filter .type').click(function() {
			    if($(this).hasClass('selected')) {return;}
			    $('.app-not-found').fadeOut(0);
			    $('.mobile-header .type-filter.filter .type.selected').removeClass('selected');
			    $(this).addClass('selected');
			    mb.owners.toggleApplications(FADE_OUT_DELAY,FADE_IN_DELAY);
			});
			/*setup click on application group filter*/
			$('.mobile-header .group-filter.filter .group').click(function() {
			    if($(this).hasClass('selected')) {return;}
			    $('.app-not-found').fadeOut(0);
			    $('.mobile-header .group-filter.filter .group.selected').removeClass('selected');
			    $(this).addClass('selected');
			    mb.owners.toggleAppGroups(FADE_OUT_DELAY,FADE_IN_DELAY);
			});
			/*setup click on application*/
			$('.owners.mobile .mobile-content .mbfs-app').click(function() {
				var url=$(this).siblings('.application-url').attr('title');
				if(url.length>0)
					window.open(url,"_blank");
			});
			/*setup default filter*/
			var typeSelector='.mobile-header .type-filter.filter .type.' + $('.selected-type').val();
			$(typeSelector).click();
			var groupSelector='.mobile-header .group-filter.filter .group.' + $('.selected-group').val();
			$(groupSelector).click();
			mb.owners.toggleErrorPanel(FADE_OUT_DELAY,FADE_IN_DELAY);
		};
		/****   END Owners Mobile Applications    ****/
	};

	/****   START Owners Mobile Applications Functions   ****/
	me.toggleApplications = function(FADE_OUT_DELAY,FADE_IN_DELAY){
		if($('.mobile-header .type-filter.filter .type.selected').hasClass('all')){
			$('.mobile-content .applications .application-wrapper').removeClass('displayed').addClass('displayed').fadeIn(FADE_IN_DELAY);
			mb.owners.toggleErrorPanel(FADE_OUT_DELAY,FADE_IN_DELAY);
	    }
		else if($('.mobile-header .type-filter.filter .type.selected').hasClass('iphone')){
			$('.mobile-content .applications .application-wrapper:not(.iphone)').removeClass('displayed').fadeOut(FADE_OUT_DELAY);
			$('.mobile-content .applications .application-wrapper.iphone').addClass('displayed').fadeIn(FADE_IN_DELAY);
			mb.owners.toggleErrorPanel(FADE_OUT_DELAY,FADE_IN_DELAY);
	    }
		else if($('.mobile-header .type-filter.filter .type.selected').hasClass('ipad')){
			$('.mobile-content .applications .application-wrapper:not(.ipad)').removeClass('displayed').fadeOut(FADE_OUT_DELAY);
			$('.mobile-content .applications .application-wrapper.ipad').addClass('displayed').fadeIn(FADE_IN_DELAY);
			mb.owners.toggleErrorPanel(FADE_OUT_DELAY,FADE_IN_DELAY);
	    }
		else if($('.mobile-header .type-filter.filter .type.selected').hasClass('android')){
			$('.mobile-content .applications .application-wrapper:not(.android)').removeClass('displayed').fadeOut(FADE_OUT_DELAY);
			$('.mobile-content .applications .application-wrapper.android').addClass('displayed').fadeIn(FADE_IN_DELAY);
			mb.owners.toggleErrorPanel(FADE_OUT_DELAY,FADE_IN_DELAY);
	    }
		else if($('.mobile-header .type-filter.filter .type.selected').hasClass('blackberry')){
			$('.mobile-content .applications .application-wrapper:not(.blackberry)').removeClass('displayed').fadeOut(FADE_OUT_DELAY);
			$('.mobile-content .applications .application-wrapper.blackberry').addClass('displayed').fadeIn(FADE_IN_DELAY);
			mb.owners.toggleErrorPanel(FADE_OUT_DELAY,FADE_IN_DELAY);
	    }
	};
	
	me.toggleAppGroups = function(FADE_OUT_DELAY,FADE_IN_DELAY){
		if($('.mobile-header .group-filter.filter .group.selected').hasClass('all')){
			$('.mobile-content .applications .apps-group').removeClass('displayed').addClass('displayed').fadeIn(FADE_IN_DELAY);
			mb.owners.toggleErrorPanel(FADE_OUT_DELAY,FADE_IN_DELAY);
	    }
		else if($('.mobile-header .group-filter.filter .group.selected').hasClass('mobile')){
			$('.mobile-content .applications .apps-group:not(.mobile)').removeClass('displayed').fadeOut(FADE_OUT_DELAY);
			$('.mobile-content .applications .apps-group.mobile').addClass('displayed').fadeIn(FADE_IN_DELAY);
			mb.owners.toggleErrorPanel(FADE_OUT_DELAY,FADE_IN_DELAY);
	    }
		else if($('.mobile-header .group-filter.filter .group.selected').hasClass('owners')){
			$('.mobile-content .applications .apps-group:not(.owners)').removeClass('displayed').fadeOut(FADE_OUT_DELAY);
			$('.mobile-content .applications .apps-group.owners').addClass('displayed').fadeIn(FADE_IN_DELAY);
			mb.owners.toggleErrorPanel(FADE_OUT_DELAY,FADE_IN_DELAY);
	    }
	};
	
	me.toggleErrorPanel = function(FADE_OUT_DELAY,FADE_IN_DELAY){
		var panelsHidden=0;
		$('.mobile-content .applications .application-wrapper:not(.displayed)').fadeOut(0);
		if($('.mobile-content .applications .apps-group.owners.displayed').length>0 && $('.mobile-content .applications .apps-group.owners .application-wrapper.displayed').length>0){
			$('.mobile-content .applications .apps-group.owners').show();
		}
		else{
			$('.mobile-content .applications .apps-group.owners').hide();
			panelsHidden=1;
		}
		if($('.mobile-content .applications .apps-group.mobile.displayed').length>0 && $('.mobile-content .applications .apps-group.mobile .application-wrapper.displayed').length>0){
			$('.mobile-content .applications .apps-group.mobile').show();
		}
		else{
			$('.mobile-content .applications .apps-group.mobile').hide();
			panelsHidden=panelsHidden+2;
		}
		if(panelsHidden==3){
			$('.mobile-content .applications .apps-group.owners').hide();
			$('.mobile-content .applications .apps-group.mobile').hide();
			$('.app-not-found').fadeIn(FADE_IN_DELAY);
		}
		else{
			$('.app-not-found').fadeOut(0);
		}
	};
	/****   END Owners Mobile Applications Functions   ****/
	
	/****	START Owners Videos - functions	****/
	me.populateClass = function() {
		var selectedYear=$('.videos #subnav-wrapper #content select#year').val();
		var contextPath = $('.page-properties .pp-context-path').text();
		var jsonUrl = '/json/ownersVideosCategoryLookup?path=';
		var jsonClassPath = '/MB/' + selectedYear + '/Class';

		$.getJSON(contextPath+jsonUrl+jsonClassPath, function(data){
			mb.logger.info;
			mb.logger.info(data.Response.value['ns2:categoryPaths']);
			if (data.Response && data.Response.value ) {
				var searchNameKey = "ns4:categoryNames";
				var searchPathKey = "ns4:categoryPaths";
				$.each(data.Response.value, function(key, val){
					mb.logger.info(key); 
					if(key.indexOf('categoryNames')>=0)
					{
						searchNameKey = key;
						mb.logger.info('searchNameKey:' + searchNameKey); 
					}

					if(key.indexOf('categoryPaths')>=0)
					{
						searchPathKey = key;
						mb.logger.info('searchPathKey:' + searchPathKey); 
					}	
				});
				if( data.Response.value[searchNameKey] ){
					classNames = data.Response.value[searchNameKey];
					mb.logger.info("Classes-----------------"+classNames);
					classPaths = data.Response.value[searchPathKey];
					mb.logger.info("Paths-----------------"+classPaths);
					$('select#class').children().remove();
					$('select#class').append('<option value="">--Select--</option>');
					var selectedClass="";
					if ($.cookie('C_VID_CLASS_PATH') !=null) {
						selectedClass=$.cookie('C_VID_CLASS_PATH');
					}
		for(i = 0; i < classNames.length; i++){
			if (mb.logger.level <= DEBUG) { mb.logger.debug(classNames[i] + "||" + classPaths[i]); }
						if(selectedClass.length>0 && selectedClass==classPaths[i]){
							$('select#class').append('<option value="'+classPaths[i]+'" selected="selected">'+classNames[i]+'</option>');
						}
						else{
			$('select#class').append('<option value="'+classPaths[i]+'">'+classNames[i]+'</option>');
		}
					}
				}
			me.getModels();
		}
		});
	};

	me.getModels = function() {
		var contextPath = $('.page-properties .pp-context-path').text();
		var jsonUrl = '/json/ownersVideosCategoryLookup?path=';
		var jsonClassPath = $('select#class').val();
		var selectedYear='&year=' + $('.videos #subnav-wrapper #content select#year').val();
		$.getJSON(contextPath+jsonUrl+jsonClassPath+selectedYear, function(data){
			mb.logger.info;
			mb.logger.info(data.Response.value['ns2:categoryPaths']);
			if (data.Response && data.Response.value ) {
				var searchNameKey = "ns4:categoryNames";
				var searchPathKey = "ns4:categoryPaths";
				$.each(data.Response.value, function(key, value){
					mb.logger.info(key); 
					if(key.indexOf('categoryNames')>=0)
					{
						searchNameKey = key;
						mb.logger.info('searchNameKey:' + searchNameKey); 
					}
					if(key.indexOf('categoryPaths')>=0)
					{
						searchPathKey = key;
						mb.logger.info('searchPathKey:' + searchPathKey); 
					}	
				});
				if( data.Response.value[searchNameKey] )
				{
					modelNames = data.Response.value[searchNameKey];
					mb.logger.info("Models-----------------"+classNames);
					modelPaths = data.Response.value[searchPathKey];
					mb.logger.info("Paths-----------------"+classPaths);
					me.populateModel();
				}
			}
		});
	};

	me.populateModel = function() {
		var contextPath = $('.page-properties .pp-context-path').text();
		$('select#model').find('option').remove().end().append('<option value="All">All</option>').val('');
		if (modelNames instanceof Array == false) {
			$('select#model').append('<option value="'+modelPaths+'">'+modelNames+'</option>');
		} else {
			for(i = 0; i < modelNames.length; i++){
				if (mb.logger.level <= DEBUG) { mb.logger.debug(modelNames[i] + "||" + modelPaths[i]);}
				$('select#model').append('<option value="'+modelPaths[i]+'">'+modelNames[i]+'</option>');
			}
		}
		if ($.cookie('C_VID_MODEL_PATH') !=null) {
			$('select#model').val($.cookie('C_VID_MODEL_PATH'));
		}
	};

	me.changeHrefYear = function(){
		var contextPath = $('.page-properties .pp-context-path').text();
		var currentUrl = window.location.href;
		currentUrl = mb.global.parseCampaignQuery(currentUrl);
		var currentUrlNoHash = currentUrl.split('#')[0];
		var selectedYear=$('.videos #subnav-wrapper #content select#year').val();
		if($.cookie('embed') == "true") {
			var currentUrlNoQuery = currentUrlNoHash.split('&year')[0];
			var newUrl = currentUrlNoQuery+'&year='+ selectedYear +'&class='+classPath+'&model=All';
		} else {
			var currentUrlNoQuery = currentUrlNoHash.split('/year')[0];
			var newUrl = currentUrlNoQuery+'/year-'+ selectedYear +'/class-'+classPath+'/model-All';
		}
		$('div.button a#find').attr('href','').attr('href',newUrl);
	};
	
	me.changeHrefClass = function() {
		var contextPath = $('.page-properties .pp-context-path').text();
		var currentUrl = window.location.href;
		currentUrl = mb.global.parseCampaignQuery(currentUrl);
		var currentUrlNoHash = currentUrl.split('#')[0];
		var selectedYear=$('.videos #subnav-wrapper #content select#year').val();
		if($.cookie('embed') == "true") {
			var currentUrlNoQuery = currentUrlNoHash.split('&year')[0];
			var newUrl = currentUrlNoQuery+'&year='+ selectedYear +'&class='+classPath+'&model=All';
		} else {
			var currentUrlNoQuery = currentUrlNoHash.split('/year')[0];
			var newUrl = currentUrlNoQuery+'/year-'+ selectedYear +'/class-'+classPath+'/model-All';
		}
		$('div.button a#find').attr('href','').attr('href',newUrl);
	};
	me.changeHrefModel = function() {
		var contextPath = $('.page-properties .pp-context-path').text();
		var currentUrl = window.location.href;
		currentUrl = mb.global.parseCampaignQuery(currentUrl);
		var currentUrlNoHash = currentUrl.split('#')[0];
		var selectedYear=$('.videos #subnav-wrapper #content select#year').val();
		if($.cookie('embed') == "true") {
			var currentUrlNoQuery = currentUrlNoHash.split('&year')[0];
			var newUrl = currentUrlNoQuery+'&year='+ selectedYear +'&class='+classPath+'&model='+modelPath;
		} else {
			var currentUrlNoQuery = currentUrlNoHash.split('/year')[0];
			var newUrl = currentUrlNoQuery+'/year-'+ selectedYear +'/class-'+classPath+'/model-'+modelPath;
		}
		$('div.button a#find').attr('href','').attr('href',newUrl);
	};

	me.ownersVideoSetCookie = function() {
		$.cookie('C_VID_CLASS_PATH',classPath);
		$.cookie('C_VID_MODEL_PATH',modelPath);
	};
	/****	END Owners Videos - functions	****/



	var index = 0;
	var carousels,carouselAutoPlay;

	me.carouselPlayNext = function()
	{
		index = (index == $(carousels).size()) ? 0 : index;
		$(carousels).eq(index).click();
		index++;
		carouselAutoPlay = setTimeout("mb.owners.carouselPlayNext()", 5000);
	};

//	Loads Owners online section 
	me.loadSection = function(id)
	{
		if(id != null)
		{
			$('.owners-online-body').each(function(){
				var touts = $('.owners-online-content', this);
				var bgImages = $('.owners-online-background', this);
				touts.each(function(index,val){
					$(val).removeClass("on");
				});
				bgImages.each(function(index,val){
					$(val).hide();
				});

			}); 

			$('.bottom-touts ul li').each(function(){
				$(this).removeClass("selected");
			}); 

			$("#disclaimer").children().each(function(){
				$(this).hide();
			});

			$("#"+id+"-content").addClass("on");
			$("#"+id+"-background").show();
			$("#"+id+"-disclaimer").show();
		}

	};


	function stopEvent(e) {
		if(!e) var e = window.event;

		//e.cancelBubble is supported by IE - this will kill the bubbling process.
		e.cancelBubble = true;
		e.returnValue = false;

//		e.stopPropagation works only in Firefox.
		if (e.stopPropagation) {
			e.stopPropagation();
			e.preventDefault();
		}
		return false;
	}

	me.onFragmentLoaded = function( d ) 
	{

		mb.logger.info("owners.onFragmentLoaded : "+d.getProperty("subsection"));
		var node = d.getNode();
		var results = $(node);
//		mb.modal.show(results); 


		$("#close").click(function() {
			mb.modal.hide($(this).parents('.modal-container'));
			return false;
		});
		
		if(ipad)
		{
			if ($('video', $('.owners.videos')).length) {
				$('.owners.videos').find('video').get(0).controls = false;
				$('.owners.videos .modal-container .close-modal,.modal-shield').bind("click", function() {
					$('.owners.videos').find('video').get(0).controls = true;
				});
			}
		}

		if(d.getProperty("subsection") == 'save-comparison') {
			mb.global.wireSaveCompare();
		}

		if (d.getProperty("subsection") == "my_next_mb" )  
		{
			$("#my-next-mb").addClass("active");
		}
		if (d.getProperty("subsection") == "common_questions" )  
		{
			$("#link-content").hide();
			$(".owners-startip-controls").hide(); 

			removeHiglight();
			$("#common-questions").addClass("active");

//			Star tip click handler
			$(".common-questions-links a[id^='id-']").click(function(event){
				stopEvent(event);
				var starTipId = $(this).attr("id");
				var loadUrl =  "star_tip/"+starTipId;
				var data = $(this).serialize();
				mb.logger.info("load url:"+loadUrl);
				$.ajax({
					type: "GET"
						,url: loadUrl
						,data : data
						,success:function(response, textStatus){
					var responseHtml = $(response); 
					if(responseHtml.find("#owners-modal-body").length > 0){
						$("#link-content").html(responseHtml.find("#owners-modal-body").html());
						$("#link-content").show();
						$("#owners-modal-body").hide(); 
						$(".owners-startip-controls").show(); 
						$(".common-questions-links").hide();
						$("#print").attr("href","print_star_tip/"+starTipId);

					} else {
						mb.logger.info("could not find fragment data");
					}
					return false;
				}
				,error:function(XMLHttpRequest, textStatus, errorThrown){
					mb.logger.info("could not load fragment data");
				}
				});
				return false;
			});
		}//end if
		else if (d.getProperty("subsection") == "service_and_parts" )
		{
			removeHiglight();
			$("#service-and-parts").addClass("active");
		}
		else if (d.getProperty("subsection") == "exterior_care" )
		{
			var pageId = results.find("#pageId").attr("value");
			paginationActiveIndex = pageId - 1;
			mb.pagination.setup(results);
			results.find("#page-"+pageId).click();
		}
		else if (d.getProperty("subsection") == "add_vehicle" )
		{
			var form = $('form#command');

			$("#zip").numeric();
			$("#lastName").alphanumeric();
			$("#vin").alphanumeric();


			$('#cancel', form).click(function(){
				mb.modal.hide(node);
			});

			form.validate({
				onkeyup: false
				,rules : {
				zip: {
				digits: true,
				minlength: 5,
				maxlength: 5
			},
			lastName:{
				required:true
			},
			vin: {
				required:true
			}
			}
			,messages: {
				vin: {
				required: "Please enter your Vehicle Identification Number."
			}
			,lastName: {
				required: "Please enter your last name."
			}
			,zip: {
				required: "Please enter your zip code."
					,zip: "Please enter a 5-digit zip code."
			}
			}
			,errorPlacement: function(error, element) {
				error.appendTo('#form-errors');
			}
			,submitHandler: function(form) {
				me.addVehicle(form);
			}
			});
//			validation
//			This Vin Number does not match our records. Please re-enter the VIN number. If the problem persists please contact our customer Assistance Center at mailmaster@mbusa.com or 800-367-6372 for assistance.
		}

//		Start tip back button click handler
		$("#back").click(function() {
			$("#owners-modal-body").show();
			$(".common-questions-links").show();
			$(".owners-startip-controls").hide(); 
			$("#link-content").hide();
			return false;
		});

	};

	me.addVehicle = function(form){
		$.ajax({
			type: "POST",
			url: form.action,
			data: $(form).serialize(),
			dataType: "html",
			success: function(response){
				if($(response).find("#data-errors").html() != '')
				{
					$("#data-errors").html($(response).find("#data-errors").html());
					var x = $(response).find('.owned-vehicles');
					var z = $(response).find('#hero');
					if($("#data-errors").html().indexOf("errors") == -1)
					{
						$('.owned-vehicles').replaceWith(x);
						$('#hero').replaceWith(z);
						$('#cancel', form).click();
					}
				}
			}
		});
		return false;
	};

	function removeHiglight()
	{
		$("#owner-services li a").each(function(){
			$(this).removeClass("active");
		});
	}
	

		})(jQuery);

