var g_appendEllipsisToOptionsRun = false;

function acrobatCheck() {
	var acrobat = new Object();

	acrobat.installed = false;
	acrobat.version = '0.0';

	if (navigator.plugins && navigator.plugins.length) {
		for (x=0; x<navigator.plugins.length; x++) {
			if (navigator.plugins[x].name.indexOf('Adobe Acrobat') != -1) {
				/*version is not contained in name or description, so the following is not working
				acrobat.version=parseFloat(navigator.plugins[x].description.split('Version ')[1]);

				if (acrobat.version.toString().length == 1) {
					acrobat.version+='.0';
				}
				*/
				
				acrobat.installed = true;
				acrobat.version = 'unknown';
				
				return acrobat;
			}
		}
	} else if (window.ActiveXObject) {
		for (x=2; x<10; x++) {
			try {
				var oAcro = eval("new ActiveXObject('PDF.PdfCtrl."+x+"');");
				if (oAcro) {
					acrobat.installed = true;
					acrobat.version=x+'.0';
				}
			} catch(e) {
			
			}
		}

		try {
			var oAcro4 = new ActiveXObject('PDF.PdfCtrl.1');
			if (oAcro4) {
				acrobat.installed = true;
				acrobat.version='4.0';
			}
		} catch(e) {
		
		}

		try {
			var oAcro7 = new ActiveXObject('AcroPDF.PDF.1');
			if (oAcro7) {
				acrobat.installed = true;
				acrobat.version='7.0';
			}
		} catch(e) {
		
		}
	}
	
	return acrobat;
}

function appendEllipsisToOptions(selectElement) {
	if (g_appendEllipsisToOptionsRun) return true;

	var optionWidth = document.getElementById('optionWidth');
	var scrollWidth = 60;
	
	for (i = 0; i < selectElement.childNodes.length; i++){
		var element = selectElement.childNodes[i];
		
		if (i == 1 && element.offsetWidth == 0) {
			scrollWidth += 5;
		}	
		
		if (element.nodeType == 1) { 
			var text = element.innerHTML;
			
			if ( null != optionWidth )
			{
				optionWidth.innerHTML = text;
				
				if (optionWidth.offsetWidth > selectElement.offsetWidth - scrollWidth) {
					var optionValue = "";
					
					for (c = 0; c < text.length; c++) {
						optionValue += text.charAt(c)
						optionWidth.innerHTML = optionValue;
						
						if (optionWidth.offsetWidth >= selectElement.offsetWidth - scrollWidth) {
							element.innerHTML = optionValue + '...';
					
							break;
						}
					}
				}
			}
		}
	}
	
	g_appendEllipsisToOptionsRun = true;
}

function autoTab(element, nextElementId) {
	if (!nextElementId) {
		nextElementId = element.tabIndex;
	}
	
	if (element.value.length >= element.maxLength) {
		var nextFormElement = element.form.elements[nextElementId]; 
		
		if (nextFormElement) {
			nextFormElement.focus();
		}
	}
}

function focusOnInitialFormField() {
	var form = document.forms[0];
	
	if (form) {
		var elements = form.elements;
		
		if (elements) {
			for (i = 0; i < elements.length; i++) {
				if (elements[i].tagName.toLowerCase() == "textarea" || (elements[i].tagName.toLowerCase() == "input" && elements[i].type.toLowerCase() == "text")) {
					elements[i].focus();
					
					return;
				}
			}
		}
	}
}

function initCheckboxList(elementsName, checkAllElementId) {
	var checkBoxes = document.getElementsByName(elementsName);
	
	if ( checkBoxes.length == 0) {
		return;
	}
		
	for (var i = 0; i < checkBoxes.length; i++) {
		if (checkBoxes[i].checked == false) {
			document.getElementById(checkAllElementId).checked = false;
			
			return;
		}
	}
	
	document.getElementById(checkAllElementId).checked = true;
}

function openWindow(url, name, params) {
	window.open(url, name, params);
}

function openErrorBox(id) {
	if (id == null) {
		id = 'errorBox';
	}
	
	var e = document.getElementById( id );
		
	if (e) {
		e.style.display = 'block';
		
		changeOverlapElements(id, 'hidden');
	} else {
		alert( "can't find element errorBox" );
	}
}

function removeParentFrame() {
	if (parent.frames.length > 0 && (document.referrer.indexOf('ltlsignin.lf') != -1 || document.referrer.indexOf('activation.lf') != -1 || document.referrer.indexOf('expiration.lf') != -1)) {
		top.location = document.location;
	} else if (parent.frames.length > 0) {
		window.history.back();
	}
}

function syncCheckboxList(element, checkAllElementId) {
	if (element.checked == false) {
		document.getElementById(checkAllElementId).checked = false;
				
		return;		
	} else {
		var checkBoxes = document.getElementsByName(element.name);
		
		for (var i = 0; i < checkBoxes.length; i++) {
			if (checkBoxes[i].checked == false) {
				document.getElementById(checkAllElementId).checked = false;
				
				return;
			}
		}
		
		document.getElementById(checkAllElementId).checked = true;
	}
}

function textareaMaxLength(element, maxLength) {
	if (element.value.length > maxLength) {
		element.value = element.value.substr(0, maxLength);
		document.getElementById("maxLengthLimit").innerHTML = maxLength;
		openErrorBox("maxLength");
	}
}
