// Initialisiert das neue AJAX-Request Objekt
// var resObject = new YAHOO.encoway.Request();

var tab_pane_model_div = "tab_pane_model_div";

/*
 * Generic implementation of an ajax controller call
 *
 * To specify is:
 *
 * 1.) the url to a controller
 * 2.) parameters
 * 3.) a callback function pointer with one parameter (the result text )
 */
function callController( controller_url, parameters, call_back_function_pointer, sessionid )
{
	callControllerGeneric( controller_url, parameters, call_back_function_pointer, callController_extract_content, sessionid );
}

/*
 * Generic implementation of an ajax controller call
 *  will get an DOM-Representation of the result and pass it to the callback-function
 *
 * To specify is:
 *
 * 1.) the url to a controller
 * 2.) parameters
 * 3.) a callback function pointer with one parameter (the result text )
 */
function callControllerExtractDom( controller_url, parameters, call_back_function_pointer, sessionid )
{
	callControllerGeneric( controller_url, parameters, call_back_function_pointer, callController_extract_DOM, sessionid  );
}

function callControllerGeneric( controller_url, parameters, call_back_function_pointer, extraction_function, sessionid )
{
	
	// create 'ajax' http object
	var xmlHttp = null;
	
	// Mozilla, Opera, Safari sowie Internet Explorer 7
	if (typeof XMLHttpRequest != 'undefined') 
	{
    		xmlHttp = new XMLHttpRequest();
	}

	if (!xmlHttp) 
	{
	    	// Internet Explorer 6 und aelter
    		try 
		{
	       		xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) 
		{
        		try 
			{
				xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) 
			{
				xmlHttp  = null;
			}
		}
	}
	
	if( xmlHttp ) 
	{
        if (sessionid != null)
            url = controller_url + ';jsessionid=' + sessionid;
        /*
		if ( sessionid == null ){
			var url = controller_url + parameters;
		} else {
			var url = controller_url + ';jsessionid=' + sessionid; // + parameters;
		}*/
        
		xmlHttp.open('POST', url , false); // sync
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");                        

		try{
			xmlHttp.send(parameters);
		} catch(e){
//			alert("error with url: " + url+ " exception: " + e);
		}
        //alert("hier");
		if (xmlHttp.responseText.indexOf('abb_error_page_body') == -1) {
			var content = extraction_function( xmlHttp.responseText );
		

            if (call_back_function_pointer != null ) 
            {
			    call_back_function_pointer( content, sessionid );
            }
		} else {
			window.location.href= "error_page.html";
		}

	}
}


/**Klaeren ob  noch benoetigt...*/
function callControllerForTooltip( controller_url, parameters, call_back_function_pointer, extraction_function, sessionid, element )
{
	// create 'ajax' http object
	var xmlHttp = null;
	
	// Mozilla, Opera, Safari sowie Internet Explorer 7
	if (typeof XMLHttpRequest != 'undefined') 
	{
    		xmlHttp = new XMLHttpRequest();
	}

	if (!xmlHttp) 
	{
	    	// Internet Explorer 6 und aelter
    		try 
		{
	       		xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) 
		{
        		try 
			{
				xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) 
			{
				xmlHttp  = null;
			}
		}
	}
	
	if( xmlHttp ) 
	{
        if (sessionid != null)
            url = controller_url + ';jsessionid=' + sessionid;
        /*
		if ( sessionid == null ){
			var url = controller_url + parameters;
		} else {
			var url = controller_url + ';jsessionid=' + sessionid; // + parameters;
		}*/
        
		xmlHttp.open('POST', url , false); // sync
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");                        

		try{
			xmlHttp.send(parameters);
		} catch(e){
//			alert("error with url: " + url+ " exception: " + e);
		}
        
        var content = extraction_function( xmlHttp.responseText );

            if (call_back_function_pointer != null ) 
            {
			    call_back_function_pointer( content, sessionid, element );
            }

	}
}

function getElementText (element) {
	if (element != null) { 
		if (typeof element.textContent != 'undefined') { 
			return element.textContent;
		} 
		else if (typeof element.text != 'undefined') { 
			return element.text;	
		} 
	}
	return null;
}

function encodeEntity(string)
{
    return string.replace(/&/g,"&amp;").
        replace(/</g,"&lt;").
        replace(/>/g,"&gt;").
        replace(/'/g,"&apos;").
        replace(/"/g,"&quot;");
}


function domToString(dom)
{
    
    if (dom.nodeType == dom.ELEMENT_NODE) {
        var ret, i;

    
        if (dom.type == 2)
            return "</" + dom.nodeName + ">";    
        ret = "<" + dom.nodeName;


        for (i = 0; i < dom.attributes.length; i++) {
            ret += " " + dom.attributes[i].nodeName +
                "='" + encodeEntity(dom.attributes[i].nodeValue) + "'";
        }
        
        if (dom.hasChildNodes()) {
            ret += ">";

            for (i = 0; i < dom.childNodes.length; i++)
                ret += domToString(dom.childNodes[i]);

            if (dom.type != 1)
                ret += "</" + dom.nodeName + ">";
        } else if (dom.type != 1)
            ret += "/>";
        else
            ret += ">";
        return ret;
    } else      
        return encodeEntity(dom.nodeValue);
}


function callController_extract_content( response_text )
{
    var htmlDocument;

	var htmlDocument = dojo.dom.createDocumentFromText(response_text );
	var bodyElement = htmlDocument.getElementsByTagName( "body" )[0];

	var returnValue = null;
	if ( bodyElement != null && bodyElement.innerHTML != null  && bodyElement.innerHTML != 'undefined' )
		returnValue = bodyElement.innerHTML;
//	if ( return_value == null || return_value == 'undefined' )
//		return_value = getElementText (element);
//	var return_value = domToString(element);
//	var decoded = decodeURIComponent( return_value );
	var decoded = returnValue ;

//	alert ( "htmlDocument: " + htmlDocument);


	if ( decoded != null && decoded != 'undefined' )
		return decoded;
//	else
		//alert( "Warning: Parsing String: " + response_text );

	/*
	 * Als erstes suchen wir uns das passende div Tag
	 */

	var beginning	= response_text.indexOf( "<body>" ) + 6;
	var end			= response_text.indexOf( "</body>" );


	if( beginning != -1 && end != -1 )
	{
		var encoded_text = response_text.substring(beginning, end); 

		encoded_text = encoded_text.replace(/\n/g, "");
		encoded_text = encoded_text.replace(/\r/g, "");

		var div_text	= encoded_text;
		try
		{
			encoded_text 	= decodeURIComponent( encoded_text  );
			div_text = encoded_text;
		}
		catch( e )
		{
		}
		//var div_text	=  response_text.substring(beginning, end) ;
		return div_text;
	}
	return "";
}

function callController_extract_DOM( response_text )
{
	var htmlDocument;
    
	var htmlDocument = dojo.dom.createDocumentFromText( response_text );
	var element = htmlDocument.getElementsByTagName( "body" )[0];
	element = element.firstChild;

	return element;
}



	var SEPERATOR_ITEM				= "|";
	var SEPERATOR_ITEM_OPTIONS	= "~";

	var NO_VALUE_STRING			="none";

	/*
	 * Generic manipulation methods
	 */

	function callbackUpdateContentDiv( result_text )
	{  
        if(result_text.indexOf("fehler-seite") > 0)
        {
		    var current_ctrl = document.getElementsByTagName( "body" )[0];
        }
        else
        {
            var current_ctrl = document.getElementById("orimaster_conf_scrollable_div");
        }
		if( current_ctrl != null && current_ctrl != 'undefined' )
		{
			current_ctrl.innerHTML = result_text;
            var scriptCollection = current_ctrl.getElementsByTagName("script");
            for (i = 0; i < scriptCollection.length; i++)
            {
                eval(scriptCollection[i].innerHTML);
            }
		}
        /* dieser Funktionsaufruf ist nötig, da das Produktbild sonst bei der Auswahl nach oben springt und nicht an der Position stehen bleibt */
        scrollableProductImage();
         /* dieser Funktionsaufruf ist noetig, damit die yui Tooltips geladen werden*/
        init_tooltips();
	}
    
    function callbackUpdateTabPaneModelDiv(result_text)
    {
        if(result_text.indexOf("fehler-seite") > 0)
        {
		    var current_ctrl = document.getElementsByTagName( "body" )[0];
        }
        else
        {
        var current_ctrl = document.getElementById("tab_pane_model_div");
            var beginning	= result_text.indexOf( '<div id="tab_pane_model_div">' ) + 29;
	        var end			= result_text.lastIndexOf( "</div>" );
    	    if( end != -1 )
            {
                    var encoded_text = result_text.substring(beginning, end); 
            }
        }
        
        if (current_ctrl != null && current_ctrl != 'undefined')
        {
            current_ctrl.innerHTML = encoded_text;
            var scriptCollection = current_ctrl.getElementsByTagName("script");
            for (i = 0; i < scriptCollection.length; i++)
            {
                eval(scriptCollection[i].innerHTML);
            }
        }
        /* dieser Funktionsaufruf ist noetig, damit die yui Tooltips geladen werden*/
        init_tooltips();
    }
     
    
    function callbackUpdateLevelTwoDiv(result_text)
    {
        if(result_text.indexOf("fehler-seite") > 0)
        {
		    var current_ctrl = document.getElementsByTagName( "body" )[0];
        }
        else
        {
            var current_ctrl = document.getElementById("tab_pane_model_div_level_2");
            var beginning	= result_text.indexOf( '<div id="tab_pane_model_div_level_2">' ) + 37;
	        var end			= result_text.lastIndexOf( "</div>" );
    	    if( beginning != 26 && end != -1 )
            {
                    var encoded_text = result_text.substring(beginning, end); 
            }
        }
        if (current_ctrl != null && current_ctrl != 'undefined')
        {
            current_ctrl.innerHTML = encoded_text;
            var scriptCollection = current_ctrl.getElementsByTagName("script");
            for (i = 0; i < scriptCollection.length; i++)
            {
                eval(scriptCollection[i].innerHTML);
            }
            
        }
    }

	function processError( result_dom, sessionid )
	{
        if (result_dom.nodeName == "error"){
            var childs = result_dom.childNodes;
            var error_state = "";
            var error_dyn_para_model = "";
            var error_dyn_para_model_unit = "";
            var error_dyn_para_model_min = "";
            var error_dyn_para_model_max = "";
            var error_title = "";
            
            for (var i = 0; i < childs.length; ++i){
                var node = childs.item(i);
                if (node.firstChild == null) continue;
                if ((node.nodeName == "error_state")){
                    error_state = node.firstChild.nodeValue;
                }
                if (node.nodeName == "error_dyn_para_model"){
                    error_dyn_para_model = node.firstChild.nodeValue;
                }
                if (node.nodeName == "error_dyn_para_model_unit"){
                    error_dyn_para_model_unit = node.firstChild.nodeValue;
                }
                if (node.nodeName == "error_dyn_para_model_min"){
                    error_dyn_para_model_min = node.firstChild.nodeValue;
                }
                if (node.nodeName == "error_dyn_para_model_max"){
                    error_dyn_para_model_max = node.firstChild.nodeValue;
                }
                if (node.nodeName == "error_title"){
                    error_title = node.firstChild.nodeValue;
                }
            }    

            if (error_state != null && error_state != ""){
                if (error_state == "invalid_input") {
                    invalidInputToggleVis ( decodeURIComponent(error_title), "master_tab_pane_model_invalid_input_form.kly;jsessionid=" + sessionid );
                } else if (error_state == "equalize_range_failed") {
                    adviceDivToggleVis(decodeURIComponent(error_title), "calculation_results,advice_div.kly;jsessionid=" + sessionid );
                }
            }

        }
	}
    
    function ChangeSelectedTab(tab_pane_model_name, selected_tab, sessionid)
    {
        

		// resObject.asyncUpdate(tab_pane_model_div, "master_tab_pane_model_controller_change_selected_tab.kly" + ";jssessionid=" + sessionid + "?" + "tab_pane_model_name=" + tab_pane_model_name + "&select_tab=" + selected_tab, callback, true);
		callController('master_tab_pane_model_controller_change_selected_tab.kly',
            'tab_pane_model_name=' + tab_pane_model_name + '&select_tab=' + selected_tab,
            callbackUpdateTabPaneModelDiv, sessionid);
         set_current_height();
        /* dieser Funktionsaufruf ist noetig, damit die yui Tooltips geladen werden*/
         init_tooltips();
    }
    
    function SetParameterValueByName(controller_name,attributes, sessionid)
    {
        

		// resObject.asyncUpdate(tab_pane_model_div, "master_tab_pane_model_controller_change_selected_tab.kly" + ";jssessionid=" + sessionid + "?" + "tab_pane_model_name=" + tab_pane_model_name + "&select_tab=" + selected_tab, callback, true);
		callController(controller_name,
            attributes,
            callbackUpdateTabPaneModelDiv, sessionid);
         set_current_height();
        /* dieser Funktionsaufruf ist noetig, damit die yui Tooltips geladen werden*/
         init_tooltips();
    }
    
    
    function ChangeSelectedTabLevelTwo(tab_pane_model_name, selected_tab, sessionid)
    {
        callController('master_tab_pane_model_controller_change_selected_tab_level_2.kly',
            'tab_pane_model_name=' + tab_pane_model_name + '&select_tab=' + selected_tab,
            callbackUpdateLevelTwoDiv, sessionid);
        set_current_height();       
        /* dieser Funktionsaufruf ist noetig, damit die yui Tooltips geladen werden*/
        init_tooltips();
    }
	
//	var callback = {
//		success : function(){
//			set_current_height();
//			init_tooltips();
//		}
//	}

	function SetDynamicParameter( dynamic_parameter_id, redirect_url, sessionid,  process_error /* = true */)
	{
		if (process_error == null || process_error == 'undefined') 
            process_error = '&process_error=true';
        else
            process_error = '&process_error=false';
        
		var current_ctrl = document.getElementsByName( dynamic_parameter_id )[0];

		var current_value = '';

		if( current_ctrl != null && current_ctrl != 'undefined' )
		{
			if( current_ctrl.type == 'select-one' )
				current_value = current_ctrl.options[ current_ctrl.options.selectedIndex ].value;
			else
				current_value = current_ctrl.value;
		}

		callController( 'master_dynamic_parameter_controller_controller_set_dynamic_parameter_value_redirect.kly', 
            'dynamic_parameter_id=' +  encodeURIComponent(dynamic_parameter_id) + '&dynamic_parameter_value=' +  encodeURIComponent(current_value) + '&redirect_url=' +  encodeURIComponent(redirect_url) + process_error, 
            callbackUpdateContentDiv, 
            sessionid  );
        callControllerExtractDom( 'master_dynamic_parameter_controller_controller_get_error_state.kly', '', processError, sessionid  );
	}
	
	function SetDynamicParameterRadioButton( dynamic_parameter_id, radio_button_id, redirect_url, sessionid )
	{
		var current_ctrl = document.getElementsByName( radio_button_id )[0];

		var current_value = '';

		if( current_ctrl != null && current_ctrl != 'undefined' )
		{
			if( current_ctrl.type == 'select-one' )
				current_value = current_ctrl.options[ current_ctrl.options.selectedIndex ].value;
			else
				current_value = current_ctrl.value;
		}

		callController( 'master_dynamic_parameter_controller_controller_set_dynamic_parameter_value_redirect.kly', 'dynamic_parameter_id=' + dynamic_parameter_id + '&dynamic_parameter_value=' + escape(current_value) + '&redirect_url=' + redirect_url, callbackUpdateContentDiv, sessionid  );
        callControllerExtractDom( 'master_dynamic_parameter_controller_controller_get_error_state.kly', '', processError, sessionid  );
	}
	
    function SetAbsoluteGaugeSwitchRadioButton( parameter_name, radio_button_name, dynamic_parameter_model_name, parameter_name_absolute, parameter_name_gauge, redirect_url, sessionid )
    {
		var current_ctrl = document.getElementsByName( radio_button_name )[0];

		var current_value = '';

		if( current_ctrl != null && current_ctrl != 'undefined' )
		{
			if( current_ctrl.type == 'select-one' )
				current_value = current_ctrl.options[ current_ctrl.options.selectedIndex ].value;
			else
				current_value = current_ctrl.value;
		}
		callController('master_absolute_gauge_switch_controller_switch_between_absolute_and_gauge.kly', 'parameter_name=' + parameter_name +
                       '&parameter_value=' + escape(current_value) + '&dynamic_parameter_model_name='+ dynamic_parameter_model_name +
                       '&parameter_name_absolute=' + parameter_name_absolute + '&parameter_name_gauge=' + parameter_name_gauge +
                       '&redirect_url=' + redirect_url, callbackUpdateContentDiv, sessionid);

	}
    
    function SetMetricUsUkRadioButton( radio_button_name, redirect_url, sessionid )
	{
		var current_ctrl = document.getElementsByName( radio_button_name )[0];

		var current_value = '';

		if( current_ctrl != null && current_ctrl != 'undefined' )
		{
			if( current_ctrl.type == 'select-one' )
				current_value = current_ctrl.options[ current_ctrl.options.selectedIndex ].value;
			else
				current_value = current_ctrl.value;
		}
		callController( 'master_metric_us_uk_switch_controller_switch_between_metric_and_us_uk.kly', 'parameter_value=' + escape(current_value) + '&redirect_url=' + redirect_url, callbackUpdateContentDiv, sessionid  );
    }
    
    function SetAddGasButton(redirect_url, sessionid)
    {
        callController( 'master_sensyflow_controller_add_new_gas.kly', 'redirect_url=' + redirect_url, callbackUpdateContentDiv, sessionid);
    }
    
    function SetSensyflowDeleteGasButton(delete_param_model, redirect_url, sessionid)
    {
        callController('master_sensyflow_controller_delete_gas.kly','delete_param_model_name=' + delete_param_model + '&redirect_url=' + redirect_url, callbackUpdateContentDiv, sessionid);
    }
    
    function SetDynamicParameterNoUndo( dynamic_parameter_id, redirect_url, sessionid )
    { 
        if(redirect_url != null && redirect_url != ''){
		    var current_ctrl = document.getElementsByName( dynamic_parameter_id )[0];

		    var current_value = '';

            if( current_ctrl != null && current_ctrl != 'undefined' )
            {
                if( current_ctrl.type == 'select-one' )
                    current_value = current_ctrl.options[ current_ctrl.options.selectedIndex ].value;
                else
                    current_value = current_ctrl.value;
		    }
        callController( 'master_dynamic_parameter_controller_controller_set_dynamic_parameter_value_no_undo.kly', 'dynamic_parameter_id=' +  encodeURIComponent(dynamic_parameter_id) + '&dynamic_parameter_value=' +  encodeURIComponent(current_value) + '&redirect_url=' + redirect_url, null, sessionid)
        }
    }
    
    function SetDynamicParameterNoUndo2( dynamic_parameter_id, redirect_url, sessionid )
    { 
        if(redirect_url != null && redirect_url != ''){
		    var current_ctrl = document.getElementsByName( dynamic_parameter_id )[0];

		    var current_value = '';

            if( current_ctrl != null && current_ctrl != 'undefined' )
            {
                if( current_ctrl.type == 'select-one' )
                    current_value = current_ctrl.options[ current_ctrl.options.selectedIndex ].value;
                else
                    current_value = current_ctrl.value;
		    }
        callController( 'master_dynamic_parameter_controller_controller_set_dynamic_parameter_value_no_undo.kly', 'dynamic_parameter_id=' +  encodeURIComponent(dynamic_parameter_id) + '&dynamic_parameter_value=' +  encodeURIComponent(current_value) + '&redirect_url=' + redirect_url, callbackUpdateContentDiv, sessionid)
        callControllerExtractDom( 'master_dynamic_parameter_controller_controller_get_error_state.kly', '', processError, sessionid  );
        }
    }
    
    function SetDynamicParameterNoUndo2ForEnter( dynamic_parameter_id, redirect_url, sessionid, event )
    {
        if(event.keyCode == 13)
            SetDynamicParameterNoUndo2( dynamic_parameter_id, redirect_url, sessionid )
    }
    

	function SetDynamicParameterForEnter( dynamic_parameter_id, redirect_url, event, sessionid )
	{
	       if (event.keyCode == 13) {
			SetDynamicParameter( dynamic_parameter_id, redirect_url, sessionid );
		}
	}

	function SetDynamicParameterWithUnit( dynamic_parameter_id, unit_box_name, redirect_url, sessionid )
	{
		var selected_value;
		var current_value;
		var current_ctrl    = document.getElementsByName( dynamic_parameter_id )[0];
		var unit_box_ctrl = document.getElementsByName( unit_box_name)[0];

		// Aktuell gewaehlte Einheit ermitteln
		if( unit_box_ctrl != null && unit_box_ctrl != 'undefined' )
		{
			selected_value = unit_box_ctrl.options[ unit_box_ctrl.options.selectedIndex ].value;
		} else {
			return;
		}

		if( current_ctrl != null && current_ctrl != 'undefined' )
		{
			if( current_ctrl.type == 'select-one' )
				current_value = current_ctrl.options[ current_ctrl.options.selectedIndex ].value;
			else
				current_value = current_ctrl.value;
		} else {
			return;
		}


		callController( 
			'master_dynamic_parameter_controller_controller_set_dynamic_parameter_value_redirect.kly', 
			'dynamic_parameter_id=' + encodeURIComponent(dynamic_parameter_id) + '&dynamic_parameter_value=' + encodeURIComponent(current_value) + "&dynamic_parameter_unit=" + encodeURIComponent(selected_value) + '&redirect_url=' + encodeURIComponent(redirect_url), 
			callbackUpdateContentDiv, 
			sessionid  );
        callControllerExtractDom( 'master_dynamic_parameter_controller_controller_get_error_state.kly', '', processError, sessionid  );
	}

	function SetDynamicParameterWithUnitForEnter( dynamic_parameter_id, unit_box_name, redirect_url, event, sessionid )
	{
	       if (event.keyCode == 13) {
			SetDynamicParameterWithUnit( dynamic_parameter_id, unit_box_name, redirect_url, sessionid );
		}
	}

	function UndoDynamicParameter( dynamic_parameter_id, redirect_url, sessionid )
	{
		callController( 'master_dynamic_parameter_controller_controller_undo_dynamic_parameter_value_redirect.kly', 'dynamic_parameter_id=' + dynamic_parameter_id + '&redirect_url=' + redirect_url, callbackUpdateContentDiv, sessionid  );
	}
	
    function SetFirewallDivShowState(object, sessionid)
    {   
        var value = object.checked;        
        callController('master_firewall_warning_div_controller_set_firewall_warning_div_show_state.kly', 'div_show_state='+value, callbackUpdateContentDiv, sessionid);
    }
    
    function CodeStringErrorDivToggleVis ( title, href ) {
	    var target = dojo.widget.getWidgetById("code_string_parser_error_msgs");
        
	    if ( target != null && target != 'undefined' ) {	
			target.destroy();
	    } else {
            createDojoWindow( decodeURIComponent(title), 'code_string_parser_error_msgs', href, '600px', '580px', true );
	    }
    }
    
    function ParseCodeStringForEnter( dpm_container_name,translation_container,code_parameter_name,td_list_name, sessionid, id , event, redirect_url )
	{
        if (event.keyCode == 13) {
			ParseCodeString( dpm_container_name,translation_container,code_parameter_name,td_list_name, sessionid, id , redirect_url);
		}
	}
    
    function ParseCodeString( dpm_container_name,translation_container,code_parameter_name,td_list_name, sessionid, id , redirect_url)
	{
        var order_code_box = document.getElementsByName( 'order_code_box'+id )[0].value;        
		callController( 'master_code_string_parser_controller_parse_string.kly',
        'redirect_url='+encodeURIComponent(redirect_url)+'&dpm_container_name=' + dpm_container_name + '&translation_container=' + translation_container+'&order_code_box='+encodeURIComponent(order_code_box)+'&code_parameter_name='+code_parameter_name+'&td_list_name='+td_list_name+'&id='+id,
        callbackUpdateContentDiv, sessionid  );
        set_current_height();    
        
	        
	}
    
    
    
	/*
	 * HELPER FUNCTIONS
	 */
	function createJavaConformId( id )
	{
		var result_new_param_name = id.replace( /:/g , "_" );
		result_new_param_name     = result_new_param_name.replace( /-/g , "_" );

		return result_new_param_name;
	}


	/*
	 * CALLBACKS
	 */

	/*
	 * called in case the set value controller returns
	 */


function resetToggleVis ( title, href ) {
	var target = dojo.widget.getWidgetById("reset_dialog");
	if ( target != null && target != 'undefined' ) {	
			target.destroy();
	} else {
        createDojoWindow( decodeURIComponent(title), "reset_dialog", href, "350px", '', true );
	}
}

function firewallWarningToggleVis( title, href, height ) {
	var target = dojo.widget.getWidgetById("firewall_warning_dialog");
	if ( target != null && target != 'undefined' ) {	
			target.destroy();
	} else { 
        createDojoWindow( title, "firewall_warning_dialog", href, "400px", height, false );
	}
}

function exportToggleVis ( title, href ) {
	var target = dojo.widget.getWidgetById("export_dialog");
	if ( target != null && target != 'undefined' ) {	
			target.destroy();
	} else {
		createDojoWindow( title, "export_dialog", href, "350px", '', true );
	}
}

function adviceDivToggleVis ( title, href ) {
	var target = dojo.widget.getWidgetById("advice_div");
	if ( target != null && target != 'undefined' ) {	
			target.destroy();
	} else {
        createDojoWindow( title, "advice_div", href, "350px", '', true );        
	}
}

function loadToggleVis ( title, href, font ) {

	var target = dojo.widget.getWidgetById("load_dialog");
	if ( target != null && target != 'undefined' ) {	
			target.destroy();
	} else {
        createDojoWindow( title, "load_dialog", href, "520px", '', true );
		
	}
	
}


function invalidInputToggleVis ( title, href ) {
	var target = dojo.widget.getWidgetById("invalid_input_dialog");
	if ( target != null && target != 'undefined' ) {	
			target.destroy();
	} else {
        createDojoWindow( title, "invalid_input_dialog", href, "400px", '', true );        
	}
}

function helpToggleVis (title, href, width, height){
    var target = dojo.widget.getWidgetById("help_dialog");
    if ( target != null && target != 'undefined' ) {	
			target.destroy();
	} else {
        createDojoWindow( title, "help_dialog", href, width, height,  true );        
	}
}
/***************************************************************************
Die Funktion aendert die Schriftgroesse der ganzen Seite.
Der Parameter der vollstaendige Pfad, wo sich die cssDatei befindet.
***************************************************************************/
//var global_font_size_pfad;
function setFontSize(css_pfad, tab_pane_model_name, sessionid )
{
   	call_individual_specific_project_start_function_for_set_font_size(css_pfad);
    var elements = getElementsByClass("button");
    
    if(css_pfad == 'css/small_0_0_2.css')
    {
        document.body.style.fontSize = '75%';	

		for (a = 0; a < elements.length; a++)
        {
			elements[a].style.fontSize = '95%';
		}
        
        var allSelectElements = document.getElementsByTagName("select");
        for (a = 0; a < allSelectElements.length; a++)
        {
            allSelectElements[a].style.fontSize   = "100%";
            allSelectElements[a].style.fontFamily = "Arial";
        }
        
        var allTdInputElements = document.getElementsByTagName("td input");
        for(a = 0; a < allTdInputElements.length; a++)
        {
            allTdInputElements[a].style.fontSize = '100%';
        }
        
        var allInputElements = document.getElementsByTagName("input");
        for(a = 0; a < allInputElements.length; a++)
        {
            allInputElements[a].style.fontSize = '100%';
        }
        if("yes"== offlineVersion){
            var header_div = document.getElementById('header_level_1_div');
            header_div.style.height = '148px';
        }
    }
    else if(css_pfad == 'css/normal_0_0_2.css')
    {
        document.body.style.fontSize = '90%';	
        
		for (a = 0; a < elements.length; a++)
        {
			elements[a].style.fontSize = '95%';
		}
        
        var allSelectElements = document.getElementsByTagName("select");
        for (a = 0; a < allSelectElements.length; a++)
        {
            allSelectElements[a].style.fontFamily = "Arial";
        }
        if("yes"== offlineVersion){
            var header_div = document.getElementById('header_level_1_div');
            header_div.style.height = '150px';
        }
    }
    else
    {
        document.body.style.fontSize = '100%';	
        
        for (a = 0; a < elements.length; a++)
        {
			elements[a].style.fontSize = '90%';
		}
        
        var allSelectElements = document.getElementsByTagName("select");
        for (a = 0; a < allSelectElements.length; a++)
        {
            allSelectElements[a].style.fontSize   = "100%";
            allSelectElements[a].style.fontFamily = "Arial";
        }
        
        var allTdInputElements = document.getElementsByTagName("td input");
        for(a = 0; a < allTdInputElements.length; a++)
        {
            allTdInputElements[a].style.fontSize = '100%';
        }
        
        var allInputElements = document.getElementsByTagName("input");
        for(a = 0; a < allInputElements.length; a++)
        {
            allInputElements[a].style.fontSize = '100%';
        }
        if("yes"== offlineVersion){
            var header_div = document.getElementById('header_level_1_div');
            header_div.style.height = '155px';
        }
    } 

	if ( self.callController ) 
		callController( 'master_application_controller_set_global_font.kly', 'global_font=' + css_pfad + '&tab_pane_model_name=' + tab_pane_model_name, callbackUpdateContentDiv, sessionid  );

    //Der Iframe auf der Dokumentationsseite wird bei Schriftgrößenwechsel nicht erneut dargestellt, es wird ein neuer erzeugt, der alle Eigenschaften des alten übernimmt
    iframeObject = document.getElementById('tab_documentation_content_online_iframe');
    if (iframeObject != null)
    {
        var div = document.getElementById('level_2_scrollable_div');
    
        var newIframeObject                = document.createElement("iframe");
        newIframeObject.src                = iframeObject.src;
        newIframeObject.height             = iframeObject.height;
        newIframeObject.width              = iframeObject.width;
        newIframeObject.marginWidth        = iframeObject.marginWidth;
        newIframeObject.marginHeight       = iframeObject.marginHeight;
        newIframeObject.frameBorder        = iframeObject.frameBorder;
        newIframeObject.frameBorderPadding = iframeObject.frameBorderPadding;
        newIframeObject.scrolling          = iframeObject.scrolling;
        
        div.style.overflow = 'hidden';
        var parent = iframeObject.parentNode;
        parent.removeChild(iframeObject);
        newIframeObject.id = iframeObject.id;
        parent.appendChild(newIframeObject);
    } 
	set_current_height();
	call_individual_specific_project_end_function_for_set_font_size(css_pfad);
}

function dummy()
{
}

function createDojoWindow( title, id, href, width, height, showX ) {
	var properties = createWindowProperties(title, id, href, showX);        
    var node = createWindowDiv (width, height);

	// Launch DOJO window
    createDojoFloatingPane(properties, node);
}

function createWindowDiv (width, height) {
    if (width == null || width == 'undefined') width = "400px";
    if (height == null || height == 'undefinded' || height == '') height ="220px";
    
	var container_div = document.getElementById("orimaster_conf_scrollable_div");    
    var node = document.createElement("div");
	node.style.height= height; 
	node.style.width= width; 
	node.style.position= "absolute";     
	node.style.left= "300"; 

    var result_scroll_height = 0;
    
    if (typeof window.pageYOffset == "number") {
        result_scroll_height = window.pageYOffset;
    }
    else if (typeof document.body.scrollTop == "number") {
        result_scroll_height = document.body.scrollTop;
    }
    /*
    if (width == null || width == 'undefined')
	    node.style.top = container_div.parentNode.scrollHeight - 200;
    else
        node.style.top = 200;
    */
    
    node.style.top = result_scroll_height + 150;
    
	node.style.visibility = "visible";
	node.style.zIndex = 10;
    
    return node;
}

function createWindowProperties(title, id, href, showX) {

	var properties = {
		hasShadow: false,
        displayMinimizeAction: false,
        displayMaximizeAction: false,
        displayCloseAction: showX,                                
        style: "",
		title: title,
        titleHeight: "20",
		id: id,
		resizable: false,
		href: href,
        preventCache : true,
        useCache : false,
        cacheContent : false
	};    
    return properties;
}

function createDojoFloatingPane(properties, node) {
	var orimaster_conf_scrollable_div = document.getElementById( "orimaster_conf_scrollable_div" ) ; 
    if (orimaster_conf_scrollable_div != null && orimaster_conf_scrollable_div != 'undefined' ) {
        orimaster_conf_scrollable_div.parentNode.appendChild(node);
		dojoWindow = dojo.widget.createWidget("FloatingPane", properties, node);
	}
	else{
		var level_2_div = document.getElementById( "level_2_scrollable_div" ) ; 
	    if (level_2_div != null && level_2_div != 'undefined' ) {
	        level_2_div.parentNode.appendChild(node);
			dojoWindow = dojo.widget.createWidget("FloatingPane", properties, node);
			}
	}
}

/* Diese Funktion prüft, ob versucht wurde, eine Konfiguration zu laden, und ob dieses Laden erfolgreich war
Falls nein, wird das Lade-Div geoeffnet und die Fehlermeldung angezeigt */

function evaluateLoadConfigurationFailed(load_successful, title, href) {
    if (load_successful == "false") {
        loadToggleVis(title,href); 
    }
}