var isDOM=document.getElementById?1:0;
var isIE=document.all?1:0;
var isNS4=navigator.appName=='Netscape'&&!isDOM?1:0;

function getRef(i, p) {
	p = !p ? document : p.navigator ? p.document:p;
	return isIE ? p.all[i]:isDOM ? (p.getElementById ? p : p.ownerDocument ).getElementById(i) : isNS4 ? p.layers[i] : null;
}

function goBack() {
		window.history.back();
}

var passminlen = 6;
var datesep = '-';
var timesep = ':';

function validate(field, type, name) {
		switch (type) {
				case 'string':
					if (field.value == '') {
						alert(alert_gral+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)
							&& field.value != 'admin' ) {
						
						alert(alert_gral+name);
						field.focus();
						return false;
					}
					break;
					
				case 'password':
					if (field.value == ''
							|| (field.value.length < passminlen && field.value != 'admin')) {
						alert(alert_gral+name);
						field.focus();
						return false;
					}
					break;
					
				case 'number':
					for (var x=0; x<field.value.length; x++) {
						var ch = field.value.charAt(x);
						
						if (( ch < '0' || ch > '9' ) && ch != '.') {
							alert(alert_gral+name);
							field.focus();
							return false; 
						}
					}
					break;
					
				case 'non0number':
					if (field.value == '' || Number(field.value) == 0) {
						alert(alert_gral+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(alert_gral+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()+datesep
										+((d.getDate() < 10)?'0':'')+Number(d.getDate()).toString()+datesep
										+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(alert_gral+name);
						field.focus();
						return false; 
					}
					break;
					
				case 'date_dmy':
					var d = new Date(field.value.substr(6, 4)
														, Number(field.value.substr(3, 2))-1
														, field.value.substr(0, 2));
					
					var d2 = ((d.getDate() < 10)?'0':'')+Number(d.getDate()).toString()+datesep
										+((d.getMonth() < 9)?'0':'')+Number(d.getMonth()+1).toString()+datesep
										+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(alert_gral+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(alert_gral+name);
						field.focus();
						return false; 
					}
					break;
					
				case 'radio':
					if (field.value == null) {
						alert(alert_gral+name);
						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(alert_gral+name);
						field.focus();
						return false;
					}
					break;
					
				case 'country':
					if (field.value == 0) {						
						alert(alert_gral+name);
						field.focus();
						return false;
					}
					break;
					
		case 'captcha':
			if (field.value == '' || field.value.length != 5) {
					alert(alert_gral+name);
					field.focus();
					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 ConfirmDel(url, name) {
		if (confirm('Are you sure you want to delete this '+name))
			window.location.href = url;
}

function valFreeUser() {
	f = window.document.editform;
	ret = validate(f.lx_first_name, 'string', 'First Name')
				&& validate(f.lx_last_name, 'string', 'Last Name')
				&& validate(f.lx_email, 'email', 'e-mail address')
				&& validate(f.lx_pass, 'password', 'password')
				&& validate(f.confirm, 'password', 'password confirmation')
				&& valPassword(f.lx_pass, f.confirm)
				&& validate(f.lx_website, 'url', 'Website')
				&& validate(f.lx_date_format, 'string', 'Date Format')
				&& validate(f.lx_datetime_format, 'string', 'Date/Time Format')
				&& validate(f.lx_time_format, 'string', 'Time Format')
				&& validate(f.lx_decimal_point, 'string', 'Decimal Point')
				&& validate(f.lx_thousand_mark, 'string', 'Thousand Mark')
				;
				
	return ret;
}

function valLoginLeft() {
	f = window.document.login_left;
	ret = validate(f.email, 'email', 'e-mail address')
				&& validate(f.pass, 'password', 'password')
				;
				
	return ret;
}

function valLogin() {
	f = window.document.login;
	ret = validate(f.email, 'email', 'e-mail address')
				&& validate(f.pass, 'password', 'password')
				;
				
	return ret;
}

function valProcedure() {
		f = window.document.editform;
		ret = validate(f.lx_procedure_name, 'string', 'procedure name');
					
		return ret;
}

function valContact() {
		f = window.document.mail;
		ret = validate(f.vr_name, 'string', 'name')
		&& validate(f.vr_mail, 'email', 'e-mail address')
		&& validate(f.vr_phone, 'string', 'phone')
		&& validate(f.vr_country, 'country', 'country')
		&& validate(f.vr_text, 'string', 'text')
		&& validate(f.security_code, 'captcha', 'verification word')
			;
	return ret;
}

function valForgot() {
	f = window.document.forgot;
	ret = validate(f.email, 'email', 'e-mail address')
				;
				
	return ret;
}

function valActivate() {
	f = window.document.login;
	ret = validate(f.email, 'email', 'e-mail address')
				&& validate(f.pass, 'password', 'password')
				&& validate(f.code, 'string', 'activation code')
				;
				
	return ret;
}

function valBanner() {
	f = window.document.editform;
	ret = validate(f.lx_name, 'string', 'Name')
				;
				
	return ret;
}

function valSelect() {
	f = window.document.editform;
	
	if (f.vr_procedure.options[f.vr_procedure.selectedIndex].value == 0) {
		alert(alert_select);
		return false;
	}
	
	return true;
}

function lxSelectMove(source, destine) {

	var src = getRef(source);
	var dst = getRef(destine);
	var temp = new Array();
	
	for (var x=0; x<src.length; x++)
		if (src.options[x].selected) {
			dst.options[dst.length] = new Option(src.options[x].text, src.options[x].value, false, false);
			temp.push(src.options[x].value);
		}
		
	for (x=0; x<temp.length; x++)
		for (y=0; y<src.length; y++)
			if (Number(src.options[y].value) == temp[x]) {
				src.remove(y);
				break;
			}
}

function lxSelectList(listname) {

	var lname = getRef(listname);
	
	for (var x=0; x<lname.length; x++)
		lname.options[x].selected = true;
}