/* allow the form to only submit once */
function submitonce(theform){
if (document.all||document.getElementById){
for (i=0; i<theform.length; i++){
var tempobj=theform.elements[i]
if(tempobj.type.toLowerCase()=="submit" || tempobj.type.toLowerCase()=="reset")
tempobj.disabled=true
}
}
}
/* disable the go and show buttons if nothing is selected */
function disableGo(){
	if (!document.getElementById || !document.getElementById('jumpmenu')) return; 
	var jumpmenu = document.getElementById('jumpmenu');
	var category = document.getElementById('category');
	jumpmenu.elements['artists'].value == "" ? jumpmenu.Operation.disabled=true : jumpmenu.Operation.disabled=false;
	category.elements['categories'].value == "" ? category.Operation.disabled=true : category.Operation.disabled=false;
}
/* only allow one of the selects to be checked at once */
function toggleSelects(){
	if (!document.getElementById || !document.getElementById('twoSelects')) return; 
	var frm = document.getElementById('twoSelects');
	var flag = false;
	if (frm.elements['artwork_showtag'].value == "") {
	 	frm.elements['artist_name'].disabled=false
	} else {
		frm.elements['artist_name'].disabled=true;
		flag=true;
	}
	if (frm.elements['artist_name'].value == "") {
	 	frm.elements['artwork_showtag'].disabled=false
	} else {
		frm.elements['artwork_showtag'].disabled=true;
		flag=true;
	}
}

/* if they have selected an exhibition then display the date formats */
function showDateBoxes(){
	if (!document.getElementById || !document.getElementById("dateholder")) return;
	var theSelect = document.getElementById('exhibitionList');
	var dateDiv = document.getElementById('dateholder');
	if (theSelect.value == "") {
	 	dateDiv.style.display = "none";
	} else {
	 	dateDiv.style.display = "block";		
	}
}

var fieldCount = 1;
var maxLength = 20;
var fieldName = "artwork_image_";
function addBrowse() {
	var fieldHolder = document.getElementById("fieldholder");
	if (fieldCount < maxLength) {
	fieldCount++;
	var newField = document.createElement("input");
	newField.type = "file";
	newField.className = "file";
	newField.size = 40;
	newField.name = fieldName + fieldCount;
	fieldHolder.appendChild(newField);	
	} else {
		alert("You have attempted to exceed the maximum limit of "+maxLength+".");
	}
}
function removeBrowse() {
  var fieldHolder = document.getElementById("fieldholder");
    if (fieldCount !=1) {
	fieldCount--;
    var lastField = fieldHolder.lastChild;	
	fieldHolder.removeChild(lastField);		
	}
}
	  
/* make external links (for xhtml strict) */
function externalLinks() { 
if (!document.getElementsByTagName) return; 
var anchors = document.getElementsByTagName("a"); 
for (var i=0; i<anchors.length; i++) { 
var anchor = anchors[i]; 
if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") 
anchor.target = "_blank"; 
} 
} 

function log_out() {
	ht = document.getElementsByTagName("html");
	ht[0].style.filter = "progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)";
	if (confirm('Are you sure you want to log out?')) {
		return true;
	} else {
		ht[0].style.filter = "";
		return false;
	}
}
/* only allow numeric sequence or .jpgs */
var numFilter = /\d{0,3}[^\D]/;
var jpgFilter = /\.(jpg|jpeg|JPG|JPEG)/;
function validateType(theForm,field,validate) {
	var theField = theForm[field];
	if (validate == "num") {
		if (!numFilter.test(theField.value)) {
			alert("The Sequence is required,\nand it must be numeric.");
			theField.select();
			return false;
		}	
	} else if (validate == "jpg") {
		if (!jpgFilter.test(theField.value) && theField.value != "") {
			alert("Only .jpg files may be used,\n(Valid types are: jpg,jpeg,JPG,JPEG).");
			theField.value = "";
			theField.focus();
			return false;
		}	
	}
	return true; 	
}
/* check form */
var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,5}|\d+)$/
function isValidEmail(str) {
   return emailfilter.test(str);
}
function checkForm(frm){
	var error=false;
	var message;
	message = "Please enter the following information:\n\n";
	if(frm.elements['Name'] && frm.elements['Name'].value == "") {
		message += "- Your Name\n";
		error = true;
	}
	if(frm.elements['First Name'] && frm.elements['First Name'].value == "") {
		message += "- Your First Name\n";
		error = true;
	}
	if(frm.elements['Last Name'] && frm.elements['Last Name'].value == "") {
		message += "- Your Last Name\n";
		error = true;
	}
	if(frm.elements['Phone'] && frm.elements['Phone'].value == "") {
		message += "- Your Phone Number\n";
		error = true;
	}
	if(frm.elements['Email'] && isValidEmail(frm.elements['Email'].value)==false) {
		message += "- A Valid Email Address\n";
		error = true;
	}
	if(frm.elements['City'] && frm.elements['City'].value == "") {
		message += "- City\n";
		error = true;
	}	
	if (error!=false) {
		alert(message);
		return false;
	} else {
		return true;
	}
}
function checkRegistryConfirm(){
	var frm = document.getElementById("adminenquire");
	if(frm.elements['Confirm'] && frm.elements['Confirm'].checked == false) {alert("Please Confirm Your Details");return false;}
	else {return true;}
}
/* confirm actions */
function confirmDelete(name) {
if (confirm("Really Delete - "+name+"?\nOnce deleted you will not be able to get it back!")) return true;
else return false;
}

function empty() {
if (confirm("Are you sure?")) return true;
else return false;
}
/* general functions */
var message="";
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) {if 
(document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
if (document.layers) 
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}

document.oncontextmenu=new Function("return false")

function addEvent(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return true;
    } else if (element.attachEvent) {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return r;
    } else {
        return false;
    }
}
function knackerEvent(eventObject) {
    if (eventObject && eventObject.stopPropagation) {
        eventObject.stopPropagation();
    }
    if (window.event && window.event.cancelBubble ) {
        window.event.cancelBubble = true;
    }
    
    if (eventObject && eventObject.preventDefault) {
        eventObject.preventDefault();
    }
    if (window.event) {
        window.event.returnValue = false;
    }
}

function cancelEventSafari() {
    return false;        
}
/* find all the fields to be cleared on focus */
function findClearFields() {
    var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];
        if (theInput.type == 'text' && theInput.className.match(/\bcleartxt\b/)) {  
            /* Add event handlers */          
            addEvent(theInput, 'focus', clearDefaultText, false);
            addEvent(theInput, 'blur', replaceDefaultText, false);
            
            /* Save the current value */
            if (theInput.value != '') {
                theInput.defaultText = theInput.value;
            }
        }
    }
	var formAreas = document.getElementsByTagName('textarea');
	for (var i = 0; i < formAreas.length; i++) {
        var theArea = formAreas[i];
        if (theArea.className.match(/\bcleartxt\b/)) {  
            /* Add event handlers */          
            addEvent(theArea, 'focus', clearDefaultText, false);
            addEvent(theArea, 'blur', replaceDefaultText, false);
            
            /* Save the current value */
            if (theArea.value != '') {
                theArea.defaultText = theArea.value;
            }
        }
    }
}
/* clear and replace */
function clearDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return; 
    if (target.value == target.defaultText) {
        target.value = '';
    }
}
function replaceDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;   
    if (target.value == '' && target.defaultText) {
        target.value = target.defaultText;
    }
}
/* init on load events */
function init() {
 	externalLinks();
	disableGo();
	toggleSelects();
	findClearFields();
}
addEvent(window, 'load', init, false);