ï»¿
// designed by iFactory, Würzburg, Germany       //

// Copyright 2000-2007 by iFactory               //
// All rights reserved.                          //
// Duplication in any form or any use of this    //
// script or parts of it are strictly prohibited //
// for private and commercial use.               //

// Module for checking content of forms          //


/**********************************************************
 * constants
 **********************************************************/



/**********************************************************
 * variables
 **********************************************************/



/****************************************************************
 * functions
 ****************************************************************/

/**
 * checks number format
 * @para    val   field value
 * @para    len   min. length
 * @return        0 - ok, 1 - empty, 3 - too short
 */
function parseChar (val,len) {
	if (val == '') return 0x1;
	if (val.length < len) return 0x3;
	return 0x0;
}

/**
 * checks number format
 * @para    val   field value
 * @para    len   min. length
 * @return        0 - ok, 1 - empty, 2 - wrong, 3 - too short
 */
function parseNumber (val,len) {
	if (val == '') return 0x1;
	if (val.length < len) return 0x3;
	if (!val.match(/^\d+$/)) return 0x2;
	return 0x0;
}

/**
 * checks user format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseUser (val) {
	if (val == '') return 0x1;
	if (!val.match(/^[a-z][a-z0-9.]{2,}$/)) return 0x2;
	return 0x0;
}

/**
 * checks prename format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseName (val) {
	if (val == '') return 0x1;
	if (!val.match(/^[ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]{2,}([- ][ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]{2,})*$/)) return 0x2;
	return 0x0;
}

/**
 * checks first name format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseFirst (val) {
	if (val == '') return 0x1;
	if (!val.match(/^([ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]+(\. |[ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w][- ]))*[ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]+([ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]|\.)$/)) return 0x2;
	return 0x0;
}

/**
 * checks full name format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseFullName (val) {
	if (val == '') return 0x1;
	if (!val.match(/^([ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]+(\. |[ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w][- ]))*[ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]+([ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]|\.) [ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]{2,}([- ][ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]{2,})*$/)) return 0x2;
	return 0x0;
}

/**
 * checks date format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseDate (val) {
	if (val == '') return 0x1;
	if (!val.match(/^[0-3]?\d\.[01]?\d\.\d\d(\d\d)?$/)) return 0x2;
	return 0x0;
}

/**
 * checks time format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseTime (val) {
	if (val == '') return 0x1;
	if (!val.match(/^[0-2]?\d:[0-5]\d(:[0-5]\d)?$/)) return 0x2;
	return 0x0;
}

/**
 * checks domain format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseDomain (val) {
	if (val == '') return 0x1;
/*
	val = val.split('.');
	if (val.length < 2) return 0x2;
	for (var i=0; i<val.length; i++)
		if (!val[i].match(/^[-ÃŸÃ¶Ã¤Ã¼Ã„Ã–ÃœÃ©Ã¨Ã«Ã‰Ãˆ\w]{2,}$/)) return 0x2;
	if (val[val.length-1].length > 6) return 0x2;
*/
	if (!val.match(/^([-ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]{2,}\.)+\w{2,6}$/)) return 0x2;
	return 0x0;
}

/**
 * checks URL format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseURL (val) {
	if (val == '') return 0x1;
	if (!val.match(/^(https?:\/\/)?([-\w]{2,}\.)+\w{2,6}(\/[-.\w]*)*([#\?]\w+(=\w+)*(&\w+(=\w+)*)*)?$/)) return 0x2;
	return 0x0;
}

/**
 * checks mail format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseMail (val) {
	if (val == '') return 0x1;
	if (!val.match(/^([-\w]+\.)*([-\w]+)+@([-\w]{2,}\.)+\w{2,6}$/)) return 0x2;
	return 0x0;
}

/**
 * checks address format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseAddress (val) {
	if (val == '') return 0x1;
	if (!val.match(/^([ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠ\w]{2,}\.?[- ]?)+([- ]\d+\w?)*$/)) return 0x2;
	return 0x0;
}

/**
 * checks zip format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseZIP (val) {
	if (val == '') return 0x1;
	if (!val.match(/^\d{5}$/)) return 0x2;
	return 0x0;
}

/**
 * checks place format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parsePlace (val) {
	if (val == '') return 0x1;
	if (!val.match(/^([ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠa-zA-Z]{2,}\.?)+([- \/]?[ÃŸÃ¶Ã¤Ã¼Ã„Ã–Ãœï»¿Ã¤Ã¶Ã¼Ã„Ã–ÃœÃŸÃ©Ã¨ÃªÃˆÃˆÃŠa-zA-Z]+\.?)*$/)) return 0x2;
	return 0x0;
}

/**
 * checks bank code format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parseBank (val) {
	if (val == '') return 0x1;
	if (!val.match(/^\d{8}$/)) return 0x2;
	return 0x0;
}

/**
 * checks bank account format
 * @para    val   field value
 * @para    len   min. length
 * @return        0 - ok, 1 - empty, 2 - wrong, 3 - too short
 */
function parseAccount (val,len) {
	if (!len) len = 4;
	if (val == '') return 0x1;
	if (val.length < len) return 0x3;
	if (!val.match(/^\d+$/)) return 0x2;
	return 0x0;
}

/**
 * checks phone format
 * @para    val   field value
 * @return        0 - ok, 1 - empty, 2 - wrong
 */
function parsePhone (val) {
	if (val == '') return 0x1;
	if (!val.match(/^(\+\d+)?( ?\(\d+\) ?|\/?\d{2,}\/|( \/ )?\d{2,} \/ |[- ])?\d{2,}(-\d+| \d{2,})*$/)) return 0x2;
	return 0x0;
}

/**
 * checks password format
 * @para    val   field value
 * @para    len   min. length
 * @return        0 - ok, 1 - empty, 2 - wrong, 3 - too short, 4 - no parameter length
 */
function parsePass (val,len) {
	if (!len) len = 4;
	if (val == '') return 0x1;
	if (val.length < len) return 0x3;
	if (!val.match(/^\w+$/)) return 0x2;
	return 0x0;
}

/****************************************************************
 * classes
 ****************************************************************/




/****************************************************************
 * methods
 ****************************************************************/