function thumbClick(thumb) {
	var thebox, selid, selthumb;
	thebox = dojo.byId('arrangebox');
	selid = dojo.byId('selID').value;
	if (selid) {
		selthumb = dojo.byId(selid);
		selthumb.className = 'movethumb';
		if (selthumb != thumb)
			thebox.insertBefore(selthumb, thumb);
		selid = '';
	}
	else {
		selid = thumb.id;
		thumb.className = "selthumb";
	}
	dojo.byId('selID').value = selid;
	return true;
}

function gallerychange() {
	var order = dojo.byId("order");
	var up = dojo.byId("up");
	var down = dojo.byId("down");
	up.disabled = !order.selectedIndex;
	down.disabled = order.selectedIndex == (order.length - 1);
}

function gallerydown() {
	var list, si, opt1, opt2;
	list = dojo.byId("order");
	si = list.selectedIndex;
	if (si < list.length - 1) {
		opt1 = list.options[si];
		opt2 = list.options[si+1];
		list.options[si+1] = opt1;
		list.add(opt2, opt1);
		si++;
		list.selectedIndex = si;
	}
	gallerychange();
}

function galleryup() {
	var list, si, opt1, opt2;
	list = dojo.byId("order");
	si = list.selectedIndex;
	if (si) {
		opt1 = list.options[si];
		opt2 = list.options[si-1];
		list.options[si] = opt2;
		list.add(opt1, opt2);
		si--;
		list.selectedIndex = si;
	}
	gallerychange();
}

function resumechange() {
	var resume = dojo.byId("resume");
	var up = dojo.byId("up");
	var down = dojo.byId("down");
	up.disabled = !resume.selectedIndex;
	down.disabled = resume.selectedIndex == (resume.length - 1);
}

function resumeup() {
	var resume, si, opt1, opt2;
	resume = dojo.byId("resume");
	si = resume.selectedIndex;
	if (si) {
		opt1 = resume.options[si];
		opt2 = resume.options[si-1];
		resume.options[si] = opt2;
		resume.add(opt1, opt2);
		si--;
		resume.selectedIndex = si;
	}
	resumechange();
}

function resumedown() {
	var resume, si, opt1, opt2;
	resume = dojo.byId("resume");
	si = resume.selectedIndex;
	if (si < resume.length - 1) {
		opt1 = resume.options[si];
		opt2 = resume.options[si+1];
		resume.options[si+1] = opt1;
		resume.add(opt2, opt1);
		si++;
		resume.selectedIndex = si;
	}
	resumechange();
}

function resumeorder() {
	var resume = dojo.byId("resume");
	var order = dojo.byId("order");
	var result = "";
	
	for(var i = 0; i < resume.length; i++)
		result = result + resume.options[i].value + " ";
	
	order.value = result;
}

function hashpass() {
	document.login.password.value = hex_sha1(document.login.password.value);
}

/* firstList */
function firstList() {
	var x = 0;
	while (document.forms[0].elements[x].type != 'select-one') {
		x++;
	}
	return document.forms[0].elements[x];
}

/* doDelete */
function doDelete(msg, first, handler) {
	var list;

	list = firstList();
	if (list.options[list.selectedIndex].value == 0) {		// delete a new show never updated
		list.remove(list.selectedIndex);
		list.add(new Option(first, 0, false, true), list.options[0]);
		dojo.byId("title").value = "";
		dojo.byId("butNew").disabled = false;
		dojo.byId("butUpdate").disabled = true;
		dojo.byId("butRename").disabled = true;
		dojo.byId("butDelete").disabled = true;
		dojo.byId("hidenseek").style.display = "none";
	}
	else {
		if (window.confirm(msg)) {
			dojo.byId("handler").value = handler;
			dojo.byId("hidenseek").style.display = "none";
			document.forms[0].submit();
		}
	}
}

/* doNew */
function doNew(msg) {
	var newItem, list, goodbad;
	newItem = window.prompt(msg, "");
	if (newItem) {
		list = firstList();
		if (list.options[0].value == 0)
			list.remove(0);
		else
			for(var i = 1; i < document.forms[0].elements.length; i++) {
				if (document.forms[0].elements[i] == list)
					continue;
				switch(document.forms[0].elements[i].type) {
					case "text":
					case "textarea":
						document.forms[0].elements[i].value = "";
						break;
					case "checkbox":
						document.forms[0].elements[i].checked = false;
						break;
					case "select-one":
					case "select-multiple":
						document.forms[0].elements[i].selectedIndex = 0;
						break;
				}
			}
		list.options[list.length] = new Option (newItem, 0, false, true);
		dojo.byId("title").value = newItem;
		dojo.byId("butNew").disabled = true;
		dojo.byId("butUpdate").disabled = false;
		dojo.byId("butRename").disabled = false;
		dojo.byId("butDelete").disabled = false;
		dojo.byId("hidenseek").style.display = "block";
		
		var found = false;
		for(i = 5; !found; i++)
			switch(document.forms[0].elements[i].type) {
				case "text":
				case "textarea":
				case "checkbox":
				case "select-one":
				case "select-multiple":
					found = true;
					document.forms[0].elements[i].focus();
			}
		if (goodbad = dojo.byId("goodbad"))
			goodbad.style.display = "none";
	}
	return newItem;
}

function doNewGallery(msg) {
	if (doNew(msg)) {
		var cell = dojo.byId("cell");
		cell.innerHTML = '<span class="redtext">There are no categories in this gallery.</span>';
	}
}

function doNewCategory(msg) {
	if (doNew(msg)) {
		var cell = dojo.byId("cell");
		if (cell)
			cell.innerHTML = '<span class="redtext">There are no works in this category.</span>';
	}
}

function doNewWork(msg) {
	if (doNew(msg)) {
		var list = dojo.byId("category");
		if (list.options[0].value != 0)
			list.add(new Option("--- Select A Category ---", 0, false, true), list.options[0]);
		var preview = dojo.byId("preview");
		if (preview)
			preview.style.display = "none";
	}
}

/* doRename */
function doRename(msg) {
	var list = firstList();
	var newItem = window.prompt(msg, list.options[list.selectedIndex].text);
	if (newItem) {
		list.options[list.selectedIndex].text = newItem;
		dojo.byId("title").value = newItem;
	}
}

/* doSelect */
function doSelect(handler) {
	dojo.byId("handler").value = handler
	dojo.byId("hidenseek").style.display = "none";
	document.forms[0].submit();
}

/* doUpdate */
function doUpdate(handler) {
	dojo.byId("handler").value = handler;
	dojo.byId("hidenseek").style.display = "none";
	document.forms[0].submit();
}

function doUpdateGallery(handler) {
	var val = '';
	var order = dojo.byId("order");
	if (order.length)
		for(var x = 0; x < order.length; x++)
			val = val + order.options[x].value + ' ';
	dojo.byId("catOrder").value = val;
	doUpdate(handler);
}

function doUpdateCategory(handler) {
	var val = '';
	var thebox = dojo.byId('arrangebox');
	if (thebox)
		for(var x = 0; x < thebox.childNodes.length; x++)
			if (thebox.childNodes[x].className == 'movethumb')
				val = val + thebox.childNodes[x].id + ' ';
	dojo.byId('wrkOrder').value = val;
	doUpdate(handler);
}

/* imageOn */
function imageOn(img) {
	document.getElementById(img).className = "button_on";
	return true;
}

/* imageOff */
function imageOff(img) {
	document.getElementById(img).className = "button_off";
	return true;
}

/*---------------------**
** VALIDATION ROUTINES **
**---------------------*/

function isEmpty(str) {
	var re = /.+/;
	return !re.test(str);
}

function vName(field) {
	var ret = !isEmpty(field.value);
	if (!ret)
		window.alert('Your Name is required.');
	return ret;
}

function vEmail(field) {
	var ret = !isEmpty(field.value);
	if (!ret)
		window.alert('Your e-mail address is required.');
	return ret;
}

function vMessage(field) {
	var ret = !isEmpty(field.value);
	if (!ret)
		window.alert('You need to enter a message.');
	return ret;
}

function vBirth(field) {
	var ret = !isEmpty(field.value);
	if (!ret)
		window.alert('Birth Year is required.');
	return ret;
}

function vComments(field) {
	var ret = !isEmpty(field.value);
	if (!ret)
		window.alert('Please enter something in Comments.');
	return ret;
}

function vExperience(field) {
	var ret = !isEmpty(field.value);
	if (!ret)
		window.alert('Please enter something for Experience.');
	return ret;
}

function vHeight(field) {
	var ret = !isEmpty(field.value);
	if (!ret)
		window.alert('Your Height is required.');
	return ret;
}

function vAddress(field) {
	var ret = !isEmpty(field.value);
	if (!ret)
		window.alert('Your Address is required.');
	return ret;
}

function vCity(field) {
	var ret = !isEmpty(field.value);
	if (!ret)
		window.alert('City is required.');
	return ret;
}

function vState(field) {
	var ret = !isEmpty(field.value);
	if (!ret)
		window.alert('State is required.');
	return ret;
}

function vZip(field) {
	var ret = !isEmpty(field.value);
	if (!ret)
		window.alert('Zip Code is required.');
	return ret;
}

function vGeneral() {
	if (vName(document.general.name) &&
		vEmail(document.general.email) &&
		vMessage(document.general.message)) {
			document.general.submit();
		}
}

function vModels() {
	if (vName(document.models.name) &&
		vEmail(document.models.email) &&
		vBirth(document.models.birth) &&
		vHeight(document.models.height) &&
		vExperience(document.models.experience) &&
		vComments(document.models.comments)) {
			document.models.submit();
		}
}

function vMailing() {
	if (vName(document.mailing.name) &&
		vEmail(document.mailing.email) &&
		vAddress(document.mailing.address1) &&
		vCity(document.mailing.city) &&
		vState(document.mailing.state) &&
		vZip(document.mailing.zip)) {
			document.mailing.submit();
		}
}

/***********************************************
* Show Hint script- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
		
var horizontal_offset="9px" //horizontal offset of hint box from anchor link

/////No further editting needed

var vertical_offset="0" //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
if (whichedge=="rightedge"){
var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
}
else{
var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight
}
return edgeoffset
}

function showhint(menucontents, obj, e, tipwidth){
if ((ie||ns6) && document.getElementById("hintbox")){
dropmenuobj=document.getElementById("hintbox")
dropmenuobj.innerHTML=menucontents
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (tipwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=tipwidth
}
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px"
dropmenuobj.style.visibility="visible"
obj.onmouseout=hidetip
}
}

function hidetip(e){
dropmenuobj.style.visibility="hidden"
dropmenuobj.style.left="-500px"
}

function createhintbox(){
var divblock=document.createElement("div")
divblock.setAttribute("id", "hintbox")
document.body.appendChild(divblock)
}

if (window.addEventListener)
window.addEventListener("load", createhintbox, false)
else if (window.attachEvent)
window.attachEvent("onload", createhintbox)
else if (document.getElementById)
window.onload=createhintbox

