﻿

function RegisterChange() {
	
}
/**********************************************/
/**********************************************/
function ProcessView(__Url) {
	GoToUrl(__Url);
}
/**********************************************/
function ProcessEdit(__Url) {
	GoToUrl(__Url);
}
/**********************************************/
function ProcessCopy(__Url) {
	GoToUrl(__Url);
}
/**********************************************/
function ProcessDelete(__Url) {
	var sMessage = GetVoc('sys_formdeletealert') + '<br><br>';
	var _Btns = {};
	_Btns[GetVoc('sys_yes')] = function() { GoToUrl(__Url); };
	_Btns[GetVoc('sys_no')] = function() { $(this).dialog("destroy"); };
	$("#AMGModal").html(sMessage);
	$("#AMGModal").dialog({
		autoOpen: true, modal: true, title: '', resizable: false,
		buttons: _Btns
	});
}
/**********************************************/
function ProcessDisable(__Url) {
	var sMessage = GetVoc('sys_formdisablealert') + '<br><br>';
	var _Btns = {};
	_Btns[GetVoc('sys_yes')] = function() { GoToUrl(__Url); };
	_Btns[GetVoc('sys_no')] = function() { $(this).dialog("destroy"); };
	$("#AMGModal").html(sMessage);
	$("#AMGModal").dialog({
		autoOpen: true, modal: true, title: '', resizable: false,
		buttons: _Btns
	});
}
/**********************************************/
function ProcessEnable(__Url) {
	var sMessage = GetVoc('sys_formenablealert') + '<br><br>';
	var _Btns = {};
	_Btns[GetVoc('sys_yes')] = function() { GoToUrl(__Url); };
	_Btns[GetVoc('sys_no')] = function() { $(this).dialog("destroy"); };
	$("#AMGModal").html(sMessage);
	$("#AMGModal").dialog({
		autoOpen: true, modal: true, title: '', resizable: false,
		buttons: _Btns
	});
}



/**********************************************/
function ProcessReOrder(__Url) {
	GoToUrl(__Url);
}
/**********************************************/
function ProcessBack(__Url) {
	GoToUrl(__Url);
}

/***************************************************************************/
function SubmitForm(__Form) {
	if (__Form) {
		__Form.submit();
	}
	else {
		aspnetForm.submit()
	}
}
/**********************************************/
function AMGFormResponse(__Success, __Message) {
	this.Success = __Success;
	this.Message = __Message
};
/***************************************************************************/
function CancelForm(__Url) {
	if (AMGPageContext.InfoChanged) {
		var sMessage = GetSysVoc('sys_formcancelalert') + '<br><br>';
		var _Btns = {};
		_Btns[GetVoc('sys_yes')] = function() { $(this).dialog("destroy"); GoToBack(__Url) };
		_Btns[GetVoc('sys_no')] = function() { $(this).dialog("destroy"); };
		$("#AMGModal").html(sMessage);
		$("#AMGModal").dialog({
			autoOpen: true, modal: true, title: '', resizable: false,
			buttons: _Btns
		});
	}
	else {
		GoToBack(__Url);
	}
}
/***************************************************************************/
function ValidateForm(__Prefix) {
	//alert(44)
	$('#FldFormToProcess').val(__Prefix);
	InitSaving(GetVoc('sys_formsavewaitalert'));
	if (!__Prefix || __Prefix == "-1") {
		__Prefix = '';
	}
	var _Validate = 'ValidateFormCustom' + __Prefix;
	//alert(_Validate)
	setTimeout('ValidateFormCustom' + __Prefix + '(\'' + __Prefix + '\')', 100);
	if (FrmTimeOut && FrmTimeOut > -1) {
		iTimeoutId = setTimeout('ValidateFormClear()', FrmTimeOut);
	}
}
/***************************************************************************/
function ValidateFormCustom(__Prefix) {
	var _FormResult = AMGFormGenericValidate()
	if (!_FormResult.Success) {
		ValidateFormClear();
		DisplayError(_FormResult.Message);
	}
	else {
		//SubmitForm();
	}
}
/***************************************************************************/
var _Result = new Array();
function AMGFormGenericValidate(__Prefix) {
	try {
		_Result = new Array();
		if (!__Prefix || __Prefix == "-1") {
			__Prefix = '';
		}
		else {
			var _Col = eval('AMGControlContext' + __Prefix + '.FormCol');
			for (var i = 0; i < _Col.length; i++) {
				//LogDebug(1, $('#' + _Col[i]).attr('ValidationType'));
				switch ($('#' + _Col[i]).attr('ValidationType')) {
					case 'password':
						AMGFormVerifyPassword(_Col[i]);
						break;
					case 'email':
						AMGFormVerifyEmail(_Col[i]);
						break;
					case 'uimultiselect':
					case 'uidropdownchecklist':
					case 'select':
						AMGFormVerifyMultiSelect(_Col[i]);
						break;
					case 'buttonset':
						AMGFormVerifyButtonSet(_Col[i]);
						break;
					case 'upload':
						AMGFormVerifyUpload(_Col[i]);
						break;
					case 'decimal':
						AMGFormVerifyDefault(_Col[i]);
						break;
					case 'integer':
					case 'volume':
						AMGFormVerifyInteger(_Col[i]);
						break;
					case 'ipaddress':
						AMGFormVerifyIpAddress(_Col[i]);
						break;
					case 'ipaddresslist':
						AMGFormVerifyIpAddress(_Col[i]);
						break;
					case 'date':
						AMGFormVerifyDate(_Col[i]);
						break;
					case 'datetime':
						AMGFormVerifyDate(_Col[i]);
						AMGFormVerifyTime(_Col[i]);
						break;
					default:
						AMGFormVerifyDefault(_Col[i]);
						break;
				}
			}
		}
		//alert(44)
		var _IsOk = true;
		var _Message = '';
		//alert(_Result)
		for (var i = 0; i < _Result.length; i++) {
			if (!_Result[i].Success) {
				_IsOk = false;
				_Message += _Result[i].Message + "<br>";
			}
		}
		return new AMGFormResponse(_IsOk, _Message);
	}
	catch (Err) {
		alert(Err.description)
	}
}
function FormMessageReplace(__Message, __LookFor, __ReplaceWith) {
	
	return __Message.replace(__LookFor, __ReplaceWith);
}
function GetMaxLength(__This) {
	var _L = parseInt(__This.attr('maxlength'));
	if (isNaN(_L) ) {
		return -1;
	}
	else {
		return _L;
	}
}
/**********************************************/
function AMGFormVerifyDefault(__Id) {
	var _This = $('#' + __Id);
	//LogDebug(1, __Id + " - " + _This.val().length + " - |" + GetMaxLength(_This))
	if (_This.val() == '' && _This.attr('Mandatory') == 'true') {
		_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formcannotbeempty'), '@@NAME@@', _This.attr('Title')));
	}
	else {
		if (_This.attr('maxlength')) {
			var _MaxLength = GetMaxLength(_This);
			var _ThisLength = (_This.val()) ? _This.val().length : 0;
			if (_MaxLength >= 0 && _ThisLength > _MaxLength) {
				
				_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formistoolong'), '@@NAME@@', _This.attr('Title')));
			}
		}
		if (_This.attr('minlength')) {
			var _MinLength = parseInt(_This.attr('minlength'));
			var _ThisLength = (_This.val()) ? _This.val().length : 0; 
			if (_ThisLength < _MinLength) {
				//_Result[_Result.length] = new AMGFormResponse(false, _This.attr('Title') + ' must have at least ' + _MinLength + ' char.');
				_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(FormMessageReplace(GetVoc('sys_formistooshort'), '@@NAME@@', _This.attr('Title')), '@@LENGTH@@', _MinLength));
			}
		}
	}
	_Result[_Result.length] = new AMGFormResponse(true);
}
/**********************************************/
function AMGFormVerifyUpload(__Id) {
	var _This = $('#' + __Id);
	var _ToUploadCount = GetFileToUploadCount(_This.attr('Key'));
	//alert(_ToUploadCount)
	var _ThisLength = (_This.val()) ? ((_This.val().indexOf('||') > -1) ? _This.val().split('||').length : 1) : 0;
	//alert(_ThisLength)
	if (_ToUploadCount > 0) {
		_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formerrorfiletoupload'), '@@NAME@@', _This.attr('Title')));
	}
	else if (_This.val() == '' && _This.attr('Mandatory') == 'true') {
		_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formcannotbeempty'), '@@NAME@@', _This.attr('Title')));
	}
	if (_This.attr('maxlength')) {
		var _MaxLength = parseInt(_This.attr('maxlength'));
		//var _ThisLength = (_This.val()) ? _This.val().length : 0;
		//alert((_This.val()))
		if (_ThisLength > _MaxLength) {
			_Result[_Result.length] = new AMGFormResponse(false, _This.attr('Title') + ' you have reach the maximum number of files.');
		}
	}
	if (_This.attr('minlength')) {
		var _MinLength = parseInt(_This.attr('minlength'));
		//var _ThisLength = (_This.val()) ? _This.val().length : 0;
		if (_ThisLength < _MinLength) {
			_Result[_Result.length] = new AMGFormResponse(false, _This.attr('Title') + ' you must choose at least ' + _MinLength + ' file.');
		}
	}
	_Result[_Result.length] = new AMGFormResponse(true);
}
/**********************************************/
function AMGFormVerifyInteger(__Id) {
	var _This = $('#' + __Id);
	//alert(__Id)
	if (_This.val() == '' && _This.attr('Mandatory') == 'true') {
		_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formcannotbeempty'), '@@NAME@@', _This.attr('Title')));
		//LogDebug(1, _Result[0].Message)
	}
		if (_This.attr('maxvalue')) {
			var _MaxVal = parseInt(_This.attr('maxvalue'));
			var _ThisVal = (_This.val()) ? _This.val() : 0;
			if (_ThisVal > _MaxVal) {
				_Result[_Result.length] = new AMGFormResponse(false, _This.attr('Title') + ' must be maximum ' + _MaxVal + '.');
			}
		}
		if (_This.attr('minvalue')) {
			var _MinVal = parseInt(_This.attr('minvalue'));
			var _ThisVal = (_This.val()) ? _This.val(): 0;
			if (_ThisVal < _MinVal) {
				_Result[_Result.length] = new AMGFormResponse(false, _This.attr('Title') + ' must be at least ' + _MinVal + '.');
			}
		}
	_Result[_Result.length] = new AMGFormResponse(true);
}
/**********************************************/
function AMGFormVerifyIpAddress(__Id) {
	//LogDebug(1, __Id)
	var _This = $('#' + __Id);
	//alert(__Id)
	//alert(_This.val().indexOf('\n'))
	if ((_This.val() == '' && _This.attr('Mandatory') == 'true')) {
		_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formcannotbeempty'), '@@NAME@@', _This.attr('Title')));
	}
	else if (_This.val() != '') {
		var _List = _This.val().split('\n');
		for (var i = 0; i < _List.length; i++){
			//alert(_List[i])
			if( !IsIpAddress(_List[i])){
				_Result[_Result.length] = new AMGFormResponse(false, _This.attr('Title') + ' is not a valid Ip Address');
				//break;
			}
		}
	}
	
	//_Result[_Result.length] = new AMGFormResponse(false, _This.attr('Title') + ' is not a valid Ip Address');
	//}
	_Result[_Result.length] = new AMGFormResponse(true);
}
/**********************************************/
function AMGFormVerifyTime(__Id, __NeedTime) {
	var _This = $('#' + __Id + 'Time');
	if (_This.val() == '' && $('#' + __Id).attr('Mandatory') == 'true') {
		_Result[_Result.length] = new AMGFormResponse(false, _This.attr('Title') + ' time can not be empty');
	}
	//_Result[_Result.length] = new AMGFormResponse(true);
}
/**********************************************/
function AMGFormVerifyDate(__Id, __NeedTime) {
	var _This = $('#' + __Id);
	if (_This.val() == '' && _This.attr('Mandatory') == 'true') {
		_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formcannotbeempty'), '@@NAME@@', _This.attr('Title')));
	}
	else if (_This.val() && !_This.datepicker("getDate")) {
		_Result[_Result.length] = new AMGFormResponse(false, _This.attr('Title') + ' is not a valid date');
	}
	//_Result[_Result.length] = new AMGFormResponse(true);
}
/**********************************************/
function AMGFormVerifyButtonSet(__Id) {
	var _This = $('#' + __Id);
	__Id = __Id.replace('_Item0', '');
	var _ThisVal = new Array();
	$('input[name='+__Id+']:checked').each(function() {
		_ThisVal[_ThisVal.length] = $(this).val();
	});
	var _ThisLength = _ThisVal.length;
	if ((_ThisLength == 0 || _ThisVal == '-1') && _This.attr('Mandatory') == 'true') {
		_Result[_Result.length] = new AMGFormResponse(false, 'You need to select at least one ' + _This.attr('Title'));
	}
	//alert(_This.attr('maxlength') + ' - ' + _This.attr('minlength'))
	if (_This.attr('maxlength')) {
		var _MaxLength = parseInt(_This.attr('maxlength'));
		if (_ThisLength > _MaxLength) {
			_Result[_Result.length] = new AMGFormResponse(false, 'You have selected more than the ' + _MaxLength + ' options allowed for ' + _This.attr('Title') + '.');
		}
	}
	if (_This.attr('minlength')) {
		var _MinLength = parseInt(_This.attr('minlength'));
		if (_ThisLength < _MinLength) {
			_Result[_Result.length] = new AMGFormResponse(false, 'You need to select at least ' + _MinLength + ' options for ' + _This.attr('Title') + '.');
		}
	}
	_Result[_Result.length] = new AMGFormResponse(true);
}
/**********************************************/
function AMGFormVerifyMultiSelect(__Id) {
	var _This = $('#' + __Id);
	if ((!_This.val() || _This.val() == '-1') && _This.attr('Mandatory') == 'true') {
		_Result[_Result.length] = new AMGFormResponse(false, 'You need to select at least one ' + _This.attr('Title'));
	}
	if (_This.attr('maxlength')) {
		var _MaxLength = parseInt(_This.attr('maxlength'));
		var _ThisLength = (_This.val()) ? _This.val().length : 0;
		if (_ThisLength > _MaxLength) {
			_Result[_Result.length] = new AMGFormResponse(false, 'You have selected more than the ' + _MaxLength + ' options allowed for ' + _This.attr('Title') + '.');
		}
	}
	if (_This.attr('minlength')) {
		var _MinLength = parseInt(_This.attr('minlength'));
		var _ThisLength = (_This.val()) ? _This.val().length : 0;
		if (_ThisLength < _MinLength) {
			_Result[_Result.length] = new AMGFormResponse(false, 'You need to select at least ' + _MinLength + ' options for ' + _This.attr('Title') + '.');
		}
	}
	_Result[_Result.length] = new AMGFormResponse(true);
}
/**********************************************/
function AMGFormVerifyEmail(__Id) {
	var _This = $('#' + __Id);
	if ((_This.val() == '' && _This.attr('Mandatory') == 'true')) {
		_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formcannotbeempty'), '@@NAME@@', _This.attr('Title')));
	}
	else if   (_This.val() != '' && !IsEmail(_This.val()) ){
		//_Result[_Result.length] = new AMGFormResponse(false, _This.attr('Title') + ' is not in a correct format');
		_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formnotcorrectformat'), '@@NAME@@', _This.attr('Title')));
	}
	_Result[_Result.length] = new AMGFormResponse(true);
}
/**********************************************/
function AMGFormVerifyPassword(__Id) {
	var _This = $('#' + __Id);
	if (_This.val() == '' && _This.attr('ValueOriginal') == '' && _This.attr('Mandatory') == 'true') {
		_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formcannotbeempty'), '@@NAME@@', _This.attr('Title')));
	}
	else if ($('#' + __Id + 'Check').val() == '1' && _This.attr('EqualsTo') != '' && $('#' + _This.attr('EqualsTo')).val() != _This.val()) {
			_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formerrorconfirmpassword'), '@@NAME@@', _This.attr('Title')));
	}
	else if ($('#' + __Id + 'Check').val() == '1') {
		if (_This.attr('maxlength')) {
			var _MaxLength = parseInt(_This.attr('maxlength'));
			var _ThisLength = (_This.val()) ? _This.val().length : 0;
			if (_ThisLength > _MaxLength) {
				_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(GetVoc('sys_formistoolong'), '@@NAME@@', _This.attr('Title')));
			}
		}
		if (_This.attr('minlength')) {
			var _MinLength = parseInt(_This.attr('minlength'));
			var _ThisLength = (_This.val()) ? _This.val().length : 0;
			if (_ThisLength < _MinLength) {
				_Result[_Result.length] = new AMGFormResponse(false, FormMessageReplace(FormMessageReplace(GetVoc('sys_formistooshort'), '@@NAME@@', _This.attr('Title')), '@@LENGTH@@', _MinLength));
			}
		}
	}
	_Result[_Result.length] = new AMGFormResponse(true);
}
/**********************************************/
function CheckExists(__Prefix, __This, __Url, __Arg, __Message, __ReplaceVal) {
	var sVal = $(__This).val();
	if ($(__This).attr('ValueOriginal') != sVal) {
		AMGAjaxHelper.CallJson({
			url: __Url,
			data: "{'" + __Arg + "':'" + AMGAjaxHelper.Escape(sVal) + "'}",
			success: function(__Response) {
				if (__Response.Success) {
					__Message = __Message || GetVoc('sys_alreadyexists');
					var _Mes = __Message.replace(__ReplaceVal, sVal);
					DisplayError(_Mes, '', __Prefix, 3500); //'this User "'+sVal+'" already exists');
					$(__This).val('')
				}
			}
		});
	}

}
/**********************************************/
function GetButtonSetValue(__Name) {
	var _ThisVal = new Array();
	$('input[name=' + __Name + ']:checked').each(function() {
		_ThisVal[_ThisVal.length] = $(this).val();
	});
	return _ThisVal;

}
/**********************************************/
function IsUrl(__Value) {
	return /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(__Value);
}
/**********************************************/
function IsStreamUrl(__Value) {
	return /^(https?|rtsp|mms):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(__Value);
}
/**********************************************/
function IsIpAddress(__Value) {
	__Value = __Value.replace(/\s/g, "") //remove spaces for checking
	var re = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; //regex. check for digits and in
	if (re.test(__Value)) {
		var parts = __Value.split(".");
		if (parseInt(parseFloat(parts[0])) == 0) {
			return false;
		}
		if (parseInt(parseFloat(parts[3])) == 0) {
			return false;
		}
		for (var i = 0; i < parts.length; i++) {
			if (parseInt(parseFloat(parts[i])) > 255) {
				return false;
			}
		}
		return true;
	} else {
		return false;
	}
}
/**********************************************/
function IsDate(__DateString, __Format) {
	try {
		var _d = DateFromString(__DateString);
		_d.getDate();
		return true;
	}
	catch (e) {
		return false;
	}
}
/**********************************************/
function IsEmail(__Email) {
	try {
		var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
		if (emailReg.test(__Email)) {
			return true
		}
		else {
			return false;
		}
	}
	catch (e) {
		return false;
	}
}
/**********************************************/
function IsNumeric(__Value) {
	if (__Value == null || !__Value.toString().match(/^[-]?\d*\.?\d*$/)) return false;
	return true;
}
/**********************************************/
function FixHexColor(__this, __Prefix) {
	var _Val = ($(__this).val());
	var _Before = _Val;
	if (_Val) {
		_Val = _Val.replace(/[^[0-9ABCDEFabcdef#]/g, '');
		if (_Val.indexOf('#') > 0) {
			//alert(_Val.indexOf(__Separator) + ' - ' + _Val.lastIndexOf(__Separator))
			_Val = _Val.replace('#', '');
		}
		else if (_Val.indexOf('#')== -1) {
			_Val = '#' + _Val;
		}
		if (_Val.indexOf('#') != _Val.lastIndexOf('#')) {
			_Val = _Val.substring(0, _Val.lastIndexOf('#')) + _Val.substring(_Val.lastIndexOf('#') + 1);
		}
		if (_Before != _Val) {
			$(__this).val(_Val)
		}
		if (/^[#0-9ABCDEFabcdef]{0,7}$/.test(_Val) == false) {
			DisplayError(GetVoc('sys_hexcolorerror'), null, __Prefix, 2000)
		}
	}
}
/**********************************************/
function FixDecimal(__this, __Prefix, __Separator) {
	var _Val = ($(__this).val());
	var _Before = _Val;
	if (_Val) {
		__Separator = __Separator || '.';
		if (__Separator == ',') {
			_Val = ReplaceAll(_Val, '.', ',');
		}
		else {
			_Val = ReplaceAll(_Val, ',', '.');
		}
		_Val = _Val.replace(/[^\d\.,-]/g, '');
		if (_Val.indexOf(__Separator) != _Val.lastIndexOf(__Separator)) {
			//alert(_Val.indexOf(__Separator) + ' - ' + _Val.lastIndexOf(__Separator))
			_Val = _Val.replace(__Separator, '');
		}
		if (_Val.indexOf('-') != 0) {
			//alert(_Val.indexOf(__Separator) + ' - ' + _Val.lastIndexOf(__Separator))
			_Val = _Val.replace('-', '');
		}
		if (_Val.indexOf('-') != _Val.lastIndexOf('-')) {
			_Val = _Val.substring(0, _Val.lastIndexOf('-')) + _Val.substring(_Val.lastIndexOf('-') + 1);
		}
		if (_Before != _Val) {
			$(__this).val(_Val)
		}
		if (/^[-0-9]{1,10}(\.[0-9]{0,5})?$/.test(_Val) == false) {
			DisplayError(GetVoc('sys_decimalformaterror'), null, __Prefix, 2000)
		}
	}
}
/**********************************************/
function FixInteger(__this, __Prefix) {
	var _Val = ($(__this).val());
	var _Before = _Val;
	if (_Val) {
		_Val = _Val.replace(/[^\d|-]/g, '');
		if (_Val.indexOf('-') != 0) {
			_Val = _Val.replace('-', '');
		}
		if (_Val.indexOf('-') != _Val.lastIndexOf('-')) {
			_Val = _Val.substring(0, _Val.lastIndexOf('-')) + _Val.substring(_Val.lastIndexOf('-') + 1);
		}
		if (_Before != _Val) {
			$(__this).val(_Val)
		}
		if (/^[-0-9]{0,15}$/.test(_Val) == false) {
			DisplayError(GetVoc('sys_integerformaterror'), null, __Prefix, 2000)
		}
	}
}
function FixTrimEnds(__this, __Prefix) {
	var _Val = ($(__this).val());
	var _Before = _Val;
	if (_Val) {
		_Val = _Val.replace(/^\s*/, "").replace(/\s*$/, "");
		if (_Before != _Val) {
			$(__this).val(_Val);
		}
	}
}
/**********************************************/
function FixNoSpace(__this, __Prefix) {
	var _Val = ($(__this).val());
	var _Before = _Val;
	if (_Val) {
		_Val = _Val.replace(/\s+/g, '');
		if (_Before != _Val) {
			$(__this).val(_Val)
		}
	}
}
/**********************************************/
function FixLowerCase(__this, __Prefix) {
	var _Val = ($(__this).val());
	var _Before = _Val;
	if (_Val) {
		_Val = _Val.toLowerCase();
		if (_Before != _Val) {
			$(__this).val(_Val)
		}
	}
}
/**********************************************/
function FixUpperCase(__this, __Prefix) {
	var _Val = ($(__this).val());
	var _Before = _Val;
	if (_Val) {
		_Val = _Val.toUpperCase();
		if (_Before != _Val) {
			$(__this).val(_Val)
		}
	}
}
/**********************************************/
function DateNiceFormatToSecond(__NiceTime) {
	var AryRes = __NiceTime.split(':');
	var iTotal = AryRes[0] * 3600 + AryRes[1] * 60 + AryRes[2] * 1
	return iTotal
}

/**********************************************/
function TranslationInit(__This, __Prefix) {
	$('#CC_TranslationSelect' + __Prefix).show();
	$('#CC_TranslationWait' + __Prefix).hide();
	$('#FldTranslationResult' + __Prefix).val('');
	$("#FldTranslationOrigin" + __Prefix).val($(__This).val())
	var _Btns = {};
	_Btns[GetVoc('sys_cancel')] = function() {
		$(this).dialog("destroy");
	};
	_Btns[GetVoc('sys_save')] = function() {
		$(this).dialog("destroy"); //TransferResult(__Prefix);
		$(__This).val($('#FldTranslationResult' + __Prefix).val());
		AMGPageContext.RegisterChange();
		//$('#FldTranslationResult'+__Prefix).html(sMessage);
	};
	$("#AMGTranslation" + __Prefix).dialog({
		autoOpen: true, width: 600, height: 500, modal: true, title: GetVoc('sys_formtranstitle'), resizable: true,
		buttons: _Btns
	});
}
function TranslationGetProposition(__Prefix) {
	var sMessage = $("#FldTranslationOrigin" + __Prefix).val();
	$('#CC_TranslationSelect' + __Prefix).hide();
	$('#CC_TranslationWait' + __Prefix).show();
	sMessage = sMessage.replace(/\r\n/g, '<br>');
	sMessage = sMessage.replace(/\n/g, '<br>');
	sMessage = sMessage.replace(/\r/g, '<br>');
	var _Context = eval('AMGControlContext' + __Prefix);
	var _LngOrigin = ($("#FldTranslationLng" + __Prefix).val());
	var _LngDestination = ($("#FldTranslationEndLng" + __Prefix).val());
	//var _LngDestination = _Context.LngTranslatCode;
	google.language.translate(
		sMessage
		, _LngOrigin
		, _LngDestination
		, function(result) {
			$('#CC_TranslationWait' + __Prefix).hide();
			$('#CC_TranslationSelect' + __Prefix).show();
			if (result.translation) {
				sMessage = result.translation;
				sMessage = sMessage.replace(/<br>/gi, '\n');
				//sMessage = sMessage.replace(/\| \|/gi, '@@');
				sMessage = sMessage.replace(/@ @/gi, '@@');

				$('#FldTranslationResult' + __Prefix).html(sMessage);
			}
			else {
				$('#FldTranslationResult' + __Prefix).html(sMessage);
			}
		}
	);
}

