var left;
var theheader=null, theheadercols;
var HeaderTop=0;

function FixTheHeader() {
	if (theheader === null) {
		theheader = parent.nav.document.getElementById("theheader");
		theheadercols = theheader.getElementsByTagName("div");
		HeaderTop = GetTop(theheader);
	}
}

function GetTop(elem) {
var obj, curtop=0;

	obj = elem;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else {
		if (obj.y)
			curtop += obj.y;
	}
	return(curtop);
}

function GetLeft(elem) {
var obj, curleft=0;

	obj = elem;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else {
		if (obj.x)
			curleft += obj.x;
	}
	return(curleft);
}

function SwitchField(whichone) {
var found=0;

	obj = document.getElementsByName("Combobox");
	for (i=0; i<obj.length; i++) {
		if (obj[i].id == whichone) {
			obj[i].style.visibility = "visible";
			left.searchtext.value = obj[i].value;
			found = 1;
		}
		else {
			obj[i].style.visibility = "hidden";
		}
	}
	obj = document.getElementById("Textbox");
	if (found === 0) {
		obj.style.visibility = "visible";
		left.searchtext.value = obj.value;
	}
	else {
		obj.style.visibility= "hidden";
	}
}

function PopulateMenuFrame(whichcol,whichway) {
var theimg, ar, selectedText;
var img = /(.*)(<img )(.*)(gfx\/)(.*)(\.gif)(.*)(&nbsp;)(.*)/i;
var ord = /(<a .*)(onclick=)([^\ ]*)(.*)(order=)([^&]*)(&)([^>]*)(>)(.*)(<\/a>)/i;
var thetext = /(.*)(title=)([^>]*)(.*)(<\/a>)(.*)/i;
var way=new Array();

	way["asc"] = "desc";
	way["desc"] = "asc";
	ar = ord.exec(theheadercols[whichcol].innerHTML);
	ar[0] = '';
	ar[3] = "\"PopulateMenuFrame("+whichcol+",\'"+way[whichway]+"\')\"";
	ar[6] = way[whichway];
	theimg = img.exec(ar[10]);
	if (theimg === null) {
		ar[10] = '<img src="gfx/' + whichway + '.gif" width=13 height=13 border=0 alt="">&nbsp;' + ar[10];
	}
	else {
		theimg[0] = '';
		theimg[5] = whichway;
		ar[10] = theimg.join('');
	}
	theheadercols[whichcol].innerHTML = ar.join('');

	selectedText = ar[10];
	for (i=1; i<theheadercols.length; i++) {
		if (i != whichcol) {
			ar = thetext.exec(theheadercols[i].innerHTML);
			if (selectedText.substring(selectedText.indexOf('&')) != ar[4].substring(ar[4].indexOf('&'))) {
				theimg = img.exec(theheadercols[i].innerHTML);
				if (theimg !== null)
					theheadercols[i].innerHTML = theimg[1] + theimg[9];
			}
			else
				theheadercols[i].innerHTML = theheadercols[whichcol].innerHTML;
		}
	}
	return false;
}

function RemoveLoading() {
	FixTheHeader();
	parent.nav.document.getElementById("loading").style.display = "none";
	parent.document.getElementById("therows").rows = HeaderTop + theheader.offsetHeight + ",*";
// this ensures that the top frame won't scroll. the -4 is there to remove padding, i think, or margins
	parent.nav.document.body.style.height = HeaderTop - 4 + theheader.offsetHeight + "px";
}

function ResizeHeader() {
var i, thetablerows, thetablecols;

	FixTheHeader();
	RemoveLoading();

	thetablerows = parent.menu.document.getElementById("thetable").getElementsByTagName("tr");
	if (thetablerows.length > 2) {
		for (i=0; i<thetablerows.length; i++) {
			if (thetablerows[i].className == "o")
				break;
		}
		thetablecols = thetablerows[i].getElementsByTagName("td");
		for (i=thetablecols.length-1; i>=0; i--) {
			theheadercols[i].style.visibility = "visible";
			theheadercols[i].style.width = thetablecols[i].offsetWidth;
			theheadercols[i].style.top = HeaderTop;
			theheadercols[i].style.left = GetLeft(thetablecols[i]);
		}
	}
	else {
		for (i=0; i<theheadercols.length; i++) {
			if (i != 1)
				theheadercols[i].style.visibility = "hidden";
		}
	}
}

function InitPos(searchby) {
var curleft=0, curtop=0, i, obj;

	left = document.getElementById("left");
	obj = document.getElementById("Textbox");
	curtop = GetTop(obj);
	curleft = GetLeft(obj);
	obj = document.getElementsByName("Combobox");
	for (i=0; i<obj.length; i++) {
		obj[i].style.left = curleft;
		obj[i].style.top = curtop;
	}
	SwitchField(searchby);
	FixTheHeader();
	for (i=0; i<theheadercols.length; i++) {
		theheadercols[i].style.top = HeaderTop;
	}
}

function SetVal(val) {
	left.searchtext.value = val;
	return(true);
}

function ClearSearch(searchtext) {
	left.Textbox.value='';
	left.searchtext.value='';
	left.searchby.selectedIndex = 0;
	SwitchField('');
	if ('searchtext' !== '')
		left.submit();
}

function OnRes() {
	if (screen.width <= 800)
		top.setcookie('widthle800', GetWidth(), 10*365);
	else
		top.setcookie('widthgt800', GetWidth(), 10*365);
	return true;
}

function GetWidth() {
	if (self.innerWidth)
		frameWidth = self.innerWidth;
	else if (document.documentElement && document.documentElement.clientWidth)
		frameWidth = document.documentElement.clientWidth;
	else if (document.body)
		frameWidth = document.body.clientWidth;
	return(frameWidth);
}

function DebugFn(origval) {
//debugger
	ret = prompt("Left Pane Width="+GetWidth()+"px. Enter new TitlesPerPage value ('default' or a number):", origval);
	if (ret === null)
		return;
	if (ret == 'default') {
		top.setcookie('titlesperpage', top.getcookie('titlesperpage'), -1);
		top.location.reload();
		return;
	}
	if (ret == 'debugskin' || ret == 'IsPrivate') {
		if (top.getcookie(ret) === "")
			top.setcookie(ret, 'true', 10*365);
		else
			top.setcookie(ret, top.getcookie(ret), -1);
		top.location.reload();
		return;
	}
	ttp = parseInt(ret, 10);
	if (isNaN(ttp) || ttp < 0)
		ttp = origval;
	if (ttp != origval) {
		top.setcookie('titlesperpage', ttp, 10*365);
		top.location.reload();
	}
}

