


PrimeFaces.locales ['en'] = { closeText: 'Close', prevText: 'Previous', nextText: 'Next', monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Tue', 'Fri', 'Sat'], dayNamesMin: ['S', 'M', 'T', 'W ', 'T', 'F ', 'S'], weekHeader: 'Week', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix:'', timeOnlyTitle: 'Only Time', timeText: 'Time', hourText: 'Time', minuteText: 'Minute', secondText: 'Second', currentText: 'Current Date', ampm: false, month: 'Month', week: 'week', day: 'Day', allDayText: 'All Day', messages: { 'javax.faces.component.UIInput.REQUIRED': '{0}: Validation Error: Value is required.', 'javax.faces.converter.IntegerConverter.INTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.IntegerConverter.INTEGER_detail': '{2}: \'{0}\' must be a number between -2147483648 and 2147483647 Example: {1}', 'javax.faces.converter.DoubleConverter.DOUBLE': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.DoubleConverter.DOUBLE_detail': '{2}: \'{0}\' must be a number between 4.9E-324 and 1.7976931348623157E308 Example: {1}', 'javax.faces.converter.BigDecimalConverter.DECIMAL': '{2}: \'{0}\' must be a signed decimal number.', 'javax.faces.converter.BigDecimalConverter.DECIMAL_detail': '{2}: \'{0}\' must be a signed decimal number consisting of zero or more digits, that may be followed by a decimal point and fraction. Example: {1}', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail': '{2}: \'{0}\' must be a number consisting of one or more digits. Example: {1}', 'javax.faces.converter.ByteConverter.BYTE': '{2}: \'{0}\' must be a number between 0 and 255.', 'javax.faces.converter.ByteConverter.BYTE_detail': '{2}: \'{0}\' must be a number between 0 and 255. Example: {1}', 'javax.faces.converter.CharacterConverter.CHARACTER': '{1}: \'{0}\' must be a valid character.', 'javax.faces.converter.CharacterConverter.CHARACTER_detail': '{1}: \'{0}\' must be a valid ASCII character.', 'javax.faces.converter.ShortConverter.SHORT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.ShortConverter.SHORT_detail': '{2}: \'{0}\' must be a number between -32768 and 32767 Example: {1}', 'javax.faces.converter.BooleanConverter.BOOLEAN': '{1}: \'{0}\' must be \'true\' or \'false\'', 'javax.faces.converter.BooleanConverter.BOOLEAN_detail': '{1}: \'{0}\' must be \'true\' or \'false\'. Any value other than \'true\' will evaluate to \'false\'.', 'javax.faces.validator.LongRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}.', 'javax.faces.validator.LongRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type.', 'javax.faces.validator.DoubleRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}', 'javax.faces.validator.DoubleRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type', 'javax.faces.converter.FloatConverter.FLOAT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.FloatConverter.FLOAT_detail': '{2}: \'{0}\' must be a number between 1.4E-45 and 3.4028235E38 Example: {1}', 'javax.faces.converter.DateTimeConverter.DATE': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.DateTimeConverter.DATE_detail': '{2}: \'{0}\' could not be understood as a date. Example: {1}', 'javax.faces.converter.DateTimeConverter.TIME': '{2}: \'{0}\' could not be understood as a time.', 'javax.faces.converter.DateTimeConverter.TIME_detail': '{2}: \'{0}\' could not be understood as a time. Example: {1}', 'javax.faces.converter.DateTimeConverter.DATETIME': '{2}: \'{0}\' could not be understood as a date and time.', 'javax.faces.converter.DateTimeConverter.DATETIME_detail': '{2}: \'{0}\' could not be understood as a date and time. Example: {1}', 'javax.faces.converter.DateTimeConverter.PATTERN_TYPE': '{1}: A \'pattern\' or \'type\' attribute must be specified to convert the value \'{0}\'', 'javax.faces.converter.NumberConverter.CURRENCY': '{2}: \'{0}\' could not be understood as a currency value.', 'javax.faces.converter.NumberConverter.CURRENCY_detail': '{2}: \'{0}\' could not be understood as a currency value. Example: {1}', 'javax.faces.converter.NumberConverter.PERCENT': '{2}: \'{0}\' could not be understood as a percentage.', 'javax.faces.converter.NumberConverter.PERCENT_detail': '{2}: \'{0}\' could not be understood as a percentage. Example: {1}', 'javax.faces.converter.NumberConverter.NUMBER': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.NumberConverter.NUMBER_detail': '{2}: \'{0}\' is not a number. Example: {1}', 'javax.faces.converter.NumberConverter.PATTERN': '{2}: \'{0}\' is not a number pattern.', 'javax.faces.converter.NumberConverter.PATTERN_detail': '{2}: \'{0}\' is not a number pattern. Example: {1}', 'javax.faces.validator.LengthValidator.MINIMUM': '{1}: Validation Error: Length is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LengthValidator.MAXIMUM': '{1}: Validation Error: Length is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET': 'Regex pattern must be set.', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET_detail': 'Regex pattern must be set to non-empty value.', 'javax.faces.validator.RegexValidator.NOT_MATCHED': 'Regex Pattern not matched', 'javax.faces.validator.RegexValidator.NOT_MATCHED_detail': 'Regex pattern of \'{0}\' not matched', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION': 'Error in regular expression.', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION_detail': 'Error in regular expression, \'{0}\'' } };
PrimeFaces.locales ['nl'] = { closeText: 'Close', prevText: 'Previous', nextText: 'Next', monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Tue', 'Fri', 'Sat'], dayNamesMin: ['S', 'M', 'T', 'W ', 'T', 'F ', 'S'], weekHeader: 'Week', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix:'', timeOnlyTitle: 'Only Time', timeText: 'Time', hourText: 'Time', minuteText: 'Minute', secondText: 'Second', currentText: 'Current Date', ampm: false, month: 'Month', week: 'week', day: 'Day', allDayText: 'All Day', messages: { 'javax.faces.component.UIInput.REQUIRED': '{0}: Validation Error: Value is required.', 'javax.faces.converter.IntegerConverter.INTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.IntegerConverter.INTEGER_detail': '{2}: \'{0}\' must be a number between -2147483648 and 2147483647 Example: {1}', 'javax.faces.converter.DoubleConverter.DOUBLE': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.DoubleConverter.DOUBLE_detail': '{2}: \'{0}\' must be a number between 4.9E-324 and 1.7976931348623157E308 Example: {1}', 'javax.faces.converter.BigDecimalConverter.DECIMAL': '{2}: \'{0}\' must be a signed decimal number.', 'javax.faces.converter.BigDecimalConverter.DECIMAL_detail': '{2}: \'{0}\' must be a signed decimal number consisting of zero or more digits, that may be followed by a decimal point and fraction. Example: {1}', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail': '{2}: \'{0}\' must be a number consisting of one or more digits. Example: {1}', 'javax.faces.converter.ByteConverter.BYTE': '{2}: \'{0}\' must be a number between 0 and 255.', 'javax.faces.converter.ByteConverter.BYTE_detail': '{2}: \'{0}\' must be a number between 0 and 255. Example: {1}', 'javax.faces.converter.CharacterConverter.CHARACTER': '{1}: \'{0}\' must be a valid character.', 'javax.faces.converter.CharacterConverter.CHARACTER_detail': '{1}: \'{0}\' must be a valid ASCII character.', 'javax.faces.converter.ShortConverter.SHORT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.ShortConverter.SHORT_detail': '{2}: \'{0}\' must be a number between -32768 and 32767 Example: {1}', 'javax.faces.converter.BooleanConverter.BOOLEAN': '{1}: \'{0}\' must be \'true\' or \'false\'', 'javax.faces.converter.BooleanConverter.BOOLEAN_detail': '{1}: \'{0}\' must be \'true\' or \'false\'. Any value other than \'true\' will evaluate to \'false\'.', 'javax.faces.validator.LongRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}.', 'javax.faces.validator.LongRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type.', 'javax.faces.validator.DoubleRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}', 'javax.faces.validator.DoubleRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type', 'javax.faces.converter.FloatConverter.FLOAT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.FloatConverter.FLOAT_detail': '{2}: \'{0}\' must be a number between 1.4E-45 and 3.4028235E38 Example: {1}', 'javax.faces.converter.DateTimeConverter.DATE': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.DateTimeConverter.DATE_detail': '{2}: \'{0}\' could not be understood as a date. Example: {1}', 'javax.faces.converter.DateTimeConverter.TIME': '{2}: \'{0}\' could not be understood as a time.', 'javax.faces.converter.DateTimeConverter.TIME_detail': '{2}: \'{0}\' could not be understood as a time. Example: {1}', 'javax.faces.converter.DateTimeConverter.DATETIME': '{2}: \'{0}\' could not be understood as a date and time.', 'javax.faces.converter.DateTimeConverter.DATETIME_detail': '{2}: \'{0}\' could not be understood as a date and time. Example: {1}', 'javax.faces.converter.DateTimeConverter.PATTERN_TYPE': '{1}: A \'pattern\' or \'type\' attribute must be specified to convert the value \'{0}\'', 'javax.faces.converter.NumberConverter.CURRENCY': '{2}: \'{0}\' could not be understood as a currency value.', 'javax.faces.converter.NumberConverter.CURRENCY_detail': '{2}: \'{0}\' could not be understood as a currency value. Example: {1}', 'javax.faces.converter.NumberConverter.PERCENT': '{2}: \'{0}\' could not be understood as a percentage.', 'javax.faces.converter.NumberConverter.PERCENT_detail': '{2}: \'{0}\' could not be understood as a percentage. Example: {1}', 'javax.faces.converter.NumberConverter.NUMBER': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.NumberConverter.NUMBER_detail': '{2}: \'{0}\' is not a number. Example: {1}', 'javax.faces.converter.NumberConverter.PATTERN': '{2}: \'{0}\' is not a number pattern.', 'javax.faces.converter.NumberConverter.PATTERN_detail': '{2}: \'{0}\' is not a number pattern. Example: {1}', 'javax.faces.validator.LengthValidator.MINIMUM': '{1}: Validation Error: Length is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LengthValidator.MAXIMUM': '{1}: Validation Error: Length is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET': 'Regex pattern must be set.', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET_detail': 'Regex pattern must be set to non-empty value.', 'javax.faces.validator.RegexValidator.NOT_MATCHED': 'Regex Pattern not matched', 'javax.faces.validator.RegexValidator.NOT_MATCHED_detail': 'Regex pattern of \'{0}\' not matched', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION': 'Error in regular expression.', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION_detail': 'Error in regular expression, \'{0}\'' } };
PrimeFaces.locales ['de'] = { closeText: 'Close', prevText: 'Previous', nextText: 'Next', monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Tue', 'Fri', 'Sat'], dayNamesMin: ['S', 'M', 'T', 'W ', 'T', 'F ', 'S'], weekHeader: 'Week', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix:'', timeOnlyTitle: 'Only Time', timeText: 'Time', hourText: 'Time', minuteText: 'Minute', secondText: 'Second', currentText: 'Current Date', ampm: false, month: 'Month', week: 'week', day: 'Day', allDayText: 'All Day', messages: { 'javax.faces.component.UIInput.REQUIRED': '{0}: Validation Error: Value is required.', 'javax.faces.converter.IntegerConverter.INTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.IntegerConverter.INTEGER_detail': '{2}: \'{0}\' must be a number between -2147483648 and 2147483647 Example: {1}', 'javax.faces.converter.DoubleConverter.DOUBLE': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.DoubleConverter.DOUBLE_detail': '{2}: \'{0}\' must be a number between 4.9E-324 and 1.7976931348623157E308 Example: {1}', 'javax.faces.converter.BigDecimalConverter.DECIMAL': '{2}: \'{0}\' must be a signed decimal number.', 'javax.faces.converter.BigDecimalConverter.DECIMAL_detail': '{2}: \'{0}\' must be a signed decimal number consisting of zero or more digits, that may be followed by a decimal point and fraction. Example: {1}', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail': '{2}: \'{0}\' must be a number consisting of one or more digits. Example: {1}', 'javax.faces.converter.ByteConverter.BYTE': '{2}: \'{0}\' must be a number between 0 and 255.', 'javax.faces.converter.ByteConverter.BYTE_detail': '{2}: \'{0}\' must be a number between 0 and 255. Example: {1}', 'javax.faces.converter.CharacterConverter.CHARACTER': '{1}: \'{0}\' must be a valid character.', 'javax.faces.converter.CharacterConverter.CHARACTER_detail': '{1}: \'{0}\' must be a valid ASCII character.', 'javax.faces.converter.ShortConverter.SHORT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.ShortConverter.SHORT_detail': '{2}: \'{0}\' must be a number between -32768 and 32767 Example: {1}', 'javax.faces.converter.BooleanConverter.BOOLEAN': '{1}: \'{0}\' must be \'true\' or \'false\'', 'javax.faces.converter.BooleanConverter.BOOLEAN_detail': '{1}: \'{0}\' must be \'true\' or \'false\'. Any value other than \'true\' will evaluate to \'false\'.', 'javax.faces.validator.LongRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}.', 'javax.faces.validator.LongRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type.', 'javax.faces.validator.DoubleRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}', 'javax.faces.validator.DoubleRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type', 'javax.faces.converter.FloatConverter.FLOAT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.FloatConverter.FLOAT_detail': '{2}: \'{0}\' must be a number between 1.4E-45 and 3.4028235E38 Example: {1}', 'javax.faces.converter.DateTimeConverter.DATE': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.DateTimeConverter.DATE_detail': '{2}: \'{0}\' could not be understood as a date. Example: {1}', 'javax.faces.converter.DateTimeConverter.TIME': '{2}: \'{0}\' could not be understood as a time.', 'javax.faces.converter.DateTimeConverter.TIME_detail': '{2}: \'{0}\' could not be understood as a time. Example: {1}', 'javax.faces.converter.DateTimeConverter.DATETIME': '{2}: \'{0}\' could not be understood as a date and time.', 'javax.faces.converter.DateTimeConverter.DATETIME_detail': '{2}: \'{0}\' could not be understood as a date and time. Example: {1}', 'javax.faces.converter.DateTimeConverter.PATTERN_TYPE': '{1}: A \'pattern\' or \'type\' attribute must be specified to convert the value \'{0}\'', 'javax.faces.converter.NumberConverter.CURRENCY': '{2}: \'{0}\' could not be understood as a currency value.', 'javax.faces.converter.NumberConverter.CURRENCY_detail': '{2}: \'{0}\' could not be understood as a currency value. Example: {1}', 'javax.faces.converter.NumberConverter.PERCENT': '{2}: \'{0}\' could not be understood as a percentage.', 'javax.faces.converter.NumberConverter.PERCENT_detail': '{2}: \'{0}\' could not be understood as a percentage. Example: {1}', 'javax.faces.converter.NumberConverter.NUMBER': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.NumberConverter.NUMBER_detail': '{2}: \'{0}\' is not a number. Example: {1}', 'javax.faces.converter.NumberConverter.PATTERN': '{2}: \'{0}\' is not a number pattern.', 'javax.faces.converter.NumberConverter.PATTERN_detail': '{2}: \'{0}\' is not a number pattern. Example: {1}', 'javax.faces.validator.LengthValidator.MINIMUM': '{1}: Validation Error: Length is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LengthValidator.MAXIMUM': '{1}: Validation Error: Length is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET': 'Regex pattern must be set.', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET_detail': 'Regex pattern must be set to non-empty value.', 'javax.faces.validator.RegexValidator.NOT_MATCHED': 'Regex Pattern not matched', 'javax.faces.validator.RegexValidator.NOT_MATCHED_detail': 'Regex pattern of \'{0}\' not matched', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION': 'Error in regular expression.', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION_detail': 'Error in regular expression, \'{0}\'' } };
PrimeFaces.locales ['pt'] = { closeText: 'Close', prevText: 'Previous', nextText: 'Next', monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Tue', 'Fri', 'Sat'], dayNamesMin: ['S', 'M', 'T', 'W ', 'T', 'F ', 'S'], weekHeader: 'Week', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix:'', timeOnlyTitle: 'Only Time', timeText: 'Time', hourText: 'Time', minuteText: 'Minute', secondText: 'Second', currentText: 'Current Date', ampm: false, month: 'Month', week: 'week', day: 'Day', allDayText: 'All Day', messages: { 'javax.faces.component.UIInput.REQUIRED': '{0}: Validation Error: Value is required.', 'javax.faces.converter.IntegerConverter.INTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.IntegerConverter.INTEGER_detail': '{2}: \'{0}\' must be a number between -2147483648 and 2147483647 Example: {1}', 'javax.faces.converter.DoubleConverter.DOUBLE': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.DoubleConverter.DOUBLE_detail': '{2}: \'{0}\' must be a number between 4.9E-324 and 1.7976931348623157E308 Example: {1}', 'javax.faces.converter.BigDecimalConverter.DECIMAL': '{2}: \'{0}\' must be a signed decimal number.', 'javax.faces.converter.BigDecimalConverter.DECIMAL_detail': '{2}: \'{0}\' must be a signed decimal number consisting of zero or more digits, that may be followed by a decimal point and fraction. Example: {1}', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail': '{2}: \'{0}\' must be a number consisting of one or more digits. Example: {1}', 'javax.faces.converter.ByteConverter.BYTE': '{2}: \'{0}\' must be a number between 0 and 255.', 'javax.faces.converter.ByteConverter.BYTE_detail': '{2}: \'{0}\' must be a number between 0 and 255. Example: {1}', 'javax.faces.converter.CharacterConverter.CHARACTER': '{1}: \'{0}\' must be a valid character.', 'javax.faces.converter.CharacterConverter.CHARACTER_detail': '{1}: \'{0}\' must be a valid ASCII character.', 'javax.faces.converter.ShortConverter.SHORT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.ShortConverter.SHORT_detail': '{2}: \'{0}\' must be a number between -32768 and 32767 Example: {1}', 'javax.faces.converter.BooleanConverter.BOOLEAN': '{1}: \'{0}\' must be \'true\' or \'false\'', 'javax.faces.converter.BooleanConverter.BOOLEAN_detail': '{1}: \'{0}\' must be \'true\' or \'false\'. Any value other than \'true\' will evaluate to \'false\'.', 'javax.faces.validator.LongRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}.', 'javax.faces.validator.LongRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type.', 'javax.faces.validator.DoubleRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}', 'javax.faces.validator.DoubleRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type', 'javax.faces.converter.FloatConverter.FLOAT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.FloatConverter.FLOAT_detail': '{2}: \'{0}\' must be a number between 1.4E-45 and 3.4028235E38 Example: {1}', 'javax.faces.converter.DateTimeConverter.DATE': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.DateTimeConverter.DATE_detail': '{2}: \'{0}\' could not be understood as a date. Example: {1}', 'javax.faces.converter.DateTimeConverter.TIME': '{2}: \'{0}\' could not be understood as a time.', 'javax.faces.converter.DateTimeConverter.TIME_detail': '{2}: \'{0}\' could not be understood as a time. Example: {1}', 'javax.faces.converter.DateTimeConverter.DATETIME': '{2}: \'{0}\' could not be understood as a date and time.', 'javax.faces.converter.DateTimeConverter.DATETIME_detail': '{2}: \'{0}\' could not be understood as a date and time. Example: {1}', 'javax.faces.converter.DateTimeConverter.PATTERN_TYPE': '{1}: A \'pattern\' or \'type\' attribute must be specified to convert the value \'{0}\'', 'javax.faces.converter.NumberConverter.CURRENCY': '{2}: \'{0}\' could not be understood as a currency value.', 'javax.faces.converter.NumberConverter.CURRENCY_detail': '{2}: \'{0}\' could not be understood as a currency value. Example: {1}', 'javax.faces.converter.NumberConverter.PERCENT': '{2}: \'{0}\' could not be understood as a percentage.', 'javax.faces.converter.NumberConverter.PERCENT_detail': '{2}: \'{0}\' could not be understood as a percentage. Example: {1}', 'javax.faces.converter.NumberConverter.NUMBER': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.NumberConverter.NUMBER_detail': '{2}: \'{0}\' is not a number. Example: {1}', 'javax.faces.converter.NumberConverter.PATTERN': '{2}: \'{0}\' is not a number pattern.', 'javax.faces.converter.NumberConverter.PATTERN_detail': '{2}: \'{0}\' is not a number pattern. Example: {1}', 'javax.faces.validator.LengthValidator.MINIMUM': '{1}: Validation Error: Length is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LengthValidator.MAXIMUM': '{1}: Validation Error: Length is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET': 'Regex pattern must be set.', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET_detail': 'Regex pattern must be set to non-empty value.', 'javax.faces.validator.RegexValidator.NOT_MATCHED': 'Regex Pattern not matched', 'javax.faces.validator.RegexValidator.NOT_MATCHED_detail': 'Regex pattern of \'{0}\' not matched', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION': 'Error in regular expression.', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION_detail': 'Error in regular expression, \'{0}\'' } };
PrimeFaces.locales ['fr'] = { closeText: 'Close', prevText: 'Previous', nextText: 'Next', monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Tue', 'Fri', 'Sat'], dayNamesMin: ['S', 'M', 'T', 'W ', 'T', 'F ', 'S'], weekHeader: 'Week', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix:'', timeOnlyTitle: 'Only Time', timeText: 'Time', hourText: 'Time', minuteText: 'Minute', secondText: 'Second', currentText: 'Current Date', ampm: false, month: 'Month', week: 'week', day: 'Day', allDayText: 'All Day', messages: { 'javax.faces.component.UIInput.REQUIRED': '{0}: Validation Error: Value is required.', 'javax.faces.converter.IntegerConverter.INTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.IntegerConverter.INTEGER_detail': '{2}: \'{0}\' must be a number between -2147483648 and 2147483647 Example: {1}', 'javax.faces.converter.DoubleConverter.DOUBLE': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.DoubleConverter.DOUBLE_detail': '{2}: \'{0}\' must be a number between 4.9E-324 and 1.7976931348623157E308 Example: {1}', 'javax.faces.converter.BigDecimalConverter.DECIMAL': '{2}: \'{0}\' must be a signed decimal number.', 'javax.faces.converter.BigDecimalConverter.DECIMAL_detail': '{2}: \'{0}\' must be a signed decimal number consisting of zero or more digits, that may be followed by a decimal point and fraction. Example: {1}', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail': '{2}: \'{0}\' must be a number consisting of one or more digits. Example: {1}', 'javax.faces.converter.ByteConverter.BYTE': '{2}: \'{0}\' must be a number between 0 and 255.', 'javax.faces.converter.ByteConverter.BYTE_detail': '{2}: \'{0}\' must be a number between 0 and 255. Example: {1}', 'javax.faces.converter.CharacterConverter.CHARACTER': '{1}: \'{0}\' must be a valid character.', 'javax.faces.converter.CharacterConverter.CHARACTER_detail': '{1}: \'{0}\' must be a valid ASCII character.', 'javax.faces.converter.ShortConverter.SHORT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.ShortConverter.SHORT_detail': '{2}: \'{0}\' must be a number between -32768 and 32767 Example: {1}', 'javax.faces.converter.BooleanConverter.BOOLEAN': '{1}: \'{0}\' must be \'true\' or \'false\'', 'javax.faces.converter.BooleanConverter.BOOLEAN_detail': '{1}: \'{0}\' must be \'true\' or \'false\'. Any value other than \'true\' will evaluate to \'false\'.', 'javax.faces.validator.LongRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}.', 'javax.faces.validator.LongRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type.', 'javax.faces.validator.DoubleRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}', 'javax.faces.validator.DoubleRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type', 'javax.faces.converter.FloatConverter.FLOAT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.FloatConverter.FLOAT_detail': '{2}: \'{0}\' must be a number between 1.4E-45 and 3.4028235E38 Example: {1}', 'javax.faces.converter.DateTimeConverter.DATE': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.DateTimeConverter.DATE_detail': '{2}: \'{0}\' could not be understood as a date. Example: {1}', 'javax.faces.converter.DateTimeConverter.TIME': '{2}: \'{0}\' could not be understood as a time.', 'javax.faces.converter.DateTimeConverter.TIME_detail': '{2}: \'{0}\' could not be understood as a time. Example: {1}', 'javax.faces.converter.DateTimeConverter.DATETIME': '{2}: \'{0}\' could not be understood as a date and time.', 'javax.faces.converter.DateTimeConverter.DATETIME_detail': '{2}: \'{0}\' could not be understood as a date and time. Example: {1}', 'javax.faces.converter.DateTimeConverter.PATTERN_TYPE': '{1}: A \'pattern\' or \'type\' attribute must be specified to convert the value \'{0}\'', 'javax.faces.converter.NumberConverter.CURRENCY': '{2}: \'{0}\' could not be understood as a currency value.', 'javax.faces.converter.NumberConverter.CURRENCY_detail': '{2}: \'{0}\' could not be understood as a currency value. Example: {1}', 'javax.faces.converter.NumberConverter.PERCENT': '{2}: \'{0}\' could not be understood as a percentage.', 'javax.faces.converter.NumberConverter.PERCENT_detail': '{2}: \'{0}\' could not be understood as a percentage. Example: {1}', 'javax.faces.converter.NumberConverter.NUMBER': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.NumberConverter.NUMBER_detail': '{2}: \'{0}\' is not a number. Example: {1}', 'javax.faces.converter.NumberConverter.PATTERN': '{2}: \'{0}\' is not a number pattern.', 'javax.faces.converter.NumberConverter.PATTERN_detail': '{2}: \'{0}\' is not a number pattern. Example: {1}', 'javax.faces.validator.LengthValidator.MINIMUM': '{1}: Validation Error: Length is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LengthValidator.MAXIMUM': '{1}: Validation Error: Length is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET': 'Regex pattern must be set.', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET_detail': 'Regex pattern must be set to non-empty value.', 'javax.faces.validator.RegexValidator.NOT_MATCHED': 'Regex Pattern not matched', 'javax.faces.validator.RegexValidator.NOT_MATCHED_detail': 'Regex pattern of \'{0}\' not matched', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION': 'Error in regular expression.', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION_detail': 'Error in regular expression, \'{0}\'' } };
PrimeFaces.locales ['dk'] = { closeText: 'Close', prevText: 'Previous', nextText: 'Next', monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Tue', 'Fri', 'Sat'], dayNamesMin: ['S', 'M', 'T', 'W ', 'T', 'F ', 'S'], weekHeader: 'Week', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix:'', timeOnlyTitle: 'Only Time', timeText: 'Time', hourText: 'Time', minuteText: 'Minute', secondText: 'Second', currentText: 'Current Date', ampm: false, month: 'Month', week: 'week', day: 'Day', allDayText: 'All Day', messages: { 'javax.faces.component.UIInput.REQUIRED': '{0}: Validation Error: Value is required.', 'javax.faces.converter.IntegerConverter.INTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.IntegerConverter.INTEGER_detail': '{2}: \'{0}\' must be a number between -2147483648 and 2147483647 Example: {1}', 'javax.faces.converter.DoubleConverter.DOUBLE': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.DoubleConverter.DOUBLE_detail': '{2}: \'{0}\' must be a number between 4.9E-324 and 1.7976931348623157E308 Example: {1}', 'javax.faces.converter.BigDecimalConverter.DECIMAL': '{2}: \'{0}\' must be a signed decimal number.', 'javax.faces.converter.BigDecimalConverter.DECIMAL_detail': '{2}: \'{0}\' must be a signed decimal number consisting of zero or more digits, that may be followed by a decimal point and fraction. Example: {1}', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail': '{2}: \'{0}\' must be a number consisting of one or more digits. Example: {1}', 'javax.faces.converter.ByteConverter.BYTE': '{2}: \'{0}\' must be a number between 0 and 255.', 'javax.faces.converter.ByteConverter.BYTE_detail': '{2}: \'{0}\' must be a number between 0 and 255. Example: {1}', 'javax.faces.converter.CharacterConverter.CHARACTER': '{1}: \'{0}\' must be a valid character.', 'javax.faces.converter.CharacterConverter.CHARACTER_detail': '{1}: \'{0}\' must be a valid ASCII character.', 'javax.faces.converter.ShortConverter.SHORT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.ShortConverter.SHORT_detail': '{2}: \'{0}\' must be a number between -32768 and 32767 Example: {1}', 'javax.faces.converter.BooleanConverter.BOOLEAN': '{1}: \'{0}\' must be \'true\' or \'false\'', 'javax.faces.converter.BooleanConverter.BOOLEAN_detail': '{1}: \'{0}\' must be \'true\' or \'false\'. Any value other than \'true\' will evaluate to \'false\'.', 'javax.faces.validator.LongRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}.', 'javax.faces.validator.LongRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type.', 'javax.faces.validator.DoubleRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}', 'javax.faces.validator.DoubleRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type', 'javax.faces.converter.FloatConverter.FLOAT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.FloatConverter.FLOAT_detail': '{2}: \'{0}\' must be a number between 1.4E-45 and 3.4028235E38 Example: {1}', 'javax.faces.converter.DateTimeConverter.DATE': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.DateTimeConverter.DATE_detail': '{2}: \'{0}\' could not be understood as a date. Example: {1}', 'javax.faces.converter.DateTimeConverter.TIME': '{2}: \'{0}\' could not be understood as a time.', 'javax.faces.converter.DateTimeConverter.TIME_detail': '{2}: \'{0}\' could not be understood as a time. Example: {1}', 'javax.faces.converter.DateTimeConverter.DATETIME': '{2}: \'{0}\' could not be understood as a date and time.', 'javax.faces.converter.DateTimeConverter.DATETIME_detail': '{2}: \'{0}\' could not be understood as a date and time. Example: {1}', 'javax.faces.converter.DateTimeConverter.PATTERN_TYPE': '{1}: A \'pattern\' or \'type\' attribute must be specified to convert the value \'{0}\'', 'javax.faces.converter.NumberConverter.CURRENCY': '{2}: \'{0}\' could not be understood as a currency value.', 'javax.faces.converter.NumberConverter.CURRENCY_detail': '{2}: \'{0}\' could not be understood as a currency value. Example: {1}', 'javax.faces.converter.NumberConverter.PERCENT': '{2}: \'{0}\' could not be understood as a percentage.', 'javax.faces.converter.NumberConverter.PERCENT_detail': '{2}: \'{0}\' could not be understood as a percentage. Example: {1}', 'javax.faces.converter.NumberConverter.NUMBER': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.NumberConverter.NUMBER_detail': '{2}: \'{0}\' is not a number. Example: {1}', 'javax.faces.converter.NumberConverter.PATTERN': '{2}: \'{0}\' is not a number pattern.', 'javax.faces.converter.NumberConverter.PATTERN_detail': '{2}: \'{0}\' is not a number pattern. Example: {1}', 'javax.faces.validator.LengthValidator.MINIMUM': '{1}: Validation Error: Length is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LengthValidator.MAXIMUM': '{1}: Validation Error: Length is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET': 'Regex pattern must be set.', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET_detail': 'Regex pattern must be set to non-empty value.', 'javax.faces.validator.RegexValidator.NOT_MATCHED': 'Regex Pattern not matched', 'javax.faces.validator.RegexValidator.NOT_MATCHED_detail': 'Regex pattern of \'{0}\' not matched', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION': 'Error in regular expression.', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION_detail': 'Error in regular expression, \'{0}\'' } };
PrimeFaces.locales ['es'] = { closeText: 'Close', prevText: 'Previous', nextText: 'Next', monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Tue', 'Fri', 'Sat'], dayNamesMin: ['S', 'M', 'T', 'W ', 'T', 'F ', 'S'], weekHeader: 'Week', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix:'', timeOnlyTitle: 'Only Time', timeText: 'Time', hourText: 'Time', minuteText: 'Minute', secondText: 'Second', currentText: 'Current Date', ampm: false, month: 'Month', week: 'week', day: 'Day', allDayText: 'All Day', messages: { 'javax.faces.component.UIInput.REQUIRED': '{0}: Validation Error: Value is required.', 'javax.faces.converter.IntegerConverter.INTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.IntegerConverter.INTEGER_detail': '{2}: \'{0}\' must be a number between -2147483648 and 2147483647 Example: {1}', 'javax.faces.converter.DoubleConverter.DOUBLE': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.DoubleConverter.DOUBLE_detail': '{2}: \'{0}\' must be a number between 4.9E-324 and 1.7976931348623157E308 Example: {1}', 'javax.faces.converter.BigDecimalConverter.DECIMAL': '{2}: \'{0}\' must be a signed decimal number.', 'javax.faces.converter.BigDecimalConverter.DECIMAL_detail': '{2}: \'{0}\' must be a signed decimal number consisting of zero or more digits, that may be followed by a decimal point and fraction. Example: {1}', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail': '{2}: \'{0}\' must be a number consisting of one or more digits. Example: {1}', 'javax.faces.converter.ByteConverter.BYTE': '{2}: \'{0}\' must be a number between 0 and 255.', 'javax.faces.converter.ByteConverter.BYTE_detail': '{2}: \'{0}\' must be a number between 0 and 255. Example: {1}', 'javax.faces.converter.CharacterConverter.CHARACTER': '{1}: \'{0}\' must be a valid character.', 'javax.faces.converter.CharacterConverter.CHARACTER_detail': '{1}: \'{0}\' must be a valid ASCII character.', 'javax.faces.converter.ShortConverter.SHORT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.ShortConverter.SHORT_detail': '{2}: \'{0}\' must be a number between -32768 and 32767 Example: {1}', 'javax.faces.converter.BooleanConverter.BOOLEAN': '{1}: \'{0}\' must be \'true\' or \'false\'', 'javax.faces.converter.BooleanConverter.BOOLEAN_detail': '{1}: \'{0}\' must be \'true\' or \'false\'. Any value other than \'true\' will evaluate to \'false\'.', 'javax.faces.validator.LongRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LongRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}.', 'javax.faces.validator.LongRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type.', 'javax.faces.validator.DoubleRangeValidator.MAXIMUM': '{1}: Validation Error: Value is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.MINIMUM': '{1}: Validation Error: Value is less than allowable minimum of \'{0}\'', 'javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE': '{2}: Validation Error: Specified attribute is not between the expected values of {0} and {1}', 'javax.faces.validator.DoubleRangeValidator.TYPE={0}': 'Validation Error: Value is not of the correct type', 'javax.faces.converter.FloatConverter.FLOAT': '{2}: \'{0}\' must be a number consisting of one or more digits.', 'javax.faces.converter.FloatConverter.FLOAT_detail': '{2}: \'{0}\' must be a number between 1.4E-45 and 3.4028235E38 Example: {1}', 'javax.faces.converter.DateTimeConverter.DATE': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.DateTimeConverter.DATE_detail': '{2}: \'{0}\' could not be understood as a date. Example: {1}', 'javax.faces.converter.DateTimeConverter.TIME': '{2}: \'{0}\' could not be understood as a time.', 'javax.faces.converter.DateTimeConverter.TIME_detail': '{2}: \'{0}\' could not be understood as a time. Example: {1}', 'javax.faces.converter.DateTimeConverter.DATETIME': '{2}: \'{0}\' could not be understood as a date and time.', 'javax.faces.converter.DateTimeConverter.DATETIME_detail': '{2}: \'{0}\' could not be understood as a date and time. Example: {1}', 'javax.faces.converter.DateTimeConverter.PATTERN_TYPE': '{1}: A \'pattern\' or \'type\' attribute must be specified to convert the value \'{0}\'', 'javax.faces.converter.NumberConverter.CURRENCY': '{2}: \'{0}\' could not be understood as a currency value.', 'javax.faces.converter.NumberConverter.CURRENCY_detail': '{2}: \'{0}\' could not be understood as a currency value. Example: {1}', 'javax.faces.converter.NumberConverter.PERCENT': '{2}: \'{0}\' could not be understood as a percentage.', 'javax.faces.converter.NumberConverter.PERCENT_detail': '{2}: \'{0}\' could not be understood as a percentage. Example: {1}', 'javax.faces.converter.NumberConverter.NUMBER': '{2}: \'{0}\' could not be understood as a date.', 'javax.faces.converter.NumberConverter.NUMBER_detail': '{2}: \'{0}\' is not a number. Example: {1}', 'javax.faces.converter.NumberConverter.PATTERN': '{2}: \'{0}\' is not a number pattern.', 'javax.faces.converter.NumberConverter.PATTERN_detail': '{2}: \'{0}\' is not a number pattern. Example: {1}', 'javax.faces.validator.LengthValidator.MINIMUM': '{1}: Validation Error: Length is less than allowable minimum of \'{0}\'', 'javax.faces.validator.LengthValidator.MAXIMUM': '{1}: Validation Error: Length is greater than allowable maximum of \'{0}\'', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET': 'Regex pattern must be set.', 'javax.faces.validator.RegexValidator.PATTERN_NOT_SET_detail': 'Regex pattern must be set to non-empty value.', 'javax.faces.validator.RegexValidator.NOT_MATCHED': 'Regex Pattern not matched', 'javax.faces.validator.RegexValidator.NOT_MATCHED_detail': 'Regex pattern of \'{0}\' not matched', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION': 'Error in regular expression.', 'javax.faces.validator.RegexValidator.MATCH_EXCEPTION_detail': 'Error in regular expression, \'{0}\'' } };


function noValidationError(args){
	if(typeof args == 'undefined' || args.validationFailed == null || args.validationFailed == false){
		return true;
	}
	return false;
}


/*
 *
 *
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 * TERMS OF USE - jQuery Easing
 *
 * Open source under the BSD License.
 *
 * Copyright © 2008 George McGinley Smith
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this list of
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list
 * of conditions and the following disclaimer in the documentation and/or other materials
 * provided with the distribution.
 *
 * Neither the name of the author nor the names of contributors may be used to endorse
 * or promote products derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
*/

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
	def: 'easeOutQuad',
	swing: function (x, t, b, c, d) {
		//alert(jQuery.easing.default);
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
	},
	easeInQuad: function (x, t, b, c, d) {
		return c*(t/=d)*t + b;
	},
	easeOutQuad: function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	},
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	},
	easeInCubic: function (x, t, b, c, d) {
		return c*(t/=d)*t*t + b;
	},
	easeOutCubic: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	},
	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	},
	easeInQuart: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t + b;
	},
	easeOutQuart: function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	},
	easeInOutQuart: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	},
	easeInQuint: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t*t + b;
	},
	easeOutQuint: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	},
	easeInOutQuint: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	},
	easeInSine: function (x, t, b, c, d) {
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	},
	easeOutSine: function (x, t, b, c, d) {
		return c * Math.sin(t/d * (Math.PI/2)) + b;
	},
	easeInOutSine: function (x, t, b, c, d) {
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
	},
	easeInExpo: function (x, t, b, c, d) {
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
	},
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	},
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	},
	easeInCirc: function (x, t, b, c, d) {
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
	},
	easeOutCirc: function (x, t, b, c, d) {
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
	},
	easeInOutCirc: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
	},
	easeInElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	},
	easeOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
	},
	easeInOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
	},
	easeInBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	easeOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	},
	easeInOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
	},
	easeInBounce: function (x, t, b, c, d) {
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
	},
	easeOutBounce: function (x, t, b, c, d) {
		if ((t/=d) < (1/2.75)) {
			return c*(7.5625*t*t) + b;
		} else if (t < (2/2.75)) {
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
		} else if (t < (2.5/2.75)) {
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
		} else {
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
		}
	},
	easeInOutBounce: function (x, t, b, c, d) {
		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
	}
});







/* ------------------------------------------------------------------------
Class: prettyLoader
Use: A unified solution for AJAX loader
Author: Stephane Caron (http://www.no-margin-for-errors.com)
Version: 1.0.1
------------------------------------------------------------------------- */

(function($) {
$.prettyLoader = {version: '1.0.1'};

$.prettyLoader = function(settings) {
	settings = jQuery.extend({
		animation_speed: 'fast', /* fast/normal/slow/integer */
		bind_to_ajax: true, /* true/false */
		delay: false, /* false OR time in milliseconds (ms) */
		loader: '/Odyssey/img/prettyLoader/ajax-loader.gif', /* Path to your loader gif */
		offset_top: 13, /* integer */
		offset_left: 10 /* integer */
	}, settings);

	scrollPos = _getScroll();

	imgLoader = new Image();
	imgLoader.onerror = function(){
		//alert('Preloader image cannot be loaded. Make sure the path is correct in the settings and that the image is reachable.');
	};
	imgLoader.src = settings.loader;

	if(settings.bind_to_ajax)
		jQuery(document).ajaxStart(function(){ $.prettyLoader.show() }).ajaxStop(function(){ $.prettyLoader.hide() });

	$.prettyLoader.positionLoader = function(e){
  		e = e ? e : window.event;

		// Set the cursor pos only if the even is returned by the browser.
		cur_x = (e.clientX) ? e.clientX : cur_x;
		cur_y = (e.clientY) ? e.clientY : cur_y;

		left_pos = cur_x + settings.offset_left + scrollPos['scrollLeft'];
		top_pos = cur_y + settings.offset_top + scrollPos['scrollTop'];

		$('.prettyLoader').css({
			'top':top_pos,
			'left':left_pos
		});
	}

	$.prettyLoader.show = function(delay){
		if($('.prettyLoader').size() > 0) return;

		// Get the scroll position
		scrollPos = _getScroll();

		// Build the loader container
		$('<div></div>')
			.addClass('prettyLoader')
			.addClass('prettyLoader_'+ settings.theme)
			.appendTo('body')
			.hide();

		// No png for IE6...sadly :(
		if($.browser.msie && $.browser.version == 6)
			$('.prettyLoader').addClass('pl_ie6');

		// Build the loader image
		$('<img />')
			.attr('src',settings.loader)
			.appendTo('.prettyLoader');

		// Show it!
		$('.prettyLoader').fadeIn(settings.animation_speed);

		$(document).bind('click',$.prettyLoader.positionLoader);
		$(document).bind('mousemove',$.prettyLoader.positionLoader);
		$(window).scroll(function(){ scrollPos = _getScroll(); $(document).triggerHandler('mousemove'); });

		delay = (delay) ? delay : settings.delay;

		if(delay){
			setTimeout(function(){ $.prettyLoader.hide() }, delay);
		}
	};

	$.prettyLoader.hide = function(){
		$(document).unbind('click',$.prettyLoader.positionLoader);
		$(document).unbind('mousemove',$.prettyLoader.positionLoader);
		$(window).unbind('scroll');

		$('.prettyLoader').fadeOut(settings.animation_speed,function(){
			$(this).remove();
		});
	};

	function _getScroll(){
		if (self.pageYOffset) {
			return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset};
		} else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
			return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft};
		} else if (document.body) {// all other Explorers
			return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft};
		};
	};

	return this;
};

})(jQuery);

/*
jQuery = jQuery.noConflict();
$ = jQuery.noConflict();
*/

$.fn.clearForm = function() {
	  return this.each(function() {
	    var type = this.type, tag = this.tagName.toLowerCase();
	    if (tag == 'form')
	      return $(':input',this).clearForm();
	    if (type == 'text' || type == 'password' || tag == 'textarea')
	      this.value = '';
	    else if (type == 'checkbox' || type == 'radio')
	      this.checked = false;
	    else if (tag == 'select'){
	      this.selectedIndex = 0;
	    }
	  });
	};


function setCaretToEnd (e) {
    var control = $((e.target ? e.target : e.srcElement).id);
    if (control.createTextRange) {
        var range = control.createTextRange();
        range.collapse(false);
        range.select();
    }
    else if (control.setSelectionRange) {
        control.focus();
        var length = control.value.length;
        control.setSelectionRange(length, length);
    }
    control.selectionStart = control.selectionEnd = control.value.length;
}


function loadFirebug(){
	if(!window.firebug){
		window.firebug=document.createElement("script");
		firebug.setAttribute("src","http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js");
		document.body.appendChild(firebug);
		(function(){
			if(window.firebug.version){
				firebug.init()
			}else{
				setTimeout(arguments.callee)
			}
		})();
		void (firebug);
		if(window.debug&&debug.setCallback){
			(function(){
				if(window.firebug&&window.firebug.version){
					debug.setCallback(function(b){
						var a=Array.prototype.slice.call(arguments,1);
						firebug.d.console.cmd[b].apply(window,a)
					},true)
				}else{
					setTimeout(arguments.callee,100)
				}
			}
		)()
	}
	}
}

/**
 * This javascript file checks for the brower/browser tab action.
 * It is based on the file menstioned by Daniel Melo.
 * Reference: http://stackoverflow.com/questions/1921941/close-kill-the-session-when-the-browser-or-tab-is-closed
 */
var validNavigation = false;

function wireUpEvents() {
  /**
   * For a list of events that triggers onbeforeunload on IE
   * check http://msdn.microsoft.com/en-us/library/ms536907(VS.85).aspx
   *
   * onbeforeunload for IE and chrome
   * check http://stackoverflow.com/questions/1802930/setting-onbeforeunload-on-body-element-in-chrome-and-ie-using-jquery
   */
  var dont_confirm_leave = 0; //set dont_confirm_leave to 1 when you want the user to be able to leave withou confirmation
  var leave_message = 'There are unsaved changes. Are you sure you want to leave the current page without saving first? If you leave the page without saving all changes will be lost.'
  function goodbye(e) {
	  log("Goodbye ",validNavigation," unsaved ",unsavedChanges," ajax ",ajaxSubmit);
    if (!validNavigation) {
      if (unsavedChanges && ajaxSubmit) {
        if(!e) e = window.event;
        //e.cancelBubble is supported by IE - this will kill the bubbling process.
        e.cancelBubble = true;
        e.returnValue = leave_message;
        //e.stopPropagation works in Firefox.
        if (e.stopPropagation) {
          e.stopPropagation();
          e.preventDefault();
        }
        //return works for Chrome and Safari
        return leave_message;
      }else{
    	  jQuery('#contServId span').show();
      }
    }
    else{
  	  jQuery('#contServId span').show();
    }
  }
  window.onbeforeunload=goodbye;

  // Attach the event keypress to exclude the F5 refresh
  jQuery('document').bind('keypress', function(e) {
    if (e.keyCode == 116){
      validNavigation = true;
      okayToLeavePage = true;
    }
  });

  jQuery('a').on('click', 'a.popup',function(){
	  var width = 600;
	  var height = 400;
	  var left  = ($(window).width()/2)-(width/2),
	    top   = ($(window).height()/2)-(height/2),
      newwindow=window.open($(this).attr('href'),'','height='+height+',width='+height+', top='+top+', left='+left);
      if (window.focus) {newwindow.focus()}
      return false;
  });
  
  

  // Attach the event click for all links in the page
  jQuery(document).on("click","a", function() {
    validNavigation = true;
    okayToLeavePage = true;
  });

  // Attach the event submit for all forms in the page
  jQuery(document).on("submit", "form", function() {
    validNavigation = true;
    okayToLeavePage = true;
  });

  // Attach the event click for all inputs in the page
  jQuery("input").on("click","input[type=submit]", function() {
    validNavigation = true;
    okayToLeavePage = true;
  });

  //log(jQuery("input[type=button]"));

//Attach the event click for all buttons
  jQuery("input").on("click", "input[type=button]",function() {
	  log("Button clicked");
    validNavigation = true;
    okayToLeavePage = true;
  });

  
  jQuery(document).on("click", "button",function() {
		  log("Button clicked");
	    validNavigation = true;
	    okayToLeavePage = true;
	  });

  
  
  jQuery(document).on("click",".noChangeAction",function(){
	  log("Setting noChange");
	  noChange = true;
  });
  
  
  jQuery(document).on("click",".leavingPageOkay",function(){
	  log("Setting leaving page okay");
	  okayToLeavePage = true;
  });


  jQuery(document).on("click",'.toggleControl',function(){
	  jQuery('.toggleContent').toggle();
  });

  
  jQuery(document).on("keyup",':input.tableInput',function(e){
		log("Key "+e.which);
		log(e);
		log("Char "+e.target.selectionStart);
		log("End "+e.target.selectionEnd);
	var charPos = e.target.selectionStart;
	var endPos = e.target.selectionEnd;
	var strLength = e.target.value.length;
	var prevPos = $(this).data('prevPos');
	if(e.which==39){
		if(charPos==strLength && (prevPos ==null || prevPos == charPos)){
			var nextTd = $(this).closest('td').next();
			console.log("Next td",nextTd);
			var count = 0;
			var tis = $(this);
			while(nextTd){
				var comp = $(nextTd).find(':input.tableInput');
				console.log("Comp ",comp,comp[0]);
				console.log("Is jQuery", comp instanceof jQuery);
				console.log("This ",this,$(this).get(0));
				if(count>5){
					//emergency break in case we dont find any
					break;
				}
				count++;
				if(comp.get(0)){
					comp.focus();
					break;
				}
				nextTd = $(nextTd).next();
				console.log("Next td",nextTd);
				
			}
			//$(this).closest('td').next().find(':input.tableInput').focus();
			$(this).data('prevPos',null);
		}else{
			$(this).data('prevPos',charPos);
		}
	}else if(e.which==37){
		if(charPos == 0 && (prevPos ==null || prevPos == charPos)){
			$(this).closest('td').prev().find(':input.tableInput').focus();
			$(this).data('prevPos',null);
		}else{
			$(this).data('prevPos',charPos);
		}
	}else if(e.which==40){
		console.log($(this).closest('tr').next().find('td:not(.ui-datagrid-column):eq('+$(this).closest('td').index()+')'));
		$(this).closest('tr').next().find('td:not(.ui-datagrid-column):eq('+$(this).closest('td').index()+')').find(':input.tableInput').focus();
		$(this).data('prevPos',null);
		
	}else if(e.which==38){
		$(this).closest('tr').prev().find('td:not(.ui-datagrid-column):eq('+$(this).closest('td').index()+')').find(':input.tableInput').focus();
		$(this).data('prevPos',null);
	}
	});
	

  
  
  /* Calculates scrollbar width in pixels */
  function getScrollBarWidth() {
		var inner = document.createElement('p');
		inner.style.width = "100%";
		inner.style.height = "200px";
	 
		var outer = document.createElement('div');
		outer.style.position = "absolute";
		outer.style.top = "0px";
		outer.style.left = "0px";
		outer.style.visibility = "hidden";
		outer.style.width = "200px";
		outer.style.height = "150px";
		outer.style.overflow = "hidden";
		outer.appendChild(inner);
	 
		document.body.appendChild(outer);
		var w1 = inner.offsetWidth;
		outer.style.overflow = 'scroll';
		var w2 = inner.offsetWidth;
	 
		if (w1 == w2) {
			w2 = outer.clientWidth;
		}
	 
		document.body.removeChild(outer);
	 
		return (w1 - w2);
	}
  

 /* function browserSizeChanged(width,height){
	  if(jQuery.cookie('width')==null || jQuery.cookie('height')==null){
		  jQuery.cookie('width',width,{ expires: 7, path: '/' });
		  jQuery.cookie('height',height,{ expires: 7, path: '/' });
		  log('First call to browserSizeChange');
		  return true;
	  }else if(width == jQuery.cookie('width') && height == jQuery.cookie('height')){
		  return false;
	  }else{
		  log("cookie width/height differ ",jQuery.cookie('width'),width,jQuery.cookie('height'),height);
		  jQuery.cookie('width',width,{ expires: 7, path: '/' });
		  jQuery.cookie('height',height,{ expires: 7, path: '/' });
		  return true;
	  }
  }*/


  jQuery(window).resize(function(){
	  try{
		  var mbar = jQuery('#Fm\\:menuDiv');
		  var mposy = 0;
		  var mheight = 0;
		  if(mbar!=null){
			  mposy = mbar.offset().top;
			  mheight = mbar.height()
		  }
		
		  var width = Math.round(jQuery(window).width());
		  var height =Math.round(jQuery(window).height());
		  var menu = Math.round(mposy+mheight);
		  
		jQuery.cookie('ody_width',width.toString(),{ path: "/" });
		jQuery.cookie('ody_height',height.toString(),{ path: "/" });
		jQuery.cookie('ody_menu',menu.toString(),{ path: "/" });
		  /*
		  if(browserSizeChanged(jQuery(window).width(),jQuery(window).height())){
			  log("Updating size",jQuery(window).width(),jQuery(window).height());
			  var width = Math.round(jQuery(window).width());
			  var height =Math.round(jQuery(window).height());
			  var menu = Math.round(mposy+mheight);
			  updateBrowserSize(width,height,menu);
		  }*/

	  }catch(e){}
  });

  jQuery.prettyLoader();

}



jQuery(document).ready(function() {
	jQuery('input.focus:first').focus();
	registerMultiInput();
	registerEditPage();
	wireUpEvents();
	//loadGmap();
	
});


var gloaded = false;

function loadGmap() {
	if(gloaded==false){
		log("loadGmap");
	 //var script = document.createElement("script");
	  //script.type = "text/javascript";
	  //script.src = "https://maps.googleapis.com/maps/api/js?key=AIzaSyADCd93ppy8H5vC2_NPxzELGkwztMlr5ao&amp;sensor=true&amp;callback=google_initialized";
	  //document.body.appendChild(script);
	  //gloaded = true;
	}
	//jQuery.getScript("https://maps.googleapis.com/maps/api/js?key=AIzaSyADCd93ppy8H5vC2_NPxzELGkwztMlr5ao",initialize());
}

function google_initialized(){
	console.log("Google MAP API initialized");
	if(typeof google_initialize == 'function'){
		google_initialize();
	}
}

function copyValue(fromId, toId){
	var vala = jQuery(fromId).val();
	jQuery(toId).val(vala);

}

function showSuggestions(inp){
	inp.callSuggestion(true);
}

//jQuery(window).resize(resizeExTable);

function highlight(compId){
	jQuery(compId).effect('highlight', {}, 1500);
}


function odyResizeExTable() {
	//console.log("Height of table ",jQuery('.extdt-content').height());
	//jQuery('.extdt-content').height('100%');
	//console.log("Height after  ",jQuery('.extdt-content').height());

}

/*jQuery.fn.handleMultipleInput = function(){
	console.log("HandleMultipleInput");
	jQuery(this).removeClass('multipleInputField');
	console.log(jQuery(this),jQuery(this).val());
	if(jQuery(this).val() == "") {
		jQuery(this).addClass('multipleInputField');
	} else {
		jQuery(this).addClass('inputField');
	};
}
*/
function handleMultipleInput2(){
	jQuery(this).removeClass('multipleInputField');
	if(jQuery(this).val() == "") {
		jQuery(this).addClass('multipleInputField');
	} else {
		jQuery(this).addClass('inputField');
	};
}

function handleInputFields(){
	//console.log(jQuery(this));
	if(jQuery(this).val() == "") {
		jQuery(this).removeClass('presetValueField');
	} else {
		jQuery(this).addClass('presetValueField');
	};
}

function handleSelectFields(){
	//console.log(jQuery(this));
	if(jQuery(this).val() == "org.jboss.seam.ui.NoSelectionConverter.noSelectionValue") {
		jQuery(this).removeClass('presetSelectField');
	} else {
		jQuery(this).addClass('presetSelectField');
	};
}

var unsavedChanges = false;
var ajaxSubmit = false;
var noChange = false;
var okayToLeavePage = false; //we are okay to leave the page

function setEdited(){
	log("setEdited");
	unsavedChanges = true;
	ajaxSubmit =true;
}

function setEdit(){
	log("setEdit");
	unsavedChanges = true;
	ajaxSubmit = false;
	noChange = false;
}



function confirmVoyageReset(msg){
	//console.log(jQuery(".contOperator option:selected"));
	//console.log(jQuery(".contOperator option:selected").val());
	if(jQuery(".contOperator option:selected").val() == "org.jboss.seam.ui.NoSelectionConverter.noSelectionValue"){
		//log("N/a selected");
		if(!confirm(msg)){
			return true;
		}
	}
	return false;
}




function confirmChangesLost(msg){
	var otherChanges = (jQuery("[id$=cChanged]").val()=='true');
	
	//log("Confirm changes lost ",unsavedChanges," ajax ",ajaxSubmit," other ",otherChanges);
	if(unsavedChanges && (ajaxSubmit || otherChanges)){
		if(!confirm(msg)){
			return true;
		}
		validNavigation = true;
		okayToLeavePage = true;
		return false;
	}
	return false;
}

function registerEditPage(){
	jQuery(".editPage").each(function(){setEdit.call(this)});
	jQuery(".editedPage").each(function(){setEdited.call(this)});
}



function pageSubmitted(){
	captureFocus();
	jQuery.cookie('clientId',jQuery.session.get('tabId'),{ path: "/" });
	if(!noChange){
		ajaxSubmit = true;
	}else{
	}
	noChange = false;
	validNavigation = true;
}

function pageSaved(){
	//log("pageSaved");
	unsavedChanges = false;
	ajaxSubmit = false;
}

function noChangeAction(){
	//console.log("noChangeAction");
	noChange = true;
}

function leavingPageOk(){
	okayToLeavePage = true;
}

function ajaxReqFinished(){
	if(!okayToLeavePage){
		validNavigation = false;
		restoreFocus();
	}
}

/*
function pageSaved(){
	//console.log("page saved");
	ajaxSubmit = false;
}
*/



function registerMultiInput(){
	jQuery(":input[type='text']").each(function(){handleInputFields.call(this)});
	jQuery(":input[type='text']").bind('blur',function(){handleInputFields.call(this)});
	jQuery("textarea").each(function(){handleInputFields.call(this)});
	jQuery("textarea").bind('blur',function(){handleInputFields.call(this)});

	jQuery(".multipleInput").each(function(){handleMultipleInput2.call(this)});
	jQuery(".multipleInput").bind('blur ready focusin load unload', function(){handleMultipleInput2.call(this)});
}


function initAddressBook(nameId, lineId, contactNameId, contactEmailId, contactPhoneId, contactFaxId, countryDropDownId, addressEval, oneLine, callBack, tab, mandatoryContactTypes) {

	addressBookAddressNameId = nameId;
	addressBookAddressLineId = lineId;
	addressBookContactNameId = contactNameId;
	addressBookContactEmailId = contactEmailId;
	addressBookContactPhoneId = contactPhoneId;
	addressBookAddressCountryDropDownId = countryDropDownId;
	addressBookOneLineAddress = oneLine;
	addressBookCallBack = callBack;
	addressBookEval = addressEval;

	if(mandatoryContactTypes != null) {
		//Make any mandatory contact type selected and disabled. Do this in init as user can change tab to insert
		var chaArray = mandatoryContactTypes.split("");
		for (i = 0; i < chaArray.length; i++) {
			jQuery("form#Faab input[type='checkbox'][value='"+chaArray[i]+"']").attr('checked', 'true').attr('disabled', 'true');
		}
	}

	//RichFaces.switchTab('TPab',tab,tab);

}
function initAddressBookAddition(nameId, lineId, contactNameId, contactEmailId, contactPhoneId, contactFaxId, countryDropDownId, addressEval, oneLine, callBack, tab, mandatoryContactTypes) {
	//first reset everything
	setElementValueSafely('Faab:Tanm:Fanm', '');
	setElementValueSafely('Faab:Taddl:Faddl', '');
	setElementValueSafely('Faab:Tcna:Fcna', '');
	setElementValueSafely('Faab:Tema:Fema', '');
	setElementValueSafely('Faab:Tbph:Fbph', '');
	setElementValueSafely('Faab:Tbfx:Fbfx', '');
	setElementValueSafely('Faab:Ttow:Ftow', '');


	initAddressBook(nameId, lineId, contactNameId, contactEmailId, contactPhoneId, contactFaxId, countryDropDownId, addressEval, oneLine, callBack, tab, mandatoryContactTypes);

	//Set the values for the AddressBookAdd to whatever has been entered into the target values
	setElementValueSafely('Faab:Tanm:Fanm', getElementValueSafely(nameId));
	setElementValueSafely('Faab:Taddl:Faddl', getElementValueSafely(lineId));
	setElementValueSafely('Faab:Tcna:Fcna', getElementValueSafely(contactNameId));
	setElementValueSafely('Faab:Tema:Fema', getElementValueSafely(contactEmailId));
	setElementValueSafely('Faab:Tbph:Fbph', getElementValueSafely(contactPhoneId));
	setElementValueSafely('Faab:Tbfx:Fbfx', getElementValueSafely(contactFaxId));
	setDropDownValue(getElementSafely('Faab:Tcco:Fcco'), getElementValueSafely(countryDropDownId));

}

function populateAddressFieldsFromAdd(addressDetailListId) {
	//We know the field IDs for the AddressBookAdd so grab the values from them first
	populateAddressFields(
			getElementValueSafely('Faab:Tanm:Fanm'),
			getElementValueSafely('Faab:Taddl:Faddl'),
			getElementValueSafely('Faab:Tcco:Fcco'),
			getElementValueSafely('Faab:Tvat:Fvat'),
			getElementValueSafely('Faab:Tcna:Fcna'),
			getElementValueSafely('Faab:Tema:Fema'),
			getElementValueSafely('Faab:Tbph:Fbph'),
			getElementValueSafely('Faab:Tbfx:Fbfx'),
			addressDetailListId);

}

function populateAddressFields(	addressBookAddressNameValue,
								addressBookAddressLineValue,
								addressBookAddressCountryValue,
								addressBookVatNumberValue,
								addressBookAddressContactNameValue,
								addressBookAddressContactEmailValue,
								addressBookAddressContactPhoneValue,
								addressBookAddressContactFaxValue,
								addressDetailListId) {

	try {
		setElementValueSafely(addressBookAddressNameId,addressBookAddressNameValue);

		if(addressBookEval != null && addressBookEval.length > 0) {
			//Used to include other fields into address
			addressBookAddressLineValue = eval(addressBookEval);
		}
		if(addressBookOneLineAddress) {
			//remove carriage return & lines feeds and replace with commas
			//WEC-860
			//addressBookAddressLineValue = addressBookAddressLineValue.replace(/(\n|\r)(?!$)/g, ', ');

			setElementValueSafely(addressBookAddressLineId,addressBookAddressLineValue);
		} else {
			setElementValueSafely(addressBookAddressLineId,addressBookAddressLineValue);
		}

		setElementValueSafely(addressBookVatNumberId,addressBookVatNumberValue);
		setElementValueSafely(addressBookAddressCountryValue,addressBookAddressCountryValue);

		//Country is a select drop down so need to iterate through. Find correct value and then set that as the currentIndex
		var countryCodeElement = getElementSafely(addressBookAddressCountryDropDownId);
		setDropDownValue(countryCodeElement, addressBookAddressCountryValue);

		setElementValueSafely(addressBookContactNameId, addressBookAddressContactNameValue);
		setElementValueSafely(addressBookContactEmailId, addressBookAddressContactEmailValue);
		setElementValueSafely(addressBookContactPhoneId, addressBookAddressContactPhoneValue);

		//Set the addressDetailListId and call the callBack (if not null)
		if(addressBookCallBack != null && typeof(addressBookCallBack) == "function") {
			addressBookCallBack(addressDetailListId);
		}
		reset();

	} catch (e) {
		//Probably undefined element
	}
	//Richfaces.hideModalPanel('addressBookModal');
}

function reset() {
	addressBookAddressNameId = null;
	addressBookAddressLineId = null;
	addressBookAddressCountryDropDownId = null;
	addressBookContactNameId = null;
	addressBookContactEmailId = null;
	addressBookVatNumberId = null;

	addressBookCallBack = null;
	addressBookOneLineAddress = false;
	addressBookEval = null;
}

/* Gets the element but catches any undefined so script can proceed */
function getElementSafely(id) {
	try {
		return document.getElementById(id);
	} catch (e) {
		return null;
	}
}
function getElementValueSafely(id) {
	try {
		var elem = getElementSafely(id);
		if(elem != null && !elem.disabled) {
			return elem.value;
		}
	} catch (e) {
	}
	return '';
}
function setElementValueSafely(id, value) {
	var elem = getElementSafely(id);
	//log("Setting ",value," on ",id);
	if(elem != null) {
		elem.value = value;
	}
}



function setDropDownValue(dropdownElement, value) {
	if(dropdownElement != null) {
		var found = false;
		for(var a=0;a<dropdownElement.options.length;a++) {
			dropdownElement.options[a].selected = false;
			if(dropdownElement.options[a].text == value || dropdownElement.options[a].value == value) {
				dropdownElement.options[a].selected = true;
				found = true;
			}
		}
		if(!found) {
			//If no country has been set then set option 0 which is usually the 'please select' message
			dropdownElement.options[0].selected = true;
		}
	}
}

jQuery(function(){
	jQuery('.searchControl').toggle(
		function(){
			jQuery('.quarter').css('margin-left',-240);
			jQuery('.quarterfill').css('margin-left',15);
			jQuery('.third').css('margin-left',-305);
			jQuery('.thirdfill').css('margin-left',15);
			jQuery('.searchControl').html('&raquo;');
		},
		function(){
			jQuery('.quarter').css('margin-left',0);
			jQuery('.quarterfill').css('margin-left',255);
			jQuery('.third').css('margin-left',0);
			jQuery('.thirdfill').css('margin-left',315);
			jQuery('.searchControl').html('&laquo;');
		}
	);
});


function escapeClientId(a){
	var ret = "#"+a.replace(/:/g,"\\:");
	//log(a,ret);
	return ret;
}


function scrollToOdy(element){
	var id = escapeClientId(element);
	var el = jQuery(id);
	if(el){
	 jQuery('html, body').animate({
	        scrollTop: el.offset().top
	  }, 2000);
	}
}

function scrollToDirect(element){
	var id = escapeClientId(element);
	var el = jQuery(id);
	if(el && el.offset()){
	 jQuery('html, body').animate({
	        scrollTop: el.offset().top
	  }, 0);
	}
}


function scrollToBottom(element){
	var id = escapeClientId(element);
	log(id);
	var el = jQuery(id);
	if(el){
		console.log(el);
		console.log(el[0].scrollHeight);
	 jQuery('html, body').animate({
	        scrollTop: 800
	  }, 2000);
	}
}

function scrollToInDiv(element, container){
	if(element !=null && container !=null){
	var id = escapeClientId(element);
	var contId = escapeClientId(container);
	var el = jQuery(id);
	var con = jQuery(contId);
	if(id!=null && con !=null){
		con.animate({
	        scrollTop: el.offset().top
	  }, 2000);
	}
	}
}

function scrollIntoView(element){
	var id = escapeClientId(element);
	var el = jQuery(id);
	if(id!=null){
		el.get(0).scrollIntoView();
	}
}


function scrollToObject(jqElement, jqCont){
	if(jqCont!=null && jqElement!=null){
		jqCont.animate({
	        scrollTop: jqElement.offset().top
	  }, 2000);
	}
}

function selectAllCheckBoxes(manyCheckBoxes) {
	   manyCheckBoxes.inputs.each(function() {
       jQuery(this).prop('checked', false)
   	   jQuery(this).trigger('click');
   })
}




function deselectAllCheckBoxes(manyCheckBoxes) {
   manyCheckBoxes.inputs.each(function() {
   jQuery(this).prop('checked', true)
	   jQuery(this).trigger('click');
})
}


function toggleDisplay(target) {
	//jQuery = jQuery.noConflict();
	jQuery(target).siblings("div.toggleContent").slideToggle();
	jQuery(target).find("div.toggleControl").find("span.toggleControl").toggle();
	return false;
}

function toggleComponentById(target){
	 var escaped = escapeClientId(target);
	jQuery(escaped).slideToggle('slow');
}



function highlightId(targetId){
	 var escaped = escapeClientId(targetId);
	// jQuery(escaped).effect('highlight', {}, 1500);


	 //jQuery(compId).effect('highlight', {}, 1500);
	//jQuery(escaped).effect('highlight', {}, 1500);
	 //not working at the moment with error curCSS no
	 /*Uncaught TypeError: Object function ( selector, context ) {
		    // The jQuery object is actually just the init constructor 'enhanced'
		    return new jQuery.fn.init( selector, context, rootjQuery );
		} has no method 'curCSS'
		packed.js
		*/
}

function highlightMany(targetIdArray){
	for(var i = 0;i< targetIdArray.length;i++){
		highlightId(targetIdArray[i]);
	}
}

function getObjectByJsfId(target){
	var escaped = escapeClientId(target);
	log("target ",target);
	log("client ",escaped);
	return jQuery(escaped);
}



function fadeIn(selector){
	jQuery(selector).fadeIn('fast');
}

function fadeOut(selector){
	jQuery(selector).fadeOut('fast');
}

function addToPattern(patternId, variable) {
	insertAtEnd(getElementSafely(patternId), variable);
}

/* Used to move cursor to end of text area */
function setCaretPosition(elem, caretPos) {

	if(caretPos == -1) {
		caretPos = elem.value.length;
	}
	if(elem != null) {
		if(elem.createTextRange) {
			var range = elem.createTextRange();
			range.move('character', caretPos);
			range.select();
		}
		else {
			if(elem.selectionStart) {
				elem.focus();
				elem.setSelectionRange(caretPos, caretPos);
			}
			else
				elem.focus();
		}
	}
}
/* Used to insert text at the end of the textarea */
function insertAtEnd (elem, txt) {
	elem.value += txt;
	setCaretPosition (elem, -1);
}

/*This is a fix to overcome IE7's problem with activating hidden animated GIFs */
function fixSpinnerImage(path) {
	document.getElementById('spinnerImg').innerHTML = '<img src=\"'+path+'\"/>';
}

function emptyMessagetextPanel() {
	document.getElementById('messagetextPanel').style.display = 'none';
}

function calculateBbulkTotals() {
	//Output Ids : grossWeightTotalKg and grossWeightTotalTonnes
	var nrPack = jQuery('form#bookingForm input.nrPackages').val();
	var packWeight = jQuery('form#bookingForm input.packageWeight').val();
	var length = jQuery('form#bookingForm input.length').val();
	var height = jQuery('form#bookingForm input.height').val();
	var breadth = jQuery('form#bookingForm input.breadth').val();
	jQuery('span#grossWeightTotalKg').html(nrPack * packWeight);
	jQuery('span#grossWeightTotalTonnes').html(nrPack * packWeight / 1000);
	jQuery('span#cubCapTotal').html(length * height * breadth * nrPack);
}

function selectCheckboxes(parentElementTag, element, check) {
	if(check) {
		jQuery(element).closest(parentElementTag).find("input[type='checkbox']").attr('checked', check);
	} else {
		jQuery(element).closest(parentElementTag).find("input[type='checkbox']").removeAttr('checked');
	}
}
function selectCheckboxesWithWildcard(parentElementTag, wildcard, element, check) {
	if(check) {
		jQuery(element).closest(parentElementTag).find("input[type='checkbox']"+wildcard).attr('checked', check);
	} else {
		jQuery(element).closest(parentElementTag).find("input[type='checkbox']"+wildcard).removeAttr('checked');
	}
}
function selectListboxes(parentElementTag, element, check) {
	if(check) {
		jQuery(element).closest(parentElementTag).find("option").attr("selected", "selected");
	} else {
		jQuery(element).closest(parentElementTag).find("option").removeAttr("selected");
	}
}

function populateDistanceCalculator(fromId, toId) {
	jQuery('#Fcd\\:Tfr\\:Ffr').val(jQuery(fromId).val());
	jQuery('#Fcd\\:Tto\\:Fto').val(jQuery(toId).val());
}


function autofocus(containerId) {
	  var element = jQuery(":input:not(:button):visible:enabled:first", '#'+containerId);
	  if (element != null) {
		  //console.log("Setting focus to ",element);
	    element.focus().select();
	  }
	  
	  
	  
}


function getWidgetVarById(id) {
    for (var propertyName in PrimeFaces.widgets) {
      if (PrimeFaces.widgets[propertyName].id === id) {
        return PrimeFaces.widgets[propertyName];
      }
    }
}

	jQuery(document).on("click", ".ui-widget-overlay", function (){
		var dialogMaskId = this.getAttribute('id');
    	var dialogId = dialogMaskId.replace('_modal','');
    	var widget = getWidgetVarById(dialogId);
    	if(widget){
//    		console.log("widget", widget);
//    		console.log("dialog ",jQuery('#'+dialogId));
//    		console.log("class ",jQuery('#'+dialogId).attr('class'));
//    		console.log("is closable ",jQuery('#'+dialogId).hasClass('nonClosable'));
//    		if(!jQuery('#'+dialogId).hasClass('nonClosable')){
    			widget.hide();
//    		}
    	}
    });


	//Store the current focus component
	var capturedFieldId = null;

	/**
	* Captures the id of the currently focused element. The capture is performed
	* usually before an ajax request and restored after dom update.
	*/
	function captureFocus() {
		capturedFieldId = document.activeElement;
	    
	}

	/**
	* Restores the focus on the captured element.
	*/
	function restoreFocus() {
		if(document.activeElement==null){
		    if (capturedFieldId != null) {
		        var focusedElement = document.getElementById(capturedFieldId);
		        if (focusedElement!=null) {
		        	console.log("Setting focus back to Captured focus ",capturedFieldId);
		            focusedElement.focus();
		            capturedFieldId = null;
		        }
		    }
		}
	}

function setFocus(target){
	var element = getObjectByJsfId(target);
		  if (element != null) {
			 //log("Setting focus to ",element);
		    element.focus().select();
		  }else{
			  log("Could not find ",target);
		  }

}

function setFocusIfEmpty(target){
	if(target!=null){
		var value = target.val();
		if(!value){
			target.focus();
		}
	}
}

function setFocusAndSet(target){
	if(target!=null){
		var value = target.val();
		target.focus();
		target.val(value);
	}
}

var tableRowColor = '';
var tableRowHighlight = '#FEFFAF';
var addressSeparator = ', ';
var addressSpace = ' ';

var addressBookAddressNameId;
var addressBookAddressLineId;
var addressBookAddressTownCityId;
var addressBookAddressCountryId;
var addressBookAddressCountryName;
var addressBookAddressCountryDropDownId;
var addressBookContactNameId;
var addressBookContactEmailId;
var addressBookContactPhoneId;
var addressBookContactFaxId;
var addressBookVatNumberId;

var addressBookCallBack;

var addressBookOneLineAddress = false;
var addressBookEval;



//Primefaces overwrites
//http://forum.primefaces.org/viewtopic.php?f=3&t=29050 avoid calendar opening when dialog opens
PrimeFaces.widget.Dialog.prototype.applyFocus = function() {
	  var firstInput = this.jq.find(':not(:submit):not(:button):input:visible:enabled:first');
	  if(!firstInput.hasClass('hasDatepicker')) {
	      firstInput.focus();
	  }
	}
