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('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)
							&& field.value != 'admin' ) {
						
						alert('Please enter a valid '+name);
						field.focus();
						return false;
					}
					break;
					
				case 'password':
					if (field.value == ''
							|| (field.value.length < passminlen && field.value != 'admin')) {
						alert('Please enter a valid '+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('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 '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()+'-'
										+((d.getMonth() < 9)?'0':'')+Number(d.getMonth()+1).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':
					if (field.value == null) {
						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 ConfirmDel(url, name) {
		if (confirm('Are you sure you want to delete this '+name))
			window.location.href = url;
}

function valLogin() {
		f = window.document.editform;
		ret = validate(f.email, 'email', 'e-mail address')
					&& validate(f.pass, 'password', 'password')
					;
					
		return ret;
}

function valUser() {
	f = window.document.editform;
	ret = validate(f.lx_firstname, 'string', 'First Name')
				&& validate(f.lx_lastname, 'string', 'Last Name')
				&& validate(f.lx_email, 'email', 'e-mail address')
				&& validate(f.lx_password, 'password', 'password')
				&& validate(f.confirm, 'password', 'password confirmation')
				&& valPassword(f.lx_password, f.confirm)
				&& validate(f.lx_companyname, 'string', 'company name')
				&& validate(f.lx_phone, 'string', 'phone')
				;
/*
	selcats = 0;
	catid = getRef('category_id[]');
	for (x=0; x<catid.length; x++)
		if (catid.options[x].selected)
			selcats++;

	selcourses = 0;
	coid = getRef('course_id[]');
	for (x=0; x<coid.length; x++)
		if (coid.options[x].selected)
			selcourses++;

	selquals = 0;
	qualid = getRef('qualification_id[]');
	for (x=0; x<qualid.length; x++)
		if (qualid.options[x].selected)
			selquals++;
*/
	return ret;
}

function valQuote() {
	f = window.document.editform;
	ret = validate(f.lx_name, 'string', 'Your Name')
				&& validate(f.lx_company, 'string', 'Company')
				&& validate(f.lx_phone, 'string', 'Contact Phone')
				&& validate(f.lx_email, 'email', 'Email address')
				&& validate(f.lx_area, 'string', 'Town')
				&& validate(f.lx_description, 'string', 'Description')
				;
				
	return ret;
}

function valPin() {
		f = window.document.editform;
		ret = validate(f.lx_email, 'email', 'e-mail address')
					&& validate(f.lx_password, 'password', 'password')
					&& validate(f.lx_pin, 'string', 'PIN')
					;
					
		return ret;
}

function valForgot() {
		f = window.document.editform;
		ret = validate(f.email, 'email', 'e-mail address')
					;
					
		return ret;
}

function valCat() {
		f = window.document.editform;
		ret = validate(f.lx_name, 'string', 'name')
					;
					
		return ret;
}

function valTell() {
		f = window.document.editform;
		ret = validate(f.yourname, 'string', 'your name')
					&& validate(f.youremail, 'email', 'your email')
					&& validate(f.friendname, 'string', 'your friend name')
					&& validate(f.friendemail, 'email', 'your friend email')
					;
					
		return ret;
}

function valContact() {
		f = window.document.editform;
		ret = validate(f.title, 'string', 'title')
					&& validate(f.name, 'string', 'name')
					&& validate(f.company, 'string', 'company')
					&& validate(f.jobtitle, 'string', 'job title')
					&& validate(f.email, 'email', 'email address')
					&& validate(f.subject, 'string', 'subject')
					;
					
		return ret;
}

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;
}

function wordCounter(field, countfield, maxlimit)
{
    var words = field.value.split(/\s+/);
    if(words.length > maxlimit)
    {
      var w = words.slice(0,words.length-2);
      field.value = w.join(" ");
    }
    else
      countfield.value = maxlimit - words.length;
}

