function showElement(elementId) {
	document.getElementById(elementId).style.display = '';
	document.getElementById(elementId).style.visibility = 'visible';
	document.getElementById(elementId).style.height = 'auto';
}

function hideElement(elementId) {
	document.getElementById(elementId).style.display = 'none';
	document.getElementById(elementId).style.visibility = 'hidden';
	document.getElementById(elementId).style.height = '0px';
}

function toggleElementVisibility(elementId) {
	if (isElementVisible(elementId) == false) {
		showElement(elementId);
	}else{
		hideElement(elementId);
	}
}

function isElementVisible(elementId) {
	var l_oRow = document.getElementById(elementId);
	
	if (l_oRow.style.visibility == 'hidden') {
		return false;
	}else{
		return true;
	}
}

function insertAtCursor(myField, myValue) {
	if (document.selection) {
		// IE support
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
	}else if (myField.selectionStart || myField.selectionStart == '0'){
		// MOZILLA-NETSCAPE support
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
	}else{
		myField.value += myValue;
	}
}

/*
 * Add to textarea...
 * onKeyDown="limitText(this.form.thename,100);" onKeyUp="limitText(this.form.thename,100);"
 */
function limitText(limitField, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	}
}

function numbersOnly(myfield, e, dec) {
	var key;
	var keychar;

	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
		return true;

	keychar = String.fromCharCode(key);

	if ( (key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) {
		return true;
	}else if ((("0123456789").indexOf(keychar) > -1)){
		return true;
	}else if (dec && (keychar == ".")){
		myfield.form.elements[dec].focus();
		return false;
	}else{
		return false;
	}
}

var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
    var keyCode = (isNN) ? e.which : e.keyCode; 
    var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
    if (input.value.length >= len && !containsElement(filter,keyCode)) {
        input.value = input.value.slice(0, len);
        input.form[(getIndex(input)+1) % input.form.length].focus();
    }

    function containsElement(arr, ele) {
    	var found = false, index = 0;
        while(!found && index < arr.length) {
        	if (arr[index] == ele){
        		found = true;
        	}else{
            	index++;
            }
        }
        return found;
    }
    
    function getIndex(input) {
    	var index = -1, ii= 0, found = false;
        while (ii< input.form.length && index == -1) {
            if (input.form[ii] == input) {
            	index = ii;
            }else{
            	ii++;
            }
        }
        return index;
    }
    
    return true;
}

function openWindow(loc) {popupWin = window.open(loc, 'SofTex_Solutions', 'width=480,height=550,left=100,top=100');}
function openWindow(loc, width, height){popupWin = window.open(loc, 'SofTex_Solutions', 'width=' + width + ',height=' + height + ',left=100,top=100');}
function openWindow(loc, width, height, left, top){popupWin = window.open(loc, 'SofTex_Solutions', 'width='+width+',height='+height+',left='+left+',top='+top);}
