// combined.js

<!-- // hide scripts for JavaScript disabled browsers

/*
 * GENERAL VARIABLES BLOCK
 */

var downStrokeField;

var visibleLogon = "operatoridTr";
var hiddenLogon = "useridTr";
var visibleLegend = "Fill in your Operator id and optionally a Password";
var hiddenLegend = "Please enter User Id and Password";

var formFocusField = null;

// Error handling functions
// ************************
function handleError() {
	
	window.location="fault.jsp";
}

function logError(error, functionName) {
		
	var timeStamp = new Date().getTime();
		
	window.location = "AppServlet?m=RIALogCtrl.handleError&rTS=" + timeStamp +"&_JSFunction=" + functionName 
	                  + "&_JSErrMsg=" + error.message + "&_JSLineNr=" + error.lineNumber;
}
/*
 * FUNCTIONS BLOCK
 */

//autojump functions
function enableAutoJump(theForm) {
	try {
		
		for(veldIndex=0; veldIndex < theForm.length; veldIndex++) {
			field = theForm.elements[veldIndex];
			if ((field.type == "text" || field.type == "password") && field.jump) {
				if (field.maxLength > 0 && field.maxLength < 255) { 
					field.onkeydown = autojump_keyDown;
					field.onkeyup = autojump_keyUp;
				}
			}
		}
		
	} catch(error) {
		logError(error, "enableAutoJump");
	}
	
}

function autojump_keyDown() {
	try {
		
		this.beforeLength = this.value.length;
		downStrokeField = this;
		
	} catch(error) {
		logError(error, "autojump_keyDown");
	}
}

function autojump_keyUp() {
	try {
		
		if ((this == downStrokeField) && 
		   	(this.value.length >= this.beforeLength) && 
		   	(this.value.length >= this.maxLength)) {
		   	// slice belet dat er meer dan maxlength aantal karakters kunnen ingegeven worden
				this.value = this.value.slice(0, this.maxLength);
		   	// enkel hier gaan we het volgende veld ophalen
		   	nextField = this.form.elements[(getIndex(this)+1) % this.form.length];
		   	
		   	//if next button is disabled or readonly , jump to next one
		   	//this code is not ok (infinite loop) if all fields are disabled or read only and autojump is used.
		   	while(nextField.disabled == true || nextField.readOnly == true) { 
		   		nextField = this.form.elements[(getIndex(nextField)+1) % this.form.length];
		   	}
		   	
		   	// We springen naar het volgende veld als dat geen button, submit of reset knop is
		   	if (!(nextField.type == "button" || nextField.type == "submit" ||	nextField.type == "reset")) {
					nextField.focus();
					if (nextField.type == "text" || nextField.type == "password") {
						nextField.select();
					}
				}
		}
		downStrokeField = null;
		
	} catch(error) {
		logError(error, "autojump_keyUp");
	}
}

function getIndex(input) {
	try {
		
		var index = -1, i = 0;
		while (i < input.form.length && index == -1) {
			if (input.form.elements[i] == input) {
				index = i;
			} else {
				i++;
			}
		}
		return index;
		
	} catch(error) {
		logError(error, "getIndex");
	}
}

//checkboxSelection functions
function checkboxSelection(formName, checkbox, groupname) {
	try {
		
		if(groupname) {
			for (var i = 0; i < formName.elements.length; i++) {    
				if (formName.elements[i].type == "checkbox" 
				    && formName.elements[i].name == groupname) {
					formName.elements[i].checked = checkbox.checked;
				}
			}	
		} else {
			for (var i = 0; i < formName.elements.length; i++) {    
				if (formName.elements[i].type == "checkbox") {
					formName.elements[i].checked = checkbox.checked;
				}
			}	
		}
		
	} catch(error) {
		logError(error, "checkboxSelection");
	}
}

//checkFormChanged functions
function checkFormChanged(theForm) {
	try {
		
		changedForm = false;
		veldIndex=0;
		
		while((!changedForm) && (veldIndex < theForm.length)){
			field = theForm.elements[veldIndex];
			//if (field.type != "button") {
			if( field.type == "checkbox" || 
				field.type == "radio" || 
				field.type == "select-one" || 
				field.type == "select-multiple" || 
				field.type == "text" || 
				field.type == "textarea"){
				if (field.type == "radio" || field.type == "checkbox") {
					if(field.initValue != field.checked){
						changedForm = true;
					}	
				}else{
					if(field.initValue != field.value){
						changedForm = true;
					}
				}
			}
			veldIndex++;
		}
		if(changedForm){
			theForm._formChanged.value = "Y";
		}
		else{
			theForm._formChanged.value = "N";
		}
		
	} catch(error) {
		logError(error, "checkFormChanged");
	}
}

//fillDestinationAndSubmit functions
function fillDestinationAndSubmit(formName,destination) {
	try {
		
		formName._dest.value = destination;
      	formName.submit();
      	
    } catch(error) {
		logError(error, "fillDestinationAndSubmit");
	}
}

//fillMAndSubmit functions
function fillMAndSubmit(formName,mValue) {
	try	{
		
		formName.m.value = mValue;
	    formName.submit();
	    	
	} catch(error) {
		logError(error, "fillMAndSubmit");
	}
}

//openHelp functions
function openHelp(url) {
	try {
		
		var win = window.open(url, 'help', 'dependent=no,directories=no,hotkeys=no,menubar=no,personalbar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no');
		return false;
		
	} catch(error) {
		logError(error, "openHelp");
	}
}

//saveFormValues functions
function saveFormValues(theForm) {
	try {
		
		veldIndex=0;
		while(veldIndex < theForm.length){
			field = theForm.elements[veldIndex];
			//if (field.type != "button") {
			if( field.type == "checkbox" || 
				field.type == "radio" || 
				field.type == "select-one" || 
				field.type == "select-multiple" || 
				field.type == "text" || 
				field.type == "textarea"){
				if (field.type == "radio" || field.type == "checkbox") {
					field.initValue = field.checked;
				}else{
					field.initValue = field.value;
				}
			}
			veldIndex++;
		}
		
	} catch(error) {
		logError(error, "saveFormValues");
	}
}

//setFocus functions
function setFocus(field) {
	try {
		
		if (field) {
			if (field[0] && (field[0].type == "radio" || 
				field[0].type == "checkbox")) {
					if(field[0].disabled == false) {
						field[0].focus();
					}
			} else if(field.type == "text") {
				if(field.disabled == false) {
					field.focus();
					field.select();
				}
			} else {
				if(field.disabled == false) {
					field.focus();
				}
			}
			
			formFocusField = field;
			
		}
		
	} catch(error) {
		logError(error, "setFocus");
	}
}

//setFocusAndSelect
function setFocusAndSelect(formField) {
	try {
		if (formField) {
			if( formField.disabled == false) {
	 			formField.select();
				formField.focus();
				formFocusField = formField;
			}
		}
		
	} catch(error) {
		logError(error, "setFocusAndSelect");
	}
}

//showContent functions
function showContent() {
	try {
		
		document.getElementById('waitMessage').style.display = 'none';
		document.getElementById('content').style.display = 'block';
		
	} catch(error) {
		logError(error, "showContent");
	}
}

//showWaitMessage functions
function showWaitMessage() {
	try {
		
		document.getElementById('content').style.display = 'none';
		document.getElementById('waitMessage').style.display = 'block';
		
	} catch(error) {
		logError(error, "showWaitMessage");
	}
}

//showWaitSearch functions
function showWaitSearch() {
	try {
		
		document.getElementById('screenButtons').style.display = 'none';
		if (document.getElementById('screenInfo')) {
			document.getElementById('screenInfo').style.display = 'none';
		}
		if (document.getElementById('screenError')) {
			document.getElementById('screenError').style.display = 'none';
		}
		document.getElementById('searchWaitInfo').style.display = 'block';
		
	} catch(error) {
		logError(error, "showWaitSearch");
	}
}

//For displaying the stop button, when stopM is filled by the user.
function showStopButton() {
	try {
		
		document.getElementById('searchStopButton').style.display = 'block';
		document.searchStopForm.stopButton.focus();
		
	} catch(error) {
		logError(error, "showStopButton");
	}

}

//fillBehavior functions
function fillBehavior(formName,behaviorValue) {
	try {
		
      	formName.behavior.value = behaviorValue;
    
    } catch(error) {
		logError(error, "fillBehavior");
	}
}

//fillMConfirmAndSubmit functions
function fillMConfirmAndSubmit(formName, mValue, message) {
	try {
		
		confirmed = confirm(message);
    
	    if (confirmed) {
	      formName.m.value = mValue;
	      formName.submit();
	    }
	    
	} catch(error) {
		logError(error, "fillMConfirmAndSubmit");
	}
}

//fillDestinationConfirmAndSubmit functions
function fillDestinationConfirmAndSubmit(formName, destination, message) {
	try {
		
	    confirmed = confirm(message);    
	    if (confirmed) {
	      formName._dest.value = destination;
	      formName.submit();
	    }	
	    
	} catch(error) {
		logError(error, "fillDestinationConfirmAndSubmit");
	}
}

//fillParam functions
function fillParam(param,paramValue) {
	try {
		
    	param.value = paramValue;
      	
    } catch(error) {
		logError(error, "fillParam");
	}
}

//setErrorLayout functions
function setErrorLayout(field) {
	try {
		
		if ( field && field.type && 
				(field.type == "text" || 
				 field.type == "password" ||
				 field.type == "textarea" ||
				 field.type == "file" ||
				 field.type == "select-multiple" ||
				 field.type == "select-one") ) {
			if (field.className) {
				field.className += ' errorBackground';
			} else {	
				field.className = 'errorBackground';
			}
		}
		
	} catch(error) {
		logError(error, "setErrorLayout");
	}
}

function fillListMetadata(formName, mValue, listId, list, index) {
	try {
		
		formName.f_t_scrollPixels.value = document.getElementById(listId).scrollTop;
		formName._list.value = list;
		if(index) {
			formName._index.value = index;
		}
		formName.m.value = mValue;
		
	} catch(error) {
		logError(error, "fillListMetadata");
	}
}

function fillMOnEnter(form, param, e) {
	try {
		
		var code = e.keyCode;           //IE
		if (!code) code = e.charCode;   //FireFox
		
		if (code == 13) {

			form.m.value = param;
			
			form.submit();
			
			return false;
		}
		
	} catch(error) {
		logError(error, "fillMOnEnter");
	}
}
 
function selectRadio(field, e) {
	try {
		
		var code = e.keyCode;           //IE
		if (!code) code = e.charCode;   //FireFox
		
		if ((32<=code) && (code<=126)) {
			field.checked = true;
		}
		
	} catch(error) {
		logError(error, "selectRadio");
	}        
}

//textarea max length functions with boolean value
function checkLength(field,maximum,faultPresent,id){
	try {
		if(faultPresent){
			document.getElementById(id).style.display='none';
		    	field.className='errorBackground';
		}else{
		if(field.value.length>maximum){
			document.getElementById(id).style.display='block';
			field.className='errorBackground';
		}else{
			document.getElementById(id).style.display='none';
		    field.className='';
		}
		}
	} catch(error) {
		logError(error, "checkLength");
	}
}

//for sorting columns in a list
function fillListMetadataHeader(formName, destValue, sort, order, listId) {
	try {
		
		formName.t_sort.value = sort;
		formName.t_order.value = order;		
		formName.t_listId.value = listId;
		formName._from_list_sort.value = 'true';
		formName.m.value = '';
		formName._dest.value = destValue;	
		formName.target = '_self';	
		formName.submit();
		
	} catch(error) {
		logError(error, "fillListMetadataHeader");
	}
}

// To prevent the form getting submitted twice
function canConfirmAndSubmit(message){
	try {
		
		confirmed = confirm(message);
	    
	    if (!confirmed) {
	    	return false;
	    }
	    return true;
	    
	} catch(error) {
		logError(error, "canConfirmAndSubmit");
	}
}

//For Header checkbox selection
function headerCheckboxSelection(formName, groupname, headerName) {
	try {
		
		var status = 'true';
		    
		for (var i = 0; i < formName.elements.length; i++) { 
			if (formName.elements[i].type == "checkbox" && formName.elements[i].checked == false
			    && formName.elements[i].name == groupname) {
				status = 'false';
				break;   	   
			}
		} 
		 
		for (var i = 0; i < formName.elements.length; i++) {
			if (formName.elements[i].type == "checkbox" && formName.elements[i].name == headerName) {
				if(status == 'true'){
					formName.elements[i].checked = true;
				} else { 
					formName.elements[i].checked = false;
				} 	
				return;
			}
		}
		
	} catch(error) {
		logError(error, "headerCheckboxSelection");
	}
}

function storeLocationInShop() {
	try {
		
		var params = window.location.search;
		if(params && params.indexOf("f_locationInShop") != -1) {
			params = params.substring(1,params.length);
			var name = "f_locationInShop";
			var locationInShop = params.substring(17, params.length);
			document.cookie = name + "=" + locationInShop + "; path=/";		
		}
		
	} catch(error) {
		logError(error, "storeLocationInShop");
	}
}

function activateFunction(activate) {
	try {
		
		var sellerTD = document.getElementById('sellerTD');
		var butcherTD = document.getElementById('butcherTD');
		
		document.getElementById('f_function').value = activate;
		
		if(activate == 'V') {
			sellerTD.className = 'active';
			butcherTD.className = 'inactive';
		} else {
			sellerTD.className = 'inactive';
			butcherTD.className = 'active';
		}
		
	} catch(error) {
		logError(error, "activateFunction");
	}
}

function switchLogon(focusField) {
	try {
		
		document.getElementById(visibleLogon).style.display = "none";
		/*display = "" will let all kind of browsers fall back to théir default,
		for example in IE it is "block", but in FF it is "table-row" for a tr.*/
		document.getElementById(hiddenLogon).style.display = "";
		
		var tmp = visibleLogon;
		visibleLogon = hiddenLogon;
		hiddenLogon = tmp;
		tmp = visibleLegend;
		visibleLegend = hiddenLegend;
		hiddenLegend = tmp;
	
		setFocus(focusField);
		document.getElementById("theLegend").innerHTML = visibleLegend;
		
	} catch(error) {
		logError(error, "switchLogon");
	}
}

//Dynamic submit button for xlist-T429
function fillListMetadataOnEnter(e, listId) {
	try {
		
		var code = e.keyCode;           //IE
		if (!code) code = e.charCode;   //FireFox
		
		 if (code == 13) {
		  	if(document.getElementById(listId) != null){
		  		document.getElementById(listId).click();
		  		return false;
			}		
		} else{
				return true;
		}
		
	} catch(error) {
		logError(error, "fillListMetadataOnEnter");
	}
}

// end hiding of JavaScript code -->
