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()+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('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()+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('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;
					
				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 'captcha':
				if (field.value == '' || field.value.length != 5) {
						alert('Please enter a valid '+name);
						field.focus();
						return false;
				}
				break;
				
			case 'terms':
				if (field.checked === false){		
					alert(name);
					return false;
				} 
				break;
				
			case 'country':
				if (field.value == ''){		
					alert('Please enter a valid '+name);
					return false;
				} 
				break;	
			
			case 'phone':
			var checkOK = "0123456789+() -";
			var checkStr = field.value;
			var allValid = true;
			if(checkStr.length < 6){
				alert('Please enter a valid '+name);
				field.focus();
				return false;	
			}

			for (i = 0;  i < checkStr.length;  i++)
			{
				ch = checkStr.charAt(i);
				for (j = 0;  j < checkOK.length;  j++)
					if (ch == checkOK.charAt(j))
						break;
				if (j == checkOK.length)
				{
					allValid = false;
					break;
				}
			}
			if (allValid==false) {
				alert('Please enter a valid '+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 valPartner() {
	f = window.document.editform;
	ret = validate(f.lx_name, 'string', 'Name')
				&& validate(f.lx_url, 'url', 'URL')
				;
				
	return ret;
}
*/

function valLogin() {
	f = window.document.login;
	ret = validate(f.email, 'email', 'e-mail address')
				&& validate(f.pass, 'password', 'password')
				;
				
	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 valBuy() {
	f = window.document.contact;
	ret = validate(f.lx_name, 'string', 'Name')
				&& validate(f.lx_email, 'email', 'Email')
				&& validate(f.lx_company, 'string', 'Company')
				&& validate(f.lx_country, 'country', 'Country')
				&& validate(f.lx_i_address, 'string', 'Invoice Address')
				&& validate(f.lx_i_name, 'string', 'Invoice Name')
				&& validate(f.security_code, 'captcha', 'Validation Code')
				&& validate(f.terms, 'terms', 'You must accept the terms before continue')
				;
	
	return ret;
		
	
}
function valContact() {
	f = window.document.contact;
	ret = validate(f.lx_name, 'string', 'Name')
				&& validate(f.lx_email, 'email', 'Email')
				&& validate(f.lx_company, 'string', 'Company')
				&& validate(f.lx_country, 'country', 'Country')
				&& validate(f.lx_phone, 'phone', 'Phone Number')
				&& validate(f.lx_comment, 'string', 'Comment')
				&& validate(f.security_code, 'captcha', 'Validation Code')
				;
	
	return ret;
		
	
}