﻿/** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 ************************************************************************************************
 *
 *	Copyright (c) 2009, Arno Dudek (http://www.adgrafik.at, office@adgrafik.at)
 *
 *	@copyright	Copyright (c) 2009, Arno Dudek
 *

 ************************************************************************************************
 ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */


MenuCreator.parseMenu = function(data, indent) {
	data = data === undefined ? this.navigation : data;
	indent = indent === undefined ? 0 : indent;

	document.write('<!-- MenuCreator : begin --><ul class="' + this.classMenu + '-' + indent + '">');

	var even = false;
	for (var x=0; x<data.length; x++) {
		var current = this.getCurrent(data[x]);
		var currentPrefix = (current && this.currentPrefix[indent] !== undefined) ? this.currentPrefix[indent] : '';
		var itemClass = Array(
			current ? this.classCurrent : '',
			even ? this.classEven : '',
			x === 0 ? this.classFirst : '',
			x === data.length - 1 ? this.classLast : ''
		);

		even = !even;

		document.write('<li' + (itemClass.length ? ' class="' + itemClass.join(' ').replace(/^\s+|\s+$/g,'').replace(/\s+/g,' ') + '"' : '') + '>');
		document.write(currentPrefix + '<a href="' + data[x].url + '">' + data[x].title + '</a>');

		if (data[x].items !== undefined && (this.expand === 'all' || this.expand === 'current' && current)) {
			this.parseMenu(data[x].items, indent + 1);
		}

		document.write('</li>');
	}

	document.write('</ul><!-- MenuCreator : end : (c) 2009, Arno Dudek, www.adgrafik.at -->');
}

MenuCreator.getCurrent = function(data) {
	var current = false;

	if (data.url != '' && data.url === window.location.pathname.substr(window.location.pathname.lastIndexOf('/') + 1)) {
		current = true;
	}
	else if (data.items !== undefined) {
		for (var x=0; x<data.items.length; x++) {
			current = this.getCurrent(data.items[x]);
			if (current) break;
		}
	}

	return current;
}

