function $(s) {
	p = (arguments[1])? arguments[1] : document;
	t = 'id';
	n = false;
	if(s.match(/^((#|\.)[^\s]+)\s(.+?)$/gi)) {
		return $(RegExp.$3, $(RegExp.$1, p));
	}
	if(s.match(/^\.(\w+)(\[(\d)\])?/)) {
		t = 'class';
		s = RegExp.$1;
		if(RegExp.$2 != "") {
			n = parseInt(RegExp.$3);
		}
	} else if(s.match(/^-(\w+)(\[(\d)\])?/)) {
		t = 'tag';
		s = RegExp.$1;
		if(RegExp.$2 != "") {
			n = parseInt(RegExp.$3);
		}
	} else {
		s = s.replace(/(#)/gi, '');
	}
	if(t == 'id') {
		if(p == document) {
			if(p.getElementById(s))
				return p.getElementById(s);
		} else {
			_e = p.getElementsByTagName('*');
			for(i=0; i<_e.length; i++) {
				if(_e[i].id && _e[i].id == s) {
					return _e[i];
				}
			}
		}
	} else if(t == 'class') {
		_elem = Array();
		_e = p.getElementsByTagName('*');
		for(i=0; i<_e.length; i++) {
			if(_e[i].className && _e[i].className == s) {
				_elem.push(_e[i]);
			}
		}
		if(n !== false) {
			return _elem[n];
		}
		return _elem;
	} else if(t == 'tag') {
		_elem = p.getElementsByTagName(s);
		if(n !== false) {
			return _elem[n];
		}
		return _elem;
	}
	return false;
}

function prepare_drop_downs() {
	nav_holder = $('navigation');
	nav_ul = nav_holder.getElementsByTagName('ul');
	for(u=0; u<nav_ul.length; u++) {
		if(nav_ul[u].className == 'level2') {
			nav_ul[u].parentNode.className += ' has_sub';
		}
	}
	
	if("undefined" == typeof(highlight_menu)) {
		highlight_menu = false;
	}
	
	current_url = location.href.replace(/^(http:\/\/([^\/]+))?\//, '');
	nav_a = nav_holder.getElementsByTagName('a');
	tab_count = 1;
	last_level1 = false;
	for(i=0; i<nav_a.length; i++) {
		if(nav_a[i].className.match(/(^|\s)level1($|\s)/i)) {
			last_level1 = nav_a[i];
			if(highlight_menu) {
				if(tab_count == highlight_menu) {
					nav_a[i].parentNode.className += ' selected';
				}
			} else if(nav_a[i].href) {
				nav_href = nav_a[i].href.replace(/^(http:\/\/([^\/]+))?\//, '');
				if(nav_href && nav_href == current_url) {
					nav_a[i].parentNode.className += ' selected';
				}
			}
			tab_count++;
		} else if(nav_a[i].className.match(/(^|\s)level2($|\s)/i)) {
			if(nav_a[i].href && last_level1) {
				nav_href = nav_a[i].href.replace(/^(http:\/\/([^\/]+))?\//, '');
				if(nav_href && nav_href == current_url) {
					last_level1.parentNode.className += ' selected';
				}
			}
			
			
		}
	}
	load_dropdown_menus();
}

function highlight_side_bar() {
	current_url = location.href.replace(/^(http:\/\/([^\/]+))?\//, '');
	side_bar_links = $('#side_bar .list[0] -a');
	for(i=0; i<side_bar_links.length; i++) {
		
		if(side_bar_links[i].href) {
			nav_href = side_bar_links[i].href.replace(/^(http:\/\/([^\/]+))?\//, '');
			if(nav_href && nav_href == current_url) {
				side_bar_links[i].parentNode.className += ' selected';
			}
		}
	}
}

function preload_menu() {
	preloaded_images = new Array();
	
	preloaded_images[0] = new Image();
	preloaded_images[0].src = '/images/selected_menu.png';
	
	preloaded_images[1] = new Image();
	preloaded_images[1].src = '/images/dropdown-top.png';
	
	preloaded_images[2] = new Image();
	preloaded_images[2].src = '/images/dropdown-header.png';
	
	preloaded_images[3] = new Image();
	preloaded_images[3].src = '/images/dropdown-bg.png';
	
	preloaded_images[4] = new Image();
	preloaded_images[4].src = '/images/dropdown-highlight.png';
	
	preloaded_images[5] = new Image();
	preloaded_images[5].src = '/images/dropdown-footer.png';
	
	preloaded_images[6] = new Image();
	preloaded_images[6].src = '/images/sub-dropdown-header.png';
	
	preloaded_images[7] = new Image();
	preloaded_images[7].src = '/images/sub-dropdown-bg.png';
	
	preloaded_images[8] = new Image();
	preloaded_images[8].src = '/images/sub-dropdown-footer.png';
}

function change_link_target() {
	var a = $('-a');
	for(i=0; i<a.length; i++) {
		if(a[i].href.match(/^https?:\/\/(.+?)(\/|$)/i)) {
			link_domain = RegExp.$1;
			if(link_domain != location.host && link_domain != "forum.topdeck.travel" && link_domain != "topdeckrecruit.com") {
				a[i].target = "_blank";
			}
		}
	}
	return;
}

/* Fire Sooner? */
window.onload = function() {
	prepare_drop_downs();
	highlight_side_bar();
	preload_menu();
	change_link_target();
}

var ref = false;
if(location.href.match(/#([^=]+?)$/i)) {
	ref = RegExp.$1;
	expires = new Date();
	expires.setDate(expires.getDate() + 30);
	document.cookie = 'ref=' + ref +'; expires='+ expires +'; path=/';
	location.hash = '';
} else if(document.cookie.match(/ref=(.+?)(;|$)/i)) {
	ref = RegExp.$1;
	expires = new Date();
	expires.setDate(expires.getDate() + 30);
	document.cookie = 'ref=' + ref +'; expires='+ expires +'; path=/';
}
