if("undefined" == typeof($)) {
	function $(s) {
		
		var p = (arguments[1])? arguments[1] : document;
		var t = 'id';
		var 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('*');
			_r = new RegExp('(^|\\s)' + s + '(\\s|$)', 'i');
			for(i=0; i<_e.length; i++) {
				if(_e[i].className && _e[i].className.match(_r)) {
					_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;
		}
		// Tag
		
		// Name
		
		return false;
	}
}

var viewport_width;
var viewport_height;
var facebox_temp_object;
var isIE6 = false;
if(/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
	var ieversion=new Number(RegExp.$1);
	if(ieversion < 7) {
		isIE6 = true;
	}
}

function get_viewport_size() {
	if (typeof window.innerWidth != 'undefined') {
		viewport_width = window.innerWidth,
		viewport_height = window.innerHeight
	} else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {
		viewport_width = document.documentElement.clientWidth,
		viewport_height = document.documentElement.clientHeight
	} else {
		viewport_width = document.getElementsByTagName('body')[0].clientWidth,
		viewport_height = document.getElementsByTagName('body')[0].clientHeight
	}
}

// getPageScroll() by quirksmode.com
function getPageScroll() {
	var xScroll, yScroll;
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;	
	}
	return new Array(xScroll,yScroll) 
}

function populate_facebox(from, to) {
	while(from.firstChild) {
		to.appendChild(from.firstChild);
	}
	if(arguments[2]) {
		facebox_content_load(to.parentNode);
	} else {
		reposition_facebox();
	}
}

/* New Pop-Ups Using the "Facebox" Style */
function open_facebox() {

	facebox_overlay = $('facebox_overlay');
	if(!facebox_overlay) {
		facebox_overlay = document.createElement('div');
		facebox_overlay.setAttribute('id', 'facebox_overlay');
		facebox_overlay.setAttribute('class', 'facebox_overlayBG');
		facebox_overlay.setAttribute('className', 'facebox_overlayBG');
		document.body.appendChild(facebox_overlay);
	}

	facebox = $('facebox');
	if(!facebox) {
		facebox = document.createElement('div');
		facebox.setAttribute('id', 'facebox');
		document.body.appendChild(facebox);
		facebox.style.display = 'none';
	}
	sub_facebox = (location.href.match(/headers=false/))? true : false;
	max_width = (sub_facebox? 760 : 900);
	max_height = (sub_facebox? 500 : 600);
	
	// Get the Facebox Content
	if(arguments[0]) {
		facebox_content = arguments[0];
		
		mode = (arguments[3])? arguments[3] : 'detect';
		
		// For Loading in Forms
		if(typeof(facebox_content) == "object") {
			facebox_temp_object = facebox_content;
			window.setTimeout('populate_facebox(facebox_temp_object, $(\'facebox_dynamic_content\'), 1)', 750);
			facebox_content = '<div class="loading"><img src="/images/facebox/loading.gif" /></div><div style="display: none;"><div id="facebox_dynamic_content"></div></div>';
		}
		
		// Detect if it is an image, text, div id or URL
		else if(mode == 'id' || (mode == 'detect' && facebox_content.match(/^#((\w|\d|_|-)+)$/i))) {
			facebox_content = $(RegExp.$1).innerHTML;
		}
		
		// Image
		else if(mode == 'image' || (mode == 'detect' && facebox_content.match(/^(https?:\/\/|\/).+?\.(jpe?g|png|gif)/))) {
			max_width = (sub_facebox? 760 : 800);
			//max_height = (sub_facebox? 410 : 500);
			caption = (arguments[4])? '<span class="caption">' + arguments[4] + '</span>' : '';
			facebox_content = '<div class="loading"><img src="/images/facebox/loading.gif" /></div><div style="display: none;"><img src=\"'+ facebox_content +'\" alt=\"\" onload="facebox_content_load(this.parentNode, this, '+ max_width +', '+ max_height +')" style="margin: auto;" />'+ caption +'</div>';
		}
		// Text
		
		// iFrame
		else if(mode == 'iframe' || (mode == 'detect' && facebox_content.match(/(^https?:\/\/|^\/)/))) {
			// Get Width & Height
			iframe_width = (arguments[1])? arguments[1] : max_width;
			iframe_height = (arguments[2])? arguments[2] : max_height;
			facebox_content = '<div class="loading"><img src="/images/facebox/loading.gif" /></div><iframe src="'+ facebox_content +'" frameborder="0" width="'+ iframe_width +'" height="'+ iframe_height +'" onload="facebox_content_load(this)" style="display: none;" scrolling="auto"></iframe>';
		}
	} else {
		facebox_content = false;
	}
	
	if(facebox_content) {
		
		/* Fade In Background and FaceBox */
		
		set_opacity(facebox, 0.1);
		set_opacity(facebox_overlay, 0.05, true);
		facebox_overlay.style.display = 'block';
		
		o_timing = 40;
		facebox_opacity = 0.1;
		facebox_overlay_opacity = 0.05;
		while(facebox_opacity < 1) {
			facebox_opacity += 0.1;
			window.setTimeout('set_opacity($(\'facebox\'), '+ facebox_opacity +');', o_timing);
			facebox_overlay_opacity += 0.05;
			window.setTimeout('set_opacity($(\'facebox_overlay\'), '+ facebox_overlay_opacity +', true);', o_timing);
			o_timing += 50;
			o_timing += 150;
		}
		
		if("undefined" != typeof(facebox_close_image) && facebox_close_image) {
			close_img = facebox_close_image;
		} else {
			close_img = '/images/facebox/closelabel.gif';
		}
		
		facebox.innerHTML = "<div class=\"popup\">"+
			"<table>"+
			  "<tbody>"+
				"<tr>"+
				  "<td class=\"tl\"/><td class=\"b\"/><td class=\"tr\"/>"+
				"</tr>"+
				"<tr>"+
				  "<td class=\"b\"/>"+
				  "<td class=\"body\">"+
					"<div id=\"facebox_content\">"+
						facebox_content+
					"</div>"+
					"<div class=\"footer\">"+
					  "<a href=\"#\" class=\"close\" onclick=\"close_facebox(); return false;\">"+
						"<img src=\""+ close_img +"\" title=\"close\" class=\"close_image\" />"+
					  "</a>"+
					"</div>"+
				  "</td>"+
				  "<td class=\"b\"/>"+
				"</tr>"+
				"<tr>"+
				  "<td class=\"bl\"/><td class=\"b\"/><td class=\"br\"/>"+
				"</tr>"+
			  "</tbody>"+
			"</table>"+
		  "</div>"+
		"</div>";
		
		/* Position Facebox */
		get_viewport_size();
		facebox.style.top = getPageScroll()[1] + (viewport_height / 10) + 'px';
		//facebox.style.left = '385.5px';
		facebox.style.display = 'block';
		reposition_facebox(facebox);
	}
}

/* Used for Fancy Expanding on iFrame/Image Load Complete */
function facebox_content_load(obj) {
	facebox = $('facebox');
	facebox_width = facebox.offsetWidth;
	facebox_height = facebox.offsetHeight;
	
	if(arguments[1]) {
		if(arguments[2] && arguments[2] > 0) {
			arguments[1].style.maxWidth = arguments[2] + 'px';
		}
		if(arguments[3] && arguments[3] > 0) {
			arguments[1].style.maxHeight = arguments[3] + 'px';
		}
	}

	facebox_contents = $('facebox_content');
	facebox_contents_height = 0 - facebox_contents.offsetHeight;
	
	facebox.style.zIndex = '-100';
	obj.style.display = 'block';
	facebox_contents_width = facebox_contents.offsetWidth;
	facebox_contents_height += facebox_contents.offsetHeight;
	
	obj.style.display = 'none';
	facebox.style.zIndex = '99';

	w_timing = 70;
	while(facebox_width < facebox_contents_width) {
		facebox_width += 25;
		if(facebox_width > facebox_contents_width) {
			facebox_width = facebox_contents_width;
		}
		window.setTimeout('reposition_facebox('+ facebox_width +', 0);', w_timing);
		w_timing += 50;
	}
	h_timing = 100;
	while(facebox_height < facebox_contents_height) {
		facebox_height += 20;
		if(facebox_height > facebox_contents_height) {
			facebox_height = facebox_contents_height;
		}
		window.setTimeout('reposition_facebox(0, '+ facebox_height +');', h_timing);
		h_timing += 20;
	}
	
	timing = o_timing = (h_timing > w_timing)? h_timing : w_timing;
	obj.setAttribute('id', 'facebox_content_' + (new Date()).getTime());
	if(obj.nodeName.toLowerCase() != 'img' || 1) {
		window.setTimeout('$(\''+ obj.id + '\').previousSibling.style.display=\'none\'; $(\''+ obj.id + '\').style.display=\'block\';', timing);
	}
	facebox_opacity = 0.1;
	while(facebox_opacity < 1) {
		facebox_opacity += 0.1;
		window.setTimeout('set_opacity($(\'facebox_content\'), '+ facebox_opacity +');', o_timing);
		o_timing += 45;
	}
}

function reposition_facebox() {
	facebox = $('facebox');
	if(facebox) {
		sub_facebox = (location.href.match(/headers=false/))? true : false;
		facebox.style.top = (sub_facebox? 0 : getPageScroll()[1] + (viewport_height / 10)) + 'px';
		
		if(arguments[0] || arguments[1]) {
			if(arguments[0] && arguments[0] > 0) {
				facebox.getElementsByTagName('td').item(4).style.width = arguments[0] + 'px';
			}
			if(arguments[1] && arguments[1] > 0) {
				facebox.getElementsByTagName('td').item(4).style.height = arguments[1] + 'px';
				$('facebox_content').style.height = arguments[1] + 'px';
			}
		}
		//facebox.style.width = (facebox.getElementsByTagName('table').item(0).offsetWidth + 20) + 'px';
		new_left = 	(viewport_width / 2) - (facebox.getElementsByTagName('table').item(0).offsetWidth / 2) + 'px';
		if(facebox.style.left != new_left) {
			facebox.style.left = new_left
		}
	}
}

function set_opacity(obj, o) {
	if(isIE6 && !arguments[2]) {
		return;
	}
	if(o < 0) {
		o = 0;
	}
	if(o > 1) {
		o = 1;
	}
	obj.style.opacity = o;
	obj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity="+ Math.round(o * 100) +")";
}

function close_facebox() {
	facebox = $('facebox');
	facebox_overlay = $('facebox_overlay');
	if(facebox && facebox_overlay && facebox.style.display != 'none') {
		
		// Remove All ScrollBars
		if(facebox.getElementsByTagName('iframe').item(0)) {
			fb_iframe = facebox.getElementsByTagName('iframe').item(0);
			fb_iframe_doc = (fb_iframe.contentWindow || fb_iframe.contentDocument);
			fb_iframe_elem = fb_iframe_doc.document.getElementsByTagName('*');
			for(i=0; i<fb_iframe_elem.length; i++) {
				fb_iframe_elem.item(i).style.overflow = 'hidden';
			}
		}
		
		o_timing = 50;
		facebox_opacity = 1;
		facebox_overlay_opacity = 0.5;
		while(facebox_opacity > 0) {
			facebox_opacity -= 0.1;
			window.setTimeout('set_opacity($(\'facebox\'), '+ facebox_opacity +');', o_timing);
			facebox_overlay_opacity -= 0.05;
			window.setTimeout('set_opacity($(\'facebox_overlay\'), '+ facebox_overlay_opacity +', true);', o_timing);
			o_timing += 75;
		}
		window.setTimeout('$(\'facebox\').style.display = \'none\';', o_timing);
		window.setTimeout('$(\'facebox_overlay\').style.display = \'none\';', o_timing);
		
		if(facebox_temp_object) {
			window.setTimeout('populate_facebox($(\'facebox_dynamic_content\'), facebox_temp_object)', o_timing);
		}
		return true;
	} else {
		if(facebox) {
			facebox.style.display = 'none';
		}
		if(facebox_overlay) {
			facebox_overlay.style.display = 'none';
		}
	}
	return false;
}


window.onresize = function() {
	get_viewport_size();
	reposition_facebox();
}

document.onkeydown = function(e) {
	e = e || window.event;
	key_code = e.keyCode || e.which;
	if(key_code == 27) {
		if(!close_facebox()) {
			if(window != window.parent) {
				try {
					window.parent.close_facebox();
				} catch(err) {}
			}
		}
		return prevent_default(e);
	}
}

function prevent_default(e) {
	if(e && e.preventDefault)
		e.preventDefault();
	return false;
}

function prepare_forms() {
	element = (arguments[0])? arguments[0] : document;
	div = element.getElementsByTagName('div');
	for(i=0; i<div.length; i++) {
		if(div[i].className && div[i].className.match(/^form_(.+#.+?)$/i)) {
			form_data = (RegExp.$1).split('#');
			var form = document.createElement('form');
			form.method = form_data[0];
			form.action = form_data[1];
			if(form_data[2]) {
				form.target = form_data[2];
				
				// Dynamically Add iFrame
				
			}
			while(div[i].firstChild) {
				form.appendChild(div[i].firstChild);
			}
			div[i].parentNode.replaceChild(form, div[i]);
		}
	}
}

function open_facebox_form(id) {
	prepare_forms($(id));
	open_facebox($(id));
}

function write_iframe() {
	document.write('<iframe src="about:blank" name="form_submit" id="form_submit" style="display: none;"></iframe>');
}
