function goBack() {
	window.history.back();
}

function simplePopup(url) {
	window.open(url, 'imageviewer', 'width=50, height=50');
}

var passminlen = 6;
var datesep = '-';
var timesep = ':';

function validate(field, type, name) {
	switch (type) {
		case 'string':
			if (field.value == '') {
				alert('Please enter a valid '+name);
				field.focus();
				return false;
			}
			break;
			
		case 'email':
			if (field.value.indexOf('@') == -1 
					|| field.value.indexOf('.') == -1 
					|| field.value.indexOf('.', field.value.indexOf('@')) <= field.value.indexOf('@')+1
					|| field.value.length < 6) {
				
				alert('Please enter a valid '+name);
				field.focus();
				return false;
			}
			break;
			
		case 'url':
			if (field.value.substr(0, 7) != 'http://' 
					|| field.value.indexOf('.') == -1 
					|| field.value.indexOf(' ') != -1 
					|| field.value.length < 11) {
				
				alert('Please enter a valid '+name);
				field.focus();
				return false;
			}
			break;
			
		case 'password':
			if (field.value == ''
					|| field.value.length < passminlen) {
				alert('Please enter a valid '+name);
				field.focus();
				return false;
			}
			break;
			
		case 'number':
			if (field.value == '') {
				alert('Please enter a valid '+name);
				field.focus();
				return false;
			}
			
			for (var x=0; x<field.value.length; x++) {
				var ch = field.value.charAt(x);
				
				if (( ch < '0' || ch > '9' ) && ch != '.') {
					alert('Please enter a valid '+name);
					field.focus();
					return false; 
				}
			}
			break;
			
		case 'non0number':
			if (field.value == '' || Number(field.value) <= 0) {
				alert('Please enter a valid '+name);
				field.focus();
				return false;
			}
			
			for (var x=0; x<field.value.length; x++) {
				var ch = field.value.charAt(x);
				
				if (( ch < '0' || ch > '9' ) && ch != '.') {
					alert('Please enter a valid '+name);
					field.focus();
					return false; 
				}
			}
			break;
			
		case 'date_mdy':
			var d = new Date(field.value.substr(6, 4)
												, Number(field.value.substr(0, 2))-1
												, field.value.substr(3, 2));
			
			var d2 = ((d.getMonth() < 9)?'0':'')+Number(d.getMonth()+1).toString()+'-'
								+((d.getDate() < 10)?'0':'')+Number(d.getDate()).toString()+'-'
								+Number(d.getFullYear()).toString();
			
			if ((field.value != d2 
					|| field.value.charAt(2) != datesep
					|| field.value.charAt(5) != datesep
					|| field.value.length != 10) && field.value != '') {
				alert('Please enter a valid '+name);
				field.focus();
				return false; 
			}
			break;
			
		case 'time24':
			if (field.value.charAt(2) != timesep
					|| field.value.length != 5
					|| Number(field.value.substr(0, 2)) > 23
					|| Number(field.value.substr(3, 2)) > 59) {
				alert('Please enter a valid '+name);
				field.focus();
				return false; 
			}
			break;
			
		case 'radio':
			index = 0;
			notchecked = true;
			while (field[index] != null)
				if (field[index++].checked) {
					notchecked = false;
					break;
				}
			if (notchecked) {	
					alert('Please select a valid '+name);
					return false; 
			}
			break;
	}
	
	return true;
}

function valPassword(pass, confirm) {
		if (pass.value != confirm.value) {
			alert('The password confirmation does not match');
			pass.focus();
			return false;
		}
			
		return true;
}

function valCatGrp() {
		f = window.document.editform;
		if (f.name.value == '') {
				alert('Please enter a valid name');
				f.name.focus();
				return false;
		}
		return true;
}

function ConfirmDel(url, name) {
		if (confirm('Are you sure you want to delete this '+name))
			window.location.href = url;
}

function ConfirmDelLink(url, name) {
		if (confirm('Are you sure you want to delete this '+name)) {
			if (confirm('Do you want to notify the webmaster about this deletion?'))
				window.location.href = url+'&notify=yes';
			else
				window.location.href = url;
		}
}

function valUser() {
		f = window.document.editform;
		ret = validate(f.lx_name, 'string', 'name')
					&& validate(f.lx_email, 'email', 'e-mail')
					&& validate(f.lx_url, 'url', 'url')
					&& validate(f.lx_username, 'string', 'username')
					&& validate(f.lx_pass, 'password', 'password')
					&& validate(f.confirm, 'password', 'password confirmation')
					&& valPassword(f.lx_pass, f.confirm)
					&& validate(f.lx_linksperpage, 'non0number', 'links per page')
					;

		return ret;
}

function valLink() {
		f = window.document.editform;
		ret = validate(f.lx_title, 'string', 'title')
					&& validate(f.lx_url, 'string', 'url')
					&& validate(f.lx_description, 'string', 'description')
					;

		return ret;
}

function valCat(id) {
		f = window.document.editform;
		
		if (id > 0)
			ret = validate(f.lx_name, 'string', 'name');
		else
			ret = true;
		
		return ret;
}

function valUrl() {
		f = window.document.editform;
		ret = validate(f.lx_title, 'string', 'title')
					&& validate(f.lx_url, 'url', "URL starting with 'http://'")
					&& validate(f.lx_description, 'string', 'description')
					;

		return ret;
}

function valCheater() {
		f = window.document.editform;
		ret = validate(f.lx_url, 'string', 'URL')
					&& validate(f.lx_reason, 'string', "reason")
					;

		return ret;
}

function valParam() {
		f = window.document.editform;
		ret = validate(f.lx_linksperpage, 'number', 'links per page value')
					&& validate(f.lx_directory, 'string', 'directory path')
					&& validate(f.lx_directoryurl, 'string', 'directory url')
					&& validate(f.lx_baseurl, 'string', 'base url')
					&& validate(f.lx_templates, 'string', 'templates path')
					&& validate(f.lx_admin_email, 'email', "administrator's e-mail")
					;

		return ret;
}

function valMassive() {
		f = window.document.editform;
		ret = validate(f.linktxt, 'url', "link to search for starting with 'http://'")
					;

		return ret;
}
