function JsParallax( el, movePlace, settings )
{
	var myself = this;	
	var allowMovement = true;
	var possibleMovement = ['horizontal', 'vertical', 'both'];	
	settings = {
		moveCoeficient: isSet( settings.moveCoeficient ) ? settings.moveCoeficient : 0.1,
		moveDirection: isSet( settings.moveDirection ) ? settings.moveDirection : -1,
		movementEnabled: isSet( settings.movementEnabled ) && inArray( settings.movementEnabled, possibleMovement ) ? settings.movementEnabled : 'both'
	}
	var mainItem = {
		element: el,
		position: {
			init: {
				left: Dimension.getLeft( el ),
				top: Dimension.getTop( el )
			},
			actual: {}	
		}
	}
	mainItem.position.actual.left =  mainItem.position.init.left;
	mainItem.position.actual.top =  mainItem.position.init.top;
	var moveInItem = {
		size: {
			width: windowObj.getWidth(),
			height: windowObj.getHeight()
		},
		centerPoint: {}
	}
	
	if ( isElement( movePlace ) )
	{
		moveInItem.size = {
			width: Dimension.getWidth( movePlace ),
			height: Dimension.getHeight( movePlace )
		}
		
		moveInItem.position = {
			left: Dimension.getLeftRelativeByElement( movePlace, document.body ),
			top: Dimension.getTopRelativeByElement( movePlace, document.body )
		}
	}
	else
	{
		moveInItem.size = {
			width: windowObj.getWidth(),
			height: windowObj.getHeight()
		}
	}
	moveInItem.centerPoint.left =  moveInItem.size.width / 2;
	moveInItem.centerPoint.top =  moveInItem.size.height / 2;
	
	documentObj.onMouseMove.add( function()
	{
		if ( allowMovement )
		{
			if ( mouseObj.isOnElement( movePlace ) )
			{
				if ( settings.movementEnabled != 'vertical' )
				{
					mainItem.position.actual.left = mainItem.position.init.left + settings.moveDirection * ( mouseObj.getPositionRelativeByElement( movePlace ).left - moveInItem.centerPoint.left ) * settings.moveCoeficient;
					mainItem.element.style.left = mainItem.position.actual.left+'px';
				}

				if ( settings.movementEnabled != 'horizontal' )
				{
					mainItem.position.actual.top = mainItem.position.init.top + settings.moveDirection * ( mouseObj.getPositionRelativeByElement( movePlace ).top - moveInItem.centerPoint.top ) * settings.moveCoeficient;
					mainItem.element.style.top = mainItem.position.actual.top+'px';
				}
			}
			
			allowMovement = false;
			
			setTimeout( function(){
				allowMovement = true;
			}, 20 );
		}
	} );
}



