Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
PSW_II_PARIWISATA_TRANSPORTASI
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Proyek_PSW_II_PARIWISATA
PSW_II_PARIWISATA_TRANSPORTASI
Commits
44d71f96
Commit
44d71f96
authored
Jun 06, 2020
by
11319009_Pratiwi Sibarani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upload New File
parent
67c6394a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
808 additions
and
0 deletions
+808
-0
venobox.js
transportasi/public/vendor/venobox/venobox.js
+808
-0
No files found.
transportasi/public/vendor/venobox/venobox.js
0 → 100644
View file @
44d71f96
/*
* VenoBox - jQuery Plugin
* version: 1.8.9
* @requires jQuery >= 1.7.0
*
* Examples at http://veno.es/venobox/
* License: MIT License
* License URI: https://github.com/nicolafranchini/VenoBox/blob/master/LICENSE
* Copyright 2013-2020 Nicola Franchini - @nicolafranchini
*
*/
/* global jQuery */
(
function
(
$
){
"use strict"
;
var
autoplay
,
bgcolor
,
blockleft
,
blocknum
,
blockshare
,
blocktitle
,
border
,
core
,
container
,
content
,
dest
,
extraCss
,
framewidth
,
frameheight
,
gallItems
,
infinigall
,
items
,
keyNavigationDisabled
,
margine
,
numeratio
,
overlayColor
,
overlay
,
title
,
thisgall
,
thenext
,
theprev
,
nextok
,
prevok
,
preloader
,
$preloader
,
navigation
,
obj
,
gallIndex
,
startouch
,
vbheader
,
images
,
startY
,
startX
,
endY
,
endX
,
diff
,
diffX
,
diffY
,
threshold
,
share
,
sharelinks
,
vbfooter
,
sharepos
;
var
pinIcon
=
'<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.372-12 12 0 5.084 3.163 9.426 7.627 11.174-.105-.949-.2-2.405.042-3.441.218-.937 1.407-5.965 1.407-5.965s-.359-.719-.359-1.782c0-1.668.967-2.914 2.171-2.914 1.023 0 1.518.769 1.518 1.69 0 1.029-.655 2.568-.994 3.995-.283 1.194.599 2.169 1.777 2.169 2.133 0 3.772-2.249 3.772-5.495 0-2.873-2.064-4.882-5.012-4.882-3.414 0-5.418 2.561-5.418 5.207 0 1.031.397 2.138.893 2.738.098.119.112.224.083.345l-.333 1.36c-.053.22-.174.267-.402.161-1.499-.698-2.436-2.889-2.436-4.649 0-3.785 2.75-7.262 7.929-7.262 4.163 0 7.398 2.967 7.398 6.931 0 4.136-2.607 7.464-6.227 7.464-1.216 0-2.359-.631-2.75-1.378l-.748 2.853c-.271 1.043-1.002 2.35-1.492 3.146 1.124.347 2.317.535 3.554.535 6.627 0 12-5.373 12-12 0-6.628-5.373-12-12-12z" fill-rule="evenodd" clip-rule="evenodd"/></svg>'
;
var
fbIcon
=
'<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm3 8h-1.35c-.538 0-.65.221-.65.778v1.222h2l-.209 2h-1.791v7h-3v-7h-2v-2h2v-2.308c0-1.769.931-2.692 3.029-2.692h1.971v3z"/></svg>'
;
var
twitterIcon
=
'<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm6.066 9.645c.183 4.04-2.83 8.544-8.164 8.544-1.622 0-3.131-.476-4.402-1.291 1.524.18 3.045-.244 4.252-1.189-1.256-.023-2.317-.854-2.684-1.995.451.086.895.061 1.298-.049-1.381-.278-2.335-1.522-2.304-2.853.388.215.83.344 1.301.359-1.279-.855-1.641-2.544-.889-3.835 1.416 1.738 3.533 2.881 5.92 3.001-.419-1.796.944-3.527 2.799-3.527.825 0 1.572.349 2.096.907.654-.128 1.27-.368 1.824-.697-.215.671-.67 1.233-1.263 1.589.581-.07 1.135-.224 1.649-.453-.384.578-.87 1.084-1.433 1.489z"/></svg>'
;
var
linkedinIcon
=
'<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-2 16h-2v-6h2v6zm-1-6.891c-.607 0-1.1-.496-1.1-1.109 0-.612.492-1.109 1.1-1.109s1.1.497 1.1 1.109c0 .613-.493 1.109-1.1 1.109zm8 6.891h-1.998v-2.861c0-1.881-2.002-1.722-2.002 0v2.861h-2v-6h2v1.093c.872-1.616 4-1.736 4 1.548v3.359z"/></svg>'
;
var
downloadIcon
=
'<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm2 9h-4v-1h4v1zm0-3v1h-4v-1h4zm-2 13l-6-6h4v-3h4v3h4l-6 6z"/></svg>'
;
$
.
fn
.
extend
({
//plugin name - venobox
venobox
:
function
(
options
)
{
var
plugin
=
this
;
// default options
var
defaults
=
{
arrowsColor
:
'#B6B6B6'
,
autoplay
:
false
,
// same as data-autoplay - thanks @codibit
bgcolor
:
'#fff'
,
border
:
'0'
,
closeBackground
:
'transparent'
,
closeColor
:
"#d2d2d2"
,
framewidth
:
''
,
frameheight
:
''
,
gallItems
:
false
,
infinigall
:
false
,
htmlClose
:
'×'
,
htmlNext
:
'<span>Next</span>'
,
htmlPrev
:
'<span>Prev</span>'
,
numeratio
:
false
,
numerationBackground
:
'#161617'
,
numerationColor
:
'#d2d2d2'
,
numerationPosition
:
'top'
,
// 'top' || 'bottom'
overlayClose
:
true
,
// disable overlay click-close - thanx @martybalandis
overlayColor
:
'rgba(23,23,23,0.85)'
,
spinner
:
'double-bounce'
,
// available: 'rotating-plane' | 'double-bounce' | 'wave' | 'wandering-cubes' | 'spinner-pulse' | 'chasing-dots' | 'three-bounce' | 'circle' | 'cube-grid' | 'fading-circle' | 'folding-cube'
spinColor
:
'#d2d2d2'
,
titleattr
:
'title'
,
// specific attribute to get a title (e.g. [data-title]) - thanx @mendezcode
titleBackground
:
'#161617'
,
titleColor
:
'#d2d2d2'
,
titlePosition
:
'top'
,
// 'top' || 'bottom'
share
:
[
'facebook'
,
'twitter'
,
'linkedin'
,
'pinterest'
,
'download'
],
cb_pre_open
:
function
(){
return
true
;
},
// Callbacks - thanx @garyee
cb_post_open
:
function
(){},
cb_pre_close
:
function
(){
return
true
;
},
cb_post_close
:
function
(){},
cb_post_resize
:
function
(){},
cb_after_nav
:
function
(){},
cb_content_loaded
:
function
(){},
cb_init
:
function
(){}
};
var
option
=
$
.
extend
(
defaults
,
options
);
// callback plugin initialization
option
.
cb_init
(
plugin
);
return
this
.
each
(
function
()
{
obj
=
$
(
this
);
// Prevent double initialization - thanx @matthistuff
if
(
obj
.
data
(
'venobox'
))
{
return
true
;
}
// method to be used outside the plugin
plugin
.
VBclose
=
function
()
{
closeVbox
();
};
obj
.
addClass
(
'vbox-item'
);
obj
.
data
(
'framewidth'
,
option
.
framewidth
);
obj
.
data
(
'frameheight'
,
option
.
frameheight
);
obj
.
data
(
'border'
,
option
.
border
);
obj
.
data
(
'bgcolor'
,
option
.
bgcolor
);
obj
.
data
(
'numeratio'
,
option
.
numeratio
);
obj
.
data
(
'gallItems'
,
option
.
gallItems
);
obj
.
data
(
'infinigall'
,
option
.
infinigall
);
obj
.
data
(
'overlaycolor'
,
option
.
overlayColor
);
obj
.
data
(
'titleattr'
,
option
.
titleattr
);
obj
.
data
(
'share'
,
option
.
share
);
obj
.
data
(
'venobox'
,
true
);
obj
.
on
(
'click'
,
function
(
e
){
e
.
preventDefault
();
obj
=
$
(
this
);
// callback plugin initialization
var
cb_pre_open
=
option
.
cb_pre_open
(
obj
);
if
(
cb_pre_open
===
false
)
{
return
false
;
}
// methods to be used outside the plugin
plugin
.
VBnext
=
function
()
{
navigateGall
(
thenext
);
};
plugin
.
VBprev
=
function
()
{
navigateGall
(
theprev
);
};
overlayColor
=
obj
.
data
(
'overlay'
)
||
obj
.
data
(
'overlaycolor'
);
framewidth
=
obj
.
data
(
'framewidth'
);
frameheight
=
obj
.
data
(
'frameheight'
);
// set data-autoplay="true" for vimeo and youtube videos - thanx @zehfernandes
autoplay
=
obj
.
data
(
'autoplay'
)
||
option
.
autoplay
;
border
=
obj
.
data
(
'border'
);
bgcolor
=
obj
.
data
(
'bgcolor'
);
nextok
=
false
;
prevok
=
false
;
keyNavigationDisabled
=
false
;
// set a different url to be loaded using data-href="" - thanx @pixeline
dest
=
obj
.
data
(
'href'
)
||
obj
.
attr
(
'href'
);
extraCss
=
obj
.
data
(
'css'
)
||
''
;
title
=
obj
.
attr
(
obj
.
data
(
'titleattr'
))
||
''
;
share
=
obj
.
data
(
'share'
);
preloader
=
'<div class="vbox-preloader">'
;
switch
(
option
.
spinner
)
{
case
'rotating-plane'
:
preloader
+=
'<div class="sk-rotating-plane"></div>'
;
break
;
case
'double-bounce'
:
preloader
+=
'<div class="sk-double-bounce">'
+
'<div class="sk-child sk-double-bounce1"></div>'
+
'<div class="sk-child sk-double-bounce2"></div>'
+
'</div>'
;
break
;
case
'wave'
:
preloader
+=
'<div class="sk-wave">'
+
'<div class="sk-rect sk-rect1"></div>'
+
'<div class="sk-rect sk-rect2"></div>'
+
'<div class="sk-rect sk-rect3"></div>'
+
'<div class="sk-rect sk-rect4"></div>'
+
'<div class="sk-rect sk-rect5"></div>'
+
'</div>'
;
break
;
case
'wandering-cubes'
:
preloader
+=
'<div class="sk-wandering-cubes">'
+
'<div class="sk-cube sk-cube1"></div>'
+
'<div class="sk-cube sk-cube2"></div>'
+
'</div>'
;
break
;
case
'spinner-pulse'
:
preloader
+=
'<div class="sk-spinner sk-spinner-pulse"></div>'
;
break
;
case
'chasing-dots'
:
preloader
+=
'<div class="sk-chasing-dots">'
+
'<div class="sk-child sk-dot1"></div>'
+
'<div class="sk-child sk-dot2"></div>'
+
'</div>'
;
break
;
case
'three-bounce'
:
preloader
+=
'<div class="sk-three-bounce">'
+
'<div class="sk-child sk-bounce1"></div>'
+
'<div class="sk-child sk-bounce2"></div>'
+
'<div class="sk-child sk-bounce3"></div>'
+
'</div>'
;
break
;
case
'circle'
:
preloader
+=
'<div class="sk-circle">'
+
'<div class="sk-circle1 sk-child"></div>'
+
'<div class="sk-circle2 sk-child"></div>'
+
'<div class="sk-circle3 sk-child"></div>'
+
'<div class="sk-circle4 sk-child"></div>'
+
'<div class="sk-circle5 sk-child"></div>'
+
'<div class="sk-circle6 sk-child"></div>'
+
'<div class="sk-circle7 sk-child"></div>'
+
'<div class="sk-circle8 sk-child"></div>'
+
'<div class="sk-circle9 sk-child"></div>'
+
'<div class="sk-circle10 sk-child"></div>'
+
'<div class="sk-circle11 sk-child"></div>'
+
'<div class="sk-circle12 sk-child"></div>'
+
'</div>'
;
break
;
case
'cube-grid'
:
preloader
+=
'<div class="sk-cube-grid">'
+
'<div class="sk-cube sk-cube1"></div>'
+
'<div class="sk-cube sk-cube2"></div>'
+
'<div class="sk-cube sk-cube3"></div>'
+
'<div class="sk-cube sk-cube4"></div>'
+
'<div class="sk-cube sk-cube5"></div>'
+
'<div class="sk-cube sk-cube6"></div>'
+
'<div class="sk-cube sk-cube7"></div>'
+
'<div class="sk-cube sk-cube8"></div>'
+
'<div class="sk-cube sk-cube9"></div>'
+
'</div>'
;
break
;
case
'fading-circle'
:
preloader
+=
'<div class="sk-fading-circle">'
+
'<div class="sk-circle1 sk-circle"></div>'
+
'<div class="sk-circle2 sk-circle"></div>'
+
'<div class="sk-circle3 sk-circle"></div>'
+
'<div class="sk-circle4 sk-circle"></div>'
+
'<div class="sk-circle5 sk-circle"></div>'
+
'<div class="sk-circle6 sk-circle"></div>'
+
'<div class="sk-circle7 sk-circle"></div>'
+
'<div class="sk-circle8 sk-circle"></div>'
+
'<div class="sk-circle9 sk-circle"></div>'
+
'<div class="sk-circle10 sk-circle"></div>'
+
'<div class="sk-circle11 sk-circle"></div>'
+
'<div class="sk-circle12 sk-circle"></div>'
+
'</div>'
;
break
;
case
'folding-cube'
:
preloader
+=
'<div class="sk-folding-cube">'
+
'<div class="sk-cube1 sk-cube"></div>'
+
'<div class="sk-cube2 sk-cube"></div>'
+
'<div class="sk-cube4 sk-cube"></div>'
+
'<div class="sk-cube3 sk-cube"></div>'
+
'</div>'
;
break
;
}
preloader
+=
'</div>'
;
navigation
=
'<a class="vbox-next">'
+
option
.
htmlNext
+
'</a><a class="vbox-prev">'
+
option
.
htmlPrev
+
'</a>'
;
vbheader
=
'<div class="vbox-title"></div><div class="vbox-left"><div class="vbox-num">0/0</div></div><div class="vbox-close">'
+
option
.
htmlClose
+
'</div>'
;
vbfooter
=
'<div class="vbox-share"></div>'
;
core
=
'<div class="vbox-overlay '
+
extraCss
+
'" style="background:'
+
overlayColor
+
'">'
+
preloader
+
'<div class="vbox-container"><div class="vbox-content"></div></div>'
+
vbheader
+
navigation
+
vbfooter
+
'</div>'
;
$
(
'body'
).
append
(
core
).
addClass
(
'vbox-open'
);
$
(
'.vbox-preloader div:not(.sk-circle) .sk-child, .vbox-preloader .sk-rotating-plane, .vbox-preloader .sk-rect, .vbox-preloader div:not(.sk-folding-cube) .sk-cube, .vbox-preloader .sk-spinner-pulse'
).
css
(
'background-color'
,
option
.
spinColor
);
overlay
=
$
(
'.vbox-overlay'
);
container
=
$
(
'.vbox-container'
);
content
=
$
(
'.vbox-content'
);
blockleft
=
$
(
'.vbox-left'
);
blocknum
=
$
(
'.vbox-num'
);
blockshare
=
$
(
'.vbox-share'
);
blocktitle
=
$
(
'.vbox-title'
);
$preloader
=
$
(
'.vbox-preloader'
);
$preloader
.
show
();
if
(
option
.
titlePosition
==
'top'
)
{
sharepos
=
'bottom'
;
}
else
{
sharepos
=
'top'
;
}
blockshare
.
css
(
sharepos
,
'-1px'
);
blockshare
.
css
({
'color'
:
option
.
titleColor
,
'fill'
:
option
.
titleColor
,
'background-color'
:
option
.
titleBackground
});
blocktitle
.
css
(
option
.
titlePosition
,
'-1px'
,);
blocktitle
.
css
({
'color'
:
option
.
titleColor
,
'background-color'
:
option
.
titleBackground
});
$
(
'.vbox-close'
).
css
({
'color'
:
option
.
closeColor
,
'background-color'
:
option
.
closeBackground
});
blockleft
.
css
(
option
.
numerationPosition
,
'-1px'
);
blockleft
.
css
({
'color'
:
option
.
numerationColor
,
'background-color'
:
option
.
numerationBackground
});
$
(
'.vbox-next span, .vbox-prev span'
).
css
({
'border-top-color'
:
option
.
arrowsColor
,
'border-right-color'
:
option
.
arrowsColor
});
content
.
html
(
''
);
content
.
css
(
'opacity'
,
'0'
);
overlay
.
css
(
'opacity'
,
'0'
);
checknav
();
// fade in overlay
overlay
.
animate
({
opacity
:
1
},
250
,
function
(){
if
(
obj
.
data
(
'vbtype'
)
==
'iframe'
)
{
loadIframe
();
}
else
if
(
obj
.
data
(
'vbtype'
)
==
'inline'
)
{
loadInline
();
}
else
if
(
obj
.
data
(
'vbtype'
)
==
'ajax'
)
{
loadAjax
();
}
else
if
(
obj
.
data
(
'vbtype'
)
==
'video'
)
{
loadVid
(
autoplay
);
}
else
{
content
.
html
(
'<img src="'
+
dest
+
'">'
);
preloadFirst
();
}
option
.
cb_post_open
(
obj
,
gallIndex
,
thenext
,
theprev
);
});
/* -------- KEYBOARD ACTIONS -------- */
$
(
'body'
).
keydown
(
keyboardHandler
);
/* -------- PREVGALL -------- */
$
(
'.vbox-prev'
).
on
(
'click'
,
function
(){
navigateGall
(
theprev
);
});
/* -------- NEXTGALL -------- */
$
(
'.vbox-next'
).
on
(
'click'
,
function
(){
navigateGall
(
thenext
);
});
return
false
;
});
// click
/* -------- CHECK NEXT / PREV -------- */
function
checknav
(){
thisgall
=
obj
.
data
(
'gall'
);
numeratio
=
obj
.
data
(
'numeratio'
);
gallItems
=
obj
.
data
(
'gallItems'
);
infinigall
=
obj
.
data
(
'infinigall'
);
share
=
obj
.
data
(
'share'
);
blockshare
.
html
(
''
);
if
(
obj
.
data
(
'vbtype'
)
!==
'iframe'
&&
obj
.
data
(
'vbtype'
)
!==
'inline'
&&
obj
.
data
(
'vbtype'
)
!==
'ajax'
)
{
sharelinks
=
{
pinterest
:
'<a target="_blank" href="https://pinterest.com/pin/create/button/?url='
+
obj
.
prop
(
'href'
)
+
'&media='
+
obj
.
prop
(
'href'
)
+
'&description='
+
title
+
'">'
+
pinIcon
+
'</a>'
,
facebook
:
'<a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u='
+
obj
.
prop
(
'href'
)
+
'">'
+
fbIcon
+
'</a>'
,
twitter
:
'<a target="_blank" href="https://twitter.com/intent/tweet?text='
+
title
+
'&url='
+
obj
.
prop
(
'href'
)
+
'">'
+
twitterIcon
+
'</a>'
,
linkedin
:
'<a target="_blank" href="https://www.linkedin.com/sharing/share-offsite/?url='
+
obj
.
prop
(
'href'
)
+
'">'
+
linkedinIcon
+
'</a>'
,
download
:
'<a target="_blank" href="'
+
obj
.
prop
(
'href'
)
+
'">'
+
downloadIcon
+
'</a>'
};
$
.
each
(
share
,
function
(
key
,
value
)
{
blockshare
.
append
(
sharelinks
[
value
]);
});
}
if
(
gallItems
)
{
items
=
gallItems
;
}
else
{
items
=
$
(
'.vbox-item[data-gall="'
+
thisgall
+
'"]'
);
}
if
(
items
.
length
<
2
)
{
infinigall
=
false
;
numeratio
=
false
;
}
thenext
=
items
.
eq
(
items
.
index
(
obj
)
+
1
);
theprev
=
items
.
eq
(
items
.
index
(
obj
)
-
1
);
if
(
!
thenext
.
length
&&
infinigall
===
true
)
{
thenext
=
items
.
eq
(
0
);
}
// update gall numeration
if
(
items
.
length
>=
1
)
{
gallIndex
=
items
.
index
(
obj
)
+
1
;
blocknum
.
html
(
gallIndex
+
' / '
+
items
.
length
);
}
else
{
gallIndex
=
1
;
}
if
(
numeratio
===
true
)
{
blocknum
.
show
();
}
else
{
blocknum
.
hide
();
}
// update title
if
(
title
!==
''
)
{
blocktitle
.
show
();
}
else
{
blocktitle
.
hide
();
}
// update navigation arrows
if
(
!
thenext
.
length
&&
infinigall
!==
true
)
{
$
(
'.vbox-next'
).
css
(
'display'
,
'none'
);
nextok
=
false
;
}
else
{
$
(
'.vbox-next'
).
css
(
'display'
,
'block'
);
nextok
=
true
;
}
if
(
items
.
index
(
obj
)
>
0
||
infinigall
===
true
)
{
$
(
'.vbox-prev'
).
css
(
'display'
,
'block'
);
prevok
=
true
;
}
else
{
$
(
'.vbox-prev'
).
css
(
'display'
,
'none'
);
prevok
=
false
;
}
// activate swipe
if
(
prevok
===
true
||
nextok
===
true
)
{
content
.
on
(
TouchMouseEvent
.
DOWN
,
onDownEvent
);
content
.
on
(
TouchMouseEvent
.
MOVE
,
onMoveEvent
);
content
.
on
(
TouchMouseEvent
.
UP
,
onUpEvent
);
}
}
/* -------- gallery navigation -------- */
function
navigateGall
(
destination
)
{
if
(
destination
.
length
<
1
)
{
return
false
;
}
if
(
keyNavigationDisabled
)
{
return
false
;
}
keyNavigationDisabled
=
true
;
overlayColor
=
destination
.
data
(
'overlay'
)
||
destination
.
data
(
'overlaycolor'
);
framewidth
=
destination
.
data
(
'framewidth'
);
frameheight
=
destination
.
data
(
'frameheight'
);
border
=
destination
.
data
(
'border'
);
bgcolor
=
destination
.
data
(
'bgcolor'
);
dest
=
destination
.
data
(
'href'
)
||
destination
.
attr
(
'href'
);
autoplay
=
destination
.
data
(
'autoplay'
);
title
=
(
destination
.
data
(
'titleattr'
)
&&
destination
.
attr
(
destination
.
data
(
'titleattr'
)))
||
''
;
// swipe out item
if
(
destination
===
theprev
)
{
content
.
addClass
(
'vbox-animated'
).
addClass
(
'swipe-right'
);
}
if
(
destination
===
thenext
)
{
content
.
addClass
(
'vbox-animated'
).
addClass
(
'swipe-left'
);
}
$preloader
.
show
();
content
.
animate
({
opacity
:
0
,
},
500
,
function
(){
overlay
.
css
(
'background'
,
overlayColor
);
content
.
removeClass
(
'vbox-animated'
)
.
removeClass
(
'swipe-left'
)
.
removeClass
(
'swipe-right'
)
.
css
({
'margin-left'
:
0
,
'margin-right'
:
0
});
if
(
destination
.
data
(
'vbtype'
)
==
'iframe'
)
{
loadIframe
();
}
else
if
(
destination
.
data
(
'vbtype'
)
==
'inline'
)
{
loadInline
();
}
else
if
(
destination
.
data
(
'vbtype'
)
==
'ajax'
)
{
loadAjax
();
}
else
if
(
destination
.
data
(
'vbtype'
)
==
'video'
)
{
loadVid
(
autoplay
);
}
else
{
content
.
html
(
'<img src="'
+
dest
+
'">'
);
preloadFirst
();
}
obj
=
destination
;
checknav
();
keyNavigationDisabled
=
false
;
option
.
cb_after_nav
(
obj
,
gallIndex
,
thenext
,
theprev
);
});
}
/* -------- KEYBOARD HANDLER -------- */
function
keyboardHandler
(
e
)
{
if
(
e
.
keyCode
===
27
)
{
// esc
closeVbox
();
}
if
(
e
.
keyCode
==
37
&&
prevok
===
true
)
{
// left
navigateGall
(
theprev
);
}
if
(
e
.
keyCode
==
39
&&
nextok
===
true
)
{
// right
navigateGall
(
thenext
);
}
}
/* -------- CLOSE VBOX -------- */
function
closeVbox
(){
var
cb_pre_close
=
option
.
cb_pre_close
(
obj
,
gallIndex
,
thenext
,
theprev
);
if
(
cb_pre_close
===
false
)
{
return
false
;
}
$
(
'body'
).
off
(
'keydown'
,
keyboardHandler
).
removeClass
(
'vbox-open'
);
obj
.
focus
();
overlay
.
animate
({
opacity
:
0
},
500
,
function
(){
overlay
.
remove
();
keyNavigationDisabled
=
false
;
option
.
cb_post_close
();
});
}
/* -------- CLOSE CLICK -------- */
var
closeclickclass
=
'.vbox-overlay'
;
if
(
!
option
.
overlayClose
){
closeclickclass
=
'.vbox-close'
;
// close only on X
}
$
(
'body'
).
on
(
'click touchstart'
,
closeclickclass
,
function
(
e
){
if
(
$
(
e
.
target
).
is
(
'.vbox-overlay'
)
||
$
(
e
.
target
).
is
(
'.vbox-content'
)
||
$
(
e
.
target
).
is
(
'.vbox-close'
)
||
$
(
e
.
target
).
is
(
'.vbox-preloader'
)
||
$
(
e
.
target
).
is
(
'.vbox-container'
)
)
{
closeVbox
();
}
});
startX
=
0
;
endX
=
0
;
diff
=
0
;
threshold
=
50
;
startouch
=
false
;
function
onDownEvent
(
e
){
content
.
addClass
(
'vbox-animated'
);
startY
=
endY
=
e
.
pageY
;
startX
=
endX
=
e
.
pageX
;
startouch
=
true
;
}
function
onMoveEvent
(
e
){
if
(
startouch
===
true
)
{
endX
=
e
.
pageX
;
endY
=
e
.
pageY
;
diffX
=
endX
-
startX
;
diffY
=
endY
-
startY
;
var
absdiffX
=
Math
.
abs
(
diffX
);
var
absdiffY
=
Math
.
abs
(
diffY
);
if
((
absdiffX
>
absdiffY
)
&&
(
absdiffX
<=
100
))
{
e
.
preventDefault
();
content
.
css
(
'margin-left'
,
diffX
);
}
}
}
function
onUpEvent
(
e
){
if
(
startouch
===
true
)
{
startouch
=
false
;
var
subject
=
obj
;
var
change
=
false
;
diff
=
endX
-
startX
;
if
(
diff
<
0
&&
nextok
===
true
)
{
subject
=
thenext
;
change
=
true
;
}
if
(
diff
>
0
&&
prevok
===
true
)
{
subject
=
theprev
;
change
=
true
;
}
if
(
Math
.
abs
(
diff
)
>=
threshold
&&
change
===
true
)
{
navigateGall
(
subject
);
}
else
{
content
.
css
({
'margin-left'
:
0
,
'margin-right'
:
0
});
}
}
}
/* == GLOBAL DECLERATIONS == */
var
TouchMouseEvent
=
{
DOWN
:
"touchmousedown"
,
UP
:
"touchmouseup"
,
MOVE
:
"touchmousemove"
};
/* == EVENT LISTENERS == */
var
onMouseEvent
=
function
(
event
)
{
var
type
;
switch
(
event
.
type
)
{
case
"mousedown"
:
type
=
TouchMouseEvent
.
DOWN
;
break
;
case
"mouseup"
:
type
=
TouchMouseEvent
.
UP
;
break
;
case
"mouseout"
:
type
=
TouchMouseEvent
.
UP
;
break
;
case
"mousemove"
:
type
=
TouchMouseEvent
.
MOVE
;
break
;
default
:
return
;
}
var
touchMouseEvent
=
normalizeEvent
(
type
,
event
,
event
.
pageX
,
event
.
pageY
);
$
(
event
.
target
).
trigger
(
touchMouseEvent
);
};
var
onTouchEvent
=
function
(
event
)
{
var
type
;
switch
(
event
.
type
)
{
case
"touchstart"
:
type
=
TouchMouseEvent
.
DOWN
;
break
;
case
"touchend"
:
type
=
TouchMouseEvent
.
UP
;
break
;
case
"touchmove"
:
type
=
TouchMouseEvent
.
MOVE
;
break
;
default
:
return
;
}
var
touch
=
event
.
originalEvent
.
touches
[
0
];
var
touchMouseEvent
;
if
(
type
==
TouchMouseEvent
.
UP
)
{
touchMouseEvent
=
normalizeEvent
(
type
,
event
,
null
,
null
);
}
else
{
touchMouseEvent
=
normalizeEvent
(
type
,
event
,
touch
.
pageX
,
touch
.
pageY
);
}
$
(
event
.
target
).
trigger
(
touchMouseEvent
);
};
/* == NORMALIZE == */
var
normalizeEvent
=
function
(
type
,
original
,
x
,
y
)
{
return
$
.
Event
(
type
,
{
pageX
:
x
,
pageY
:
y
,
originalEvent
:
original
});
};
/* == LISTEN TO ORIGINAL EVENT == */
if
(
"ontouchstart"
in
window
)
{
$
(
document
).
on
(
"touchstart"
,
onTouchEvent
);
$
(
document
).
on
(
"touchmove"
,
onTouchEvent
);
$
(
document
).
on
(
"touchend"
,
onTouchEvent
);
}
else
{
$
(
document
).
on
(
"mousedown"
,
onMouseEvent
);
$
(
document
).
on
(
"mouseup"
,
onMouseEvent
);
$
(
document
).
on
(
"mouseout"
,
onMouseEvent
);
$
(
document
).
on
(
"mousemove"
,
onMouseEvent
);
}
/* -------- LOAD AJAX -------- */
function
loadAjax
(){
$
.
ajax
({
url
:
dest
,
cache
:
false
}).
done
(
function
(
msg
)
{
content
.
html
(
'<div class="vbox-inline">'
+
msg
+
'</div>'
);
preloadFirst
();
}).
fail
(
function
()
{
content
.
html
(
'<div class="vbox-inline"><p>Error retrieving contents, please retry</div>'
);
updateoverlay
();
});
}
/* -------- LOAD IFRAME -------- */
function
loadIframe
(){
content
.
html
(
'<iframe class="venoframe" src="'
+
dest
+
'"></iframe>'
);
// $('.venoframe').load(function(){ // valid only for iFrames in same domain
updateoverlay
();
// });
}
/* -------- LOAD VIDEOs -------- */
function
loadVid
(
autoplay
){
var
player
;
var
videoObj
=
parseVideo
(
dest
);
// set rel=0 to hide related videos at the end of YT + optional autoplay
var
stringAutoplay
=
autoplay
?
"?rel=0&autoplay=1"
:
"?rel=0"
;
var
queryvars
=
stringAutoplay
+
getUrlParameter
(
dest
);
if
(
videoObj
.
type
==
'vimeo'
)
{
player
=
'https://player.vimeo.com/video/'
;
}
else
if
(
videoObj
.
type
==
'youtube'
)
{
player
=
'https://www.youtube.com/embed/'
;
}
content
.
html
(
'<iframe class="venoframe vbvid" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="autoplay" frameborder="0" src="'
+
player
+
videoObj
.
id
+
queryvars
+
'"></iframe>'
);
updateoverlay
();
}
/**
* Parse Youtube or Vimeo videos and get host & ID
*/
function
parseVideo
(
url
)
{
url
.
match
(
/
(
http:|https:|
)\/\/(
player.|www.
)?(
vimeo
\.
com|youtu
(
be
\.
com|
\.
be|be
\.
googleapis
\.
com
))\/(
video
\/
|embed
\/
|watch
\?
v=|v
\/)?([
A-Za-z0-9._%-
]
*
)(\&\S
+
)?
/
);
var
type
;
if
(
RegExp
.
$3
.
indexOf
(
'youtu'
)
>
-
1
)
{
type
=
'youtube'
;
}
else
if
(
RegExp
.
$3
.
indexOf
(
'vimeo'
)
>
-
1
)
{
type
=
'vimeo'
;
}
return
{
type
:
type
,
id
:
RegExp
.
$6
};
}
/**
* get additional video url parameters
*/
function
getUrlParameter
(
name
)
{
var
result
=
''
;
var
sPageURL
=
decodeURIComponent
(
name
);
var
firstsplit
=
sPageURL
.
split
(
'?'
);
if
(
firstsplit
[
1
]
!==
undefined
)
{
var
sURLVariables
=
firstsplit
[
1
].
split
(
'&'
);
var
sParameterName
;
var
i
;
for
(
i
=
0
;
i
<
sURLVariables
.
length
;
i
++
)
{
sParameterName
=
sURLVariables
[
i
].
split
(
'='
);
result
=
result
+
'&'
+
sParameterName
[
0
]
+
'='
+
sParameterName
[
1
];
}
}
return
encodeURI
(
result
);
}
/* -------- LOAD INLINE -------- */
function
loadInline
(){
content
.
html
(
'<div class="vbox-inline">'
+
$
(
dest
).
html
()
+
'</div>'
);
updateoverlay
();
}
/* -------- PRELOAD IMAGE -------- */
function
preloadFirst
(){
images
=
content
.
find
(
'img'
);
if
(
images
.
length
)
{
images
.
each
(
function
(){
$
(
this
).
one
(
'load'
,
function
()
{
updateoverlay
();
});
});
}
else
{
updateoverlay
();
}
}
/* -------- FADE-IN THE NEW CONTENT -------- */
function
updateoverlay
(){
blocktitle
.
html
(
title
);
content
.
find
(
">:first-child"
).
addClass
(
'vbox-figlio'
).
css
({
'width'
:
framewidth
,
'height'
:
frameheight
,
'padding'
:
border
,
'background'
:
bgcolor
});
$
(
'img.vbox-figlio'
).
on
(
'dragstart'
,
function
(
event
)
{
event
.
preventDefault
();
});
updateOL
();
content
.
animate
({
'opacity'
:
'1'
},
'slow'
,
function
(){
$preloader
.
hide
();
});
option
.
cb_content_loaded
(
obj
,
gallIndex
,
thenext
,
theprev
);
}
/* -------- CENTER FRAME -------- */
function
updateOL
(){
var
sonH
=
content
.
outerHeight
();
var
finH
=
$
(
window
).
height
();
if
(
sonH
+
60
<
finH
)
{
margine
=
(
finH
-
sonH
)
/
2
;
}
else
{
margine
=
'30px'
;
}
content
.
css
(
'margin-top'
,
margine
);
content
.
css
(
'margin-bottom'
,
margine
);
option
.
cb_post_resize
();
}
$
(
window
).
resize
(
function
(){
if
(
$
(
'.vbox-content'
).
length
){
setTimeout
(
updateOL
(),
800
);
}
});
});
// each
}
// venobox
});
// extend
})(
jQuery
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment