function checkOneSelected(name)
{
	for (i = 0; i < document.forms.mainform.elements.length; i++)
	{
		var element = document.forms.mainform.elements[i];
		if(element.name == name && element.checked == true)
			return true;
	}
	return false;
}

function formatValue(value)
{
	var result = value.replace(/ /g, '');
	result = result.replace(/,/, ".");
	return result;
}

function validateNumberField(fieldName, alertText)
{	
	var tempField = document.getElementById(fieldName);
	var tempFieldValue = formatValue(tempField.value);
	if (tempFieldValue.length == 0 || isNaN(tempFieldValue))
	{
		alert(alertText);
		tempField.focus();
		return false;
	}
	return true;
}

function validateNumberFieldSilent(fieldName) {
	var tempField = document.getElementById(fieldName);
	var tempFieldValue = formatValue(tempField.value);
	if (tempFieldValue.length == 0 || isNaN(tempFieldValue))
	{						
		return false;
	}
	return true;
}

function validateNumberFieldSilentAllowEmpty(fieldName) {
	var tempField = document.getElementById(fieldName);
	var tempFieldValue = formatValue(tempField.value);
	if (tempFieldValue.length == 0)
	{
		return true;
	}
	if (isNaN(tempFieldValue))
	{						
		return false;
	}
	return true;
}

/*Functions for Data-Tables*/
var currentlySelectedRow = -1;
var currentlySelectedDetail = -1;
var activeDetail;
var activeLink;
var activeDetailTableRow;

function getCurrentFormElement(rowNumber) {
	return document.getElementById("choose"+rowNumber);
}

function showMouseover(rowNumber) {	
	formElement = getCurrentFormElement(rowNumber);
	if (formElement && formElement.checked == true) return;
	setRowColor(rowNumber,"#ffe57f");			
}
function showMouseout(rowNumber) {		
	formElement = getCurrentFormElement(rowNumber);
	if (formElement && formElement.checked == true) return;
	setRowColor(rowNumber,rowNumber % 2 == 0 ? "#ebebeb" : "#f1f1f1");
}

function setRowColor(rowNumber, color) {
	var tableRow = document.getElementById("dataTableRow"+rowNumber);
	highlightTableColsFromTableRow(tableRow, color);
	if (window.highlightSecondRow) {
		highlightSecondRow(rowNumber, color);
	}
}

function highlightTableColsFromTableRow(tableRow, color) {
	var tableCols = tableRow.getElementsByTagName("td");
	for (n=0; n<tableCols.length; n++) {
		if (tableCols[n].className.indexOf("no-rollover") == -1) {
			tableCols[n].style.backgroundColor = color;
			setHandCursor(tableCols[n]);
		}
	}
}

function evtOnClick(rowNumber) {
	try {
		if(!document.getElementById("fileupload99")) {	//otherwise upload-window will not pop up (only IE), affects only probesSelect.jsp
			document.getElementById("choose"+rowNumber).focus();
		}
	} catch (e) {}
	selectRow(rowNumber);
	if (window.pageCallBackEvtOnClick)
	{
		valid = pageCallBackEvtOnClick(rowNumber);
	}
	
}

function selectRow(rowNumber) {
 	var formElement = document.getElementById("choose"+rowNumber);
	selectRowGeneral(rowNumber, true, formElement.checked);
}

function selectRowGeneral(rowNumber, tickCheckBox, tickOldState) {
	formElement = getCurrentFormElement(rowNumber);
	if (formElement.type != "checkbox"){
		if (currentlySelectedRow>-1)	
		{
			setRowColor(currentlySelectedRow,currentlySelectedRow % 2 == 0 ? "#ebebeb" : "#f1f1f1");			
		}
			currentlySelectedRow = rowNumber; 	
	}
 
 	var formElement = document.getElementById("choose"+rowNumber);
	if (formElement.type=="checkbox") {	
		if (tickOldState==true) {	
			setRowColor(rowNumber,rowNumber % 2 == 0 ? "#ebebeb" : "#f1f1f1");
			if (tickCheckBox)
			{			
				formElement.checked=false;
			}			
		} else {
			if (tickCheckBox)
			{			
				formElement.checked=true;
			}
			setRowColor(rowNumber,"#ffcc00");
		}		
	} else {	
		document.getElementById("choose"+rowNumber).checked = true;
		setRowColor(rowNumber,"#ffcc00");
	}
	var valid = true;
	if (window.pageCallBackDoAllowNextButton)
	{
		valid = pageCallBackDoAllowNextButton(rowNumber);
	}
	maybeChangeButton(valid);
}

function showDetails(rowNumber) {
	if (activeDetail) activeDetail.style.display = "none";
	if (activeLink) activeLink.className = "";
	if (activeDetailTableRow) activeDetailTableRow.style.display = "none"
	if (currentlySelectedDetail==rowNumber) {		
		currentlySelectedDetail  = -1;
		return;
	}
	
	currentlySelectedDetail = rowNumber;
	activeDetail = document.getElementById("detail"+rowNumber);	
	activeDetail.style.display="block";
		
		activeDetailTableRow = activeDetail;
		activeDetailTableRow = getPreviousRow(activeDetailTableRow);	
		if (document.all) {				
			activeDetailTableRow.style.display="block";
		} else {
			activeDetailTableRow.style.display="table-row";
		}
			
	activeLink = document.getElementById("dataTableRow"+rowNumber).getElementsByTagName("a")[0];				 
	if (activeLink)	activeLink.className = "active";
}

function getPreviousRow(previousRow) {
	while (previousRow) {
		previousRow = previousRow.parentNode;		
		if (previousRow && previousRow.nodeType == 1 && previousRow.tagName.toLowerCase() == "tr") {
			return 	previousRow			
		}
	}	
}

function getNextRow(nextRow) {		
	while (nextRow) {
		nextRow = nextRow.nextSibling;		
		if (nextRow && nextRow.nodeType == 1) {
			//if () {
				if (nextRow.tagName.toLowerCase() == "tr") {
					if (nextRow.id.indexOf("dataTableRow")>-1){
						return false;
					} else if(nextRow.className=="extends") {
						return nextRow;
					}
				}
			//}
		}
	}
}

function setHandCursor(obj) {
	if (document.all) {
		obj.style.cursor="hand";
	} else {
		obj.style.cursor="pointer";
	}
}

function klickOnTextField(event,rowNumber)
{
	selectRow(rowNumber);
	if (!event) event = window.event;
	if (event.stopPropagation)
	{
		event.stopPropagation();
	}
	else
	{
		event.cancelBubble = true;
	}
	return true;
}

function getSelectedIndex(selectFormElementName)	
{
	var j=0;
	for (i = 0; i < document.forms.mainform.elements.length; i++)
	{
		var element = document.forms.mainform.elements[i];
		if(element.name == selectFormElementName && element.checked == true)
		{
			return j;
		}
		
		if (element.name == selectFormElementName)
		{
			j++;
		}
	}
	return -1;
}

function selectRowByValue(elementName, elementValue)
{
	var i,j=0;
	for (i = 0; i < document.forms.mainform.elements.length; i++)
	{
		var element = document.forms.mainform.elements[i];
		
		if(element.name==elementName)
		{				
			if(element.value == elementValue)
			{
				evtOnClick(j);
			}
			j++;
		}
	}
}

/* functions for start and chooseTyp55OrTesto54 */
var currentlySelectedRowConfigType = -1;	

function showMouseoverConfigType(rowNumber)
{					
	if (rowNumber == currentlySelectedRowConfigType) return;
	setColorConfigType(rowNumber, "#ffe57f");		
}


function showMouseoutConfigType(rowNumber)
{			
	if (rowNumber == currentlySelectedRowConfigType) return;
	setColorConfigType(rowNumber, rowNumber % 4 == 0 ? "#ebebeb" : "#f1f1f1");						
}

function evtOnClickConfigType(rowNumber)
{
	setColorConfigType(currentlySelectedRowConfigType,currentlySelectedRowConfigType % 2 == 0 ? "#ebebeb" : "#f1f1f1");
	
	currentlySelectedRowConfigType = rowNumber;
	document.getElementById("configType"+rowNumber).checked = true;
	document.getElementById("configType"+rowNumber).focus();
	setColorConfigType(rowNumber,"#ffcc00");

	maybeChangeButton(true);
}

function setColorConfigType(rowNumber, color)
{
	objTable = document.getElementById("choose-configtype");
	// erste Row
	objTableRows = objTable.getElementsByTagName("tr")[0];	
	objTableCols = objTableRows.getElementsByTagName("td");							
	for (j=0;j<objTableCols.length;j++) {
		if (j == rowNumber) {					
			setHandCursor(objTableCols[j]);
		}
	}
	
	// zweite Row
	var text;
	objTableRows = objTable.getElementsByTagName("tr")[1];			
	objTableCols = objTableRows.getElementsByTagName("td");
	for (j=0;j<objTableCols.length;j++) {
		if (j == rowNumber) {
			objTableCols[j].style.backgroundColor = color;
			if (objTableCols[j].getElementsByTagName("p").length != 0) {
				objTableCols[j].getElementsByTagName("p")[0].style.backgroundColor = color;		
			}
			setHandCursor(objTableCols[j]);
		}
	}								
}

function isEmpty(inputElement)
{
	var result = inputElement.value.replace(/ /g, '');
	if (result == "")
		return true;
	return false;
}

function isValidInputTemperature(tempMinC, tempMaxC, tempMinF, tempMaxF)
{
	if ((validateNumberFieldSilent(tempMinC) && validateNumberFieldSilent(tempMaxC))
					&& (isEmpty(document.getElementById(tempMinF)) && isEmpty(document.getElementById(tempMaxF))))
	{
		return true;
	}
	else if ((validateNumberFieldSilent(tempMinF) && validateNumberFieldSilent(tempMaxF))
					&& (isEmpty(document.getElementById(tempMinC)) && isEmpty(document.getElementById(tempMaxC))))
	{
		return true;
	}
	return false;
}

/*Initialize NyroModal for Help-Form*/
$(function() {

	$.fn.nyroModal.settings.showBackground = function(elts, settings, callback) {
		elts.bg.css({opacity:0}).fadeTo(100, 0.75, callback);
		callback();
	};
	
	$.fn.nyroModal.settings.hideBackground = function(elts, settings, callback) {
		elts.bg.hide();
		callback();
	};
	
	$.fn.nyroModal.settings.showContent = function(elts, settings, callback) {
		adjustNyroModalCss();
		elts.contentWrapper
			.css({
				width: settings.width+'px',
				marginLeft: (settings.marginLeft)+'px',
				height: settings.height+'px',
				marginTop: (settings.marginTop)+'px'
			})
			.show()
		callback();
	};
	
	$.fn.nyroModal.settings.hideContent = function(elts, settings, callback) {
		callback();
	};
	
	$.fn.nyroModal.settings.showTransition = function(elts, settings, callback) {
		adjustNyroModalCss();
		elts.loading.fadeTo(100, 1, function() {
			elts.contentWrapper.hide();
			callback();
		});
	};
	
	$.fn.nyroModal.settings.hideTransition = function(elts, settings, callback) {
		adjustNyroModalCss();
		elts.contentWrapper
			.css({
				width: settings.width+'px',
				marginLeft: (settings.marginLeft)+'px',
				height: settings.height+'px',
				marginTop: (settings.marginTop)+'px'
			})
			.show();
		callback();
	};
	
	$.fn.nyroModal.settings.showLoading = function(elts, settings, callback) {
		adjustNyroModalCss();
		var h = elts.loading.height();
		var w = elts.loading.width();
		callback();
	};
	
	$.fn.nyroModal.settings.hideLoading = function(elts, settings, callback) {
		elts.loading.hide();
		callback();
	};
});

function adjustNyroModalCss()
{
	$('#nyroModalContent').css({padding: "0"});
	$('#closeBut').css({right: "20px", top: "21px"});
}

/* Functions for validating the final- and helpform */
function validate(errMessWrongPhone, errMessFillForm){
	fieldsInvalidInput = new Array();

	if(isInArray(fieldsToValidate, "email") || document.getElementById("email-input").value.length>0) checkEmail();
	if(isInArray(fieldsToValidate, "phone") || document.getElementById("phone-input").value.length>0) checkPhone();
	
	fieldsInvalidInput = getFieldsInvalidInput(fieldsToValidate);
	doMarkLabels(fieldsInvalidInput);		

	if(fieldsInvalidInput.length == 1 && (isInArray(fieldsToValidate, "phone") && !isPhoneValid()))
	{
		alert(errMessWrongPhone);
		return false;
	}
	else if(fieldsInvalidInput.length != 0)
    {
        alert(errMessFillForm);
        return false;
    }
    
    return true; 
}

	function checkEmail(){
		var labelEmail = document.getElementById("email-label");            
	    labelEmail.style.color = "#000";
	    var inputEmail = document.getElementById("email-input");
	    
	    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,9})+$/.test(inputEmail.value))
	    {
	        return true;
	    }
	    
	    fieldsInvalidInput[fieldsInvalidInput.length] = "email";
		return false;		
	}
	
	function isPhoneValid() {
		var labelEmail = document.getElementById("phone-label");            
	    var inputEmail = document.getElementById("phone-input");
	    
	    if (/^[0-9\-/\s]+$/.test(inputEmail.value))
	    {
	        return true;
	    }
		return false;
	}	
	
	function checkPhone(){
		if (isPhoneValid())
		{
			return true;
		}
		else
	    {
		    fieldsInvalidInput[fieldsInvalidInput.length] = "phone";		    
			return false;		
		}
	}
	
	function getFieldsInvalidInput(fieldsToValidate){
		for(var i = 0; i < fieldsToValidate.length; i++)
	    {
	        labelElement = document.getElementById(fieldsToValidate[i] + "-label");
	        labelElement.style.color = "#000";
	        inputElement = document.getElementById(fieldsToValidate[i] + "-input");
	        
	        if(inputElement.type != 'checkbox')
	        {
				if(isEmpty(inputElement))
				{   
					fieldsInvalidInput[fieldsInvalidInput.length] = fieldsToValidate[i];
				}
			}
			else
			{
				if(!inputElement.checked)
				{
					fieldsInvalidInput[fieldsInvalidInput.length] = fieldsToValidate[i];
				}
			}
		    
	    }
		return fieldsInvalidInput;
	}
	
	function doMarkLabels(fieldsInvalidInput){
			for(var i = 0; i < fieldsInvalidInput.length; i++)
	    {
	        labelElement = document.getElementById(fieldsInvalidInput[i] + "-label");
	        labelElement.style.color = "#f00";
	    }
	}
	
	function isInArray(array, value){
		for(var i=0;i<array.length;i++){
			if(array[i]==value) return true;
		}
		return false;
	}


/**************************************************/
/*START: Fix IE 6 Text Selection Bug */
document.onreadystatechange = fixIE6AbsPos;
function fixIE6AbsPos()
{
	if (window.createPopup && document.compatMode && document.compatMode=="CSS1Compat") {
		if( !document.body ) {
			return;
		}
		if( document.readyState == "complete" ) {
			document.body.style.height = document.documentElement.scrollHeight + 'px';
		}
	}
}
/*END: Fix IE 6 Text Selection Bug */ /**************************************************/