/*

This script is based on scripts from the following sites:

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Original script at: http://elouai.com/scripts.php -->

*/
var ie = document.all;
var ns6 = document.getElementById && !document.all;
var isDiv = false;
var selectedDiv = null;
var overpopupdiv = false;
var tableRight = -1;
var insertExpanded, saveExpanded, masterExpanded = false;
var frameWidth = -1, frameHeight = -1;
var startTime = null;
var widthCushion = ie ? 30 : 20;
var heightCushion = 10;
var cushion = 0;
function hidePopUp(e)
{
	var obj = ns6 ? e.target.parentNode : event.srcElement.parentElement;
	if (isDiv)
	{
		if (overpopupdiv == false)
		{
			isDiv = false;
			overpopupdiv = false;
			selectedDiv.style.display = "none";
			if (selectedDiv.id == masterDivID)
			{
				window.onscroll = "";
				document.getElementById(masterFrameID).src = "";
				if (masterExpanded)
					selectedDiv.getElementsByTagName("input")[1].click();
			}
			selectedDiv = null;
			return true;
		}
		return true;
	}
	return true;
}
function findPos(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent)
	{
		do
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
		while (obj = obj.offsetParent);
	}
	return [curleft, curtop];
}
function popUpMouseOver(item)
{
	item.className = "popup popupHover";
}
function popUpMouseOut(item)
{
	item.className = "popup";
}
function overPopUp(over)
{
	overpopupdiv = over;
}
function showPopUpMenu(e, href)
{
	menu = document.getElementById(menuDivID);
	selectedDiv = menu;
	var left = e.clientX + document.body.scrollLeft;
	var top = e.clientY + document.body.scrollTop;
	if (ns6)
	{
		menu.style.left = left;
		menu.style.top = top;
	}
	else
	{
		menu.style.pixelLeft = left;
		menu.style.pixelTop = top;
	}
	menu.style.display = "";
	var width = menu.offsetWidth;
	var height = menu.offsetHeight;
	var documentWidth = ie ? document.body.offsetWidth: window.innerWidth;
	var documentHeight = ie ? document.body.offsetHeight: window.innerHeight;
	cushion = widthCushion;
	if (documentWidth - left < width + cushion)
	{
		left = documentWidth - width - cushion;
		if (ns6)
			menu.style.left = left;
		else
			menu.style.pixelLeft = left;
	}
	cushion = heightCushion;
	if (documentHeight - top < height + cushion)
	{
		top = documentHeight - height - cushion;
		if (ns6)
			menu.style.top = top;
		else
			menu.style.pixelTop = top;
	}
	var pgStr = "?pg=";
	var pg = 1;
	if (href.indexOf(pgStr) >= 0)
		pg = href.substring(href.indexOf(pgStr) + pgStr.length, href.length);
	document.getElementById(curOptionID).value = pg;
	var items = [doInsertID, deletePageID, movePageUpID, movePageDownID, doSaveID];
	if (pg == INDEX)
		for (i = 0; i < items.length; i++)
			disableMenuButton(document.getElementById(items[i]));
	else if (pg >= PHOTO_START && pg <= PHOTO_START + PHOTO_COUNT)
	{
		disableMenuButton(document.getElementById(items[0]));
		disableMenuButton(document.getElementById(items[1]));
		enableMenuButton(document.getElementById(items[2]));
		enableMenuButton(document.getElementById(items[3]));
		enableMenuButton(document.getElementById(items[4]));
	}
	else if (pg == CONTACT)
	{
		enableMenuButton(document.getElementById(items[0]));
		for (i = 1; i < items.length; i++)
			disableMenuButton(document.getElementById(items[i]));
	}
	else
	{
		for (i = 0; i < items.length; i++)
			enableMenuButton(document.getElementById(items[i]));
	}
	if (pg == 2 || pg == PHOTO_START + PHOTO_COUNT + 1 || pg == PHOTO_START)
		disableMenuButton(document.getElementById(items[2]));
	if (pg == CONTACT - 1 || pg == PHOTO_START - 1 || pg == PHOTO_START + PHOTO_COUNT)
		disableMenuButton(document.getElementById(items[3]));
	if (pg == PHOTO_START)
		enableMenuButton(document.getElementById(items[0]));
	tableRight = -1;
	cushion = widthCushion;
	document.getElementById(newNameID).value = "";
	document.getElementById(changeNameID).value = "";
	toggleInsert(false, true);
	toggleSave(false, true);
	isDiv = true;
	return false;
}
function showHTMLPreview(e)
{
	preview = document.getElementById(previewDivID);
	selectedDiv = preview;
	if (ns6)
		preview.style.top = document.body.scrollTop;
	else
		preview.style.pixelTop = document.body.scrollTop;
	preview.style.display = "";
	var HTML;
	if (document.all)
		HTML = document.getElementById(pageHTMLID).innerText;
	else
		HTML = document.getElementById(pageHTMLID).value;
	i = 0;
	pic = document.getElementById('pic' + i);
	while (pic)
	{
		HTML = HTML.replace(new RegExp(pic.value.substring(0, pic.value.indexOf("?")), "g"), document.getElementById('tempDir').value + '/' + pic.value);
		i++;
		pic = document.getElementById('pic' + i);
	}
	i = 0;
	doc = document.getElementById('doc' + i);
	while (doc)
	{
		HTML = HTML.replace(new RegExp('/' + doc.value.substring(0, doc.value.indexOf("?")), "g"), '/' + document.getElementById('tempDir').value + '/' + doc.value.substring(0, doc.value.indexOf("?")));
		i++;
		doc = document.getElementById('doc' + i);
	}
	document.getElementById(previewDivID).style.height = "";
	document.getElementById(previewSpanID).innerHTML = HTML;
	isDiv = true;
	var height = 500;
	var date = new Date;
	startTime = date.getSeconds();
	setDivHeight(previewDivID, height);
	setTimeout("waitForImageLoad('" + previewDivID + "', " + height + ", new Date)", 0);
	return false;
}
function showMasterPage(pg)
{
	document.getElementById(menuDivID).style.display = "none";
	master = document.getElementById(masterDivID);
	selectedDiv = master;
	if (ns6)
		master.style.top = document.body.scrollTop;
	else
		master.style.pixelTop = document.body.scrollTop;
	master.style.display = "";
	if (frameWidth == -1 && frameHeight == -1)
	{
		var frame = document.getElementById(masterFrameID);
		var dims = getWidthHeight();
		var percent = 0.9;
		var width = Math.floor(dims[0] * percent);
		var height = Math.floor(dims[1] * percent);
		frameWidth = width < frame.offsetWidth ? width : frame.offsetWidth;
		frameHeight = height < frame.offsetHeight ? height : frame.offsetHeight;
		frame.style.width = frameWidth + "px";
		frame.style.height = frameHeight + "px";
	}
	window.onscroll = fixMaster;
	document.getElementById(masterFrameID).src = "master.php" + (pg != INDEX ? "?pg=" + pg : "");
}
function waitForImageLoad(id, height, time)
{
	div = document.getElementById(id);
	if (div.offsetHeight > height)
			setDivHeight(div, height);
	else if (time.getSeconds() < startTime + 10 && selectedDiv != null)
		setTimeout("waitForImageLoad('" + id + "', " + height + ", new Date)", 0);
}
function setDivHeight(div, height)
{
	if (div.offsetHeight > height)
		div.style.height = height + "px";
}
function disableMenuButton(item)
{
	item.onclick = new Function("return false;");
	item.className = "font popup popupDisabled";
}
function enableMenuButton(item)
{
	if (item.id == deletePageID)
		item.onclick = new Function("return confirmDelete();");
	else
		item.onclick = new Function();
	item.className = "font popup";
}
function fillTextArea()
{
	if (curI != -1)
	{
		document.getElementById(mediumID).value = pics[curI][2];
		document.getElementById(styleTypeID).value = pics[curI][3];
		text = document.getElementById(textID);
		if (document.all)
			text.innerText = text.innerText.replace(new RegExp(';', 'g'), String.fromCharCode(13) + String.fromCharCode(10));
		else
		{
			text.textContent = text.textContent.replace(new RegExp(';', 'g'), String.fromCharCode(13) + String.fromCharCode(10));
			text.value = text.textContent;
		}
	}
}
function checkChkBx()
{
	if (curI != -1)
	{
		document.getElementById(featureID).checked = featured[curI];
		document.getElementById("Sold").checked = false;
	}
}
function markAsSold(chkbx)
{
	var field = document.getElementById(textID);
	var text = document.all ? field.innerText : field.value;
	if (chkbx.checked && text.indexOf("$") >= 0)
	{
		price = text.substr(text.indexOf("$"));
		price = price.split("\n");
		price = price[0].split("\r");
		if (document.all)
			field.innerText = field.innerText.replace(price[0], "SOLD");
		else
			field.textContent = field.value.replace(price[0], "SOLD");
	}
}
function doKeyPress(obj, e)
{
	var key = e.keyCode;
	if (key == 13)
		doSubmit(obj);
}
function confirmDelete()
{
	var confirm = doConfirm("Are you sure you want to delete this page?");
	if (!confirm)
		return false;
	else
		return true;
}
function doSubmit(obj)
{
	var error = "";
	if (obj.id == insertNameID)
	{
		if (document.getElementById(newNameID).value == "")
			error = "You must enter a name of a page to insert.";
		else
			document.getElementById(menuFrmID).action = "login.php?pg=" + document.getElementById(curOptionID).value;
	}
	if (obj.id == saveNameID && document.getElementById(changeNameID).value == "")
		error = "You must enter a name to change the page to.";
	if (error != "")
	{
		alert(error);
		return false;
	}
	if (obj.id != masterPageID)
	{
		document.getElementById(submitValueID).value = obj.id;
		document.getElementById(menuFrmID).submit();
	}
	else
		showMasterPage(document.getElementById(curOptionID).value);
}
function setInsertToggle()
{
	saveExpanded = false;
	if (insertExpanded)
		return false;
	else
		return true;
}
function setSaveToggle()
{
	insertExpanded = false;
	if (saveExpanded)
		return false;
	else
		return true;
}
function toggleInsert(expandTable, start)
{
	insertExpanded = expandTable;
	var txt = document.getElementById(changeNameID);
	var save = document.getElementById(saveNameID);
	var cancel = document.getElementById(cancelChangeID);
	txt.style.display = save.style.display = cancel.style.display = "none";
	toggleTable(expandTable, document.getElementById(newNameID), document.getElementById(insertNameID), document.getElementById(cancelInsertID));
	if (typeof(start) == "undefined" && cushion > 0)
		cushion = 0;
	else
		cushion = widthCushion;
}
function toggleSave(expandTable, start)
{
	saveExpanded = expandTable;
	var txt = document.getElementById(newNameID);
	var save = document.getElementById(insertNameID);
	var cancel = document.getElementById(cancelInsertID);
	txt.style.display = save.style.display = cancel.style.display = "none";
	toggleTable(expandTable, document.getElementById(changeNameID), document.getElementById(saveNameID), document.getElementById(cancelChangeID));
	if (typeof(start) == "undefined" && cushion > 0)
		cushion = 0;
	else
		cushion = widthCushion;
}
function toggleTable(expandTable, txt, save, cancel)
{
	if (typeof(tableRight) == "undefined")
		tableRight = -1;
	var menu = document.getElementById(menuDivID);
	var oldWidth = menu.offsetWidth;
	var tbl = document.getElementById(optionsID);
	if (expandTable)
	{
		tbl.className = "expand";
		txt.style.display = save.style.display = cancel.style.display = "";
		txt.focus();
	}
	else
	{
		tbl.className = "contract";
		txt.style.display = save.style.display = cancel.style.display = "none";
	}
	var pos = findPos(menu);
	var left = pos[0];
	var width = menu.offsetWidth;
	var documentWidth = ie ? document.body.offsetWidth : window.innerWidth;
	if (tableRight >= 0)
	{
		left = tableRight - width;
		if (ns6)
			menu.style.left = left;
		else
			menu.style.pixelLeft = left;
		tableRight = -1;
	}
	else if (documentWidth - left < width + cushion)
	{
		left = left + oldWidth - width;
		if (ns6)
			menu.style.left = left;
		else
			menu.style.pixelLeft = left;
		tableRight = left + width;
	}
}
function doLogout()
{
	document.getElementById(submitLogOutID).value = 'Log Out';
	document.getElementById(logoutFrmID).submit();
}
function setPicStart(i)
{
	if (curI < 0)
		return false;
	document.getElementById(picStartID).value = pics[i][4];
	document.getElementById(fileNameID).value = dir + '/' + pics[i][0];
}
function changePicStart(obj)
{
	var foundStyles = [], value = -1;
	for (var i = 0; i < pics.length; i++)
		foundStyles[i] = findStyle(i);
	for (var i = 0; i < pics.length; i++)
	{
		if (i > 0)
		{
			if (foundStyles[i] == parseInt(foundStyles[i - 1]) + 1 && styles[foundStyles[i]] == obj.value)
			{
				value = pics[i][4];
				break;
			}
			else if (foundStyles[i] > parseInt(foundStyles[i - 1]) + 1)
			{
				if (styles[foundStyles[i]] == obj.value)
				{
					value = pics[i][4];
					break;
				}
				else if (value < 0)
					value = pics[i][4];
			}
		}
		else if (styles[foundStyles[i]] == obj.value)
		{
			value = pics[i][4];
			break;
		}
	}
	if (value >= 0)
		document.getElementById(newPicStartID).value = value;
}
function findStyle(i)
{
	for (var j in styles)
		if (styles[j] == pics[i][3])
			return j;
	return -1;
}
function doSelectSubmit(obj, save, pg)
{
	if (obj.selectedIndex > 0)
		if (doConfirm("Are you sure you want to move this picture?"))
		{
			var newPg = 0, selectedIndex = obj.selectedIndex + PHOTO_START - 1;
			if (selectedIndex < pg)
				newPg = selectedIndex;
			else if (selectedIndex >= pg)
				newPg = selectedIndex + 1;
			document.getElementById(picFrmID).action = "login.php?pg=" + newPg;
			save.click();
		}
		else
			obj.options[0].selected = true;
}
function doConfirm(msg)
{
	if (window.confirm(msg))
		return true;
	else
		return false;
}
function doDelete()
{
	if (doConfirm("Are you sure you want to delete this picture?"))
		return true;
	else
		return false;
}
function toggleHeaderDiv()
{
	div = document.getElementById(headerDivID);
	if (div.style.display == "none")
		div.style.display = "";
	else
		div.style.display = "none";
	return false;
}
function verifyTextArea()
{
	var HTML;
	if (document.all)
		HTML = document.getElementById(pageHTMLID).innerText;
	else
		HTML = document.getElementById(pageHTMLID).value;
	if (HTML.indexOf("<?") >= 0 || HTML.indexOf("?>") >= 0)
	{
		alert("You cannot save PHP from this form.");
		return false;
	}
	return true;
}
function fixMaster()
{
	master = document.getElementById(masterDivID);
	if (ns6)
		master.style.top = document.body.scrollTop;
	else
		master.style.pixelTop = document.body.scrollTop;
}
function masterNewWindow(obj)
{
	var pg = document.getElementById(curOptionID).value;
	window.open("master.php" + (pg > 1 ? "?pg=" + pg : ""));
	document.getElementById(masterDivID).getElementsByTagName("input")[0].click();
}
function resizeMaster(btn)
{
	var frame = document.getElementById(masterFrameID);
	if (!masterExpanded)
	{
		window.onresize = doResize;
		masterExpanded = true;
		doResize();
		btn.value = "Shrink";
	}
	else
	{
		masterExpanded = false;
		window.onresize = "";
		frame.style.width = frameWidth + "px";
		frame.style.height = frameHeight + "px";
		btn.value = "Expand";
	}
}
function doResize()
{
	var dims = getWidthHeight();
	var width = dims[0];
	var height = dims[1];
	var frame = document.getElementById(masterFrameID);
	if (masterExpanded && (width >= frameWidth || height >= frameHeight))
	{
		frame.style.width = width + "px";
		frame.style.height = height + "px";
	}
}
function getWidthHeight()
{
	return [(ie ? document.body.offsetWidth: window.innerWidth) - 25, (ie ? document.body.offsetHeight: window.innerHeight) - 32];
}

