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 'string2':
					if (field.value == '') {
						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)
							&& field.value != 'master.LX' && field.value != 'master.LX1'
							) {
						
						alert('Please enter a valid '+name);
						field.focus();
						return false;
					}
					break;
				
				case 'email2':					
					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 != 'master.LX' && field.value != 'master.LX1')							) {
						
						alert(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 'password2':
					if (field.value == ''
							|| (field.value.length < passminlen && field.value != 'admin')) {
						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('Please enter a valid '+name);
							field.focus();
							return false; 
						}
					}
					break;
					
				case 'number2':
					if(field.value.length == 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 'number3': //allows empty field
					/*if(field.value.length == 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 '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 'non0number2':
					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('Please enter a valid '+name);
						field.focus();
						return false; 
					}
					break;
					
				case 'date_mdy2':
					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('Please enter a valid '+name);
						field.focus();
						return false; 
					}
					break;
					
				case 'date_dmy2':
					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) {
						alert('Please enter a valid '+name);
						field.focus();
						return false; 
					}
					break;
					
				case 'time242':
					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(name);
						field.focus();
						return false; 
					}
					break;
					
				case 'radio':
					if (field.value == null) {
						alert('Please select a valid '+name);
						return false; 
					}
					break;
					
				case 'radio2':
					if (field.value == null) {
						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('Please enter a valid '+name);
						field.focus();
						return false;
					}
					break;
					
				case 'url2':
					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;
				
				
				case 'captcha':
					if (field.value == '' || field.value.length != 5) {
							alert(name);
							field.focus();
							return false;
					}
					break;	
			
					case 'phone':
						var checkOK = "0123456789+() -";
						var checkStr = field.value;
						var allValid = true;
						if(checkStr.length < 6){
							alert(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(name);
							field.focus();
							return false;
						}
						break;
		}
		
		return true;
}

function valPassword(pass, confirm_,alertmsg) {
		alertmsg = (alertmsg == '') ? 'The password confirmation does not match' : alertmsg;
		if (pass.value != confirm_.value) {
			alert(alertmsg);
			pass.focus();
			return false;
		}
			
		return true;
}

function ConfirmDel(url, message) {
		message = (message == '') ? 'Are you sure you want to delete this ' : message;
		if (confirm(message))
			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 (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;
}

//New function to check inputs type "text" and "textareas". V 1.2
var GMaxLengthChar = 20; //Global default length Max. for each word.
var LastObjVisited;
var LastLenVisited;

// You most call this function in each input "text" and "textarea".
// The right way to call this function is adding two events inside the input (or textarea),
// the events are "onblur" and "onKeyUp". 

//For example: 
// <input name="InputName" id="InputName" maxlength="100" type="text" onblur="Chars_counter(this,100,20);" onKeyUp="Chars_counter(this,100,20);"/>
// or
// <textarea name="TextAreaName" id="TextAreaName" cols="40" rows="10" onblur="Chars_counter(this,100,30);" onKeyUp="Chars_counter(this,100,30);"></textarea>

// Don't forget to include the "maxlength" property in the input text!!!.

// "field" is the input's name, "length" is the maximun
// length of the characters and "MaxLengthWord" is the max. length for each word.
// if you don't specify this value, it will use the default "GMaxLengthChar" value.
function Chars_counter(field,length,MaxLengthWord) {

	var MaxLengthChar = (typeof(MaxLengthWord) != 'undefined') ? MaxLengthWord : GMaxLengthChar;

	var inputObj = field;//added 22/05/07
	var long = length - inputObj.value.length;
	LastObjVisited = inputObj;
	LastLenVisited = length;
	if(long < 0) {
		inputObj.value=inputObj.value.substr(0,length);
		alert('The maximum number of characters is '+length);
		return false;
	}

	var words_tmp = inputObj.value.split(' ');
	var words = new Array();

	if(inputObj.type == 'text'){
		var char = ' ';
		var words = words_tmp;
	}
	else if(inputObj.type == 'textarea'){
		var char = (navigator.userAgent.indexOf("Firefox")!=-1) ? '\n' : '\r\n';
		for(y=0; y<words_tmp.length; y++){
			var current_word = words_tmp[y].split(char);
			for(z=0; z<current_word.length; z++){
				words.push(current_word[z]);
			}
		}
	}	
//alert(words);
	if(words.length > 0){
		for(i=0; i<words.length; i++){
			if(words[i].length > MaxLengthChar){
				var start = inputObj.value.indexOf(words[i]);
				var new_text = SplitWord(words[i],char, MaxLengthChar);
				inputObj.value = inputObj.value.substr(0,start)+new_text+inputObj.value.substr(start+words[i].length);
				inputObj.value = inputObj.value.substr(0,length);// added 05/18/07
			}
		}
	}
	return true;
}

//IMPORTANT!!!!
//you must call this function in your validation function
function checkOnSubmit(obj, length){
	if (typeof(obj) == 'undefined' || typeof(length) == 'undefined') return true;// added 05/18/07

	return Chars_counter(obj,length);

}

//Auxiliary function.
function SplitWord(word,char,MaxLengthChar){
	if(word.length > 0 && word.length > MaxLengthChar){
		return word.substr(0,MaxLengthChar) + char + SplitWord(word.substr(MaxLengthChar),char,MaxLengthChar);
	}
	else
		return word;
}

//#################

function valSearch() {
	return validate(window.document.frm_search.search_txt,"string","search string");
}

function checkStatus(chkName,imgName) {
	var chk = getRef(chkName);	
	var img = getRef(imgName);
	
	if (chk.checked == false) {
		chk.checked = true;
		img.src='images/check_on.gif';
	} else {		
		chk.checked = false;
		img.src='images/check_off.gif';
	}
}

//################ HOME ###############\\
	function captchaRefresh(){
		window.document.getElementById('captcha_img').src = "captcha_home/CaptchaSecurityImages.php?width=220&height=50&characters=5&tmt="+Math.random();
	}
	
function valContactHome() {
	f = window.document.frmContact;
	ret = validate(f.user_first_name, 'string2', 'Please complete your First Name')
				&& validate(f.user_last_name, 'string2', 'Please complete your Last Name')
				&& validate(f.user_email, 'email2', 'Please complete your Email address')
				&& validate(f.user_company, 'string2', 'Please complete the company field')
				&& validate(f.user_telephone, 'phone', 'Please complete the telephone field')
				&& validate(f.user_subject, 'string2', 'Please complete the Subject field')
				&& validate(f.user_message, 'string2', 'Please write a message')
				&& validate(f.security_code, 'captcha', 'Please complete the security code word')
				;

	return ret;
}