// #######################################################################
// $Workfile:: misc.js                                                   $
// $Author:: Joerg Mueller                                               $
// $Modtime:: 10.10.03 15:23                                             $
// $Revision:: 1                                                         $
// -----------------------------------------------------------------------
// BBH /digital, 80538 Muenchen, Thierschstr. 5,                          
// contact@bbh-digital.de                                                 
// #######################################################################

// #######################################################################
// Verschiedene Hilfsfunktionen
// #######################################################################

//
// Request.QueryString (aus ASP) in Javascript...
//
function requestQueryString(strParameterName) {
	var strQueryString;
	var strArrayRequest;
	var strParameterValue;
				
	strParameterValue = null;
	
	if (document.location.search.length >= 1) {
		strQueryString = document.location.search.substr(1, document.location.search.length - 1);
		strArrayRequest = strQueryString.split('&');

		for (var i=0; i < strArrayRequest.length; i++) {
			strArrayParameter = strArrayRequest[i].split('=');
			if (strArrayParameter[0] == strParameterName) {
				strParameterValue = strArrayParameter[1];
			}
		}
	}
	
	return strParameterValue;
}

var NS4 = (document.layers) ? 1 : 0;
var IE4 = (document.all) ? 1 : 0;

/*
	############################################################################
	preload: Bild Ressource einem Image-Object zuweisen = 'preloaden'; mit
	Check auf Existenz von Image-Objekt in Browser-DOM
	----------------------------------------------------------------------------
	input:
	imgObj - Name des zuerzeugenden Image-Objects als String
	imgSrc - Source-URL der Bild Ressource
	############################################################################
*/
function preload(imgObj, imgSrc) {
	if (document.images) {
		eval(imgObj+' = new Image()')
		eval(imgObj+'.src = "'+imgSrc+'"')
	}
}

/*
	############################################################################
	changeImage: Bildwechsel (auch in Layern)
	----------------------------------------------------------------------------
	input: 
	layer - Layer Referenz (bei verschachtelten Layern als 'Pfad'), 'null' wenn nicht benötigt
	imgName - Name-Attribut des zuwechselnden Img-Tags
	imgObj - Image-Object-Referenz des neuen Bildes
	############################################################################
*/
function changeImage(layer,imgName,imgObj) {
	if (document.images && preloadsFinished) {
		if (document.layers && layer!=null) eval('document.'+layer+'.document.images["'+imgName+'"].src = '+imgObj+'.src')
		else document.images[imgName].src = eval(imgObj+".src")
	}
}

function openWnd(url) {
	var sh = screen.height;
	var sw = screen.width;
	var xpos = parseInt((sw - 366) / 2);
	var ypos = 50;
	if (url == 'datenschutz.html') {
		var hvbffWnd = window.open(url, 'hvbff',
 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=383,height=' + (sh-150) + ',top=' + ypos + ',left=' + xpos);
	}
	else if (url == 'impressum.html') {
		var hvbffWnd = window.open(url, 'hvbff',
 'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=366,height=470,top=' + ypos + ',left=' + xpos);
	}
	else {
		var hvbffWnd = window.open(url, 'hvbff',
 'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=366,height=380,top=' + ypos + ',left=' + xpos);
	}
}

/*
	############################################################################
	isValid: checkt einen String gegen einen regulären Ausdruck
	----------------------------------------------------------------------------
	input:
	sValue - zuprüfender String
	sRe - regulärer Ausdruck (siehe vordefinierte Konstanten)
	output:
	'True' wenn String dem regulären Ausdruck genügt, sonst 'False'
	############################################################################
*/
var RE_TELEFON = '^[0-9 /\\-\\(\\)+]*$';
var RE_EMAIL = '^[\\!\\%\\w\\.\\-+=/]+@[\\w\\.\\-]+$';
var RE_DATUM = '^(([1-9])|([0-2][0-9])|(3[0-1]))[\\.](([1-9])|(0[1-9])|(1[0-2]))[\\.]([1-2][0,9][0-9][0-9])$';
var RE_DBL = '^(([0-9]+)|([0-9]+[\\,][0-9]+))$';
var RE_INT = '^([0-9]+)$';
var RE_PLZ = '^[0-9]{5}$';


function isValid(sValue, sRE) {
	var re = new RegExp(sRE);
	return re.test(sValue);
}

function isValidDbl(theFormObject) {
	if (theFormObject.value == '') {
		theFormObject.value = 0;
	}
	if (!isValid(theFormObject.value, RE_DBL)) {
		return false;
	}
	else {
		return true;
	}
}

function isValidInt(theFormObject) {
	if (theFormObject.value == '') {
		theFormObject.value = 0;
	}
	if (!isValid(theFormObject.value, RE_INT)) {
		return false;
	}
	else {
		return true;
	}
}

function isValidDate(theFormObject) {
	var re;
	var datDate;
	var strDate = '';
	
	if (isValid(theFormObject.value, RE_DATUM)) {
		re = new RegExp(RE_DATUM);
		re.exec(theFormObject.value);
		datDate = new Date(RegExp.$9, RegExp.$5 - 1, RegExp.$1);
		
		if (datDate.getDate() < 10) {
			strDate += '0';
		}
		strDate += datDate.getDate() + '.';
		if ((datDate.getMonth()+1) < 10) {
			strDate += '0';
		}
		strDate += datDate.getMonth()+1 + '.' + datDate.getFullYear();
	
		theFormObject.value = strDate;
		return true;
	}
	else {
		return false;
	}
}