function gcalc_save_and_show(formId) { 
	gcalc_waiting_state(true); 
	if(gcalc_save(formId)) { 
		gcalc_get_pricelist(); 
	
	}
	else {
		gcalc_waiting_state(false); 
		getContentHight();
	
	}
}

function gcalc_save_and_next(formId) { 
	gcalc_waiting_state(true); 
	if(gcalc_save(formId)) { 
		gcalc_next(); 
	}
	else {
		gcalc_waiting_state(false); 
	}
}

function gcalc_waiting_state(wait_enabled) {
	if(wait_enabled == true) {
		document.getElementById('waitimg').style.display = "inline";
	}
	else {
		document.getElementById('waitimg').style.display = "none";
		
	}
}

function gcalc_create_http_request() {
    if (window.XMLHttpRequest) {
        httpRequest = new XMLHttpRequest();
    } 
    else if (window.ActiveXObject) {
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) {
            try {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) { }
        }
    }
    return httpRequest;
}

function gcalc_execute_http_request(httpRequest, params, asyncMode) {
	httpRequest.open("POST", "/services.php", asyncMode);
	httpRequest.setRequestHeader('Content-Type', "application/x-www-form-urlencoded; charset=ISO-8859-1");
	httpRequest.setRequestHeader("Content-length", params.length);
	httpRequest.setRequestHeader("Connection", "close");
	httpRequest.send(params); 
}

function gcalc_fetch_form_elements(formId) {
	formList  = document.forms[formId].elements;
	arguments = new Array();
	
	for(j=0; j<formList.length; j++) {
		formElement = formList[j];
		found = false;
		switch(formElement.type) {
			case "select-one":
			case "select":
				value = formElement.options[formElement.selectedIndex].value;
				found = true;
			break;
			case "checkbox":
			case "radio":
				if(formElement.checked == true) {
					value = formElement.value;
					found = true;
				}
			break;
			case "text":
			case "hidden":
				value = formElement.value;
				found = true;
			break;
			default:
			break;
		}
		if(found) {
			arguments.push(formElement.name + "=" + escape(value));
		}
	}
	return arguments.join("&");
}

function CALL_gcalc_save(groupId, moduleId, formId) {
	httpRequest = gcalc_create_http_request();
	params = (
		"groupId=" + groupId + "&" + 
		"moduleId=" + moduleId + "&" + 
		"service=SAVE&" + 
		gcalc_fetch_form_elements(formId)
	);
	gcalc_execute_http_request(httpRequest, params, false);
	
    if(httpRequest.status != 200) {
    	return false;
    }
    else if(httpRequest.responseText != "OK") {
		document.getElementById('error').innerHTML = httpRequest.responseText;
		document.getElementById('error').style.display = "block";
	//	document.getElementById('print_button').style.display = "none";
	if(moduleId!="BerechnungAbschliessen") {
		document.getElementById('ber_abschluss').style.display = "none";
	}
		return false;
	}
    else {
    	if(moduleId=="BerechnungAbschliessen") {
    		document.getElementById("moduleText").innerHTML="Ihre Berechnung ist in &bdquo;Meine Kalkulationen&rdquo; gespeichert.";
    	    document.getElementById('error').style.display = "none";
	    	document.getElementById('error').innerHTML = "";
    		//document.getElementById("newFolder").style.display = "none";
    	} else {
	    	document.getElementById('error').style.display = "none";
	    	document.getElementById('error').innerHTML = "";
	    	if(buttonOn==1) {
	    	//	document.getElementById('print_button').style.display = "block";
	    		document.getElementById('ber_abschluss').style.display = "block";
	    	} else {
	    	//	document.getElementById('print_button').style.display = "none";
	    		document.getElementById('ber_abschluss').style.display = "none";
	    	}
    	}
    	return true;   
    }
}

function CALL_gcalc_get_pricelist(groupId, moduleId) { 	
	httpRequest = gcalc_create_http_request();
	httpRequest.onreadystatechange = function() { LISTEN_gcalc_get_pricelist(httpRequest); };
	params = (
		"groupId=" + groupId + "&" + 
		"moduleId=" + moduleId + "&" + 
		"service=GET_PRICELIST"
	);
	gcalc_execute_http_request(httpRequest, params, true);
}

function LISTEN_gcalc_get_pricelist(httpRequest) { 
    if(httpRequest.readyState == 4) {
    	gcalc_waiting_state(false);
    	if(httpRequest.status == 200) {
    		document.getElementById('voucher').innerHTML = httpRequest.responseText;
    		getContentHight();
    	}
    }
}

function CALL_gcalc_last(groupId, moduleId) {	
	httpRequest = gcalc_create_http_request();
	httpRequest.onreadystatechange = function() { LISTEN_gcalc_navigation(httpRequest); };
	params = (
		"groupId=" + groupId + "&" + 
		"moduleId=" + moduleId + "&" + 
		"service=GET_LAST"
	);
	gcalc_execute_http_request(httpRequest, params, true);
}
function CALL_gcalc_next(groupId, moduleId) {	
	httpRequest = gcalc_create_http_request();
	httpRequest.onreadystatechange = function() { LISTEN_gcalc_navigation(httpRequest); };
	params = (
		"groupId=" + groupId + "&" + 
		"moduleId=" + moduleId + "&" + 
		"service=GET_NEXT"
	);
	gcalc_execute_http_request(httpRequest, params, true);
}

function CALL_gcalc_previous(groupId, moduleId) {	
	httpRequest = gcalc_create_http_request();
	httpRequest.onreadystatechange = function() { LISTEN_gcalc_navigation(httpRequest); };
	params = (
		"groupId=" + groupId + "&" + 
		"moduleId=" + moduleId + "&" + 
		"service=GET_PREVIOUS"
	);
	gcalc_execute_http_request(httpRequest, params, true);
}

function LISTEN_gcalc_navigation(httpRequest) {
    if(httpRequest.readyState == 4) {
    	gcalc_waiting_state(false);
    	if(httpRequest.status == 200 && httpRequest.responseText.length > 0) {
    		document.location.href = (httpRequest.responseText);
    	}
    }	
}
function setColor(pgid) {
	color = "";
	switch(pgid) {
			case "pg_3": color ="#6D1F80";
		break;
			case "pg_4": color ="#063E81";
		break;
			case "pg_5": color ="#E2007A";
		break;
			case "pg_calc": color ="#797979";
		break;
			default:color ="#85B519";
		break;
	}
	document.getElementById(pgid).style.backgroundColor=color;
}
function removeColor(pgid) {
	document.getElementById(pgid).style.backgroundColor="#8C8C8C";
}
function Ausdruck(gid,mid) {
	voucherwindow = window.open("popups/voucher.php?groupId="+gid+"&moduleId="+mid,"Ausdruck","width=635,height=550,scrollbars=yes");
	voucherwindow.focus();
}
function openWindow(URL) {
	FensterPopup = window.open(URL,"Ausdruck","width=655,height=300,scrollbars=yes");
	FensterPopup.focus();
}
function resizeWin() {
	hoehe = document.getElementById('content_popup').offsetHeight +100
	if(hoehe>700) {
		hoehe = 700;
	}
	if(hoehe<=300) {
		hoehe = 300;
	}
	
	window.resizeTo(670,hoehe);
}
function chvalue() {
	if(document.druckausgleich.druckausgleich.checked==true) {
		document.druckausgleich.druckausgleich.value = 1;
	}
	else {
		document.druckausgleich.druckausgleich.value = 0;
	}
}
function chvalue_versiegelung(nr) {
	if(nr==1) {
		if(document.versiegelung.versiegelung_1.checked==true) {
			document.versiegelung.versiegelung_1.value = 1;
		}
		else {
			document.versiegelung.versiegelung_1.value = 0;
		}
	} else {
		if(document.versiegelung.versiegelung_2.checked==true) {
			document.versiegelung.versiegelung_2.value = 1;
		}
		else {
			document.versiegelung.versiegelung_2.value = 0;
		}		
	}
}
function hintergrund(id) {
	document.getElementById(id).style.backgroundColor='#e6e6e6';
}
function resetColor(mid,ch) {
	if(document.modellform.modell_id.value != mid || ch==true) {
		document.getElementById(mid).style.backgroundColor='#ffffff';
	} else {
		document.getElementById(mid).style.backgroundColor='#e6e6e6';
	}
}
function getContentHight() {

	if (document.getElementById("rest_links").style.height==0) {
		if(document.getElementById("contentbereich").offsetHeight <= 466) {
			contentHeight = 466
		} else {
			contentHeight = document.getElementById("contentbereich").offsetHeight;
		}
		if((hoehe = contentHeight - document.getElementById("menue").offsetHeight)<50) {
			document.getElementById("rest_links").style.height= 50 -hoehe +15;
		} else {
			document.getElementById("rest_links").style.height= hoehe+15;
		}
		
	} 
	document.getElementById("rest_links").style.display="block";
}
function getContentHight_startseite() {
	if (document.getElementById("rest_links").style.height==0) {
		if((hoehe = document.getElementById("uebersicht").offsetHeight - document.getElementById("menue").offsetHeight)<50) {
			document.getElementById("rest_links").style.height= 50 -hoehe;
		} else {
			document.getElementById("rest_links").style.height= hoehe;
		}
	}
	document.getElementById("rest_links").style.display="block";
}