// JavaScript Document
var specid = ["features","technical","exterior","weight"];

document.getElementsByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
};

function collapseAll()
{
	inputs = document.getElementsByClassName ("click");
	for (i = 0; i < inputs.length; i++)
	{
		var img = inputs[i].getElement('img');
		if (!img) img=new Element("img").injectTop(inputs[i]);
		img.src = "/img/down_arrow.gif"
		inputs[i].slider.slideOut();
	}
}

function addTopButton(tb) {
	newdiv = document.createElement("div");
	newdiv.setAttribute("id", "backtotop");
	newul = document.createElement("ul");
	newul.setAttribute("id", "btop");
	newli = document.createElement("li");
	newli.setAttribute("id", "n-top");
	newa = document.createElement("a");
	newa.setAttribute("href", "#");
	
	newli.appendChild(newa);
	newul.appendChild(newli);
	newdiv.appendChild(newul);
	
	tb.appendChild(newdiv);
}

function loadAllSpec(model) {
			var completeLoad=0;
	$('loading').setText('Loading Specifications...');
	$('loading').removeClass('error');
	$('loading').setStyle('display','block');
	$('specsContainer').setStyle('display', 'none');

			for(var i=specid.length-1; i>=0; i--) {
				var id='d-'+specid[i];
				var div=$(id);
				if (!div) div=new Element('div').injectAfter($('loading'));
				else div.innerHTML='';
				div.id=id;
				div.addClass('spec');
				var aj=new Ajax("/spec/"+model+"/"+specid[i], {	method: 'get', update: div, onComplete: function(obj) {
					if (++completeLoad>=specid.length) {
						setupAllSpec();
				$('loading').setStyle('display','none');
				$('specsContainer').setStyle('display', 'block');

					}				
				}	}).request();	
			}	
		}

function navigateToSpec(clickedId) {
	var firstH2 = $E(clickedId + ' h2');
	if (firstH2 && firstH2.hasClass('closed')) {
		firstH2.fireEvent('click');
	}
}

		
function setupAllSpec() {
	$$('.spec h2').each(function(h2) {
		if ($E('h2.open')) { // if there is already an open section
			h2.className = 'closed';
		} else {
			h2.className = 'open';
		}
		var tb=h2.getNext();
		h2.slider=new Fx.Slide(tb.id, {duration: 500});
		var a=h2.getElement('span');
		if (!a) a=new Element("span").injectTop(h2);
		if (h2.hasClass('closed')) {
			h2.slider.hide();
		}
		h2.addEvent('click', function(event) {
			if (this.className == 'closed') {
				$$('h2.open').fireEvent('click');
			}
			this.slider.toggle();
			this.className = (this.className == 'closed' ? 'open' : 'closed');
		}.bind(h2));
	});
	new SmoothScroll();
	
	// when location.hash changes, behave as if the corresponding specNav link was clicked.
	var currHash;
	(function() {
		if (location.hash != currHash) {
			currHash = location.hash;
			navigateToSpec(location.hash);
		}
	}).periodical(100);
}

window.addEvent('domready', function(){
		var navari;
		$('mainContent').getElements('#variantNav').each(function(item) {
			if (item.id="variantNav") navari=item;
		});
		if (navari) {
			navari.getElements('a').each(function(item) {
				if (item.getParent().hasClass('active')) loadAllSpec(item.getParent().id);
				item.addEvent('click', function(event) {
					if (item.getParent().hasClass('active')) return;
					navari.getElements('a').each(function(i) { i.getParent().removeClass('active'); });
					item.getParent().addClass('active');
					loadAllSpec(item.getParent().id);
				}.bind(item));
			});
		} 
		
		$$('#specNav a').each(function(a) {
		a.addEvent('click', navigateToSpec.bind(null, a.href.substring(a.href.indexOf("#"))));
	});
		
		});