function getCurrentScreenWidth() {
	var currentScreenWidth;
	if (self.innerHeight) // all except Explorer
	{
		currentScreenWidth = self.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		currentScreenWidth = document.documentElement.clientWidth;
	}
	else if (document.body) // other Explorers
	{
		currentScreenWidth = document.body.clientWidth;
	}
	return currentScreenWidth;
}

function getCurrentScreenHeight() {
	var currentScreenHeight;
	if (self.innerHeight) // all except Explorer
	{
		currentScreenHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		currentScreenHeight = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		currentScreenHeight = document.body.clientHeight;
	}
	return currentScreenHeight;
}

//Browser Submit
function browser(sourceElement, selBox) {
	var theForm = sourceElement.form;
	var curControl = theForm.elements["browser.selectBoxUsed"];
	if (curControl) {
		if (curControl.length) {
			for (var i=0; i<curControl.length; i++) {
				curControl[i].value=selBox;
			}
		} else {
			curControl.value=selBox;
		}
	}
	var pbElement = theForm.elements["isPostBack"];
	if (pbElement) {
		if (pbElement.length) {
			for (var i=0; i<pbElement.length; i++) {
				pbElement[i].value='1';
			}
		} else {
			pbElement.value='1';
		}
	}
	if (selBox != -1) {
		theForm.setAttribute('action', theForm.getAttribute('action') + '#' + theForm.name + '.' + selBox);
	}
	theForm.submit();
}

function fetchIframeLocation() {
	var currentfr=document.getElementById('evaluationEditPlatformIFrameContent');
	alert(currentfr.src);
}

function verify(msg) {
	if(confirm(msg)) {
		return true;
	}
	return false;
}

function elemDisable(elem) {
	document.forms[1].submit();
	elem.disabled=true;
}

function registerSubmit(submitted, button) {
	if(submitted=="1") {
   		
    }
}

function submitToTarget(submitButtonName,formName,target) {
//	document.forms[formName].elements[submitButtonName].value = '1';
	document.forms[formName].target = target;
//	document.forms[formName].submit();
	return true;
}


// Verhalten für die DropdownBoxen
var timeToReload = 3500;

var undefined;
var isKeyReload = false;
var hasFired = false;

	function setTimeToReload(time2set) {
		timeToReload = time2set;
	}

	function bodyClick() {}
	
	function countDown(nr) {
		isKeyReload = true;
	}
	
	function doReload(sourceElement, nr) {
		if (!hasFired) {
			hasFired = true;
			isKeyReload = false;
			browser(sourceElement, nr);
		}
		return true;
	}
	
	function reset(dropdownlist) {
		for (i = 0; i < dropdownlist.length; i++) {
			if (dropdownlist.options[i].defaultSelected == true) {
				dropdownlist.options[i].selected = true;
			} else {
				dropdownlist.options[i].selected = false;
			}
		}
	}
	
	function keySort(dropdownlist,caseSensitive,auto,nr) {
		// check the keypressBuffer attribute is defined on the dropdownlist 
		//var undefined; 
		// escape == 27
		if (window.event.keyCode == 27) {
			reset(dropdownlist);
			isKeyReload = true;
			return false;
		}
		if (dropdownlist.keypressBuffer == undefined) { 
			dropdownlist.keypressBuffer = ''; 
		} 
		// get the key that was pressed 
		var key = String.fromCharCode(window.event.keyCode); 
		dropdownlist.keypressBuffer += key;
		if (!caseSensitive) {
		// convert buffer to lowercase
			dropdownlist.keypressBuffer = dropdownlist.keypressBuffer.toLowerCase();
		}
		// find if it is the start of any of the options 
		var optionsLength = dropdownlist.options.length; 
		for (var n=0; n < optionsLength; n++) { 
			var optionText = dropdownlist.options[n].text; 
			if (!caseSensitive) {
				optionText = optionText.toLowerCase();
			}
			if (optionText.indexOf(dropdownlist.keypressBuffer,0) == 0) { 
				dropdownlist.selectedIndex = n;
				// return == 13
				if (window.event.keyCode == 13) {
					doReload(dropwdownlist, nr);
				}
				// Wenn kein AutoReload erwünscht ist, dann wird einfach mit return false; zurückgesprungen.
				if (!auto) {
					return false;
				}
				countDown(nr); // nur aufrufen wenn keine Cursortaste!!!!
				return false; // cancel the default behavior since 
				// we have selected our own value 
			} 
		} 
		// reset initial key to be inline with default behavior 
		dropdownlist.keypressBuffer = key; 
		if (window.event.keyCode == 13) {
			doReload(dropdownlist, nr);
		}
		// Wenn kein AutoReload erwünscht ist, dann wird einfach mit return false; zurückgesprungen.
		if (!auto) {
			return false;
		}	
		countDown(nr);// nur aufrufen wenn keine Cursortaste!!!!
		return true; // give default behavior 
	}
	
	function ddListFocus(dropdownlist,nr) {
		if (dropdownlist.defaultElement == undefined) {
			dropdownlist.defaultElement = dropdownlist.selectedIndex;
		}
		return true;
	}
	
	function ddListBlur(dropdownlist,nr) {
		if (dropdownlist.defaultElement != dropdownlist.selectedIndex) {
			doReload(dropdownlist, nr);
		}
		return true;
	}
	
	function ddListClick(dropdownlist,nr) {
		if (dropdownlist.defaultElement != undefined) {
			if (dropdownlist.defaultElement != dropdownlist.selectedIndex) {
				doReload(dropdownlist, nr);
			}
		}
		return true;
	}
	
	function rbGroupFocus(rbGroup,nr) {
		if (rbGroup.defaultChecked == undefined) {
			rbGroup.defaultChecked = rbGroup.value;
		}
		return true;
	}
	
	function rbGroupBlur(rbGroup,nr) {
		if (rbGroup.defaultChecked != rbGroup.value) {
			doReload(rbGroup, nr);
		}
		return true;
	}
	
	function rbGroupClick(rbGroup,nr) {
		if (rbGroup.defaultChecked != undefined) {
			if (rbGroup.defaultChecked != rbGroup.value) {
				doReload(rbGroup, nr);
			}
		}
		return true;
	}

function copyValueFromListToField(formname, listName, textFieldName, surrounding) {

    if (listName != null && textFieldName != null) {
        
        var destElement = document.forms[formname].elements[textFieldName];
        var sourceElement = document.forms[formname].elements[listName];
        var textToInsert = sourceElement.options[sourceElement.selectedIndex].value;
        
        insertAtCursorPos(destElement, textToInsert, surrounding);
    }
}

function insertValueToField(textToInsert, formname, textFieldName, surrounding) {

    if (textToInsert != null && textFieldName != null) {
        var destElement = document.forms[formname].elements[textFieldName];
        insertAtCursorPos(destElement, textToInsert, surrounding);
    }
}

/*
 * Nach einem Beispiel von torsten@anaboe.net aus selfhtml 8.1
 */
function insertAtCursorPos(destElement, text, surrounding) {
    
    destElement.focus();
    
    if (typeof surrounding != 'undefined') {
        text = surrounding + text + surrounding;
    }
    
    if (typeof document.selection != 'undefined') {
        /* für Internet Explorer */
        
        var range = document.selection.createRange();
        range.text = text;
    } else if (typeof destElement.selectionStart != 'undefined') {
        /* für neuere auf Gecko basierende Browser */
        
        var start = destElement.selectionStart;
        var end = destElement.selectionEnd;
        destElement.value = destElement.value.substr(0, start) + text + destElement.value.substr(end);
        destElement.selectionStart = start;
        destElement.selectionEnd = start + text.length;
    }
}

function openWindow(url, title, width, height) {
	var load = window.open(url,title,'scrollbars=yes,menubar=no,height='+height+',width='+width+',resizable=yes,toolbar=no,location=yes,status=yes');
	load.focus();
}


function linkSubmit(actionStr, formName, target) {
	document.forms[formName].action = actionStr;
	if (target) {
		document.forms[formName].target = target;
	}
	document.forms[formName].submit();
}


function showTip(id) {
	tip = document.getElementById(id);
    tip.style.display = 'block';
    if(document.onmousemove!=moveTip) {
	    document.onmousemove = moveTip;
	}
}  

function hideTip() {
	tip.style.display = 'none';
}
 
function moveTip(e) { 
	var xFromMouse = 10;
	var yFromMouse = 10; 
	x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
	y = (document.all) ? window.event.y + document.body.scrollTop : e.pageY;
	if (tip != null) {
		tip.style.left = (x + xFromMouse) + "px";
		tip.style.top  = (y + yFromMouse) + "px";
    }
}

var warnUnsaved = "$saved";

function elementChangedValue(elementGroup) {
	top.warnUnsaved = elementGroup;
}

function warnIfUnsaved() {
	if(top.warnUnsaved != "$saved") {
		value =  confirm("Formular enthält ungespeicherte Werte! Trotzdem weiter?");
		if(value==true) {
			top.warnUnsaved = "$saved";
		}
		return value;
	}
}

function elementChangesSaved(elementGroup) {
	top.warnUnsaved = "$saved";
}

/*
 * Sprachumschaltung
 * since 22.08.2007 MD
 */
function changeLang(lang) {
	if (document.forms[1] != null) {
	    currentForm = document.forms[1];
	    
		if (currentForm.elements["chnglang"] != null) {
			currentForm.elements["chnglang"].value = lang;
		}
		
		if (currentForm.elements["isPostBack"] != null) {
			currentForm.elements["isPostBack"].value='1';
		}
		
		currentForm.submit();
	} else {
		oldUrl = window.location.href;

		oldUrl = oldUrl.replace(/(&|\?)chnglang=[^&]+/g, "$1chnglang=" + lang);
		
		if (oldUrl.indexOf("?") == -1) {
			// Noch keine Parameter vorhanden
			oldUrl = oldUrl + "?chnglang=" + lang;
		} else {
			if (oldUrl.indexOf("chnglang") == -1) {
				// Schon Parameter aber nicht chnglang vorhanden
				oldUrl = oldUrl + "&chnglang=" + lang;
			}
		}
		window.location.href = oldUrl;
	}
	return true;
}

/*
 * ruft url auf
 */
function loadUrl(url) {
    window.location.href = url;
    return;
}

/*
 * Klick auf z.B. Button bei Enter (MS)
 * z.B. keycodestring = "{keycode:13,command:"cdm_save"}
 */
function clickonkeycode(myfield,e,keycodestring) {
	var keycode;
	
	if (window.event) 
		keycode = window.event.keyCode;
	else if (e) 
		keycode = e.which;
	else return true;

	if (keycode == keycodestring.keycode) {
		if(myfield.form[keycodestring.command]) {
	   		myfield.form[keycodestring.command].click();
			return false;
		} else {
			return true;
		}
   	} else
	   return true;
}

//-----------------------------------------------
//Navigationshintergrund veraendern bei mouseover
//MS
//-----------------------------------------------
function ChangeNav(tableRow, cssClass, cursor) {
  tableRow.className=cssClass;
  tableRow.style.cursor="pointer";
  tableRow.style.cursor=cursor;
}

//-----------------------------------------------
//Navigationshintergrund anklickbar machen
//MS
//-----------------------------------------------
function DoNav(theUrl) {
 document.location.href = theUrl;
}

//-----------------------------------------------
//Objekte anzeigen/verstecken
//-----------------------------------------------
function getStyleObject(objectId) {
     // checkW3C DOM, then MSIE 4, then NN 4.
     //
     if(document.getElementById) {
       if (document.getElementById(objectId)) {
	     return document.getElementById(objectId).style;
       }
     } else if (document.all) {
       if (document.all(objectId)) {
	     return document.all(objectId).style;
       }
     } else if (document.layers) {
       if (document.layers[objectId]) {
	     return document.layers[objectId];
       }
     } else {
	   return false;
     }
}

// Sollte show nicht gesetzt sein, wird die Sichbarkeit vertauscht
function toggleObjectVisibility(objectId, show) {
     // first get the object's stylesheet
     var styleObject = getStyleObject(objectId);
     
     // then if we find a stylesheet, set its visibility
     // as requested
     //
     if (styleObject) {
       	if (show == null){
           	if (styleObject.visibility == 'hidden') show = true; else show = false;
       	} 
       	if (show) {
		    styleObject.visibility = 'visible';
		    styleObject.position = 'relative';
		    return true;
		} else {
		    styleObject.visibility = 'hidden';
		    styleObject.position = 'absolute';		    
		}
     }
     if (show == "true")
     	return true;
     else
        return false;
} 

//submit unter angabe eines commands
function submitWithButtonName(formName, buttonName, commandName) {
	var cmdName = document.createElement('input');
	cmdName.setAttribute('type', 'hidden');
	cmdName.setAttribute('name', buttonName);
	cmdName.setAttribute('value', commandName);
	formName.appendChild(cmdName);
	formName.submit();
}

//zeigt einen dialog (ok-abbrechen) und führt in abhängigkeit davon einen submit aus
function showConfirmDialogBeforeSubmit(formName, buttonName, commandName, dialogText) {
	proceed = confirm(dialogText);
	if(proceed) {
		submitWithButtonName(formName, buttonName, commandName);
	}
}
