function checkWordLen(obj,maxlen,counter){
	var v = obj.value;

	var counter = document.getElementById(counter);
	
	if(v.length) {
		v = v.replace(/^\s+|\s+$/g, '');
		var wc = v.split(/[\s]+/);
		counter.innerHTML = 'word count: ' + wc.length + ' (maximum allowed: ' + maxlen + ')';
		if(wc.length > maxlen) {
			counter.style.color = 'red';
		}
		else {
			counter.style.color = 'black';
		}
	}
	else {
		counter.innerHTML = '';
	}
	return true;
}

function showHelp(id) {
	var obj = document.getElementById(id);
	if(obj) {
		if(obj.style.display == '') {
			Effect.BlindUp(id, {duration:.3});
		}
		else {
			Effect.BlindDown(id, {duration:.3});
		}
	}
	else {
		alert('cant find ' + id);
	}
}

function showVersionPane(id) {
	var obj = document.getElementById(id);
	if(obj) {
		if(obj.style.display == '') {
			Effect.BlindUp(id, {duration:.3});
		}
		else {
			Effect.BlindDown(id, {duration:.3});
		}
	}
	else {
		alert('cant find ' + id);
	}
}

function getCheckedValue(id) {

	var obj = document.forms['edit'].elements[id]
	
	for(var i = 0; i < obj.length; i++) {
		if(obj[i].checked) {
			return obj[i].value;
		}
	}
	return "";
}

function versionComparePopUp(key,scriptalias,table,field,row) {

	var left = getCheckedValue(key + '_left');
	var right = getCheckedValue(key + '_right');

	window.open(scriptalias + '/diff.html?left=' + left + '&right=' + right + '&table=' + table + '&field=' + field + '&row=' + row,'Version','resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,menubar=no,width=700,height=400');
}


function doPopupSpell(scriptalias,suggestions) {
	escaped = escape(suggestions);
	window.open(scriptalias + '/defaults/spellingerrors.html?suggestions=' + escaped,'spelling','scrollbars=yes,toolbar=no,location=no,directories=no,menubar=no,width=400,height=200');
}

function handleClick(row,value,link) {
	 var obj = form_field_id;
	 if(obj) {
		obj.options[obj.options.length] = new Option(value,row);
	 }
}

var form_field_id = '';

function lookupWindow(field_id, value, table, field, editing, scriptalias) {
	form_field_id = field_id;
	lookup_value  = value;
	search        = escape(lookup_value.value);
	window.open(scriptalias + '/' + table + '/search.html?' + 'editing=' + editing + '&field=' + field + '&search=' + search,'lookup','resize=yes,scrollbars=yes,toolbar=no,location=no,directories=no,menubar=no,width=600,height=200');
}

function getIndex(field) {

	var index = -1, i = 0, found = false;
			
	while (i < field.form.length && index == -1) {
	
		if (field.form[i] == field) {
			index = i;
		}
		else {
			i++;
		}
	}
	
	return index;
}

var needPack = new Array;

function needToPack(field_id) {
	needPack[needPack.length] = field_id;
}

function handlePack() {
	for(var i = 0; i < needPack.length; ++i) {
		packSelected(needPack[i]);
	}
}

function autoTab(field,len,e) {

	var isNetscape = (navigator.appName.indexOf("Netscape") != -1);
	
	var keyCode = (isNetscape) ? e.which : e.keyCode; 
	
	if(field.value.length >= len && keyCode != 9) {
		field.value = field.value.slice(0, len);
		field.form[(getIndex(field)+1) % field.form.length].focus();
	}
}

function packSelected(field_id) {
	var values_element = document.getElementById(field_id);
	var packed_element = document.getElementById(field_id + '__packed');

	packed_element.value = '';
	
	for(var i = 0; i < values_element.options.length; ++i) {
		if(packed_element.value != '') { packed_element.value += '|'; }
		packed_element.value += values_element.options[i].value;
	}
}

function deleteSelectedItem(field_id) {

	var values_element = document.getElementById(field_id);
	
	if (values_element.selectedIndex != -1) {
	
		var idx          = values_element.selectedIndex;

		var values_array = new Array;
		var text_array = new Array;
		for(var i = 0; i < values_element.options.length; ++i) {
			text_array[i] = values_element.options[i].text;
			values_array[i] = values_element.options[i].value;
		}
					
		values_array.splice(idx, 1);
		text_array.splice(idx, 1);

		values_element.options.length = 0;

		for(var i = 0; i < values_array.length; ++i) {
			values_element.options[i] = new Option(text_array[i],values_array[i]);
		}

		
		values_element.selectedIndex = -1;
	}
}

function moveSelectedItemUp(field_id) {

	var values_element = document.getElementById(field_id);

	if (values_element.selectedIndex != -1 && values_element.selectedIndex != 0) {
		
		var values_array = new Array;
		var text_array = new Array;
		for(var i = 0; i < values_element.options.length; ++i) {
			text_array[i]   = values_element.options[i].text;
			values_array[i] = values_element.options[i].value;
		}
		
		var idx        = values_element.selectedIndex;
		var save_value = values_element.options[idx].value;
		var save_text  = values_element.options[idx].text;
		
		values_array.splice(idx, 1);
		text_array.splice(idx, 1);
		idx--;
		values_array.splice(idx, 0, save_value);
		text_array.splice(idx, 0, save_text);
		
		for(var i = 0; i < values_array.length; ++i) {
			values_element.options[i] = new Option(text_array[i],values_array[i]);
		}

		
		values_element.selectedIndex = idx;
	}
}

function moveSelectedItemDown(field_id) {

	var values_element = document.getElementById(field_id);

	if (values_element.selectedIndex != -1 && (values_element.options.length - 1) != values_element.selectedIndex) {

		var values_array = new Array;
		var text_array = new Array;
		for(var i = 0; i < values_element.options.length; ++i) {
			values_array[i] = values_element.options[i].value;
			text_array[i]   = values_element.options[i].text;
		}
		
		var idx        = values_element.selectedIndex;
		var save_value = values_element.options[idx].value;
		var save_text  = values_element.options[idx].text;

		values_array.splice(idx, 1);
		text_array.splice(idx, 1);
		idx++;
		values_array.splice(idx, 0, save_value);
		text_array.splice(idx, 0, save_text);
		
		for(var i = 0; i < values_array.length; ++i) {
			values_element.options[i] = new Option(text_array[i],values_array[i]);
		}
				
		values_element.selectedIndex = idx;
	}
}

