	function getElemById(elemtype, divId) {
		if (document.getElementById) {
			if (document.getElementById(divId) != null) {
				return document.getElementById(divId);
			}
		}
		
		// SAFARI SAFENET
		var divs = document.getElementsByTagName(elemtype);
		var target_div;
		
		for (i=0; i < divs.length; i++) {	
			var check_div = divs.item(i);
			var check_id = check_div.id;

			if (check_id == divId) {			
				target_div = divs.item(i);
			}
		}
		
		if (target_div != null) {		
			return target_div;
		}
		else {		
		
	  		if (window.console) {	  		
	  			window.console.log("getElemById:: element not found: " + divId);
	  		}
		}
		return null;	
	}
	
	function getInnerHTML(divId) {	
		return getInnerElementHTML(divId, "div");
	}
	
	function getInnerElementHTML(elementId, elementTag) {
		if (document.getElementById) {
			if (document.getElementById(elementId) != null) {
				return document.getElementById(elementId).innerHTML;
			}
			// try something else ... 
			// BELANGRIJK SCRIPT -- voor compatibiliteit SAFARI
			var elements = document.getElementsByTagName(elementTag);
			var target_element;
			
			for (i=0; i < elements.length; i++) {		
				var check_element = elements.item(i);
				var check_id = check_element.id;

				if (check_id == elementId) {				
					target_element = elements.item(i);
				}
			}
			
			if (target_element != null) {			
				return target_element.innerHTML;
			}
			else {			
	  			if (window.console) {	  		
	  				window.console.log("getInnerHTML:: element not found: " + elementId);
	  			}
			}
		}	
		return "";
	}
	
	function changeInnerElementHTML(elementId, html, elementTag) {
		// check if browser supports W3C (current browsers)
		if (document.getElementById) {
			if (document.getElementById(elementId) != null) {
				//alert('test');
		  		document.getElementById(elementId).innerHTML = html;
		  		//alert('testEnd');
	  		}
	  		else {	  	
				// BELANGRIJK SCRIPT -- voor compatibiliteit SAFARI
				var elements = document.getElementsByTagName(elementTag);
				var target_element;
				
				for (i=0; i < elements.length; i++) {			
					var check_element = elements.item(i);
					var check_id = check_element.id;
	
					if (check_id == elementId) {					
						target_element = elements.item(i);
					}
				}
				
				if (target_element != null) {				
					target_element.innerHTML = html;
				}
				else {	  		  	
		  			if (window.console) {		  		
		  				window.console.log("changeInnerHTML:: element is null: " + elementId);
		  			}
		  		}	  	
	  		}
		}
		else {
			// check if browsers supports DHTML (older browsers)
			if (document.all || document.layers) {				
		  		document.layers[elementId].document.open();
		    	document.layers[elementId].document.write(html);
		    	document.layers[elementId].document.close();
		  	}
		}
	}
	
	function changeInnerHTML(divId, html){
		changeInnerElementHTML(divId, html, "div");
	}

	function doAction(action) {
		if (document.getElementById) {
			document.getElementById("action").setAttribute("value", action);
			navigate();
		}
	}
	
	function doActionWithUpload(action) {
		if (document.getElementById) {
			getElemById("form", "mainForm").encoding = "multipart/form-data";
			document.getElementById("action").setAttribute("value", action);
			navigate();
		}
	}	
	
	function doBackAction(action) {
		if (document.getElementById) {
			document.getElementById("action").setAttribute("value", action);
			navigateBack();
		}
	}
	
	function navigate() {		
		if (document.getElementById) {
			disableButtons();
			closePdfWindows();
			getElemById("form", "mainForm").target = "_self";
			getElemById("form", "mainForm").submit();
		}
	}
	
	function navigateBack() {	
		if (document.getElementById) {		
			disableButtons();
			closePdfWindows();
			getElemById("form", "mainForm").target = "_self";
			document.getElementById("backAction_").setAttribute("value", "true");
			getElemById("form", "mainForm").submit();
		}
	}
	
	function goToPage(page) {
		if (document.getElementById) {
			disableButtons();
			closePdfWindows();
			getElemById("form", "mainForm").target = "_self";
			document.location = page;
		}
	}
	
	function displayPdf(action) {	
		if (document.getElementById) {	
			document.getElementById("transactionToken_").setAttribute("value", "");
			document.getElementById("action").setAttribute("value", action);
			
			getElemById("form", "mainForm").target = "pdfWindow";
			
			if (document.getElementById("pdfWindow") != null) {												
				if (document.getElementById("pdfWindow").getAttribute("value") == "Y") {				
					win = window.open("", 'pdfWindow');
					if (!win.closed && win.location.href) {
						win.close();
					}
				}
				document.getElementById("pdfWindow").setAttribute("value", "Y");
			}
			
			getElemById("form", "mainForm").submit();
		}
	}
	
	function displayPdfFromList(action, offerId) {
		if (document.getElementById) {		
			document.getElementById("listIndex").setAttribute("value", offerId);
			displayPdf(action);
		}
	}
	
	function disableButtons() {	
		if (document.getElementById) {		
			changeInnerHTML("buttons", patiencePlease);
			
			var stop = false;
			for (i = 0 ; i < 150 && !stop ; i++) {
				var bId = "buttons" + i;
				if (document.getElementById(bId) != null) {			
					var repl = patiencePlease.substring(0, patiencePlease.lastIndexOf(".") + 1);
					changeInnerHTML(bId, repl);
				}
				else
					stop = true;
			}
		}
	}
	
	function closePdfWindows() {
		var pdfForm = getElemById("form", "pdfForm");
		if (pdfForm != null) {
			for (var i = 0 ; i < pdfForm.length ; i++) {
				if (pdfForm.elements[i].getAttribute("value") == 'Y') {
					win = window.open("", pdfForm.elements[i].name);
					if (!win.closed && win.location.href)
						win.close();
				}
			}
		}
	}
	
	function newIButtonWindow(mypage, size) {
		newEccentWindow(mypage, 'infoWindow', size);
	}
	
	function newCalculatorWindow(mypage, size) {
		newEccentWindow(mypage, 'calculator', size);
	}
	
	function newChartWindow(mypage, size) {
		newEccentChartWindow(mypage, size);
	}
	
	function newEccentWindow(mypage, targetName, size) {
		w = 600;
		h = 330;
		
		if (size == "medium")
			h = 375;
		else if (size == "large")
			h = 500;
		else if (size == "xlarge")
			h = 625;
		else if (size == "xxlarge")
			h = 750;
		else if (size == "full") {
			w = screen.width;
			h = screen.height;
		}	
			
	 	myleft = (screen.width)?(screen.width-w)/2:100;
	  	mytop = (screen.height)?(screen.height-h)/2:100;
	 
	 	settings = "width=" + w + ",height=" + h + ",top=" + mytop + ",left=" + myleft + ",scrollbars=1,location=0,directories=0,status=0,menubar=0,toolbar=0,resizable=0";
	 	
	 	window.open(mypage, targetName, settings);
	}
	
	function newEccentChartWindow(mypage, size) {
		w = 600;
		h = 380;

		if (size == "large") {
			w = 800;
			h = 450;
		}
		else if (size == "xlarge") {
			w = 800;
			h = 465;
		}
		else if (size == "xxlarge") {
			w = 900;
			h = 650;
		}
		else if (size == "full") {
			w = screen.width;
			h = screen.height;
		}	
			
	 	myleft = (screen.width)?(screen.width-w)/2:100;
	  	mytop = (screen.height)?(screen.height-h)/2:100;
	 
	 	settings = "width=" + w + ",height=" + h + ",top=" + mytop + ",left=" + myleft + ",scrollbars=1,location=0,directories=0,status=0,menubar=0,toolbar=0,resizable=0";
	 	
		window.open(mypage, 'chart', settings);
	}
