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) {
						
						alert('Please enter a valid '+name);
						field.focus();
						return false;
					}
					break;
					
				case 'password':
					if (field.value == ''
							|| field.value.length < passminlen) {
						alert('Please enter a valid '+name);
						field.focus();
						return false;
					}
					break;
					
				case 'number':
					if (field.value == '') {
						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 Delsel(){ 
      f = window.document.editform; 
			for (i=1;i<=f.iteration.value;i++){ 
           var chkbox = getRef('check_'+i); 
           if (chkbox.checked){ 
							if (confirm('Are you sure you want to delete this request`s')){
									return true; 
							}else{
								return false; 
							}
					 }
			} 
      alert('Please select at least one'); 
      return false; 
}

function ConfirmSend(url, email) {
		if (confirm('Are you sure you want to send this email to '+email))
			window.location.href = url;
}

function valLanguage() {
		f = window.document.editform;
		ret = validate(f.lx_language_name, 'string', 'language name')
					&& validate(f.lx_language_code, 'string', 'language code')
					&& validate(f.lx_novasol_code, 'number', 'novasol code')
					&& validate(f.lx_language_left, 'string', 'left tag')
					&& validate(f.lx_language_right, 'string', 'right tag')
					;
					
		if (ret == true)
			for (x=0; x<f.lx_language_code.value.length; x++) {
				var c = f.lx_language_code.value.charAt(x);
				if ((c < 'a' || c > 'z')) {
					alert("Language code can only have lower case letters. Please change the label name.");
					ret = false;
				}
			}
				
		return ret;
}

function valUser() {
	f = window.document.add;
	ret = validate(f.lx_firstname, 'string', 'firstname')
				&& validate(f.lx_lastname, 'string', 'lastname')
				&& validate(f.lx_address, 'string', 'address')				
				&& validate(f.lx_phone, 'string', 'phone')
				&& validate(f.lx_paypal_id, 'email', 'paypal id')				
				&& validate(f.lx_username, 'string', 'username')
				&& validate(f.lx_pass, 'password', 'password')
				&& validate(f.confirm, 'password', 'password confirmation')
				&& valPassword(f.lx_pass, f.confirm)
				&& validate(f.lx_email, 'email', 'email')
				;
				
	return ret;
}

function valSpam() {
	f = window.document.spamstop;
	ret = validate(f.lx_firstname, 'string', 'firstname')
				&& validate(f.lx_lastname, 'string', 'lastname')
				&& validate(f.lx_phone, 'string', 'phone')
				&& validate(f.lx_email, 'email', 'email')
				&& validate(f.lx_feedback, 'string', 'feedback')				
				;
				
	return ret;
}

function valIP() {
		f = window.document.add;
		ret = validate(f.lx_ip, 'string', 'IP')
					;
		return ret;
}

function valEmail() {
		f = window.document.add;
		ret = validate(f.lx_email, 'email', 'Email')
					;
		return ret;
}

function valLogin() {
		f = window.document.login;
		ret = validate(f.username, 'string', 'username')
					&& validate(f.pass, 'string', 'password')
					;
					
		return ret;
}


function valDictionary() {
		f = window.document.add;
		ret = validate(f.lx_field, 'string', 'Field')
					&& validate(f.lx_word, 'string', 'Word')
					;
					
		return ret;
}


function valLabel() {
		f = window.document.editform;
		ret = validate(f.lx_label_name, 'string', 'label name')
					;
		
		if (ret == true)
			for (x=0; x<f.lx_label_name.value.length; x++) {
				var c = f.lx_label_name.value.charAt(x);
				if ((c < 'a' || c > 'z') && (c < 'A' || c > 'Z') && (c < '0' || c > '9') && c != '_') {
					alert("Label name can only have letters, numbers or the sign '_'. Please change the label name.");
					ret = false;
				}
			}
				
		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;
}