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.replace(' ','') == '') {
						alert(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(name);
						field.focus();
						return false;
					}
					break;
				
				case 'password':
					if (field.value == ''
							|| field.value.length < passminlen) {
						alert(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 != '.' && ch != '-') {
							alert(name);
							field.focus();
							return false; 
						}
					}
					break;
					
				case 'non0number':
					if (field.value == '' || Number(field.value) == 0) {
						alert(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(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(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(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)
							&& field.value != '') {
						alert(name);
						field.focus();
						return false; 
					}
					break;
					
				case 'time12':
					if ((field.value.charAt(2) != timesep
							|| field.value.length != 7
							|| (field.value.substr(6, 2) != 'am' && field.value.substr(6, 2) != 'pm')
							|| Number(field.value.substr(0, 2)) > 12
							|| Number(field.value.substr(3, 2)) > 59)
							&& field.value != '') {
						alert(name);
						field.focus();
						return false; 
					}
					break;
					
				case 'radio':
					if (field.value == null) {
						alert(name);
						return false; 
					}
					break;
					
				case 'check':
					if (!field.checked) {
						alert(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(name);
						field.focus();
						return false;
					}
					break;
		}
		
		return true;
}

function valPassword(pass, confirm_,alertmsg) {
		if (pass.value != confirm_.value) {
			alert(alertmsg);
			pass.focus();
			return false;
		}
			
		return true;
}

function ConfirmDel(url, name) {
		if (confirm(name))
			window.location.href = url;
}

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 (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;
}

function explode(separator, str) {
	var rest = str;
	var elements = Array();
	
	while (rest.indexOf(separator) != -1) {
		elements[elements.length] = rest.substring(0, rest.indexOf(separator));
		rest = rest.substring(rest.indexOf(separator)+1, rest.length);
	}
	
	if (rest != '')
		elements[elements.length] = rest;

	return elements;	
}

function implode(glue, pieces) {
	var str = "";
	
	for (var x=0; x<pieces.length; x++) {
		str = str+pieces[x];
		
		if (x < pieces.length-1)
			str = str+glue;
	}
	
	return str;
}

function limitchars(field, maxchars, txtalert) {
	if (field.value.length > maxchars) {
		field.value = field.value.substr(0, maxchars);
		alert(txtalert);
	}
}

function showDiv(id) {
	var divref = getRef(id);
	
	if (divref != null) {
		if (divref.style.display == 'none')
			divref.style.display = 'block';
		else
			divref.style.display = 'none';
	}
}
