/*

	Series of methods that should have been classes together with objects created,
	but was done through programmatic functionality instead.  These scripts observe
	and provide the fuctionality for the left hand navigation panel, "Refresh Your Map"

*/


var promoPanes = null;
var promoTitles = null;

function observePromoMap() {
	
	
	
	
	observePromoManufacturer();
	observePromoManus();
	
	observePromoModel();
	observePromoModels();
	
	observePromoYear();
	observePromoYears();
	
	observePromoSystem();
	observePromoSystems();
	
	observePromoHovering();

	insertBreaks();


	promoTitles = $$('#promo-map-select dt');
	promoPanes = $$('#promo-map-select dd');
	
	[$('promo-manu-select'), $('promo-model-select'), $('promo-year-select')].invoke('addClassName', 'unselected');
	//$$('.notlisted').invoke('observe', 'click', function() {window.location="noproduct.html"});
	
	
	Event.observe('dealer-code', 'submit', function(e) {
	
		Event.stop(e);
		
		$('dealer-access-code').value = '';
	
	});
}

function hideAllBut(title) {

	promoPanes.without(title.next()).invoke('addClassName', 'hidden');
	promoTitles.without(title).invoke('removeClassName', 'on');
}



function insertBreaks() {
	var text;
	$$('#promo-map-select li').each(function(e) {
									   
									   //&#8203;
									   
									   
									   text = e.innerHTML;
									   
									   
									   
									   
									   });
	
}



function cleanListItem(listItem) {
	if (listItem.length > 25 ) {
	
		listItem = listItem.truncate(25);
	}
	return listItem;
}

function observePromoHovering() {

	$$('#promo-map-select li').each(function(e){
									Event.observe(e, 'mouseover', function(event){
																	Event.element(event).addClassName('hover');		   
															       });
							  });
	$$('#promo-map-select li').each(function(e){
									Event.observe(e, 'mouseout', function(event){
																	Event.element(event).removeClassName('hover');		   
															     });
							  });
}





///////// MANUFACTURERS ///////////////////////////////

function observePromoManufacturer() {
	if ($('MultipleSelectorCategory')){
		Event.observe('promo-manu-select', 'click', showPromoManus);
	}
}
function showPromoManus() {
	
	hideAllBut($('promo-manu-select'));
	
	if ( $('promo-manu-select').hasClassName('on') ) {
		$('promo-manu-select').next().addClassName('hidden');
		$('promo-manu-select').removeClassName('on')
	}
	
	else {
		$('promo-manu-select').next().removeClassName('hidden');
		$('promo-manu-select').addClassName('on')
	}
}
function observePromoManus() {
	if (!($('MultipleSelectorCategory'))){	return false;	}
	$$('.promo-manu li').invoke('observe', 'click', function (event){
														$('promo-manu-select').innerHTML = cleanListItem(Event.element(event).innerHTML);
														$('promo-model-select').innerHTML = 'Select your model';
														$('promo-year-select').innerHTML = '';
														$('promo-system-select').innerHTML = '';
														
														//$('promo-year-select').addClassName('hidden');
														[$('promo-model-select'), $('promo-year-select'), $('promo-system-select')].invoke('addClassName', 'unselected');

														pickPromoManu();
														  });
}
function pickPromoManu() {

	$$('.promo-manu')[0].addClassName('hidden');
	$('promo-manu-select').removeClassName('on');
	$('promo-manu-select').removeClassName('unselected');
	$('promo-model-select').removeClassName('hidden');
}

////////  MODELS  //////////////////////////////////

function observePromoModel() {
	Event.observe('promo-model-select', 'click', showPromoModels);
}
function showPromoModels() {
	hideAllBut($('promo-model-select'));

	if ( $('promo-model-select').hasClassName('on') ) {
		$('promo-model-select').next().addClassName('hidden');
		$('promo-model-select').removeClassName('on')
	}
	
	else {
		$('promo-model-select').next().removeClassName('hidden');
		$('promo-model-select').addClassName('on')
	}
}
function observePromoModels() {
	$$('.promo-model li').invoke('observe', 'click', function (event){
														$('promo-model-select').innerHTML = cleanListItem(Event.element(event).innerHTML);
														$('promo-year-select').innerHTML = 'Select your year';
														$('promo-year-select').innerHTML = $('year-value').innerHTML;
														
														
														$('promo-year-select').addClassName('unselected');

														pickPromoModel();
														  });
}
function pickPromoModel() {

	$$('.promo-model')[0].addClassName('hidden');
	$('promo-model-select').removeClassName('on');
	$('promo-model-select').removeClassName('unselected');
	$('promo-year-select').removeClassName('hidden');
}

///////// YEARS  /////////////////////////////////

function observePromoYear() {
	Event.observe('promo-year-select', 'click', showPromoYear);
}
function showPromoYear() {
	hideAllBut($('promo-year-select'));

	if ( $('promo-year-select').hasClassName('on') ) {
		$('promo-year-select').next().addClassName('hidden');
		$('promo-year-select').removeClassName('on');
	}
	
	else {
		$('promo-year-select').next().removeClassName('hidden');
		$('promo-year-select').addClassName('on');
	}
}
function observePromoYears() {
	$$('.promo-year li').invoke('observe', 'click', function (event){
        $('promo-system-select').innerHTML = $('system-value').innerHTML;														
														$('promo-year-select').innerHTML = cleanListItem(Event.element(event).innerHTML);
														
														pickPromoYear();  
														  });
}
function pickPromoYear() {
	
	//window.location = "./details.html"
	
	$$('.promo-year')[0].addClassName('hidden');
	$('promo-year-select').removeClassName('on');
	$('promo-year-select').removeClassName('unselected');
}


///////// SYSTEMS  /////////////////////////////////

function observePromoSystem() {
	Event.observe('promo-system-select', 'click', showPromoSystem);
}
function showPromoSystem() {
	hideAllBut($('promo-system-select'));

	if ( $('promo-system-select').hasClassName('on') ) {
		$('promo-system-select').next().addClassName('hidden');
		$('promo-system-select').removeClassName('on')
	}
	
	else {
		$('promo-system-select').next().removeClassName('hidden');
		$('promo-system-select').addClassName('on')
	}
}
function observePromoSystems() {
	$$('.promo-system li').invoke('observe', 'click', function (event){
														$('promo-system-select').innerHTML = cleanListItem(Event.element(event).innerHTML);
														pickPromoSystem();
														  });
}
function pickPromoSystem() {
	$('promo-system-select').removeClassName('on');
	$('promo-system-select').removeClassName('unselected');
	$$('.promo-system')[0].addClassName('hidden');

}
