$(document).ready(function() {
	$(window).resize(function() {
		scaleContent();
	});
	scaleContent();
	initSitemap();
	initBoxes();
	initCollapser();
	initSearch();
});

function scaleContent() {
	var ct = $('#content>div');
	var dh =$(window).height() - ct.offset().top - 90;
	ct.css('min-height', dh + 'px');
}

var map_iv = 0;

function initSitemap() {
	var map = $('#sitemap');
	var ct = $('#sitemap_ctframe');
	ct.show();
	var cth = ct.height();
	var a = $('#sitemap a.sitemap');
	a.click(function() {
		if (map.hasClass('expanded')) {
			ct.animate({
				height:		'0px'
			}, 250);
			map.removeClass('expanded');
		} else {
			ct.animate({
				height:		cth + 'px'
			}, {
				step:		function() {
					$('html').scrollTop($('html').attr('scrollHeight') + 100);
				},
				complete:	function() {
					$('html').scrollTop($('html').attr('scrollHeight') + 100);
				},
				duration:	250
			});
			map.addClass('expanded');
		}
	});
	var ct1 = $('#sitemap div.sitemap_bar1');
	var ct2 = $('#sitemap div.sitemap_bar2');

	map.mouseover(function() {
		mapOver(ct1, ct2);
	});

	map.mouseout(function() {
		mapOut(ct1, ct2);
	});

	ct1.mouseover(function() {
		mapOver(ct1, ct2);
	});

	ct2.mouseover(function() {
		mapOver(ct1, ct2);
	});

	var maxh = 0;

	var ul = $('#sitemap_ct').children('ul').children('li').children('ul');
	ul.each(function() {
		var u = $(this);
		maxh = Math.max(maxh, u.height());
	});
	ul.css('height', (maxh + 30) + 'px');
	ul.closest('ul').css('min-height', maxh + 'px');
	cth = ct.height();
	ct.css('height', '0px');

}

function mapOver(ct1, ct2) {
	clearTimeout(map_iv);
	ct1.fadeOut(200);
	ct2.fadeIn(200);
}

function mapOut(ct1, ct2) {
	clearTimeout(map_iv);
	map_iv = setTimeout(function() {
		ct1.fadeIn(200);
		ct2.fadeOut(200);
	}, 50);
}

function initBoxes() {
	$('table.sfc_nicebox, table.sfc_nicebox_link').each(function() {
		var tbl = $(this);
		tbl.find('tr').first().children('td').each(function() {
			var td = $(this);
			td.wrapInner('<div class="sym info"></div>');
		});
	});
	$('table.sfc_greybox').each(function() {
		var tbl = $(this);
		tbl.find('tr').first().children('td').each(function() {
			var td = $(this);
			td.wrapInner('<div class="sym downloads"></div>');
		});
	});
	$('table.sfc_bluebox').each(function() {
		var tbl = $(this);
		tbl.find('tr').first().children('td').each(function() {
			var td = $(this);
			td.wrapInner('<div class="sym links"></div>');
		});
	});
}

function initCollapser() {

	// content exponder:

	$('.sfc_expand').each(function() {
		var element = $(this);
		var expander = element.prev('h3');
		if (!expander.size()) {
			element.before('h3 class="expander"></h3>');
			expander = element.prev('h3.expander');
		} else {
			expander.addClass('expander');
		}
		expander.addClass('collapsed');
		element.wrap('<div class="collapser"></div>');
		var frame = element.parent('.collapser');
		frame.addClass('collapsed').hide();
		expander.click(function() {
			if (frame.hasClass('collapsed')) {
				frame.slideDown(300).removeClass('collapsed');
				expander.removeClass('collapsed');
			} else {
				frame.slideUp(300).addClass('collapsed');
				expander.addClass('collapsed');
			}
		});
	});

	// text expander

	$('.sfc_expand_p').each(function() {
		var element = $(this);
		var ct = element.html();
		var parts = ct.split(/\<br([ \/]*)\>\<br([ \/]*)\>/);
		if (parts.length > 1) {
			var teaser = parts[0];
			parts.splice(0, 1);
			var oparts = new Array();
			for (var i in parts) {
				if (parts[i]) oparts.push(parts[i]);
			}
			var content = oparts.join('<br /><br />');
			element.html(teaser + '<div class="te_collapser">' + content + '</div><a class="te_expander">&nbsp;</a>');
			var expander = element.find('a.te_expander');
			var container = element.find('div.te_collapser');
			expander.addClass('collapsed');
			container.addClass('collapsed').hide();
			expander.click(function() {
				if (container.hasClass('collapsed')) {
					container.slideDown(200).removeClass('collapsed');
					expander.removeClass('collapsed');
				} else {
					container.slideUp(200).addClass('collapsed');
					expander.addClass('collapsed');
				}
			});
		}
	});

}

function initSearch() {
	var frm = $('#search');
	var tlinks = $('#toplinks');
	$('#but_search').click(function() {
		frm.fadeIn(200, function() {
			frm.find('input').first().focus();
		});
		tlinks.fadeOut(200);
		return false;
	});
	$('body').mouseup(function() {
		frm.fadeOut(200);
		tlinks.fadeIn(200);
	});
	frm.mouseup(function() {
		return false;
	});
}
