//if (parent.frames.length>=1){window.top.location.href=url;}

function set_style_size(size){
	document.getElementById('body').style.fontSize=size+'%';
	xajax_set_style_size(size);
}

/**Aufraumen der TinyMCE Instancen*/
function clear_tiny_instances () {
    for (var n in tinyMCE.instances) {
        if (tinyMCE.isInstance(tinyMCE.instances[n])) {
                //for debugging the editorIDs
                            //alert(tinyMCE.instances[n].editorId);
            tinyMCE.removeMCEControl(tinyMCE.instances[n].editorId);
        }
    }
}
/**Aendern des AJAX Zieles fuer Session Anpassung*/
function change_ajax_uri(_uri_var) {
 	xajaxRequestUri = _uri_var;
}
/**
*	Temporaeres Verschieben eines Elementes
*
*	Aktivierung z.B. ueber Mausereignisse
*	onmouseover="toggle_drag('orb-debug-layer','on')"
*	@param	[string]	on|off Switch
*/
var drag_element = null;
function toggle_drag(dest_element, on_off) {
 	if ('on'==on_off) {
 		drag_element = new Draggable(dest_element,{revert:false});;
 	}
 	else {
 		drag_element.destroy();
 	}
}
 /**
 * testet Formularfelder
 *
 * testet in document.main alle uebergebenen Formularfelder
 * auf vorhandenen Inhalt. Setzt sonst den Focus auf das
 * erste leere Element und faerbt alle leeren Felder ein.
 *
 * @param  [var]    variable Parameterzahl - alle zu testenden Feldnamen
 *
 * @return boolean  nur true wenn alle tests ohne leere Felder
 */
function test(){
        var ret_val = true;
        var fehler  = false;
        with (document.main) {
            for (var i=0; i<test.arguments.length; i++){
                feld=arguments[i];
                if (feld.value==''){
                    feld.style.backgroundColor="#ffdddd";
                    if (!fehler){
                        if (feld.type!='text'){
                            feld.focus();
                        }
                        else{
                            feld.select();
                        }
                        fehler = true;
                    }
                    ret_val = false;
                }
                else{
                    feld.style.backgroundColor="#ffffff";
                }
            }

        }

        return ret_val;
}

/**
 * Fuegt eine Variable an einen Link an.
 *
 * Dabei wird ueberprueft ob in dem Link bereits eine entsprechende Variable
 * vorhanden ist, und diese ggf. ueberschrieben. Ist die Variable nicht in dem
 * Link vorhanden wird sie hinten angehaengt.
 *
 * @param element link  Das Linkelement (uebergeben bsw. mit this).
 * @param string  name  Der Name der Variable.
 * @param string  value Der Wert der Variable.
 */
function add_var_to_link(link,name,value) {
    var linkarray = link.href.split("&");
    var found = false;
    var href_back = "";
    for(i = 0; i < linkarray.length; i++) {
        cache_array = linkarray[i].split("=");
        if(i!=0) {
            if(cache_array[0]==name) {
                found = true;
                cache_array[1] = value;
            }
            href_back+="&"+cache_array[0]+"="+cache_array[1];
        }
        else {
            href_back+=linkarray[i];
        }
    }
    if(!found) {
        href_back = link.href+"&"+name+"="+value;
    }
    /*
    alert("link_before:"+link.href+"\nlink_after:"+href_back+"\nname:"+name+"\nvalue:"+value);
    */
    link.href=href_back;
    return true;
}

/**
 * Schickt das Formular an eine angegebene Adresse
 *
 * @param string  strhref   die URL ev. mit GET-Parametern.
 */
function enter_tab_go( strhref, event ){
    if(document.all){
        // m$ browser
        if(window.event.keyCode==13 ||window.event.keyCode==9){
            document.main.action= strhref;
            document.main.submit();
            return(false);
        }
    }
    else{
        // mozilla
        if(event.which==13 || event.which==9){
           document.main.action= strhref;
           document.main.submit();
           return(false);
        }
    }
}


/**
 * Wurde Enter oder Tab gedrueckt
 *
 * @return boolean
 */
function enter_tab(event){
    if(document.all){
        // m$ browser
        if(window.event.keyCode==13 ||window.event.keyCode==9){
            return(true);
        } else {
            return(false);
        }
    }
    else{
        // mozilla
        if(event.which==13 || event.which==9){
            return(true);
        } else {
            return(false);
        }
    }
}


/**
 * Fuegt eine Variable an die Form.Action der Seite an
 *
 * Dabei wird ueberprueft ob in dem Link bereits eine entsprechende Variable
 * vorhanden ist, und diese ggf. ueberschrieben. Ist die Variable nicht in dem
 * Link vorhanden wird sie hinten angehaengt.
 *
 * @param string  name  Der Name der Variable.
 * @param string  value Der Wert der Variable.
 */
function add_var_to_form_action(name,value) {
    var linkarray = document.main.action.split("&");
    var found = false;
    var href_back = "";
    for(i = 0; i < linkarray.length; i++) {
        cache_array = linkarray[i].split("=");
        if(i!=0) {
            if(cache_array[0]==name) {
                found = true;
                cache_array[1] = value;
            }
            href_back+="&"+cache_array[0]+"="+cache_array[1];
        }
        else {
            href_back+=linkarray[i];
        }
    }
    if(!found) {
        href_back = document.main.action+"&"+name+"="+value;
    }
    /*
    alert("link_before:"+document.main.action+"\nlink_after:"+href_back+"\nname:"+name+"\nvalue:"+value);
    //*/
    document.main.action=href_back;
    return true;
}

/**
 * Funktion zum ueberpruefen von Erwartungen, mit event. Ausgabe.
 *
 * @param mixed  subject 		Der IST-Zustand
 * @param mixed  assertion 		Die Erwartung
 * @param string message_false  Die Meldung, falls Ist-Zustand und Erwartung nicht zutreffen.
 */
function assert_equal(subject, assertion, message_false, message_true){
	if(!message_true){
		message_true = "";
	}
	if(!message_false){
		message_false = "";
	}

	if(subject != assertion){
		if(message_false != ""){
			alert(message_false);
		}
		return false;
	}
	else if(subject == assertion){
		if(message_true != ""){
			alert(message_true);
		}
		return true;
	}
}

/**
 * Das Gegenstueck von assert_equal.
 * @see assert_equal
 */
function assert_not_equal(subject, assertion, message_false, message_true){
	if(!message_true){
		message_true = "";
	}
	if(!message_false){
		message_false = "";
	}

	if(assert_equal(subject, assertion) == true){
		if(message_false != ""){
			alert(message_false);
		}
		return false;
	}
	else if(assert_equal(subject, assertion) == false){
		if(message_true != ""){
			alert(message_true);
		}
		return true;
	}
}

/**
 * Wennn [ENTER] gedrueckt wurde..
 */
function enter(event){
	if(document.all){
	    // m$ browser
	    if(window.event.keyCode==13){
	        return(true);
	    } else {
	        return(false);
	    }
	}
    else{
        // mozilla
        if(event.which==13){
            return(true);
        } else {
            return(false);
        }
    }
}
