
<!-- //

/**
 *	seso media group <www.seso.at>
 *
 *	$URL: https://seso1.unfuddle.com/svn/seso1_a1portaldevelopment/js/util.js $
 *	$Date: 2011/10/27 10:44:24 $
 *	$Revision: 1.3.2.9 $
 *	$Author: deutsch_guenter $
 */

function $f(id) {
	return document.getElementById(id);
};

function $q(id) {
	return $($f(id));
};

/*******************************************************************************
	MSG
*******************************************************************************/

function msg() {

	var error_id 			= arguments[0] != undefined ? arguments[0] : 'error_id';
	var error_msg_id 		= arguments[1] != undefined ? arguments[1] : 'error';
	var warning_id 			= 'warning_id';
	var warning_msg_id 		= 'warning';
	var information_id 		= 'information_id';
	var information_msg_id 	= 'information';
	
	var focus_field			= null;
	var error_fields		= null;
	
	/*	
	*/
	var hideError = function() {
		$f(error_id).style.display = 'none';
	};

	/*
	*/
	var hideWarning = function() {
		//$f(warning_id).style.display = 'none';
	};

	/*
	*/
	var hideInformation = function() {
		//$f(information_id).style.display = 'none';
	};

	/*
	*/
	var hideMessages = function() {
		hideError();
		//hideWarning();
		//hideInformation();
	};
	
	/*
	*/
	this.clearError = function() {
		$f(error_msg_id).innerHTML = '';
		this.unmarkError();
		this.focus_field = null;
		this.error_fields = new Array();
	};
	
	/*
	*/
	this.setError = function(isOk, message, field, field2) {
		this.clearError();
		this.addField(field);
		if (field2 != undefined) {
			this.addField(field2);
		}
		if (message != undefined) {
			$f(error_msg_id).innerHTML = (isOk ? '' : message);
		}
		$f(error_id).style.display = (isOk ? 'none' : 'block');
		this.focusError(!isOk);
		this.markError(!isOk);
	};
	
	/*
	*/
	this.displayError = function() {
		var isOk = this.error_fields.length == 0; 
		$f(error_id).style.display = (isOk ? 'none' : 'block');
		if (!isOk) {
			this.focusError();
			this.markError();
		}
	};
	
	/*
	*/
	this.addError = function(message, field) {
		$f(error_msg_id).innerHTML += message + '<br />';
		this.addField(field);
	};
	
	/*
	*/
	this.addField = function(field) {
		var tField = $f(field);
		if (tField != undefined && tField != null) {
			this.error_fields.push(tField);
			if (this.focus_field == null) {
				this.focus_field = tField;
			}
		}
		
	};
	
	/*
	*/
	this.focusError = function(focus) {
		var tfocus = (focus != undefined && focus != null) ? focus : true;
		if (tfocus && this.focus_field != null) {
			this.focus_field.focus();
		}
	};
	
	/*
	*/
	this.markError = function(mark) {
		var tmark = (mark != undefined && mark != null) ? mark : true;
		if (this.error_fields != null && this.error_fields.length > 0) {
			for(var i = 0; i < this.error_fields.length; i++) {
				var field = this.error_fields[i];
				if (tmark) {
					$(field).addClass('error');
					if ($(field.previousSibling).hasClass('endOfTextfield')) {
						$(field.previousSibling).addClass('error');
					}
					if ($(field.nextSibling).hasClass('endOfTextfield')) {
						$(field.nextSibling).addClass('error');
					}
					if ($(field.nextElementSibling).hasClass('endOfTextfield')) {
						$(field.nextElementSibling).addClass('error');
					}
					$('label[for="'+field.id+'"]').addClass('error');
				} else {
					$(field).removeClass('error');
					if ($(field.previousSibling).hasClass('endOfTextfield')) {
						$(field.previousSibling).removeClass('error');
					}
					if ($(field.nextSibling).hasClass('endOfTextfield')) {
						$(field.nextSibling).removeClass('error');
					}
					if ($(field.nextElementSibling).hasClass('endOfTextfield')) {
						$(field.nextElementSibling).removeClass('error');
					}
					$('label[for="'+field.id+'"]').removeClass('error');
				}
			}
		}
	};
	
	/*
	*/
	this.unmarkError = function() {
		this.markError(false);
	};
	
	/*
	*/
	this.setWarning = function(isOk, message) {
		//hideMessages();
		//$f(warning_msg_id).innerHTML = (isOk ? '' : message);
		//$f(warning_id).style.display = (isOk ? 'none' : 'block');
	};
	
	/*
	*/
	this.setInformation = function(message) {
		//hideMessages();
		//$f(information_msg_id).innerHTML = message;
		//$f(information_id).style.display = 'block';
	};

	/*
	*/
	this.isNonEmpty = function(field, nullValue) {
		var value = $f(field).value;
		return !(/^$|^\s*[\t]*$/.test(value)) && (nullValue == undefined? true: value != nullValue);
	};
	
	/*
	*/
	this.checkIsNonEmpty = function(field, message, nullValue) {
		var isOk = this.isNonEmpty(field, nullValue);
		this.setError(isOk, message, field);
		return isOk;
	};
	
	/*
	*/
	this.checkIsEqual = function(field, value, message) {
		var isOk = $f(field).value == value;
		this.setError(isOk, message, field);
		return isOk;
	};
	
	/*
	*/
	this.checkIsRadioSet = function(field, message) {
		var isOk = $('input[name='+field+']:checked').length > 0;
		this.setError(isOk, message, field);
		return isOk;
	};
	
	/*
	*/
	this.checkIsPhoneNumber = function(field, message) {
		var value = $f(field).value;
		var isPhoneNumber = /^\d{7,10}$/.test(value);
		this.setError(isPhoneNumber, message, field);
		return isPhoneNumber;
	};

	/*
	*/
	this.checkHandy = function(field, msgMissing, msgInvalid) {
		var tMsgMissing = ((typeof msgMissing == 'undefined') || (msgMissing == ''))? 'Bitte geben Sie Ihre Mobiltelefonnummer ein.': msgMissing;
		var tMsgInvalid = ((typeof msgInvalid == 'undefined') || (msgInvalid == ''))? 'Die Mobiltelefonnummer ist ung&uuml;ltig.': msgInvalid;
		return this.checkIsNonEmpty(field, tMsgMissing) && this.checkIsPhoneNumber(field, tMsgInvalid);
	};
	
	/*
	*/
	this.checkEmail = function(emailId, msgMissing, msgInvalid) {
		var tMsgMissing = ((typeof msgMissing == 'undefined') || (msgMissing == ''))? 'Bitte geben Sie Ihre E-Mail-Adresse an.': msgMissing;
		var tMsgInvalid = ((typeof msgInvalid == 'undefined') || (msgInvalid == ''))? 'Die eingegebene E-Mail-Adresse ist ung&uuml;ltig. Bitte &uuml;berpr&uuml;fen Sie die Schreibweise Ihrer E-Mail-Adresse.': msgInvalid;
		return this.checkIsNonEmpty(emailId, tMsgMissing) && this.checkIsEmail(emailId, tMsgInvalid);
	};

	/*
	*/
	this.checkIsEmail = function(emailId, message) {
		var value = $f(emailId).value;
		var isOk = /^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$/.test(value);
		this.setError(isOk, message, emailId);
		return isOk;
	};
		
	/*
	*/
	this.setErrorIds = function(errorId, errorMsgId) {
		error_id 		= errorId;
		error_msg_id 	= errorMsgId;
	};
		
}



var wmsg = new msg();
var pmsg = new msg('popup_error_id', 'popup_error_msg_id');

// -->
