| Server IP : 103.234.187.230 / Your IP : 216.73.216.216 Web Server : Apache System : Linux lserver42043-ind.megavelocity.net 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64 User : apache ( 48) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/tripsgateway/public/unitegallery/js/ |
Upload File : |
/**
* avia control class
* addon to strip gallery
*/
function UGAviaControl(){
var g_parent, g_gallery, g_objects, g_objStrip, g_objStripInner, g_options;
var g_isVertical;
var g_temp = {
touchEnabled:false, //variable that tells if touch event was before move event
isMouseInsideStrip: false,
strip_finalPos:0,
handle_timeout:"",
isStripMoving:false,
isControlEnabled: true
};
/**
* enable the control
*/
this.enable = function(){
g_temp.isControlEnabled = true;
}
/**
* disable the control
*/
this.disable = function(){
g_temp.isControlEnabled = false;
}
/**
* init function for avia controls
*/
this.init = function(objParent){
g_parent = objParent;
g_objects = objParent.getObjects();
g_gallery = g_objects.g_gallery;
g_objStrip = g_objects.g_objStrip;
g_objStripInner = g_objects.g_objStripInner;
g_options = g_objects.g_options;
g_isVertical = g_objects.isVertical;
initEvents();
}
/**
* get mouse position from event according the orientation
*/
function getMousePos(event){
if(g_isVertical == false)
return(event.pageX);
return(event.pageY);
}
/**
* handle avia strip control event on body mouse move
*/
function initEvents(event){
//make sure that the avia control will not work on touch devices
jQuery("body").on("touchstart", function(event){
if(g_temp.isControlEnabled == false)
return(true);
g_temp.touchEnabled = true;
});
//on body move
jQuery("body").mousemove(function(event){
if(g_temp.isControlEnabled == false)
return(true);
//protection for touch devices, disable the avia events
if(g_temp.touchEnabled == true){
jQuery("body").off("mousemove");
return(true);
}
g_temp.isMouseInsideStrip = g_objStrip.ismouseover();
var strip_touch_active = g_parent.isTouchMotionActive();
if(g_temp.isMouseInsideStrip == true && strip_touch_active == false){
var mousePos = getMousePos(event);
moveStripToMousePosition(mousePos);
}else{
stopStripMovingLoop();
}
});
}
/**
* destroy the avia control events
*/
this.destroy = function(){
jQuery("body").off("touchstart");
jQuery("body").off("mousemove");
}
/**
* get inner y position according mouse y position on the strip
*/
function getInnerPosY(mouseY){
var innerOffsetTop = g_options.strip_padding_top;
var innerOffsetBottom = g_options.strip_padding_bottom;
var stripHeight = g_objStrip.height();
var innerHeight = g_objStripInner.height();
//if all thumbs visible, no need to move
if(stripHeight > innerHeight)
return(null);
//find y position inside the strip
var stripOffset = g_objStrip.offset();
var offsetY = stripOffset.top;
var posy = mouseY - offsetY - innerOffsetTop;
if(posy < 0)
return(null);
//set measure line parameters
var mlineStart = g_options.thumb_height;
var mlineEnd = stripHeight - g_options.thumb_height;
var mLineSize = mlineEnd - mlineStart;
//fix position borders on the measure line
if(posy < mlineStart)
posy = mlineStart;
if(posy > mlineEnd)
posy = mlineEnd;
//count the ratio of the position on the measure line
var ratio = (posy - mlineStart) / mLineSize;
var innerPosY = (innerHeight - stripHeight) * ratio;
innerPosY = Math.round(innerPosY) * -1 + innerOffsetTop;
return(innerPosY);
}
/**
* get inner x position according mouse x position on the strip
*/
function getInnerPosX(mouseX){
var innerOffsetLeft = g_options.strip_padding_left;
var innerOffsetRight = g_options.strip_padding_right;
var stripWidth = g_objStrip.width() - innerOffsetLeft - innerOffsetRight;
var innerWidth = g_objStripInner.width();
//if all thumbs visible, no need to move
if(stripWidth > innerWidth)
return(null);
var stripOffset = g_objStrip.offset();
var offsetX = stripOffset.left;
var posx = mouseX - offsetX - innerOffsetLeft;
//set measure line parameters
var mlineStart = g_options.thumb_width;
var mlineEnd = stripWidth - g_options.thumb_width;
var mLineSize = mlineEnd - mlineStart;
//fix position borders on the measure line
if(posx < mlineStart)
posx = mlineStart;
if(posx > mlineEnd)
posx = mlineEnd;
//count the ratio of the position on the measure line
var ratio = (posx - mlineStart) / mLineSize;
var innerPosX = (innerWidth - stripWidth) * ratio;
innerPosX = Math.round(innerPosX) * -1 + innerOffsetLeft;
return(innerPosX);
}
/**
* move strip stap to final position
*/
function moveStripStep(){
if(g_temp.is_strip_moving == false){
return(false);
}
var innerPos = g_parent.getInnerStripPos();
if(Math.floor(innerPos) == Math.floor(g_temp.strip_finalPos)){
stopStripMovingLoop();
}
//calc step
var diff = Math.abs(g_temp.strip_finalPos - innerPos);
var dpos;
if(diff < 1){
dpos = diff;
}
else{
dpos = diff / 4;
if(dpos > 0 && dpos < 1)
dpos = 1;
}
if(g_temp.strip_finalPos < innerPos)
dpos = dpos * -1;
var newPos = innerPos + dpos;
g_parent.positionInnerStrip(newPos);
}
/**
* start loop of strip moving
*/
function startStripMovingLoop(){
if(g_temp.isStripMoving == true)
return(false);
g_temp.isStripMoving = true;
g_temp.handle_timeout = setInterval(moveStripStep,10);
}
/**
* stop loop of strip moving
*/
function stopStripMovingLoop(){
if(g_temp.isStripMoving == false)
return(false);
g_temp.isStripMoving = false;
g_temp.handle_timeout = clearInterval(g_temp.handle_timeout);
}
/**
* get inner position according the orientation
* taken by the mouse position
*/
function getInnerPos(mousePos){
if(g_isVertical == false)
return getInnerPosX(mousePos);
else
return getInnerPosY(mousePos);
}
/**
* move the strip to mouse position on it
* mousex - mouse position relative to the document
*/
function moveStripToMousePosition(mousePos){
var innerPos = getInnerPos(mousePos);
if(innerPos === null)
return(false);
g_temp.is_strip_moving = true;
g_temp.strip_finalPos = innerPos;
startStripMovingLoop();
}
}