/**
 *
 */
 	function SerialToCameraType ( serialId, cameraTypeLabel, cameraTypeHidden )
	{
		var self = this;
		
		this.cameraTypes = [];
	
		/**
		 *
		 */
		 	this.__construct = function ( serialId, cameraTypeLabelId, cameraTypeHiddenId )
			{
				try
				{
					self.serial = document.getElementById ( serialId );
					addEvent ( self.serial, 'load', self.selectCameraType );
					addEvent ( self.serial, 'keyup', self.selectCameraType );
					addEvent ( self.serial, 'change', self.selectCameraType );
					addEvent ( self.serial, 'blur', self.selectCameraType );
					
					self.cameraTypeLabel = document.getElementById ( cameraTypeLabelId );
					self.cameraTypeHidden = document.getElementById ( cameraTypeHiddenId );
					
					self.selectCameraType ( );
				}
				catch ( ex ) { }
			}
			
		/**
		 *
		 */
		 	this.selectCameraType = function ( )
			{
				var serialNr = self.serial.value.replace ( /[^\d]/g, '' );
				
				if ( serialNr.length >= 6 )
				{
					var cameraType = self.getCameraType ( serialNr );
				
					if ( cameraType )
					{
						self.cameraTypeLabel.innerHTML = cameraType;
						self.cameraTypeHidden.value = cameraType;
					}
					else
					{
						self.cameraTypeLabel.innerHTML = '<b style="color: #990000;">Kein Typ erkannt!</b>';
						self.cameraTypeHidden.value = 0;
					}
				}

			}
			
		/**
		 *
		 */
		 	this.getCameraType = function ( serialNr )
			{
				try
				{
					var cameraType = serialNr.match ( /....(..)/ )[ 1 ];
					
					if ( typeof ( this.cameraTypes[ cameraType ] ) != undefined )
					{
						return this.cameraTypes[ cameraType ];
					}
				}
				catch ( ex ) { return false };
			}
		 
		/**
		 *
		 */
			addEvent ( window, 'load', function ( ) { self.__construct ( serialId, cameraTypeLabel, cameraTypeHidden ) } );
	}

/**
 *
 */
	var s2ct = new SerialToCameraType ( 'serial', 'camera_type_label', 'camera_type_hidden' );
