
function SetFocus(TargetFormName) {
	var target = 0;
	if(TargetFormName != "") {
		for(i=0; i<document.forms.length; i++) {
			if(document.forms[i].name == TargetFormName) {
				target = i;
				break;
			}
		}
	}

	var TargetForm = document.forms[target];

	for(i=0; i<TargetForm.length; i++) {
		if((TargetForm.elements[i].type != "image") && (TargetForm.elements[i].type != "hidden") && (TargetForm.elements[i].type != "reset") && (TargetForm.elements[i].type != "submit")) {
			TargetForm.elements[i].focus();

			if((TargetForm.elements[i].type == "text") || (TargetForm.elements[i].type == "password")) {
				TargetForm.elements[i].select();
			}

			break;
		}
	}
}

function RemoveFormatString(TargetElement, FormatString) {
	if(TargetElement.value == FormatString) {
		TargetElement.value = "";
	}

	TargetElement.select();
}

function CheckDateRange(from, to) {
	if(Date.parse(from.value) <= Date.parse(to.value)) {
		return true;
	} else {
		return false;
	}
}

function IsValidDate(DateToCheck, FormatString) {
	var strDateToCheck;
	var strDateToCheckArray;
	var strFormatArray;
	var strFormatString;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var intDateSeparatorIdx = -1;
	var intFormatSeparatorIdx = -1;
	var strSeparatorArray = new Array("-"," ","/",".");
	var strMonthArray = new Array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
	var intDaysArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	strDateToCheck = DateToCheck.toLowerCase();
	strFormatString = FormatString.toLowerCase();

	if(strDateToCheck.length != strFormatString.length) {
		return false;
	}

	for(i=0; i<strSeparatorArray.length; i++) {
		if(strFormatString.indexOf(strSeparatorArray[i]) != -1) {
			intFormatSeparatorIdx = i;
			break;
		}
	}

	for(i=0; i<strSeparatorArray.length; i++) {
		if(strDateToCheck.indexOf(strSeparatorArray[i]) != -1) {
			intDateSeparatorIdx = i;
			break;
		}
	}

	if(intDateSeparatorIdx != intFormatSeparatorIdx) {
		return false;
	}

	if(intDateSeparatorIdx != -1) {
		strFormatArray = strFormatString.split(strSeparatorArray[intFormatSeparatorIdx]);
		if(strFormatArray.length != 3) {
			return false;
		}

		strDateToCheckArray = strDateToCheck.split(strSeparatorArray[intDateSeparatorIdx]);
		if(strDateToCheckArray.length != 3) {
			return false;
		}

		for(i=0; i<strFormatArray.length; i++) {
			if(strFormatArray[i] == 'mm' || strFormatArray[i] == 'mmm') {
				strMonth = strDateToCheckArray[i];
			}

			if(strFormatArray[i] == 'dd') {
				strDay = strDateToCheckArray[i];
			}

			if(strFormatArray[i] == 'yyyy') {
				strYear = strDateToCheckArray[i];
			}
		}
	} else {
		if(FormatString.length > 7) {
			if(strFormatString.indexOf('mmm') == -1) {
				strMonth = strDateToCheck.substring(strFormatString.indexOf('mm'), 2);
			} else {
				strMonth = strDateToCheck.substring(strFormatString.indexOf('mmm'), 3);
			}

			strDay = strDateToCheck.substring(strFormatString.indexOf('dd'), 2);
			strYear = strDateToCheck.substring(strFormatString.indexOf('yyyy'), 2);
		} else {
			return false;
		}
	}

	if(strYear.length != 4) {
		return false;
	}

	intday = parseInt(strDay, 10);
	if(isNaN(intday)) {
		return false;
	}

	if(intday < 1) {
		return false;
	}

	intMonth = parseInt(strMonth, 10);
	if(isNaN(intMonth)) {
		for(i=0; i<strMonthArray.length; i++) {
			if(strMonth == strMonthArray[i]) {
				intMonth = i+1;
				break;
			}
		}

		if(isNaN(intMonth)) {
			return false;
		}
	}

	if(intMonth > 12 || intMonth < 1) {
		return false;
	}

	intYear = parseInt(strYear, 10);
	if(isNaN(intYear)) {
		return false;
	}

	if(IsLeapYear(intYear) == true) {
		intDaysArray[1] = 29;
	}

	if(intday > intDaysArray[intMonth - 1]) {
		return false;
	}

	return true;
}

function IsLeapYear(intYear) {
	if(intYear % 100 == 0) {
		if(intYear % 400 == 0) {
			return true;
		}
	} else {
		if((intYear % 4) == 0) {
			return true;
		}
	}

	return false;
}

function number_format (number, decimals, dec_point, thousands_sep){
	var exponent = "";
	var numberstr = number.toString ();
	var eindex = numberstr.indexOf ("e");

	if(eindex > -1){
		exponent = numberstr.substring (eindex);
		number = parseFloat (numberstr.substring (0, eindex));
	}

	if(decimals != null){
		var temp = Math.pow (10, decimals);
		number = Math.round (number * temp) / temp;
	}

	var sign = number < 0 ? "-" : "";
	var integer = (number > 0 ? Math.floor (number) : Math.abs (Math.ceil (number))).toString ();
	var fractional = number.toString ().substring (integer.length + sign.length);

	dec_point = dec_point != null ? dec_point : ".";
	fractional = decimals != null && decimals > 0 || fractional.length > 1 ? (dec_point + fractional.substring (1)) : "";

	if(decimals != null && decimals > 0){
		for(i = fractional.length - 1, z = decimals; i < z; ++i) fractional += "0";
	}

	thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? thousands_sep : null;

	if(thousands_sep != null && thousands_sep != ""){
		for (i = integer.length - 3; i > 0; i -= 3) integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
	}

	return sign + integer + fractional + exponent;
}


var stopSearchXml = false;

function viewSearchXml(objInput) {
	// alert(objInput.value);
	if(objInput.value.length > 2 && !stopSearchXml) {

		stopSearchXml = true;
		var url = '/output.php';
		var para = 'action=search&terms='+ escape(objInput.value);

		if(loadXMLDocument(url, para, successViewSearchXml, errorViewSearchXml)) {
			showSearchXml("<table class=\"searchXmlTable\"><tr><td>Please Wait</td></tr></table>");
		} else {
			// alert("Es ist ein unbekannter Fehler aufgetreten");
		}
	} else {
		showSearchXml('');
	}
}

function showSearchXml(html) {
	var myDivSearchXml = document.getElementById('divSearchXml');
	myDivSearchXml.style.visibility = 'visible';
	myDivSearchXml.style.display = 'block';
	myDivSearchXml.innerHTML = html;
}

function closeSearchXml() {
	var myDivSearchXml = document.getElementById('divSearchXml');
	myDivSearchXml.style.visibility = 'hidden';
	myDivSearchXml.style.display = 'none';
	myDivSearchXml.innerHTML = '';
}

function successViewSearchXml(oReq) {
	var myLeft = parseInt(document.getElementById('inputSearchXml').offsetLeft);
	var myDivSearchXml = document.getElementById('divSearchXml');

	var doc = oReq.responseXML.documentElement;
	var status = doc.getElementsByTagName('STATUS')[0];
	var table = doc.getElementsByTagName('TABLE')[0];
	var content = doc.getElementsByTagName('CONTENT');

	if(status.childNodes[0].nodeValue == 'SUCCESS' && content.length > 0) {
		stopSearchXml = false;

		var strContent = '';
		var strContents = '';
		for(i=0;i<content.length;i++) {
			// alert(content[i].childNodes[0].nodeValue);
			strContent = content[i].childNodes[0].nodeValue;
			strContent = strContent.replace(/&amp;/g, "&");
			strContent = strContent.replace(/&sz;/g, "ß");
			strContent = strContent.replace(/&auml;/g, "ä");
			strContent = strContent.replace(/&Auml;/g, "Ä");
			strContent = strContent.replace(/&ouml;/g, "ö");
			strContent = strContent.replace(/&Ouml;/g, "Ö");
			strContent = strContent.replace(/&uuml;/g, "ü");
			strContent = strContent.replace(/&Uuml;/g, "Ü");

			strContents = strContents + strContent;
		}

		var table = table.childNodes[0].nodeValue;
		table = table.replace(/{CONTENT}/, strContents);

		myDivSearchXml.style.left = myLeft;
		myDivSearchXml.style.visibility = 'visible';
		myDivSearchXml.style.display = 'block';
		myDivSearchXml.innerHTML = table;
	} else {
		// alert('Ein Fehler ist aufgetreten!');
		closeSearchXml();
		stopSearchXml = false;
	}
}

function errorViewSearchXml(oReq) {
	// alert(oReq.responseText);
	// alert("Ein unbekannter Fehler ist aufgetreten.\nreadyState = "+oReq.readyState+";\nstatus = "+oReq.status+";\nstatusText = "+oReq.statusText+";");

	stopSearchXml = false;
}
