File: D:/HostingSpaces/PGeelen/budelaandekook.nl/wwwroot/wp-content/plugins/wp-photo-album-plus/wppa.js
// wppa.js
//
// conatins slideshow, theme, ajax and lightbox code
//
var wppaJsVersion = '6.1.0';
// Part 1: Slideshow
//
// Slide show variables and functions
// Vars. The vars that have a name that starts with an underscore is an internal var
// The vars without leading underscore are 'external' and get a value from html
// 'External' variables ( public )
var wppaVersion = '0';
var wppaDebug = false;
var wppaFullValign = [];
var wppaFullHalign = [];
var wppaFullFrameDelta = [];
var wppaAnimationSpeed;
var wppaImageDirectory;
var wppaAutoColumnWidth = [];
var wppaAutoColumnFrac = [];
var wppaThumbnailAreaDelta;
var wppaSlideShowTimeOut = 2500;
var wppaFadeInAfterFadeOut = false;
var wppaTextFrameDelta = 0;
var wppaBoxDelta = 0;
var wppaPreambule;
var wppaHideWhenEmpty = false;
var wppaThumbnailPitch = [];
var wppaFilmStripLength = [];
var wppaFilmStripMargin = [];
var wppaFilmStripAreaDelta = [];
var wppaFilmShowGlue = false;
var wppaIsMini = [];
var wppaPortraitOnly = [];
var wppaSlideShow; // = 'Slideshow' or its translation
var wppaPhoto; // = 'Photo' or its translation
var wppaOf; // = 'of' or its translation
var wppaNextPhoto; // = 'Next photo' or its translation
var wppaPreviousPhoto; // = 'Previous photo' or its translation
var wppaSlower;
var wppaFaster;
var wppaNextP;
var wppaPrevP;
var wppaAvgRating;
var wppaMyRating;
var wppaAvgRat;
var wppaMyRat;
var wppaDislikeMsg;
var wppaShowDislikeCount = false;
var wppaNoDislikes = 'no dislikes';
var wppa1Dislike = '1 dislike';
var wppaDislikes = 'dislikes';
var wppaIncludingMine = 'including mine';
var wppaMiniTreshold = 300;
var wppaStart = 'Start'; // defaults
var wppaStop = 'Stop'; //
var wppaPleaseName;
var wppaPleaseEmail;
var wppaPleaseComment;
var wppaRatingOnce = true;
var wppaBGcolorNumbar = 'transparent';
var wppaBcolorNumbar = 'transparent';
var wppaBGcolorNumbarActive = 'transparent';
var wppaBcolorNumbarActive = 'transparent';
var wppaFontFamilyNumbar = '';
var wppaFontSizeNumbar = '';
var wppaFontColorNumbar = '';
var wppaFontWeightNumbar = '';
var wppaFontFamilyNumbarActive = '';
var wppaFontSizeNumbarActive = '';
var wppaFontColorNumbarActive = '';
var wppaFontWeightNumbarActive = '';
var wppaNumbarMax = '10';
var wppaAjaxUrl = '';
var wppaLang = '';
var wppaNextOnCallback = false;
var wppaRatingUseAjax = false;
var wppaStarOpacity = 0.2;
var wppaSlideWrap = true;
var wppaLightBox = [];
var wppaEmailRequired = true;
var wppaSlideBorderWidth = 0;
var wppaSlideInitRunning = [];
var wppaAnimationType = 'fadeover';
var wppaSlidePause = [];
var wppaSlideBlank = [];
var wppaRatingMax = 5;
var wppaRatingDisplayType = 'graphic';
var wppaRatingPrec = 2;
var wppaFilmPageSize = [];
var wppaAspectRatio = [];
var wppaFullSize = [];
var wppaStretch = false;
var wppaThumbSpaceAuto = false;
var wppaMinThumbSpace = 4;
var wppaMagnifierCursor = '';
var wppaArtMonkyLink = 'none';
var wppaAutoOpenComments = false;
var wppaUpdateAddressLine = false;
var wppaFilmThumbTitle = '';
var wppaUploadUrl = '';
var wppaVoteForMe = '';
var wppaVotedForMe = '';
var wppaSlideSwipe = true;
var wppaLightboxSingle = [];
var wppaMaxCoverWidth = 300; // For responsive multicolumn covers
var wppaDownLoad = 'Download';
var wppaSiteUrl = '';
var wppaWppaUrl = '';
var wppaIncludeUrl = '';
var wppaSlideToFullpopup = false;
var wppaComAltSize = 75;
var wppaBumpViewCount = true;
var wppaFotomoto = false;
var wppaArtMonkeyButton = true;
var wppaShortQargs = false;
var wppaOvlHires = false;
var wppaMasonryCols = [];
var wppaVideoPlaying = [];
var wppaAudioPlaying = [];
var wppaSlideVideoStart = false;
var wppaSlideAudioStart = false;
var wppaAudioHeight = 28;
// 'Internal' variables ( private )
var _wppaId = [];
var _wppaAvg = [];
var _wppaDisc = [];
var _wppaMyr = [];
var _wppaVRU = [];
var _wppaLinkUrl = [];
var _wppaLinkTitle = [];
var _wppaLinkTarget = [];
var _wppaCommentHtml = [];
var _wppaIptcHtml = [];
var _wppaExifHtml = [];
var _wppaToTheSame = false;
var _wppaSlides = [];
var _wppaNames = [];
var _wppaFullNames = [];
var _wppaDsc = [];
var _wppaOgDsc = [];
var _wppaCurIdx = [];
var _wppaNxtIdx = [];
var _wppaTimeOut = [];
var _wppaSSRuns = [];
var _wppaFg = [];
var _wppaTP = [];
var _wppaIsBusy = [];
var _wppaFirst = [];
var _wppaVIP = false;
var _wppaTextDelay;
var _wppaUrl = [];
var _wppaLastVote = 0;
var _wppaSkipRated = [];
var _wppaLbTitle = [];
var _wppaStateCount = 0;
var _wppaDidGoto = [];
var wppaTopMoc = 0;
var wppaColWidth = [];
var _wppaShareUrl = [];
var _wppaShareHtml = [];
var _wppaFilmNoMove = [];
var wppaShareHideWhenRunning = false;
var _wppaHiresUrl = [];
var wppaFotomotoHideWhenRunning = false;
var wppaFotomotoMinWidth = 400;
var wppaPhotoView = [];
var wppaCommentRequiredAfterVote = true;
var _wppaIsVideo = [];
var _wppaVideoHtml = [];
var _wppaAudioHtml = [];
var _wppaVideoNatWidth = [];
var _wppaVideoNatHeight = [];
//var _wppaWidth = [];
var __wppaOverruleRun = false;
//var wppaFirstAudio = true;
// Init at dom ready
jQuery( document ).ready(function() {
var anyAutocol = false;
// Check for occurrences that are responsive
for ( mocc = 1; mocc <= wppaTopMoc; mocc++ ) {
if ( wppaAutoColumnWidth[mocc] ) {
wppaColWidth[mocc] = 0;
_wppaDoAutocol( mocc );
anyAutocol = true;
}
}
// Misc. init
_wppaTextDelay = wppaAnimationSpeed;
if ( wppaFadeInAfterFadeOut ) _wppaTextDelay *= 2;
// Install resize handler
if ( anyAutocol ) {
jQuery( window ).resize(function() {
for ( mocc = 1; mocc <= wppaTopMoc; mocc++ ) {
if ( wppaAutoColumnWidth[mocc] ) {
wppaColWidth[mocc] = 0;
_wppaDoAutocol( mocc );
}
}
});
}
});
// First the external entrypoints that may be called directly from HTML
// This is an entrypoint to load the slide data
function wppaStoreSlideInfo(
mocc, // The occurrance of a wppa invocation
// ( php: $wppa['maseter_occur'] )
id, // The index in the slide array
url, // The url to the fs image file
size,
width,
height,
fullname,
name,
desc,
photoid, // The photo id
avgrat, // Average rating
discount, // Dislike count
myrat, // My rating
rateurl, // The rating url
linkurl,
linktitle,
linktarget,
iwtimeout,
commenthtml, // The html code for the comment box
iptchtml,
exifhtml,
lbtitle, // Lightbox subtext
shareurl,
smhtml,
ogdsc,
hiresurl, // The url to the hi res ( source ) image file
videohtml, // The html for the video, or ''
audiohtml
) {
var cursor;
desc = wppaRepairScriptTags( desc );
if ( ! _wppaSlides[mocc] || '0' == id ) { // First or next page
_wppaSlides[mocc] = [];
_wppaNames[mocc] = [];
_wppaFullNames[mocc] = [];
_wppaDsc[mocc] = [];
_wppaOgDsc[mocc] = [];
_wppaCurIdx[mocc] = -1;
_wppaNxtIdx[mocc] = 0;
if ( parseInt( iwtimeout ) > 0 ) _wppaTimeOut[mocc] = parseInt( iwtimeout );
else _wppaTimeOut[mocc] = wppaSlideShowTimeOut;
_wppaSSRuns[mocc] = false;
_wppaTP[mocc] = -2; // -2 means NO, index for _wppaStartStop otherwise
_wppaFg[mocc] = 0;
_wppaIsBusy[mocc] = false;
_wppaFirst[mocc] = true;
_wppaId[mocc] = [];
_wppaAvg[mocc] = [];
_wppaDisc[mocc] = [];
_wppaMyr[mocc] = [];
_wppaVRU[mocc] = [];
_wppaLinkUrl[mocc] = []; // linkurl;
_wppaLinkTitle[mocc] = []; // linktitle;
_wppaLinkTarget[mocc] = [];
_wppaCommentHtml[mocc] = [];
_wppaIptcHtml[mocc] = [];
_wppaExifHtml[mocc] = [];
_wppaUrl[mocc] = [];
_wppaSkipRated[mocc] = false;
_wppaLbTitle[mocc] = [];
_wppaDidGoto[mocc] = false;
wppaSlidePause[mocc] = false;
_wppaShareUrl[mocc] = [];
_wppaShareHtml[mocc] = [];
_wppaFilmNoMove[mocc] = false;
_wppaHiresUrl[mocc] = [];
_wppaIsVideo[mocc] = [];
_wppaVideoHtml[mocc] = [];
_wppaAudioHtml[mocc] = [];
_wppaVideoNatWidth[mocc] = [];
_wppaVideoNatHeight[mocc] = [];
wppaVideoPlaying[mocc] = false;
wppaAudioPlaying[mocc] = false;
// _wppaWidth[mocc] = [];
}
// Cursor
cursor = 'default';
if ( linkurl != '' ) {
cursor = 'pointer';
}
else if ( 'wppa' == wppaLightBox[mocc] ) {
cursor = 'url( '+wppaImageDirectory+wppaMagnifierCursor+' ),pointer';
}
// Is it a video?
_wppaIsVideo[mocc][id] = ( '' != videohtml );
// Fill _wppaSlides[mocc][id]
if ( _wppaIsVideo[mocc][id] ) {
_wppaSlides[mocc][id] = ' alt="' + wppaTrimAlt( name ) + '" class="theimg theimg-'+mocc+' big" ';
if ( wppaSlideVideoStart && wppaLightBox[mocc] == '' ) {
_wppaSlides[mocc][id] += ' autoplay ';
}
}
else {
_wppaSlides[mocc][id] = ' src="' + url + '" alt="' + wppaTrimAlt( name ) + '" class="theimg theimg-'+mocc+' big" ';
}
// Add swipe
if ( wppaSlideSwipe ) {
_wppaSlides[mocc][id] += 'ontouchstart="wppaTouchStart( event, this.id, '+mocc+' );" ontouchend="wppaTouchEnd( event );" ontouchmove="wppaTouchMove( event );" ontouchcancel="wppaTouchCancel( event );" ';
}
// Add 'old' width and height only for non-auto
if ( ! wppaAutoColumnWidth[mocc] ) _wppaSlides[mocc][id] += 'width="' + width + '" height="' + height + '" ';
if ( _wppaIsVideo[mocc][id] ) {
var controls;
controls = 'wppa' == wppaLightBox[mocc] ? '' : 'controls';
_wppaSlides[mocc][id] += 'style="' + size + '; cursor:'+cursor+'; display:none;" '+controls+'>'+videohtml+'</video>';
}
else {
_wppaSlides[mocc][id] += 'style="' + size + '; cursor:'+cursor+'; display:none; vertical-align:middle;">';
/*
if ( audiohtml != '' && 'wppa' != wppaLightBox[mocc] ) {
_wppaSlides[mocc][id] += '<audio' +
' controls' +
( wppaSlideAudioStart ? ' autoplay' : '' ) +
' class="wppa-audio-'+mocc+'"' +
' onplay="wppaAudioPlaying['+mocc+'] = true;"' +
' onpause="wppaAudioPlaying['+mocc+'] = false"' +
' style="position:relative; top:-'+( wppaAudioHeight + wppaSlideBorderWidth )+'px; z-index:10; width:100%; padding: 0 '+wppaSlideBorderWidth+'px;"' +
' >' +
audiohtml +
'</audio>';
}
*/
}
_wppaFullNames[mocc][id] = fullname;
_wppaNames[mocc][id] = name;
_wppaDsc[mocc][id] = desc;
_wppaOgDsc[mocc][id] = ogdsc;
_wppaId[mocc][id] = photoid; // reqd for rating and comment and monkey and registering views
_wppaAvg[mocc][id] = avgrat; // avg ratig value
_wppaDisc[mocc][id] = discount; // Dislike count
_wppaMyr[mocc][id] = myrat; // my rating
_wppaVRU[mocc][id] = rateurl; // url that performs the vote and returns to the page
_wppaLinkUrl[mocc][id] = linkurl;
_wppaLinkTitle[mocc][id] = linktitle;
if ( linktarget != '' ) {
_wppaLinkTarget[mocc][id] = linktarget;
}
else if ( wppaSlideBlank[mocc] ) {
_wppaLinkTarget[mocc][id] = '_blank';
}
else {
_wppaLinkTarget[mocc][id] = '_self';
}
_wppaCommentHtml[mocc][id] = commenthtml;
_wppaIptcHtml[mocc][id] = iptchtml;
_wppaExifHtml[mocc][id] = exifhtml;
_wppaUrl[mocc][id] = /* wppaUploadUrl + */ url; // Image url
_wppaLbTitle[mocc][id] = wppaRepairScriptTags( lbtitle );
_wppaShareUrl[mocc][id] = shareurl;
_wppaShareHtml[mocc][id] = wppaRepairScriptTags( smhtml );
_wppaHiresUrl[mocc][id] = hiresurl;
_wppaVideoHtml[mocc][id] = videohtml;
_wppaAudioHtml[mocc][id] = audiohtml;
_wppaVideoNatWidth[mocc][id] = width;
_wppaVideoNatHeight[mocc][id] = height;
}
// These functions check the validity and store the users request to be executed later if busy and if applicable.
function wppaSpeed( mocc, faster ) {
if ( _wppaSSRuns[mocc] ) {
_wppaSpeed( mocc, faster );
}
}
function wppaStopShow( mocc ) {
if ( _wppaSSRuns[mocc] ) {
_wppaStop( mocc );
}
}
// The application contains various togglers for start/stop
// The busy flag will be reset at the end of the NextSlide procedure
function wppaStartStop( mocc, index ) {
if ( _wppaIsBusy[mocc] ) {
// Remember there is a toggle pending
_wppaTP[mocc] = index;
}
else {
// wppaFirstAudio = true;
if ( _wppaSSRuns[mocc] ) {
// Stop it
_wppaStop( mocc );
}
else {
// Start it
_wppaStart( mocc, index );
}
}
}
function wppaBbb( mocc, where, act ) {
if ( ! _wppaSSRuns[mocc] ) {
// Big Browsing Buttons only work when stopped
_wppaBbb( mocc, where, act );
}
}
function wppaUbb( mocc, where, act ) {
// if ( ! _wppaSSRuns[mocc] ) {
// Ugli Browsing Buttons only work when stopped
_wppaUbb( mocc, where, act );
// }
}
function wppaRateIt( mocc, value ) {
_wppaRateIt( mocc, value );
}
function wppaPrev( mocc ) {
_wppaDidGoto[mocc] = true;
if ( ! _wppaSSRuns[mocc] ) {
_wppaPrev( mocc );
}
}
function wppaPrevN( mocc, n ) {
_wppaDidGoto[mocc] = true;
if ( ! _wppaSSRuns[mocc] ) {
_wppaPrevN( mocc, n );
}
}
function wppaFirst( mocc ) {
_wppaDidGoto[mocc] = true;
if ( ! _wppaSSRuns[mocc] ) {
_wppaGoto( mocc, 0 );
}
}
function wppaNext( mocc ) {
_wppaDidGoto[mocc] = true;
if ( ! _wppaSSRuns[mocc] ) {
_wppaNext( mocc );
}
}
function wppaNextN( mocc, n ) {
_wppaDidGoto[mocc] = true;
if ( ! _wppaSSRuns[mocc] ) {
_wppaNextN( mocc, n );
}
}
function wppaLast( mocc ) {
_wppaDidGoto[mocc] = true;
if ( ! _wppaSSRuns[mocc] ) {
_wppaGoto( mocc, _wppaSlides[mocc].length - 1 );
}
}
function wppaFollowMe( mocc, idx ) {
if ( ! _wppaSSRuns[mocc] ) {
_wppaFollowMe( mocc, idx );
}
}
function wppaLeaveMe( mocc, idx ) {
if ( ! _wppaSSRuns[mocc] ) {
_wppaLeaveMe( mocc, idx );
}
}
function wppaGoto( mocc, idx ) {
// Goto the requested slide if the slideshow stopped
_wppaDidGoto[mocc] = true;
if ( ! _wppaSSRuns[mocc] ) {
_wppaGoto( mocc, idx );
}
}
function wppaGotoFilmNoMove( mocc, idx ) {
_wppaDidGoto[mocc] = true;
if ( ! _wppaSSRuns[mocc] ) {
_wppaFilmNoMove[mocc] = true;
_wppaGoto( mocc, idx );
}
}
function wppaGotoKeepState( mocc, idx ) {
// Goto the requested slide and preserve running state
if ( _wppaNxtIdx[mocc] == idx ) return; // Already there
_wppaDidGoto[mocc] = true;
_wppaGotoKeepState( mocc, idx );
}
function _wppaGotoKeepState( mocc, idx ) {
if ( _wppaSSRuns[mocc] ) {
_wppaGotoRunning( mocc,idx );
}
else {
_wppaGoto( mocc,idx );
}
}
function wppaGotoRunning( mocc, idx ) {
// Goto the requested slide and start running
_wppaDidGoto[mocc] = true;
_wppaGotoRunning( mocc, idx );
}
function wppaValidateComment( mocc ) {
return _wppaValidateComment( mocc );
}
function _wppaNextSlide( mocc, mode ) {
var fg = _wppaFg[mocc];
var bg = 1 - fg;
// If a video is playing, delay a running slideshow
if ( ( wppaVideoPlaying[mocc] || wppaAudioPlaying[mocc] ) && _wppaSSRuns[mocc] ) {
setTimeout( '_wppaNextSlide( '+mocc+', \''+mode+'\' )', 500 ); // Retry after 500 ms
return;
}
// Stop any playing video
wppaStopVideo( mocc );
// Stop any playing audio
wppaStopAudio();
// Paused??
if ( 'auto' == mode ) {
if ( wppaSlidePause[mocc] ) {
jQuery( '#theimg'+fg+'-'+mocc ).attr( "title", wppaSlidePause[mocc] );
setTimeout( '_wppaNextSlide( '+mocc+', "auto" )', 250 ); // Retry after 250 ms.
return;
}
}
// Kill an old timed request, while stopped
if ( ! _wppaSSRuns[mocc] && 'auto' == mode ) return;
// Empty slideshow?
if ( ! _wppaSlides[mocc] ) return;
// Do not animate single image
if ( _wppaSlides[mocc].length < 2 && ! _wppaFirst[mocc] ) return;
// Reset request?
if ( ! _wppaSSRuns[mocc] && 'reset' == mode ) {
_wppaSSRuns[mocc] = true;
__wppaOverruleRun = false;
}
// No longer busy voting
_wppaVIP = false;
// Set the busy flag
_wppaIsBusy[mocc] = true;
// Hide metadata while changing image
if ( _wppaSSRuns[mocc] ) _wppaShowMetaData( mocc, 'hide' );
// Find index of next slide if in auto mode and not stop in progress
if ( _wppaSSRuns[mocc] ) {
_wppaNxtIdx[mocc] = _wppaCurIdx[mocc] + 1;
if ( _wppaNxtIdx[mocc] == _wppaSlides[mocc].length ) _wppaNxtIdx[mocc] = 0;
}
// Update geo if any
// GPX Plugin
jQuery( '#geodiv-'+mocc+'-'+_wppaId[mocc][_wppaCurIdx[mocc]] ).css( { display: 'none' });
jQuery( '#geodiv-'+mocc+'-'+_wppaId[mocc][_wppaNxtIdx[mocc]] ).css( { display: '' });
// WPPA+ Native
if ( typeof( _wppaLat ) != 'undefined' ) {
if ( _wppaLat[mocc] ) {
if ( _wppaLat[mocc][_wppaId[mocc][_wppaNxtIdx[mocc]]] ) {
jQuery( '#map-canvas-'+mocc ).css( 'display', '' );
wppaGeoInit( mocc, _wppaLat[mocc][_wppaId[mocc][_wppaNxtIdx[mocc]]], _wppaLon[mocc][_wppaId[mocc][_wppaNxtIdx[mocc]]] );
}
else jQuery( '#map-canvas-'+mocc ).css( 'display', 'none' );
}
else jQuery( '#map-canvas-'+mocc ).css( 'display', 'none' );
}
else jQuery( '#map-canvas-'+mocc ).css( 'display', 'none' );
// Set numbar backgrounds and fonts
jQuery( '[id^=wppa-numbar-' + mocc + '-]' ).css( { backgroundColor: wppaBGcolorNumbar,
borderColor: wppaBcolorNumbar,
fontFamily: wppaFontFamilyNumbar,
fontSize: wppaFontSizeNumbar,
color: wppaFontColorNumbar,
fontWeight: wppaFontWeightNumbar
});
jQuery( "#wppa-numbar-" + mocc + "-" + _wppaNxtIdx[mocc] ).css( { backgroundColor: wppaBGcolorNumbarActive,
borderColor: wppaBcolorNumbarActive,
fontFamily: wppaFontFamilyNumbarActive,
fontSize: wppaFontSizeNumbarActive,
color: wppaFontColorNumbarActive,
fontWeight: wppaFontWeightNumbarActive
});
// too many? all dots except current
if ( _wppaSlides[mocc].length > wppaNumbarMax ) {
jQuery( '[id^=wppa-numbar-' + mocc + '-]' ).html( ' . ' );
jQuery( "#wppa-numbar-" + mocc + "-" + _wppaNxtIdx[mocc] ).html( ' ' + ( _wppaNxtIdx[mocc]+1 ) + ' ' );
}
// first:
if ( _wppaFirst[mocc] ) {
if ( _wppaCurIdx[mocc] != -1 ) {
wppaMakeTheSlideHtml( mocc, '0', _wppaCurIdx[mocc] );
}
wppaMakeTheSlideHtml( mocc, '1', _wppaNxtIdx[mocc] );
// Display name, description and comments
jQuery( "#imagedesc-"+mocc ).html( _wppaDsc[mocc][_wppaCurIdx[mocc]] );
jQuery( "#imagetitle-"+mocc ).html( wppaMakeNameHtml( mocc ) );
jQuery( "#wppa-comments-"+mocc ).html( _wppaCommentHtml[mocc][_wppaCurIdx[mocc]] );
jQuery( "#iptc-"+mocc ).html( _wppaIptcHtml[mocc][_wppaCurIdx[mocc]] );
jQuery( "#exif-"+mocc ).html( _wppaExifHtml[mocc][_wppaCurIdx[mocc]] );
// Display counter and arrow texts
if ( wppaIsMini[mocc] || wppaGetContainerWidth( mocc ) < wppaMiniTreshold ) {
jQuery( '#prev-arrow-'+mocc ).html( '« '+wppaPrevP );
jQuery( '#next-arrow-'+mocc ).html( wppaNextP+' »' );
jQuery( '#wppa-avg-rat-'+mocc ).html( wppaAvgRat );
jQuery( '#wppa-my-rat-'+mocc ).html( wppaMyRat );
}
else {
jQuery( '#prev-arrow-'+mocc ).html( '« '+wppaPreviousPhoto );
jQuery( '#next-arrow-'+mocc ).html( wppaNextPhoto+' »' );
jQuery( '#wppa-avg-rat-'+mocc ).html( wppaAvgRating );
jQuery( '#wppa-my-rat-'+mocc ).html( wppaMyRating );
}
}
// end first
else { // load next img ( backg )
wppaMakeTheSlideHtml( mocc, bg, _wppaNxtIdx[mocc] );
}
_wppaLoadSpinner( mocc );
_wppaFirst[mocc] = false;
// See if the filmstrip needs wrap around before shifting to the right location
_wppaCheckRewind( mocc );
//// if ( wppaAutoColumnWidth[mocc] ) _wppaDoAutocol( mocc );
wppaColWidth[mocc] = 0; // force a recalc
_wppaDoAutocol( mocc );
// Give free for a while to enable rendering of what we have done so far
setTimeout( '_wppaNextSlide_2( '+mocc+' )', 10 ); // to be continued
}
function _wppaNextSlide_2( mocc ) {
var fg = _wppaFg[mocc];
var bg = 1 - fg;
// Wait for load complete
var elm = document.getElementById( 'theimg'+bg+"-"+mocc );
if ( elm ) { // Exists
if ( 1 == elm.nodeType ) { // Is html
if ( 'IMG' == elm.nodeName ) { // Is an image
if ( ! elm.complete ) { // Is not complete yet
setTimeout( '_wppaNextSlide_2( '+mocc+' )', 100 ); // Try again after 100 ms
wppaConsoleLog( 'Retry next2' ); // Log retry
return;
}
}
}
}
// Update lightbox
wppaUpdateLightboxes();
// Remove spinner
_wppaUnloadSpinner( mocc );
// Hide subtitles
if ( _wppaSSRuns[mocc] != -1 ) { // not stop in progress
if ( ! _wppaToTheSame ) {
_wppaShowMetaData( mocc, 'hide' );
}
}
// change foreground
_wppaFg[mocc] = 1 - _wppaFg[mocc];
fg = _wppaFg[mocc];
bg = 1 - fg;
setTimeout( '_wppaNextSlide_3( '+mocc+' )', 10 );
}
function _wppaNextSlide_3( mocc ) {
var nw = _wppaFg[mocc];
var ol = 1 - nw;
var olIdx = _wppaCurIdx[mocc];
var nwIdx = _wppaNxtIdx[mocc];
var olSli = "#theslide"+ol+"-"+mocc;
var nwSli = "#theslide"+nw+"-"+mocc;
var olImg = "#theimg"+ol+"-"+mocc;
var nwImg = "#theimg"+nw+"-"+mocc;
var w = parseInt( jQuery( olSli ).css( 'width' ) );
var dir = 'nil';
if ( olIdx == nwIdx ) dir = 'none';
if ( olIdx == nwIdx-1 ) dir = 'left';
if ( olIdx == nwIdx+1 ) dir = 'right';
if ( olIdx == _wppaSlides[mocc].length-1 && 0 == nwIdx && wppaSlideWrap ) dir = 'left';
if ( 0 == olIdx && nwIdx == _wppaSlides[mocc].length-1 && wppaSlideWrap ) dir = 'right';
// Not known yet?
if ( 'nil' == dir ) {
if ( olIdx < nwIdx ) dir = 'left';
else dir = 'right';
}
// Repair standard css
jQuery( olSli ).css( {marginLeft:0, width:w});
jQuery( nwSli ).css( {marginLeft:0, width:w});
wppaFormatSlide( mocc );
switch ( wppaAnimationType ) {
case 'fadeover':
jQuery( olImg ).fadeOut( wppaAnimationSpeed );
jQuery( nwImg ).fadeIn( wppaAnimationSpeed, _wppaNextSlide_4( mocc ) );
break;
case 'fadeafter':
jQuery( olImg ).fadeOut( wppaAnimationSpeed );
jQuery( nwImg ).delay( wppaAnimationSpeed ).fadeIn( wppaAnimationSpeed, _wppaNextSlide_4( mocc ) );
break;
case 'swipe':
switch ( dir ) {
case 'left':
jQuery( olSli ).animate( {marginLeft:-w+"px"}, wppaAnimationSpeed, "swing" );
jQuery( nwSli ).css( {marginLeft:w+"px"});
jQuery( nwImg ).fadeIn( 10 );
jQuery( nwSli ).animate( {marginLeft:0+"px"}, wppaAnimationSpeed, "swing", _wppaNextSlide_4( mocc ) );
break;
case 'right':
jQuery( olSli ).animate( {marginLeft:w+"px"}, wppaAnimationSpeed, "swing" );
jQuery( nwSli ).css( {marginLeft:-w+"px"});
jQuery( nwImg ).fadeIn( 10 );
jQuery( nwSli ).animate( {marginLeft:0+"px"}, wppaAnimationSpeed, "swing", _wppaNextSlide_4( mocc ) );
break;
case 'none':
jQuery( nwImg ).fadeIn( 10 );
setTimeout( '_wppaNextSlide_4( '+mocc+' )', 10 );
break;
}
break;
case 'stackon':
switch ( dir ) {
case 'left':
jQuery( olSli ).css( {zIndex:80});
jQuery( nwSli ).css( {marginLeft:w+"px", zIndex:81});
jQuery( nwImg ).fadeIn( 10 );
jQuery( olImg ).delay( wppaAnimationSpeed ).fadeOut( 10 );
jQuery( nwSli ).animate( {marginLeft:0+"px"}, wppaAnimationSpeed, "swing", _wppaNextSlide_4( mocc ) );
break;
case 'right':
jQuery( olSli ).css( {zIndex:80});
jQuery( nwSli ).css( {marginLeft:-w+"px", zIndex:81});
jQuery( nwImg ).fadeIn( 10 );
jQuery( olImg ).delay( wppaAnimationSpeed ).fadeOut( 10 );
jQuery( nwSli ).animate( {marginLeft:0+"px"}, wppaAnimationSpeed, "swing", _wppaNextSlide_4( mocc ) );
break;
case 'none':
jQuery( nwImg ).fadeIn( 10 );
setTimeout( '_wppaNextSlide_4( '+mocc+' )', 10 );
break;
}
break;
case 'stackoff':
switch ( dir ) {
case 'left':
jQuery( olSli ).css( {marginLeft:0, zIndex:81});
jQuery( olSli ).animate( {marginLeft:-w+"px"}, wppaAnimationSpeed, "swing", _wppaNextSlide_4( mocc ) );
jQuery( nwSli ).css( {marginLeft:0, zIndex:80});
jQuery( nwImg ).fadeIn( 10 );
jQuery( olImg ).delay( wppaAnimationSpeed ).fadeOut( 10 );
break;
case 'right':
jQuery( olSli ).css( {marginLeft:0, zIndex:81});
jQuery( olSli ).animate( {marginLeft:w+"px"}, wppaAnimationSpeed, "swing", _wppaNextSlide_4( mocc ) );
jQuery( nwSli ).css( {marginLeft:0, zIndex:80});
jQuery( nwImg ).fadeIn( 10 );
jQuery( olImg ).delay( wppaAnimationSpeed ).fadeOut( 10 );
break;
case 'none':
jQuery( nwImg ).fadeIn( 10 );
setTimeout( '_wppaNextSlide_4( '+mocc+' )', 10 );
break;
}
break;
case 'turnover':
switch ( dir ) {
case 'left':
/* there is a z-order problem here, if you can fix it, i would be glad
jQuery( olSli ).css( {zIndex:81});
jQuery( olSli ).animate( {width:0}, wppaAnimationSpeed, "swing" );
jQuery( olImg ).animate( {marginLeft:0, width:0, paddingLeft:0, paddingRight:0}, wppaAnimationSpeed, "swing", _wppaNextSlide_4( mocc ) );
jQuery( nwSli ).css( {width:w, zIndex:80});
jQuery( nwImg ).fadeIn( 10 );
jQuery( olImg ).fadeOut( 10 );
break;
*/
case 'right':
var nwImgWid = parseInt( jQuery( nwSli ).css( 'width' ) );
var nwMarLft = parseInt( jQuery( nwImg ).css( 'marginLeft' ) );
jQuery( olSli ).css( {zIndex:80});
jQuery( nwSli ).css( {zIndex:81, width:0});
jQuery( nwImg ).css( {maxWidth:0, marginLeft:0});
jQuery( nwImg ).fadeIn( 10 );
jQuery( nwSli ).animate( {width:w}, wppaAnimationSpeed, "swing" );
jQuery( nwImg ).animate( {maxWidth:nwImgWid, marginLeft:nwMarLft}, wppaAnimationSpeed, "swing", _wppaNextSlide_4( mocc ) );
jQuery( olImg ).delay( wppaAnimationSpeed ).fadeOut( 10 );
break;
case 'none':
jQuery( nwImg ).fadeIn( 10 );
setTimeout( '_wppaNextSlide_4( '+mocc+' )', 10 );
break;
}
break;
default:
alert( 'Animation type '+wppaAnimationType+' is not supported in this version' );
}
}
function _wppaNextSlide_4( mocc ) {
var nw = _wppaFg[mocc];
var ol = 1-nw;
var olSli = "#theslide"+ol+"-"+mocc;
var nwSli = "#theslide"+nw+"-"+mocc;
// Make sure title and onclick of the new image ( slide ) are in sight
jQuery( olSli ).css( {zIndex:80});
jQuery( nwSli ).css( {zIndex:81});
// Next is now current // put here for swipe
_wppaCurIdx[mocc] = _wppaNxtIdx[mocc];
wppaFormatSlide( mocc );
// Display counter and arrow texts
if ( wppaIsMini[mocc] || wppaGetContainerWidth( mocc ) < wppaMiniTreshold ) {
jQuery( '#counter-'+mocc ).html( ( _wppaCurIdx[mocc]+1 )+' / '+_wppaSlides[mocc].length );
}
else {
jQuery( '#counter-'+mocc ).html( wppaPhoto+' '+( _wppaCurIdx[mocc]+1 )+' '+wppaOf+' '+_wppaSlides[mocc].length );
}
// Update breadcrumb
jQuery( '#bc-pname-'+mocc ).html( _wppaNames[mocc][_wppaCurIdx[mocc]] );
// Adjust filmstrip
_wppaAdjustFilmstrip( mocc );
// Set rating mechanism
_wppaSetRatingDisplay( mocc );
// Update og: meta tags
// This seems to be useless...
// _wppaUpdateOgMeta( mocc );
// Wait for almost next slide
setTimeout( '_wppaNextSlide_5( '+mocc+' )', _wppaTextDelay );
}
function _wppaNextSlide_5( mocc ) {
// If we are going to the same slide, there is no need to hide and restore the subtitles and commentframe
if ( ! _wppaToTheSame ) {
// Restore subtitles
jQuery( '#imagedesc-'+mocc ).html( _wppaDsc[mocc][_wppaCurIdx[mocc]] );
if ( wppaHideWhenEmpty ) {
var desc = _wppaDsc[mocc][_wppaCurIdx[mocc]];
if ( '' == desc || ' ' == desc ) {
jQuery( '#descbox-'+mocc ).css( 'display', 'none' );
}
else {
jQuery( '#descbox-'+mocc ).css( 'display', '' );
}
}
jQuery( "#imagetitle-"+mocc ).html( wppaMakeNameHtml( mocc ) );
// Restore comments html
jQuery( "#wppa-comments-"+mocc ).html( _wppaCommentHtml[mocc][_wppaCurIdx[mocc]] );
// Restor IPTC
jQuery( "#iptc-"+mocc ).html( _wppaIptcHtml[mocc][_wppaCurIdx[mocc]] );
jQuery( "#exif-"+mocc ).html( _wppaExifHtml[mocc][_wppaCurIdx[mocc]] );
// Restore share html
jQuery( "#wppa-share-"+mocc ).html( _wppaShareHtml[mocc][_wppaCurIdx[mocc]] );
}
_wppaToTheSame = false; // This has now been worked out
// End of non wrapped show?
if ( _wppaSSRuns[mocc] &&
! wppaSlideWrap &&
( ( _wppaCurIdx[mocc] + 1 ) == _wppaSlides[mocc].length ) ) {
_wppaIsBusy[mocc] = false;
_wppaStop( mocc ); // stop
return;
}
// Re-display the metadata
_wppaShowMetaData( mocc, 'show' );
// Almost done, finalize
if ( _wppaTP[mocc] != -2 ) { // A Toggle pending?
var index = _wppaTP[mocc]; // Remember the pending startstop request argument
_wppaTP[mocc] = -2; // Reset the pending toggle
_wppaDidGoto[mocc] = false; // Is worked out now
_wppaIsBusy[mocc] = false; // No longer busy
if ( ! wppaIsMini[mocc] ) { // Not in a widget
_bumpViewCount( _wppaId[mocc][_wppaCurIdx[mocc]] ); // Register a view
}
_wppaDoAutocol(mocc);
wppaStartStop( mocc, index ); // Do as if the toggle request happens now
return;
}
else { // No toggle pending
wppaUpdateLightboxes(); // Refresh lightbox
// Update url and title if ( ( this is non-mini ) AND
// ( this is the only running non-mini OR there are no running non-minis ) )
if ( ! wppaIsMini[mocc] ) { // This is NOT a widget
// Prepare visual url ( for addressline )
var visurl = wppaGetCurrentFullUrl( mocc, _wppaCurIdx[mocc] );
if ( '' == visurl ) {
visurl = _wppaShareUrl[mocc][_wppaCurIdx[mocc]];
}
// Update possible QR Widget
if ( typeof( wppaQRUpdate ) != 'undefined' ) {
wppaQRUpdate( _wppaShareUrl[mocc][_wppaCurIdx[mocc]] );
}
// Push state if not slphoto
if ( ! _wppaSSRuns[mocc] ) { // This is not running
if ( _wppaSlides[mocc].length > 1 ) {
wppaPushStateSlide( mocc, _wppaCurIdx[mocc], visurl );
}
}
}
// If running: Wait for next slide
if ( _wppaSSRuns[mocc] ) {
setTimeout( '_wppaNextSlide( '+mocc+', "auto" )', _wppaTimeOut[mocc] );
}
}
// If glossery tooltip on board...
jQuery(document).trigger( 'glossaryTooltipReady' );
_wppaDidGoto[mocc] = false; // Is worked out now
_wppaIsBusy[mocc] = false; // No longer busy
if ( ! wppaIsMini[mocc] ) { // Not in a widget
_bumpViewCount( _wppaId[mocc][_wppaCurIdx[mocc]] ); // Register a view
}
_wppaDoAutocol(mocc);
wppaStopAudio();
if ( wppaSlideAudioStart ) {
var elms = jQuery( '.wppa-audio-'+_wppaId[mocc][_wppaCurIdx[mocc]]+'-'+mocc );
if ( elms.length > 0 ) {
var audio = elms[elms.length-1];
if ( audio ) {
if ( ! wppaAudioPlaying[mocc] ) {
audio.play();
}
}
}
}
}
function wppaMakeNameHtml( mocc ) {
var result = '';
if ( _wppaCurIdx[mocc] < 0 ) return '';
if ( wppaIsMini[mocc] || _wppaIsVideo[mocc][_wppaCurIdx[mocc]] != '' ) {
result = _wppaFullNames[mocc][_wppaCurIdx[mocc]];
}
else switch ( wppaArtMonkyLink ) {
case 'file':
case 'zip':
if ( wppaArtMonkeyButton ) {
if ( _wppaFullNames[mocc][_wppaCurIdx[mocc]] ) {
var label = _wppaFullNames[mocc][_wppaCurIdx[mocc]].split( '<img' );
result = '<input type="button" title="Download" style="cursor:pointer; margin-bottom:0px; max-width:'+( wppaGetContainerWidth( mocc )-24 )+'px;" class="wppa-download-button" onclick="wppaAjaxMakeOrigName( '+mocc+', '+_wppaId[mocc][_wppaCurIdx[mocc]]+' );" ontouchstart="wppaAjaxMakeOrigName( '+mocc+', '+_wppaId[mocc][_wppaCurIdx[mocc]]+' );" value="'+wppaDownLoad+': '+label[0]+'" />';
if ( label[1] ) result += '<img'+label[1];
}
else {
result = '';
}
}
else {
result = '<a title="Download" style="cursor:pointer;" onclick="wppaAjaxMakeOrigName( '+mocc+', '+_wppaId[mocc][_wppaCurIdx[mocc]]+' );" ontouchstart="wppaAjaxMakeOrigName( '+mocc+', '+_wppaId[mocc][_wppaCurIdx[mocc]]+' );">'+wppaDownLoad+': '+_wppaFullNames[mocc][_wppaCurIdx[mocc]]+'</a>';
}
break;
case 'none':
result = _wppaFullNames[mocc][_wppaCurIdx[mocc]];
break;
default:
result = '';
}
return wppaRepairBrTags( result );
}
// var wppaFirstSlideAudio = false;
function wppaMakeTheSlideHtml( mocc, bgfg, idx ) {
var imgVideo = ( _wppaIsVideo[mocc][idx] != '' ) ? 'video' : 'img';
var theHtml;
var url;
var theTitle = 'title';
if ( wppaLightBox[mocc] == 'wppa') theTitle = 'data-lbtitle';
var mmEvents = wppaLightBox[mocc] == '' ? ' onpause="wppaVideoPlaying['+mocc+'] = false;" onplay="wppaVideoPlaying['+mocc+'] = true;"' : '';
// if ( _wppaVideoHtml[mocc][idx] != '' ) {
// jQuery( "#theslide"+bgfg+"-"+mocc ).html( _wppaVideoHtml[mocc][idx] );
// return;
// }
if ( _wppaLinkUrl[mocc][idx] != '' ) { // Link explicitly given
if ( wppaSlideToFullpopup ) {
theHtml = '<a onclick="wppaStopAudio();'+_wppaLinkUrl[mocc][idx]+'" target="'+_wppaLinkTarget[mocc][idx]+'" title="'+_wppaLinkTitle[mocc][idx]+'">'+
'<'+imgVideo+mmEvents+' title="'+_wppaLinkTitle[mocc][idx]+'" id="theimg'+bgfg+'-'+mocc+'" '+_wppaSlides[mocc][idx]+
'</a>';
}
else {
theHtml = '<a onclick="wppaStopAudio();" href="'+_wppaLinkUrl[mocc][idx]+'" target="'+_wppaLinkTarget[mocc][idx]+'" title="'+_wppaLinkTitle[mocc][idx]+'">'+
'<'+imgVideo+mmEvents+' title="'+_wppaLinkTitle[mocc][idx]+'" id="theimg'+bgfg+'-'+mocc+'" '+_wppaSlides[mocc][idx]+
'</a>';
}
// jQuery( "#theslide"+bgfg+"-"+mocc ).html( theHtml );
}
else {
if ( wppaLightBox[mocc] == '' ) { // No link and no lightbox
// jQuery( "#theslide"+bgfg+"-"+mocc ).html( '<'+imgVideo+mmEvents+' title="'+_wppaNames[mocc][idx]+'" id="theimg'+bgfg+'-'+mocc+'" '+_wppaSlides[mocc][idx] );
theHtml = '<'+imgVideo+mmEvents+' title="'+_wppaNames[mocc][idx]+'" id="theimg'+bgfg+'-'+mocc+'" '+_wppaSlides[mocc][idx];
}
else { // Lightbox
var html = '';
var i = 0;
var set = wppaLightboxSingle[mocc] ? '' : '[slide-'+mocc+'-'+bgfg+']';
// Before current slide // This does NOT work on lightbox 3 !
if ( wppaLightBox[mocc] == 'wppa' ) {
while ( i<idx ) {
// Make sure fullsize
if ( wppaOvlHires && _wppaIsVideo[mocc][i] == '' ) {
url = _wppaHiresUrl[mocc][i];
}
else {
url = wppaMakeFullsizeUrl( _wppaUrl[mocc][i] );
}
html += '<a href="'+url+'"' +
' data-videonatwidth="'+_wppaVideoNatWidth[mocc][i]+'"' +
' data-videonatheight="'+_wppaVideoNatHeight[mocc][i]+'"' +
' data-videohtml="'+encodeURI( _wppaVideoHtml[mocc][i] )+'"' +
' data-audiohtml="'+encodeURI( _wppaAudioHtml[mocc][i] )+'"' +
' '+theTitle+'="'+_wppaLbTitle[mocc][i]+'"' +
' rel="'+wppaLightBox[mocc]+set+'"></a>';
i++;
}
}
// Current slide
if ( wppaOvlHires && _wppaIsVideo[mocc][idx] == '' ) {
url = _wppaHiresUrl[mocc][idx];
}
else {
url = wppaMakeFullsizeUrl( _wppaUrl[mocc][idx] );
//alert( 'Sorry, opajaap is testing '+_wppaUrl[mocc][idx] );
}
html += '<a href="'+url+'"' +
' onclick="wppaStopAudio();"' +
' target="'+_wppaLinkTarget[mocc][idx]+'"' +
' data-videonatwidth="'+_wppaVideoNatWidth[mocc][idx]+'"' +
' data-videonatheight="'+_wppaVideoNatHeight[mocc][idx]+'"' +
' data-videohtml="'+encodeURI( _wppaVideoHtml[mocc][idx] )+'"' +
' data-audiohtml="'+encodeURI( _wppaAudioHtml[mocc][idx] )+'"' +
' '+theTitle+'="'+_wppaLbTitle[mocc][idx]+'"' +
' rel="'+wppaLightBox[mocc]+set+'">'+
'<'+imgVideo+mmEvents+' title="'+_wppaLinkTitle[mocc][idx]+'" id="theimg'+bgfg+'-'+mocc+'" '+_wppaSlides[mocc][idx]+
'</a>';
// After current slide // This does NOT work on lightbox 3 !
if ( wppaLightBox[mocc] == 'wppa' ) {
i = idx + 1;
while ( i<_wppaUrl[mocc].length ) {
if ( wppaOvlHires && _wppaIsVideo[mocc][i] == '' ) {
url = _wppaHiresUrl[mocc][i];
}
else {
url = wppaMakeFullsizeUrl( _wppaUrl[mocc][i] );
}
html += '<a href="'+url+'"' +
' data-videonatwidth="'+_wppaVideoNatWidth[mocc][i]+'"' +
' data-videonatheight="'+_wppaVideoNatHeight[mocc][i]+'"' +
' data-videohtml="'+encodeURI( _wppaVideoHtml[mocc][i] )+'"' +
' data-audiohtml="'+encodeURI( _wppaAudioHtml[mocc][i] )+'"' +
' '+theTitle+'="'+_wppaLbTitle[mocc][i]+'"' +
' rel="'+wppaLightBox[mocc]+set+'"></a>';
i++;
}
}
theHtml = html; // nieuw
// jQuery( "#theslide"+bgfg+"-"+mocc ).html( html );
}
}
if ( _wppaAudioHtml[mocc][idx] != '' ) {
// if ( idx == 0 ) wppaFirstSlideAudio = true;
theHtml += '<audio' +
' controls' +
' id="wppa-audio-'+_wppaId[mocc][idx]+'-'+mocc+'"' +
// ( wppaSlideAudioStart ? ' autoplay' : '' ) +
' class="wppa-audio-'+mocc+' wppa-audio-'+_wppaId[mocc][idx]+'-'+mocc+'"' +
' onplay="wppaAudioPlaying['+mocc+'] = true;"' +
' onpause="wppaAudioPlaying['+mocc+'] = false"' +
' style="' +
'position:relative;' +
'top:-'+( wppaAudioHeight + wppaSlideBorderWidth )+'px;' +
'z-index:10;' +
'width:'+_wppaVideoNatWidth[mocc][idx]+'px;' +
'left:'+( wppaMax( 0, ( wppaGetContainerWidth( mocc ) - _wppaVideoNatWidth[mocc][idx] ) / 2 ) )+'px;' +
'padding:0 '+wppaSlideBorderWidth+'px;' +
'box-sizing:border-box;' +
'"' +
' >' +
_wppaAudioHtml[mocc][idx] +
'</audio>';
}
jQuery( "#theslide"+bgfg+"-"+mocc ).html( theHtml ); // nieuw
}
function wppaMax( i, j ) {
if ( i>j ) return i;
return j;
}
function wppaMakeFullsizeUrl( url ) {
var temp;
var temp2;
url = url.replace( '/thumbs/', '/' ); // Not a thumb
// Remove sizespec for Cloudinary
temp = url.split( '//' );
if ( temp[1] ) {
temp2 = temp[1].split( '/' );
url = temp[0]+'//';
}
else {
temp2 = temp[0].split( '/' );
url = '';
}
var j = 0;
while ( j < temp2.length ) {
var chunk = temp2[j];
var w = chunk.split( '_' );
if ( w[0] != 'w' ) {
if ( j != 0 ) url += '/';
url += chunk;
}
j++;
}
return url;
}
function wppaFormatSlide( mocc ) {
// vars we have
var imgid = 'theimg'+_wppaFg[mocc]+'-'+mocc;
var slideid = 'theslide'+_wppaFg[mocc]+'-'+mocc;
var frameid = 'slide_frame-'+mocc;
var contw = wppaColWidth[mocc];
var elm = document.getElementById( imgid );
var audios = jQuery( '.wppa-audio-'+mocc );
if ( ! elm ) return; // No slide present
if ( typeof( contw ) == 'undefined' || contw == 0 ) {
contw = wppaGetContainerWidth( mocc );
wppaColWidth[mocc] = contw;
}
var natwidth = elm.naturalWidth;
if ( typeof( natwidth )=='undefined' ) natwidth = parseInt( elm.style.maxWidth );
var natheight = elm.naturalHeight;
if ( typeof( natheight )=='undefined' ) natheight = parseInt( elm.style.maxHeight );
var aspect = wppaAspectRatio[mocc];
var fullsize = wppaFullSize[mocc];
var delta = wppaFullFrameDelta[mocc];
// Switches we have
var ponly = wppaPortraitOnly[mocc];
var valign = wppaFullValign[mocc]; if ( typeof( valign )=='undefined' ) valign = 'none';
var halign = wppaFullHalign[mocc]; if ( typeof( halign )=='undefined' ) halign = 'none';
var stretch = wppaStretch;
// vars to be calculated:
var imgw, imgh; // image width and height
var margl, margt; // image margins
var slidew, slideh; // slide width and height
var framew, frameh; // frame
// Calculate
if ( ponly ) {
imgw = contw - delta;
imgh = parseInt( imgw * natheight / natwidth );
margl = 0;
margt = 0;
slidew = contw;
slideh = imgh + delta;
framew = contw;
frameh = slideh;
// Size
jQuery( '#'+frameid ).css( {width:framew, height:frameh});
jQuery( '#'+slideid ).css( {width:slidew, height:slideh});
jQuery( '#'+imgid ).css( {width:imgw, height:imgh});
}
else {
// not 'ponly' so we have a fixed display area. First assume the container is the hor limit
framew = contw;
// If the fullsize ( Table I-B1 ) is smaller than the container width The frame is scaled down to fit the fullsize
if ( fullsize < contw ) {
framew = fullsize; // The fullsize appears to be the hor limit
}
frameh = parseInt( framew * aspect ); // Always obey the occurences aspect ratio
slidew = framew;
slideh = frameh;
if ( stretch || natwidth >= ( framew-delta ) || natheight >= ( frameh-delta ) ) { // Image big enough
if ( ( ( natheight+delta ) / ( natwidth+delta ) ) > aspect ) { // vertical limit
imgh = frameh - delta;
imgw = parseInt( imgh * natwidth / natheight );
}
else { // horizontal limit
imgw = framew - delta;
imgh = parseInt( imgw * natheight / natwidth );
}
}
else { // Image too small
imgw = natwidth;
imgh = natheight;
}
// Align vertical
if ( valign != 'default' && valign != 'none' ) {
switch ( valign ) {
case 'top':
margt = 0;
break;
case 'center':
margt = parseInt( ( frameh - ( imgh+delta ) ) / 2 );
break;
case 'bottom':
margt = frameh - ( imgh+delta );
break;
case 'fit':
margt = 0;
frameh = imgh + delta;
slideh = imgh + delta;
break;
default:
// alert( 'Unknown v align:'+valign+' occ='+mocc );
}
jQuery( '#'+imgid ).css( {marginTop:margt, marginBottom:0});
}
// Size ( after v align because 'fit' changes the frameh and slidh )
jQuery( '#'+frameid ).css( {width:framew, height:frameh});
jQuery( '#'+slideid ).css( {width:slidew, height:slideh});
jQuery( '#'+imgid ).css( {width:imgw, height:imgh});
// Align horizontal
if ( valign != 'default' && valign != 'none' && halign != 'none' && halign != 'default' ) {
switch ( halign ) {
case 'left':
margl = 0;
break;
case 'center':
margl = parseInt( ( contw - framew ) / 2 );
break;
case 'right':
margl = contw - framew;
break;
default:
// alert( 'Unknown h align:'+halign+' occ='+mocc );
}
if ( margl < 0 ) margl = 0;
jQuery( '#'+imgid ).css( {marginLeft:'auto', marginRight:'auto'});
jQuery( '#'+frameid ).css( {marginLeft:margl});
// Do not let ver 4 browser shortcomings workarounds spoil the max dimensions
// jQuery( '#'+imgid ).css( 'max-height', imgh+'px' );
// jQuery( '#'+imgid ).css( 'max-width', imgw+'px' );
}
// Size audio
if ( audios.length > 0 ) {
var i = 0;
jQuery( audios[i] ).css( { width:imgw, left:( contw - imgw ) / 2 } );
i++;
}
}
// Size Big Browse Buttons
var bbbwidth = parseInt( framew/3 );
var leftmarg = bbbwidth*2;
jQuery( '#bbb-'+mocc+'-l' ).css( {height:frameh, width:bbbwidth, left:0});
jQuery( '#bbb-'+mocc+'-r' ).css( {height:frameh, width:bbbwidth, left:leftmarg});
// jQuery( '#'+imgid ).css( {cursor:url(),pointer});
}
function _wppaAdjustFilmstrip( mocc ) {
if ( ! document.getElementById( 'wppa-filmstrip-'+mocc ) ) return; // No filmstrip this mocc
// Remove class from active thumb
jQuery( '.wppa-film-'+mocc ).removeClass( 'wppa-filmthumb-active' );
if ( ! _wppaFilmNoMove[mocc] ) {
var xoffset;
xoffset = wppaFilmStripLength[mocc] / 2 - ( _wppaCurIdx[mocc] + 0.5 + wppaPreambule ) * wppaThumbnailPitch[mocc] - wppaFilmStripMargin[mocc];
if ( wppaFilmShowGlue ) xoffset -= ( wppaFilmStripMargin[mocc] * 2 + 2 ); // Glue
jQuery( '#wppa-filmstrip-'+mocc ).stop().animate( {marginLeft: xoffset+'px'});
}
else {
_wppaFilmNoMove[mocc] = false; // reset
}
// make them visible...
if ( _wppaCurIdx[mocc] != -1 ) {
var from = _wppaCurIdx[mocc] - 10; if ( from < 0 ) from = 0;
var to = _wppaCurIdx[mocc] + 10; if ( to > _wppaSlides[mocc].length ) to = _wppaSlides[mocc].length;
var index = from;
while ( index <= to ) {
var html = jQuery( '#film_wppatnf_'+_wppaId[mocc][index]+'_'+mocc ).html();
if ( html ) {
if ( html.search( '<!--' ) != -1 ) {
html = html.replace( '<!--', '' );
html = html.replace( '-->', '' );
jQuery( '#film_wppatnf_'+_wppaId[mocc][index]+'_'+mocc ).html( html );
if ( jQuery( '#wppa-film-'+index+'-'+mocc ).attr( 'data-title' ) != '' ) {
jQuery( '#wppa-film-'+index+'-'+mocc ).attr( 'title', jQuery( '#wppa-film-'+index+'-'+mocc ).attr( 'data-title' ) );
}
else if ( wppaFilmThumbTitle != '' ) {
jQuery( '#wppa-film-'+index+'-'+mocc ).attr( 'title', wppaFilmThumbTitle );
}
else {
jQuery( '#wppa-film-'+index+'-'+mocc ).attr( 'title', _wppaNames[mocc][index] );
}
}
}
index++;
}
}
// Apply class to active filmthumb
jQuery( '#wppa-film-'+_wppaCurIdx[mocc]+'-'+mocc ).addClass( 'wppa-filmthumb-active' );
}
function wppaUpdateLightboxes() {
if ( typeof( myLightbox )!="undefined" ) myLightbox.updateImageList(); // Lightbox-3
wppaInitOverlay(); // Native wppa lightbox
}
function _wppaNext( mocc ) {
// Check for end of non wrapped show
if ( ! wppaSlideWrap && _wppaCurIdx[mocc] == ( _wppaSlides[mocc].length -1 ) ) return;
// Find next index
_wppaNxtIdx[mocc] = _wppaCurIdx[mocc] + 1;
if ( _wppaNxtIdx[mocc] == _wppaSlides[mocc].length ) _wppaNxtIdx[mocc] = 0;
// And go!
_wppaNextSlide( mocc, 0 );
}
function _wppaNextN( mocc, n ) {
// Check for end of non wrapped show
if ( ! wppaSlideWrap && _wppaCurIdx[mocc] >= ( _wppaSlides[mocc].length - n ) ) return;
// Find next index
_wppaNxtIdx[mocc] = _wppaCurIdx[mocc] + n;
while ( _wppaNxtIdx[mocc] >= _wppaSlides[mocc].length ) _wppaNxtIdx[mocc] -= _wppaSlides[mocc].length;
// And go!
_wppaNextSlide( mocc, 0 );
}
function _wppaNextOnCallback( mocc ) {
// Check for end of non wrapped show
if ( ! wppaSlideWrap && _wppaCurIdx[mocc] == ( _wppaSlides[mocc].length -1 ) ) return;
// Check for skip rated after rating
if ( _wppaSkipRated[mocc] ) {
var now = _wppaCurIdx[mocc];
var idx = now + 1;
if ( idx == _wppaSlides[mocc].length ) idx = 0; // wrap?
var next = idx; // assume simple next
if ( _wppaMyr[mocc][next] != 0 ) { // Already rated, skip
idx++; // try next
if ( idx == _wppaSlides[mocc].length ) idx = 0; // wrap?
while ( idx != next && _wppaMyr[mocc][idx] != 0 ) { // still rated, skip
idx ++; // try next
if ( idx == _wppaSlides[mocc].length ) idx = 0; // wrap?
} // either idx == next or not rated
next = idx;
}
_wppaNxtIdx[mocc] = next;
}
else { // Normal situation
_wppaNxtIdx[mocc] = _wppaCurIdx[mocc] + 1;
if ( _wppaNxtIdx[mocc] == _wppaSlides[mocc].length ) _wppaNxtIdx[mocc] = 0;
}
_wppaNextSlide( mocc, 0 );
}
function _wppaPrev( mocc ) {
// Check for begin of non wrapped show
if ( ! wppaSlideWrap && _wppaCurIdx[mocc] == 0 ) return;
// Find previous index
_wppaNxtIdx[mocc] = _wppaCurIdx[mocc] - 1;
if ( _wppaNxtIdx[mocc] < 0 ) _wppaNxtIdx[mocc] = _wppaSlides[mocc].length - 1;
// And go!
_wppaNextSlide( mocc, 0 );
}
function _wppaPrevN( mocc, n ) {
// Check for begin of non wrapped show
if ( ! wppaSlideWrap && _wppaCurIdx[mocc] < n ) return;
// Find previous index
_wppaNxtIdx[mocc] = _wppaCurIdx[mocc] - n;
while ( _wppaNxtIdx[mocc] < 0 ) _wppaNxtIdx[mocc] += _wppaSlides[mocc].length;
// And go!
_wppaNextSlide( mocc, 0 );
}
function _wppaGoto( mocc, idx ) {
_wppaToTheSame = ( _wppaNxtIdx[mocc] == idx );
_wppaNxtIdx[mocc] = idx;
_wppaNextSlide( mocc, 0 );
}
function _wppaGotoRunning( mocc, idx ) {
//wait until not bussy
if ( _wppaIsBusy[mocc] ) {
setTimeout( '_wppaGotoRunning( '+mocc+',' + idx + ' )', 10 ); // Try again after 10 ms
return;
}
wppaConsoleLog( 'GotoRunning '+mocc );
_wppaSSRuns[mocc] = false; // we don't want timed loop to occur during our work
_wppaToTheSame = ( _wppaNxtIdx[mocc] == idx );
_wppaNxtIdx[mocc] = idx;
__wppaOverruleRun = true;
_wppaNextSlide( mocc, "manual" ); // enqueue new transition
_wppaGotoContinue( mocc );
}
function _wppaGotoContinue( mocc ) {
if ( _wppaIsBusy[mocc] ) {
setTimeout( '_wppaGotoContinue( '+mocc+' )', 10 ); // Try again after 10 ms
return;
}
setTimeout( '_wppaNextSlide( '+mocc+', "reset" )', _wppaTimeOut[mocc] + 10 ); //restart slideshow after new timeout
}
function _wppaStart( mocc, idx ) {
if ( idx == -2 ) { // Init at first without my rating
var i = 0;
idx = 0;
_wppaSkipRated[mocc] = true;
if ( _wppaMyr[mocc][i] != 0 ) {
while ( i < _wppaSlides[mocc].length ) {
if ( idx == 0 && _wppaMyr[mocc][i] == 0 ) idx = i;
i++;
}
}
}
if ( idx > -1 ) { // Init still at index idx
jQuery( '#startstop-'+mocc ).html( wppaStart+' '+wppaSlideShow );
jQuery( '#speed0-'+mocc ).css( 'display', 'none' );
jQuery( '#speed1-'+mocc ).css( 'display', 'none' );
_wppaNxtIdx[mocc] = idx;
_wppaCurIdx[mocc] = idx;
_wppaNextSlide( mocc, 0 );
_wppaShowMetaData( mocc, 'show' );
}
else { // idx == -1, start from where you are
_wppaSSRuns[mocc] = true;
_wppaNextSlide( mocc, 0 );
jQuery( '#startstop-'+mocc ).html( wppaStop );
jQuery( '#speed0-'+mocc ).css( 'display', 'inline' );
jQuery( '#speed1-'+mocc ).css( 'display', 'inline' );
_wppaShowMetaData( mocc, 'hide' );
jQuery( '#bc-pname-'+mocc ).html( wppaSlideShow );
}
// Both cases:
_wppaSetRatingDisplay( mocc );
}
function _wppaStop( mocc ) {
_wppaSSRuns[mocc] = false;
jQuery( '#startstop-'+mocc ).html( wppaStart+' '+wppaSlideShow );
jQuery( '#speed0-'+mocc ).css( 'display', 'none' );
jQuery( '#speed1-'+mocc ).css( 'display', 'none' );
_wppaShowMetaData( mocc, 'show' );
jQuery( '#bc-pname-'+mocc ).html( _wppaNames[mocc][_wppaCurIdx[mocc]] );
}
function _wppaSpeed( mocc, faster ) {
if ( faster ) {
if ( _wppaTimeOut[mocc] > 500 ) _wppaTimeOut[mocc] /= 1.5;
}
else {
if ( _wppaTimeOut[mocc] < 60000 ) _wppaTimeOut[mocc] *= 1.5;
}
}
function _wppaLoadSpinner( mocc ) {
if ( ! document.getElementById( 'slide_frame-'+mocc ) ) return; // filmonly
var top;
var lft;
var elm;
var flag = true;
if ( document.getElementById( 'theimg0-'+mocc ) ) {
if ( document.getElementById( 'theimg0-'+mocc ).complete ) flag = false;
}
if ( document.getElementById( 'theimg1-'+mocc ) ) {
if ( document.getElementById( 'theimg1-'+mocc ).complete ) flag = false;
}
top = parseInt( document.getElementById( 'slide_frame-'+mocc ).clientHeight / 2 ) - 16;
lft = parseInt( document.getElementById( 'slide_frame-'+mocc ).clientWidth / 2 ) - 16;
jQuery( '#spinner-'+mocc ).css( 'top',top );
jQuery( '#spinner-'+mocc ).css( 'left',lft );
jQuery( '#spinner-'+mocc ).html( '<img id="spinnerimg-'+mocc+'" src="'+wppaImageDirectory+'loading.gif" style="box-shadow: none" />' );
}
function _wppaUnloadSpinner( mocc ) {
jQuery( '#spinner-'+mocc ).html( '' );
}
function wppaGetContainerWidth( mocc ) {
var elm = document.getElementById( 'wppa-container-'+mocc );
var w = 0;
if ( ! wppaAutoColumnWidth[mocc] ) return elm.clientWidth;
while ( w == 0 ) {
elm = elm.parentNode;
w = jQuery( elm ).width();
}
return w * wppaAutoColumnFrac[mocc];
}
function _wppaDoAutocol( mocc ) {
wppaConsoleLog( 'Doing autocol '+mocc );
if ( ! wppaAutoColumnWidth[mocc] ) return; // Not auto
var w;
var h;
// Container
w = wppaGetContainerWidth( mocc );//document.getElementById( 'wppa-container-'+mocc ).parentNode.clientWidth;
// if ( wppaColWidth[mocc] == w && w != 0 ) {
// setTimeout( '_wppaDoAutocol( '+mocc+' )', 100 );
// return;
// }
wppaColWidth[mocc] = w;
jQuery( ".wppa-container-"+mocc ).css( 'width',w );
// Covers
jQuery( ".wppa-asym-text-frame-"+mocc ).css( 'width',w - wppaTextFrameDelta );
jQuery( ".wppa-cover-box-"+mocc ).css( 'width',w - wppaBoxDelta );
// Multi Column Responsive covers
var exists = jQuery( ".wppa-cover-box-mcr-"+mocc );
var MCRWidth;
if ( exists.length > 1 ) { // Yes there are
// wppaConsoleLog( 'aantal='+exists.length );
var nCovers = parseInt( ( w + 8 )/( wppaMaxCoverWidth+8 ) ) + 1;
var coverMax1 = nCovers - 1;
MCRWidth = parseInt( ( ( w + 8 )/nCovers ) - 8 );
var idx = 0;
while ( idx < exists.length ) {
var col = idx % nCovers;
switch ( col ) {
case 0: /* left */
jQuery( exists[idx] ).css( {'marginLeft': '0px', 'clear': 'both', 'float': 'left'});
break;
case coverMax1: /* right */
jQuery( exists[idx] ).css( {'marginLeft': '8px', 'clear': 'none', 'float': 'right'});
break;
default:
jQuery( exists[idx] ).css( {'marginLeft': '8px', 'clear': 'none', 'float': 'left'});
}
idx++;
}
jQuery( ".wppa-asym-text-frame-mcr-"+mocc ).css( 'width',MCRWidth - wppaTextFrameDelta );
jQuery( ".wppa-cover-box-mcr-"+mocc ).css( 'width',MCRWidth - wppaBoxDelta );
}
else { // One cover: full width, 0 covers don't care
jQuery( ".wppa-asym-text-frame-mcr-"+mocc ).css( 'width',w - wppaTextFrameDelta );
jQuery( ".wppa-cover-box-mcr-"+mocc ).css( {'width': ( w - wppaBoxDelta ), 'marginLeft': '0px', 'float': 'left'});
}
// Thumbnail area
jQuery( ".wppa-thumb-area-"+mocc ).css( 'width',w - wppaThumbnailAreaDelta );
// Thumbframes default
if ( wppaThumbSpaceAuto ) {
var tfw = parseInt( jQuery( ".thumbnail-frame-"+mocc ).css( 'width' ) );
if ( tfw ) {
var minspc = wppaMinThumbSpace;
var weff = w - wppaThumbnailAreaDelta - 7;
var nthumbs = parseInt( weff / ( tfw + minspc ) );
var availsp = weff - nthumbs * tfw;
var newspc = parseInt( 0.5 + availsp / ( nthumbs+1 ) );
jQuery( ".thumbnail-frame-"+mocc ).css( {marginLeft:newspc});
}
}
// Comalt thumbmails
jQuery( ".wppa-com-alt-"+mocc ).css( 'width', w - wppaThumbnailAreaDelta - wppaComAltSize - 20 );
// Masonry thumbnails horizontal
var row = 1;
var rowHeightPix;
var rowHeightPerc = jQuery( '#wppa-mas-h-'+row+'-'+mocc ).attr( 'data-height-perc' );
while ( rowHeightPerc ) {
rowHeightPix = rowHeightPerc * ( w - wppaThumbnailAreaDelta ) / 100;
jQuery( '#wppa-mas-h-'+row+'-'+mocc ).css( 'height', rowHeightPix );
row++;
rowHeightPerc = jQuery( '#wppa-mas-h-'+row+'-'+mocc ).attr( 'data-height-perc' );
}
// User upload
jQuery( ".wppa-file-"+mocc ).css( 'width',w - 16 );
// User upload responsive covers
jQuery( ".wppa-file-mcr-"+mocc ).css( 'width', MCRWidth - wppaBoxDelta - 6 );
// Slide
wppaFormatSlide( mocc );
// Audio on slide
jQuery( "#audio-slide-"+mocc ).css( 'width', w - wppaBoxDelta - 6 );
// Comments
jQuery( ".wppa-comment-textarea-"+mocc ).css( 'width',w * 0.7 );
// Filmstrip
wppaFilmStripLength[mocc] = w - wppaFilmStripAreaDelta[mocc];
jQuery( "#filmwindow-"+mocc ).css( 'width',wppaFilmStripLength[mocc] );
_wppaAdjustFilmstrip( mocc ); // reposition content
// Texts in slideshow and browsebar
if ( ! wppaIsMini[mocc] && typeof( _wppaSlides[mocc] ) != 'undefined' ) { // Mini is properly initialized
if ( wppaColWidth[mocc] < wppaMiniTreshold ) {
jQuery( '#prev-arrow-'+mocc ).html( wppaPrevP );
jQuery( '#next-arrow-'+mocc ).html( wppaNextP );
jQuery( '#wppa-avg-rat-'+mocc ).html( wppaAvgRat );
jQuery( '#wppa-my-rat-'+mocc ).html( wppaMyRat );
jQuery( '#counter-'+mocc ).html( ( _wppaCurIdx[mocc]+1 )+' / '+_wppaSlides[mocc].length );
}
else {
jQuery( '#prev-arrow-'+mocc ).html( wppaPreviousPhoto );
jQuery( '#next-arrow-'+mocc ).html( wppaNextPhoto );
jQuery( '#wppa-avg-rat-'+mocc ).html( wppaAvgRating );
jQuery( '#wppa-my-rat-'+mocc ).html( wppaMyRating );
jQuery( '#counter-'+mocc ).html( wppaPhoto+' '+( _wppaCurIdx[mocc]+1 )+' '+wppaOf+' '+_wppaSlides[mocc].length );
}
}
// Single photo
jQuery( ".wppa-sphoto-"+mocc ).css( 'width',w );
jQuery( ".wppa-simg-"+mocc ).css( 'width',w - 2*wppaSlideBorderWidth );
jQuery( ".wppa-simg-"+mocc ).css( 'height', '' );
// Mphoto
jQuery( ".wppa-mphoto-"+mocc ).css( 'width',w + 10 );
jQuery( ".wppa-mimg-"+mocc ).css( 'width',w );
jQuery( ".wppa-mimg-"+mocc ).css( 'height', '' );
// Check again after 1000 ms
// setTimeout( '_wppaDoAutocol( '+mocc+' )', 1000 );
}
function _wppaCheckRewind( mocc ) {
var n_images;
var n_diff;
var l_substrate;
var x_marg;
if ( ! document.getElementById( 'wppa-filmstrip-'+mocc ) ) return; // There is no filmstrip
n_diff = Math.abs( _wppaCurIdx[mocc] - _wppaNxtIdx[mocc] );
if ( n_diff <= wppaFilmPageSize[mocc] ) return; // was 2
var n_images = wppaFilmStripLength[mocc] / wppaThumbnailPitch[mocc];
if ( n_diff >= ( ( n_images + 1 ) / 2 ) ) {
l_substrate = wppaThumbnailPitch[mocc] * _wppaSlides[mocc].length;
if ( wppaFilmShowGlue ) l_substrate += ( 2 + 2 * wppaFilmStripMargin[mocc] );
x_marg = parseInt( jQuery( '#wppa-filmstrip-'+mocc ).css( 'margin-left' ) );
if ( _wppaNxtIdx[mocc] > _wppaCurIdx[mocc] ) {
x_marg -= l_substrate;
}
else {
x_marg += l_substrate;
}
jQuery( '#wppa-filmstrip-'+mocc ).css( 'margin-left', x_marg+'px' );
}
}
function _wppaSetRatingDisplay( mocc ) {
var idx, avg, tmp, cnt, dsc, myr, dsctxt;
if ( ! document.getElementById( 'wppa-rating-'+mocc ) ) return; // No rating bar
avg = _wppaAvg[mocc][_wppaCurIdx[mocc]];
if ( typeof( avg ) == 'undefined' ) return;
tmp = avg.split( '|' );
avg = tmp[0];
cnt = tmp[1];
dsc = _wppaDisc[mocc][_wppaCurIdx[mocc]];
myr = _wppaMyr[mocc][_wppaCurIdx[mocc]];
wppaConsoleLog( 'avg='+avg+' cnt='+cnt+' dsc='+dsc+' myr='+myr );
// Graphic display ?
if ( wppaRatingDisplayType == 'graphic' ) {
// Set Avg rating
_wppaSetRd( mocc, avg, '#wppa-avg-' );
// Set My rating
_wppaSetRd( mocc, myr, '#wppa-rate-' );
// Display dislike
if ( myr == 0 ) { // If i did not vote yet, enable the thumb down
jQuery( '#wppa-dislike-'+mocc ).css( 'display', 'inline' );
jQuery( '#wppa-dislike-imgdiv-'+mocc ).css( 'display', 'inline' );
// Hide the filler only when there is a thumbdown
if ( document.getElementById( 'wppa-dislike-'+mocc ) ) jQuery( '#wppa-filler-'+mocc ).css( 'display', 'none' );
jQuery( '#wppa-dislike-'+mocc ).stop().fadeTo( 100, wppaStarOpacity );
}
else { // If i voted, disable thumb down
jQuery( '#wppa-dislike-'+mocc ).css( 'display', 'none' );
jQuery( '#wppa-dislike-imgdiv-'+mocc ).css( 'display', 'none' );
jQuery( '#wppa-filler-'+mocc ).css( 'display', 'inline' );
jQuery( '#wppa-filler-'+mocc ).stop().fadeTo( 100, wppaStarOpacity );
// Show filler with dislike count
if ( wppaShowDislikeCount ) {
dsctxt = wppaGetDislikeText( dsc,myr,true );
jQuery( '#wppa-filler-'+mocc ).attr( 'title', dsctxt );
}
}
}
// Numeric display
else {
// Set avg rating
jQuery( '#wppa-numrate-avg-'+mocc ).html( avg+' ( '+cnt+' ) ' );
// Set My rating
if ( wppaRatingOnce && myr > 0 ) { // I did a rating and one allowed
jQuery( '#wppa-numrate-mine-'+mocc ).html( myr );
}
else if ( myr < 0 ) { // I did a dislike
jQuery( '#wppa-numrate-mine-'+mocc ).html( ' dislike' );
}
else { // Multiple allowed or change allowed or not rated yet
var htm = '';
for ( i=1;i<=wppaRatingMax;i++ ) {
if ( myr == i ) {
htm += '<span style="cursor:pointer; font-weight:bold;" onclick="_wppaRateIt( '+mocc+', '+i+' )"> '+i+' </span>';
}
else {
if ( myr > ( i-1 ) && myr < i ) htm += ' ( '+myr+' ) ';
htm += '<span style="cursor:pointer;" onclick="_wppaRateIt( '+mocc+', '+i+' )" onmouseover="this.style.fontWeight=\'bold\'" onmouseout="this.style.fontWeight=\'normal\'" > '+i+' </span>';
}
}
jQuery( '#wppa-numrate-mine-'+mocc ).html( htm );
}
// Display dislike
if ( myr == 0 ) { // If i did not vote yet, enable the thumb down
jQuery( '#wppa-dislike-'+mocc ).css( 'display', 'inline' );
jQuery( '#wppa-dislike-imgdiv-'+mocc ).css( 'display', 'inline' );
jQuery( '#wppa-filler-'+mocc ).css( 'display', 'none' );
jQuery( '#wppa-dislike-'+mocc ).stop().fadeTo( 100, wppaStarOpacity );
}
else { // If i voted, disable thumb down
jQuery( '#wppa-dislike-'+mocc ).css( 'display', 'none' );
jQuery( '#wppa-dislike-imgdiv-'+mocc ).css( 'display', 'none' );
jQuery( '#wppa-filler-'+mocc ).css( 'display', 'inline' );
}
if ( wppaShowDislikeCount ) {
dsctxt = wppaGetDislikeText( dsc,myr,false );
dsctxt += '• ';
jQuery( '#wppa-discount-'+mocc ).html( dsctxt ); // Show count
jQuery( '#wppa-filler-'+mocc ).css( 'display', 'none' );
}
else {
jQuery( '#wppa-discount-'+mocc ).html( '' );
// jQuery( '#wppa-filler-'+mocc ).css( 'display', 'inline' );
}
}
// One Button Vote only?
if ( myr == 0 ) {
jQuery( '#wppa-vote-button-'+mocc ).val( wppaVoteForMe );
}
else {
jQuery( '#wppa-vote-button-'+mocc ).val( wppaVotedForMe );
}
jQuery( '#wppa-vote-count-'+mocc ).html( cnt );
}
function wppaGetDislikeText( dsc,myr,incmine ) {
if ( dsc == 0 && myr != 0 ) dsctxt = ' '+wppaNoDislikes+' ';
else if ( dsc == 1 ) dsctxt = ' '+wppa1Dislike+' ';
else dsctxt = ' '+dsc+' '+wppaDislikes+' ';
if ( incmine && myr < 0 ) dsctxt+=wppaIncludingMine;
return dsctxt;
}
function _wppaSetRd( mocc, avg, where ) {
var idx1 = parseInt( avg );
var idx2 = idx1 + 1;
var frac = avg - idx1;
var opac = wppaStarOpacity + frac * ( 1.0 - wppaStarOpacity );
var ilow = 1;
var ihigh = wppaRatingMax;
for ( idx=ilow;idx<=ihigh;idx++ ) {
if ( where == '#wppa-rate-' ) {
jQuery( where+mocc+'-'+idx ).attr( 'src', wppaImageDirectory+'star.png' );
}
if ( idx <= idx1 ) {
jQuery( where+mocc+'-'+idx ).stop().fadeTo( 100, 1.0 );
}
else if ( idx == idx2 ) {
jQuery( where+mocc+'-'+idx ).stop().fadeTo( 100, opac );
}
else {
jQuery( where+mocc+'-'+idx ).stop().fadeTo( 100, wppaStarOpacity );
}
}
// jQuery( '#wppa-dislike-'+mocc ).stop().fadeTo( 100, wppaStarOpacity );
}
function _wppaFollowMe( mocc, idx ) {
if ( _wppaSSRuns[mocc] ) return; // Do not rate on a running show, what only works properly in Firefox
if ( _wppaMyr[mocc][_wppaCurIdx[mocc]] != 0 && wppaRatingOnce ) return; // Already rated
if ( _wppaMyr[mocc][_wppaCurIdx[mocc]] < 0 ) return; // Disliked aleady
if ( _wppaVIP ) return;
_wppaSetRd( mocc, idx, '#wppa-rate-' );
}
function _wppaLeaveMe( mocc, idx ) {
if ( _wppaSSRuns[mocc] ) return; // Do not rate on a running show, what only works properly in Firefox
if ( _wppaMyr[mocc][_wppaCurIdx[mocc]] != 0 && wppaRatingOnce ) return; // Already rated
if ( _wppaMyr[mocc][_wppaCurIdx[mocc]] < 0 ) return; // Disliked aleady
if ( _wppaVIP ) return;
_wppaSetRd( mocc, _wppaMyr[mocc][_wppaCurIdx[mocc]], '#wppa-rate-' );
}
function _bumpViewCount( photo ) {
wppaConsoleLog( 'B '+photo );
if ( ! wppaBumpViewCount ) return;
if ( wppaPhotoView[photo] == true ) {
wppaConsoleLog( 'B '+photo+' Already done' );
return; // Already reported
}
// Create http object
var xmlhttp = wppaGetXmlHttp();
// Make the Ajax url
url = wppaAjaxUrl+'?action=wppa&wppa-action=bumpviewcount&wppa-photo='+photo;
url += '&wppa-nonce='+jQuery( '#wppa-nonce' ).val( );
// Setup process the result
xmlhttp.onreadystatechange=function() {
if ( xmlhttp.readyState==4 && xmlhttp.status==200 ) {
// alert( xmlhttp.responseText ); // Diagnostic
}
}
// Do the Ajax action
xmlhttp.open( 'GET',url,true );
xmlhttp.send();
wppaPhotoView[photo] = true;
wppaConsoleLog( 'B '+photo+' set true' );
}
function wppaVoteThumb( mocc, photoid ) {
// Create http object
var xmlhttp = wppaGetXmlHttp();
// Make the Ajax url
url = wppaAjaxUrl+'?action=wppa&wppa-action=rate&wppa-rating=1&wppa-rating-id='+photoid;
url += '&wppa-occur='+mocc;
url += '&wppa-nonce='+jQuery( '#wppa-nonce' ).val( );
if ( wppaLang != '' ) url += '&lang='+wppaLang;
// Setup process the result
xmlhttp.onreadystatechange=function() {
if ( xmlhttp.readyState==4 && xmlhttp.status==200 ) {
jQuery( '#wppa-vote-button-'+mocc+'-'+photoid ).val( wppaVotedForMe );
}
}
// Do the Ajax action
xmlhttp.open( 'GET',url,true );
xmlhttp.send();
}
function _wppaRateIt( mocc, value ) {
if ( value == 0 ) return;
var photoid = _wppaId[mocc][_wppaCurIdx[mocc]];
var oldval = _wppaMyr[mocc][_wppaCurIdx[mocc]];
var url = _wppaVRU[mocc][_wppaCurIdx[mocc]]+'&wppa-rating='+value+'&wppa-rating-id='+photoid;
url += '&wppa-nonce='+jQuery( '#wppa-nonce' ).val( );
if ( _wppaSSRuns[mocc] ) return; // Do not rate a running show
if ( oldval != 0 && wppaRatingOnce ) return; // Already rated, and once allowed only
if ( oldval < 0 ) return; // Disliked aleady
_wppaVIP = true; // Keeps opacity as it is now
_wppaLastVote = value;
jQuery( '#wppa-rate-'+mocc+'-'+value ).attr( 'src', wppaImageDirectory+'tick.png' ); // Set icon
jQuery( '#wppa-rate-'+mocc+'-'+value ).stop().fadeTo( 100, 1.0 ); // Fade in fully
// Try to create the http request object
var xmlhttp = wppaGetXmlHttp();
if ( ( wppaRatingUseAjax || value == -1 ) && xmlhttp ) { // USE AJAX Dislike always uses ajax
// Make the Ajax url
url = wppaAjaxUrl+'?action=wppa&wppa-action=rate&wppa-rating='+value+'&wppa-rating-id='+photoid;
url += '&wppa-occur='+mocc+'&wppa-index='+_wppaCurIdx[mocc];
url += '&wppa-nonce='+jQuery( '#wppa-nonce' ).val( );
if ( wppaLang != '' ) url += '&lang='+wppaLang;
// Setup process the result
xmlhttp.onreadystatechange=function() {
if ( xmlhttp.readyState==4 && xmlhttp.status==200 ) {
var ArrValues = xmlhttp.responseText.split( "||" );
wppaConsoleLog( xmlhttp.responseText );
if ( ArrValues[0] == 0 ) { // Error
if ( ArrValues[1] == 900 ) { // Recoverable error
alert( ArrValues[2] );
_wppaSetRatingDisplay( mocc ); // Restore display
}
else {
alert( 'Error Code='+ArrValues[1]+'\n\n'+ArrValues[2] );
}
}
else { // No error
if ( value == -1 ) { // -1 is the dislike button
// alert( wppaDislikeMsg );
}
// Store new values
_wppaMyr[ArrValues[0]][ArrValues[2]] = ArrValues[3];
_wppaAvg[ArrValues[0]][ArrValues[2]] = ArrValues[4];
_wppaDisc[ArrValues[0]][ArrValues[2]] = ArrValues[5];
// Update display
_wppaSetRatingDisplay( mocc );
// If commenting required and not done so far...
if ( wppaCommentRequiredAfterVote ) {
if ( ArrValues[6] == 0 ) {
alert( ArrValues[7] );
}
}
if ( wppaNextOnCallback ) _wppaNextOnCallback( mocc );
}
}
}
// Do the Ajax action
xmlhttp.open( 'GET',url,true );
xmlhttp.send();
}
}
function _wppaValidateComment( mocc ) {
var photoid = _wppaId[mocc][_wppaCurIdx[mocc]];
// Process name
var name = jQuery( '#wppa-comname-'+mocc ).val( );
if ( name.length<1 ) {
alert( wppaPleaseName );
return false;
}
if ( wppaEmailRequired ) {
// Process email address
var email = jQuery( '#wppa-comemail-'+mocc ).val( );
var atpos=email.indexOf( "@" );
var dotpos=email.lastIndexOf( "." );
if ( atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length ) {
alert( wppaPleaseEmail );
return false;
}
}
// Process comment
var text = jQuery( '#wppa-comment-'+mocc ).val( );
if ( text.length<1 ) {
alert( wppaPleaseComment );
return false;
}
return true;
}
function _wppaGo( url ) {
document.location = url; // Go!
}
function _wppaBbb( mocc,where,act ) {
if ( _wppaSSRuns[mocc] ) return;
var elm = '#bbb-'+mocc+'-'+where;
switch ( act ) {
case 'show':
// jQuery( elm ).stop().fadeTo( 100, 0.2 );
if ( where == 'l' ) jQuery( elm ).attr( 'title', wppaPreviousPhoto );
if ( where == 'r' ) jQuery( elm ).attr( 'title', wppaNextPhoto );
jQuery( '.bbb-'+mocc ).css( 'cursor', 'pointer' );
break;
case 'hide':
// jQuery( elm ).stop().fadeTo( 400, 0 );
jQuery( '.bbb-'+mocc ).removeAttr( 'title' );
jQuery( '.bbb-'+mocc ).css( 'cursor', 'default' );
break;
case 'click':
if ( where == 'l' ) wppaPrev( mocc );
if ( where == 'r' ) wppaNext( mocc );
break;
default:
alert( 'Unimplemented instruction: '+act+' on: '+elm );
}
}
function _wppaUbb( mocc,where,act ) {
// if ( _wppaSSRuns[mocc] ) return;
var elm = '#ubb-'+mocc+'-'+where;
switch ( act ) {
case 'show':
// jQuery( elm ).stop().fadeTo( 100, 0.2 );
if ( where == 'l' ) jQuery( elm ).attr( 'title', wppaPreviousPhoto );
if ( where == 'r' ) jQuery( elm ).attr( 'title', wppaNextPhoto );
jQuery( '.ubb-'+mocc ).css( 'cursor', 'pointer' );
jQuery( '.ubb-'+mocc ).fadeTo( 200, 0.8 );
break;
case 'hide':
// jQuery( elm ).stop().fadeTo( 400, 0 );
jQuery( '.ubb-'+mocc ).removeAttr( 'title' );
jQuery( '.ubb-'+mocc ).css( 'cursor', 'default' );
jQuery( '.ubb-'+mocc ).fadeTo( 200, 0.2 );
break;
case 'click':
var idx;
if ( where == 'l' ) { // wppaPrev( mocc );
idx = _wppaCurIdx[mocc] - 1;
if ( idx < 0 ) {
if ( ! wppaSlideWrap ) {
return;
}
idx = _wppaSlides[mocc].length - 1;
}
}
if ( where == 'r' ) { // wppaNext( mocc );
idx = _wppaCurIdx[mocc] + 1;
if ( idx == _wppaSlides[mocc].length ) {
if ( ! wppaSlideWrap ) {
return;
}
idx = 0;
}
}
wppaGotoKeepState( mocc , idx );
break;
default:
alert( 'Unimplemented instruction: '+act+' on: '+elm );
}
}
function wppaOpenComments( mocc ) {
if ( _wppaSSRuns[mocc] ) _wppaStop( mocc );
// Show existing comments
jQuery( '#wppa-comtable-wrap-'+mocc ).css( 'display', 'block' );
// Show the input form table
jQuery( '#wppa-comform-wrap-'+mocc ).css( 'display', 'block' );
// Hide the comment footer
jQuery( '#wppa-comfooter-wrap-'+mocc ).css( 'display', 'none' );
// Do autocol to fix a layout problem
wppaColWidth[mocc] = 0;
setTimeout( '_wppaDoAutocol( '+mocc+' )', 100 );
}
function _wppaShowMetaData( mocc, key ) {
// What to do when the slideshow is NOT running
if ( ! _wppaSSRuns[mocc] && ! __wppaOverruleRun ) {
if ( key == 'show' ) { // Show
if ( wppaAutoOpenComments ) {
// Show existing comments
jQuery( '#wppa-comtable-wrap-'+mocc ).css( 'display', 'block' );
// Show the input form table
jQuery( '#wppa-comform-wrap-'+mocc ).css( 'display', 'block' );
// Hide the comment footer
jQuery( '#wppa-comfooter-wrap-'+mocc ).css( 'display', 'none' );
}
// Fade the browse arrows in
if ( wppaSlideWrap || ( _wppaCurIdx[mocc] != 0 ) )
jQuery( '.wppa-prev-'+mocc ).css( 'visibility', 'visible' ); // fadeIn( 300 );
if ( wppaSlideWrap || ( _wppaCurIdx[mocc] != ( _wppaSlides[mocc].length - 1 ) ) )
jQuery( '.wppa-next-'+mocc ).css( 'visibility', 'visible' ); // fadeIn( 300 );
// SM box
if ( wppaShareHideWhenRunning ) {
jQuery( '#wppa-share-'+mocc ).css( 'display', '' );
}
// Fotomoto
wppaFotomotoToolbar( mocc, _wppaHiresUrl[mocc][_wppaCurIdx[mocc]] );
// wppaFotomotoToolbar( mocc, _wppaUrl[mocc][_wppaCurIdx[mocc]] );
// if ( wppaFotomoto && document.getElementById( 'wppa-fotomoto-container-'+mocc ) ) {
// var url = _wppaUrl[mocc][_wppaCurIdx[mocc]];
// FOTOMOTO.API.setBoxImage( url );
// FOTOMOTO.API.removeBoxToolbar();
// FOTOMOTO.API.showToolbar( 'wppa-fotomoto-container-'+mocc, url );
// }
}
else { // Hide
// Hide existing comments
jQuery( '#wppa-comtable-wrap-'+mocc ).css( 'display', 'none' );
// Hide the input form table
jQuery( '#wppa-comform-wrap-'+mocc ).css( 'display', 'none' );
// Show the comment footer
jQuery( '#wppa-comfooter-wrap-'+mocc ).css( 'display', 'block' );
// Fade the browse arrows out
// jQuery( '.wppa-prev-'+mocc ).fadeOut( 300 );
// jQuery( '.wppa-next-'+mocc ).fadeOut( 300 );
wppaFotomotoHide( mocc );
}
}
// What to do when the slideshow is running
else { // Slideshow is running
if ( key == 'show' ) {
// Fotomoto
if ( ! wppaFotomotoHideWhenRunning ) wppaFotomotoToolbar( mocc, _wppaHiresUrl[mocc][_wppaCurIdx[mocc]] );
}
else {
// SM box
if ( wppaShareHideWhenRunning ) {
jQuery( '#wppa-share-'+mocc ).css( 'display', 'none' );
}
// Fotomoto
// if ( wppaFotomotoHideWhenRunning )
// wppaFotomotoHide( mocc );
}
}
// What to do always, independant of slideshow is running
if ( key == 'show' ) {
// Show title and description
jQuery( "#imagedesc-"+mocc ).css( 'visibility', 'visible' );
jQuery( "#imagetitle-"+mocc ).css( 'visibility', 'visible' );
// Display counter
jQuery( "#counter-"+mocc ).css( 'visibility', 'visible' );
// Display iptc
jQuery( "#iptccontent-"+mocc ).css( 'visibility', 'visible' );
jQuery( "#exifcontent-"+mocc ).css( 'visibility', 'visible' );
}
else {
// Hide title and description
// jQuery( "#imagedesc-"+mocc ).css( 'visibility', 'hidden' );
// jQuery( "#imagetitle-"+mocc ).css( 'visibility', 'hidden' );
// Hide counter
jQuery( "#counter-"+mocc ).css( 'visibility', 'hidden' );
// Fade the browse arrows out
jQuery( '.wppa-prev-'+mocc ).css( 'visibility', 'hidden' ); // fadeOut( 300 );
jQuery( '.wppa-next-'+mocc ).css( 'visibility', 'hidden' ); // fadeOut( 300 );
// Hide iptc
jQuery( "#iptccontent-"+mocc ).css( 'visibility', 'hidden' );
jQuery( "#exifcontent-"+mocc ).css( 'visibility', 'hidden' );
}
}
var wppaFotomotoLoaded = false;
function fotomoto_loaded() {
wppaFotomotoLoaded = true;
}
var wppaFotomotoToolbarIds = [];
function wppaFotomotoToolbar( mocc, url ) {
if ( wppaColWidth[mocc] >= wppaFotomotoMinWidth ) { // Space enough to show the toolbar
jQuery( '#wppa-fotomoto-container-'+mocc ).css( 'display','inline' );
jQuery( '#wppa-fotomoto-checkout-'+mocc ).css( 'display','inline' );
}
else {
jQuery( '#wppa-fotomoto-container-'+mocc ).css( 'display','none' );
jQuery( '#wppa-fotomoto-checkout-'+mocc ).css( 'display','none' );
return; // Too small
}
if ( wppaFotomoto && document.getElementById( 'wppa-fotomoto-container-'+mocc ) ) { // Configured and container present
if ( wppaFotomotoLoaded ) {
FOTOMOTO.API.checkinImage( url );
// if ( wppaFotomotoToolbarIds[mocc] ) { // Not the first in this container
// FOTOMOTO.API.updateToolbar( wppaFotomotoToolbarIds[mocc], url ); // This usually fails, especially when the url is not yest checked in
// alert( wppaFotomotoToolbarIds[mocc]+' '+url )
// }
// else { // The first in this container
wppaFotomotoToolbarIds[mocc] = FOTOMOTO.API.showToolbar( 'wppa-fotomoto-container-'+mocc, url );
// }
}
else { // Not loaded yet, retry after 200 ms
setTimeout( 'wppaFotomotoToolbar( '+mocc+',"'+url+'" )', 200 );
wppaConsoleLog( 'Waiting for Fotomoto' );
}
}
}
function wppaFotomotoHide( mocc ) {
jQuery( '#wppa-fotomoto-container-'+mocc ).css( 'display','none' );
jQuery( '#wppa-fotomoto-checkout-'+mocc ).css( 'display','none' );
}
function wppaGetCurrentFullUrl( mocc, idx ) {
var xurl = document.location.href;
var url;
// Remove &wppa-photo=... if present.
var temp1 = xurl.split( "?" );
var temp2 = 'nil';
var temp3;
var i = 0;
var first = true;
var pfx;
if ( ! wppaShortQargs ) pfx = 'wppa-';
else pfx = '';
if ( temp1[1] ) temp2 = temp1[1].split( "&" );
var albumSeen = false;
url = temp1[0]; // everything before '?'
if ( temp2 != 'nil' ) {
if ( temp2.length > 0 ) {
while ( i<temp2.length ) {
temp3 = temp2[i].split( "=" );
if ( temp3[0] == pfx+'album' ) albumSeen = true;
if ( temp3[0] != pfx+'photo' ) {
if ( first ) url += "?";
else url += "&";
first = false;
url += temp2[i];
}
i++;
}
}
}
if ( ! albumSeen ) return '';
// Append new &wppa-photo=...
if ( first ) url += "?";
else url += "&";
if ( wppaUsePhotoNamesInUrls ) { //&& ! wppaStringContainsForbiddenChars( _wppaNames[mocc][idx] ) ) {
url += pfx+'photo='+encodeURIComponent(_wppaNames[mocc][idx]);
}
else {
url += pfx+'photo='+_wppaId[mocc][idx];
}
return url;
}
function wppaStringContainsForbiddenChars( str ) {
var forbidden = [ '?', '&', '#', '/', '"', "'" ];
var i=0;
while ( i < forbidden.length ) {
if ( str.indexOf( forbidden[i] ) != -1 ) {
return true;
}
i++;
}
return false;
}
// Swipe
var triggerElementID = null;
var fingerCount = 0;
var startX = 0;
var startY = 0;
var curX = 0;
var curY = 0;
var deltaX = 0;
var deltaY = 0;
var horzDiff = 0;
var vertDiff = 0;
var minLength = 72;
var swipeLength = 0;
var swipeAngle = null;
var swipeDirection = null;
var wppaMocc = 0;
function wppaTouchStart( event,passedName,mocc ) {
wppaMocc = mocc;
event.preventDefault();
fingerCount = event.touches.length;
if ( fingerCount == 1 ) {
startX = event.touches[0].pageX;
startY = event.touches[0].pageY;
triggerElementID = passedName;
} else {
wppaTouchCancel( event );
}
}
function wppaTouchMove( event ) {
event.preventDefault();
if ( event.touches.length == 1 ) {
curX = event.touches[0].pageX;
curY = event.touches[0].pageY;
} else {
wppaTouchCancel( event );
}
}
function wppaTouchEnd( event ) {
event.preventDefault();
if ( fingerCount == 1 && curX != 0 ) {
swipeLength = Math.round( Math.sqrt( Math.pow( curX - startX,2 ) + Math.pow( curY - startY,2 ) ) );
if ( swipeLength >= minLength ) {
wppaCalculateAngle();
wppaDetermineSwipeDirection();
wppaProcessingRoutine();
wppaTouchCancel( event ); // reset the variables
} else {
wppaTouchCancel( event );
}
} else {
wppaTouchCancel( event );
}
}
function wppaTouchCancel( event ) {
fingerCount = 0;
startX = 0;
startY = 0;
curX = 0;
curY = 0;
deltaX = 0;
deltaY = 0;
horzDiff = 0;
vertDiff = 0;
swipeLength = 0;
swipeAngle = null;
swipeDirection = null;
triggerElementID = null;
wppaMocc = 0;
}
function wppaCalculateAngle() {
var X = startX-curX;
var Y = curY-startY;
var Z = Math.round( Math.sqrt( Math.pow( X,2 )+Math.pow( Y,2 ) ) ); //the distance - rounded - in pixels
var r = Math.atan2( Y,X ); //angle in radians ( Cartesian system )
swipeAngle = Math.round( r*180/Math.PI ); //angle in degrees
if ( swipeAngle < 0 ) { swipeAngle = 360 - Math.abs( swipeAngle ); }
}
function wppaDetermineSwipeDirection() {
if ( ( swipeAngle <= 45 ) && ( swipeAngle >= 0 ) ) {
swipeDirection = 'left';
} else if ( ( swipeAngle <= 360 ) && ( swipeAngle >= 315 ) ) {
swipeDirection = 'left';
} else if ( ( swipeAngle >= 135 ) && ( swipeAngle <= 225 ) ) {
swipeDirection = 'right';
} else if ( ( swipeAngle > 45 ) && ( swipeAngle < 135 ) ) {
swipeDirection = 'down';
} else {
swipeDirection = 'up';
}
}
function wppaProcessingRoutine() {
var swipedElement = document.getElementById( triggerElementID );
if ( wppaMocc == -1 ) { // swipe on ligtbox image
if ( swipeDirection == 'left' ) {
wppaOvlShowNext();
wppaMocc = 0;
}
else if ( swipeDirection == 'right' ) {
wppaOvlShowPrev();
wppaMocc = 0;
}
}
else { // swipe on slideshow
if ( swipeDirection == 'right' ) { // wppaPrev( mocc );
idx = _wppaCurIdx[mocc] - 1;
if ( idx < 0 ) {
if ( ! wppaSlideWrap ) {
return;
}
idx = _wppaSlides[mocc].length - 1;
}
wppaGotoKeepState( mocc , idx );
}
if ( swipeDirection == 'left' ) { // wppaNext( mocc );
idx = _wppaCurIdx[mocc] + 1;
if ( idx == _wppaSlides[mocc].length ) {
if ( ! wppaSlideWrap ) {
return;
}
idx = 0;
}
wppaGotoKeepState( mocc , idx );
}
/*
if ( swipeDirection == 'left' ) {
wppaNext( wppaMocc );
wppaMocc = 0;
}
else if ( swipeDirection == 'right' ) {
wppaPrev( wppaMocc );
wppaMocc = 0;
}
*/
else if ( swipeDirection == 'up' ) {
}
else if ( swipeDirection == 'down' ) {
}
}
}
// Part 2: Theme variables and functions
//
var wppaBackgroundColorImage = '';
var _wppaTimer = [];
var wppa_saved_id = [];
var wppaPopupLinkType = '';
var wppaPopupOnclick = [];
var wppaThumbTargetBlank = false;
// Popup of thumbnail images
function wppaPopUp( mocc, elm, id, name, desc, rating, ncom, videohtml, maxsizex, maxsizey ) {
var topDivBig, topDivSmall, leftDivBig, leftDivSmall;
var heightImgBig, heightImgSmall, widthImgBig, widthImgSmall, widthImgBigSpace;
var puImg;
var vOffset = 0;
var imghtml;
// stop if running
clearTimeout( _wppaTimer[mocc] );
// Vertical offset?
// if ( document.getElementById( 'wppa-albname-'+mocc ) ) vOffset += document.getElementById( 'wppa-albname-'+mocc ).clientHeight;
// if ( document.getElementById( 'wppa-albdesc-'+mocc ) ) vOffset += document.getElementById( 'wppa-albdesc-'+mocc ).clientHeight;
// Give this' occurrances popup its content
if ( document.getElementById( 'x-'+id+'-'+mocc ) ) {
var namediv = name ? '<div id="wppa-name-'+mocc+'" style="display:none; padding:1px;" class="wppa_pu_info">'+name+'</div>' : '';
var descdiv = desc ? '<div id="wppa-desc-'+mocc+'" style="clear:both; display:none; padding:1px;" class="wppa_pu_info">'+desc+'</div>' : '';
var ratediv = rating ? '<div id="wppa-rat-'+mocc+'" style="clear:both; display:none; padding:1px;" class="wppa_pu_info">'+rating+'</div>' : '';
var ncomdiv = ncom ? '<div id="wppa-ncom-'+mocc+'" style="clear:both; display:none; padding:1px;" class="wppa_pu_info">'+ncom+'</div>' : '';
var popuptext = namediv+descdiv+ratediv+ncomdiv;
var target = '';
if ( wppaThumbTargetBlank ) target = 'target="_blank"';
//wppaConsoleLog('vhtml='+videohtml);
switch ( wppaPopupLinkType ) {
case 'none':
imghtml = videohtml != '' ? videohtml : '<img id="wppa-img-'+mocc+'" src="'+elm.src+'" title="" style="border-width: 0px;" />';
jQuery( '#wppa-popup-'+mocc ).html( '<div class="wppa-popup" style="background-color:'+wppaBackgroundColorImage+'; text-align:center;">'+imghtml+popuptext+'</div>' );
break;
case 'fullpopup':
imghtml = videohtml != '' ? videohtml : '<img id="wppa-img-'+mocc+'" src="'+elm.src+'" title="" style="border-width: 0px;" onclick="'+wppaPopupOnclick[id]+'" />';
jQuery( '#wppa-popup-'+mocc ).html( '<div class="wppa-popup" style="background-color:'+wppaBackgroundColorImage+'; text-align:center;">'+imghtml+popuptext+'</div>' );
break;
default:
if ( elm.onclick ) {
imghtml = videohtml != '' ? videohtml : '<img id="wppa-img-'+mocc+'" src="'+elm.src+'" title="" style="border-width: 0px;" />';
jQuery( '#wppa-popup-'+mocc ).html( '<div class="wppa-popup" style="background-color:'+wppaBackgroundColorImage+'; text-align:center;">'+imghtml+popuptext+'</div>' );
document.getElementById( 'wppa-img-'+mocc ).onclick = elm.onclick;
}
else {
imghtml = videohtml != '' ? videohtml : '<img id="wppa-img-'+mocc+'" src="'+elm.src+'" title="" style="border-width: 0px;" />';
jQuery( '#wppa-popup-'+mocc ).html( '<div class="wppa-popup" style="background-color:'+wppaBackgroundColorImage+'; text-align:center;"><a id="wppa-a" href="'+document.getElementById( 'x-'+id+'-'+mocc ).href+'" '+target+' style="line-height:1px;" >'+imghtml+'</a>'+popuptext+'</div>' );
}
}
}
// Find handle to the popup image
puImg = document.getElementById( 'wppa-img-'+mocc );
// Compute ending sizes
widthImgBig = parseInt(maxsizex);
heightImgBig = parseInt(maxsizey);
wppaConsoleLog( 'widthImgBig='+widthImgBig+', heightImgBig='+heightImgBig );
// Set width of text fields to width of a landscape image
if ( puImg ) jQuery( ".wppa_pu_info" ).css( 'width', ( ( widthImgBig > heightImgBig ? widthImgBig : heightImgBig ) - 8 )+'px' );
// Compute starting coords
leftDivSmall = parseInt( elm.offsetLeft ) - 7 - 5 - 1; // thumbnail_area:padding, wppa-img:padding, wppa-border; jQuery().css( "padding" ) does not work for padding in css file, only when litaral in the tag
topDivSmall = parseInt( elm.offsetTop ) - 7 - 1;
topDivSmall -= vOffset;
// Compute starting sizes
widthImgSmall = parseInt( elm.clientWidth );
heightImgSmall = parseInt( elm.clientHeight );
widthImgBigSpace = widthImgBig > heightImgBig ? widthImgBig : heightImgBig;
// Compute ending coords
leftDivBig = leftDivSmall - parseInt( ( widthImgBigSpace - widthImgSmall ) / 2 );
topDivBig = topDivSmall - parseInt( ( heightImgBig - heightImgSmall ) / 2 );
// Margin for portrait images
var lrMarg = parseInt( ( widthImgBigSpace - widthImgBig ) / 2 );
// Setup starting properties
jQuery( '#wppa-popup-'+mocc ).css( {"marginLeft":leftDivSmall+"px","marginTop":topDivSmall+"px"});
jQuery( '#wppa-img-'+mocc ).css( {"marginLeft":0,"marginRight":0,"width":widthImgSmall+"px","height":heightImgSmall+"px"});
// Do the animation
jQuery( '#wppa-popup-'+mocc ).stop().animate( {"marginLeft":leftDivBig+"px","marginTop":topDivBig+"px"}, 400 );
jQuery( '#wppa-img-'+mocc ).stop().animate( {"marginLeft":lrMarg+"px","marginRight":lrMarg+"px","width":widthImgBig+"px","height":heightImgBig+"px"}, 400 );
//alert( widthImgBig+', '+heightImgBig );
// adding ", 'linear', wppaPopReady( occ ) " fails, therefor our own timer to the "show info" module
_wppaTimer[mocc] = setTimeout( 'wppaPopReady( '+mocc+' )', 400 );
}
function wppaPopReady( mocc ) {
jQuery( "#wppa-name-"+mocc ).show();
jQuery( "#wppa-desc-"+mocc ).show();
jQuery( "#wppa-rat-"+mocc ).show();
jQuery( "#wppa-ncom-"+mocc ).show();
}
// Dismiss popup
function wppaPopDown( mocc ) { // return; //debug
jQuery( '#wppa-popup-'+mocc ).html( "" );
return;
}
// Popup of fullsize image
function wppaFullPopUp( mocc, id, url, xwidth, xheight ) {
var height = xheight+50;
var width = xwidth+14;
var name = '';
var desc = '';
var elm = document.getElementById( 'i-'+id+'-'+mocc );
if ( elm ) {
name = elm.alt;
desc = elm.title;
}
var wnd = window.open( '', 'Print', 'width='+width+', height='+height+', location=no, resizable=no, menubar=yes ' );
wnd.document.write( '<html>' );
wnd.document.write( '<head>' );
wnd.document.write( '<style type="text/css">body{margin:0; padding:6px; background-color:'+wppaBackgroundColorImage+'; text-align:center;}</style>' );
wnd.document.write( '<title>'+name+'</title>' );
wnd.document.write(
'<script type="text/javascript">function wppa_downl( id ) {'+
'var xmlhttp = new XMLHttpRequest();'+
'var url = "'+wppaAjaxUrl+'?action=wppa&wppa-action=makeorigname&photo-id='+id+'&from=popup";'+
'xmlhttp.open( "GET",url,false );'+
'xmlhttp.send();'+
'if ( xmlhttp.readyState==4 && xmlhttp.status==200 ) {'+
'var result = xmlhttp.responseText.split( "||" );'+
'if ( result[1] == "0" ) {'+
'window.open( result[2] );'+
'return true;'+
'}'+
'else {'+
'alert( "Error: "+result[1]+" "+result[2] );'+
'return false;'+
'}'+
'}'+
'else {'+
'alert( "Comm error encountered" );'+
'return false;'+
'}'+
'}</script>' );
wnd.document.write(
'<script type="text/javascript">function wppa_print() {'+
'document.getElementById( "wppa_printer" ).style.visibility="hidden"; '+
'document.getElementById( "wppa_download" ).style.visibility="hidden"; '+
'window.print();'+
'}</script>' );
wnd.document.write( '</head>' );
wnd.document.write( '<body>' );
wnd.document.write( '<div style="width:'+xwidth+'px;">' );
wnd.document.write( '<img src="'+url+'" style="padding-bottom:6px;" /><br/>' );
wnd.document.write( '<div style="text-align:center">'+desc+'</div>' );
var left = xwidth-66;
wnd.document.write( '<img src="'+wppaImageDirectory+'download.png" id="wppa_download" title="Download" style="position:absolute; top:6px; left:'+left+'px; background-color:'+wppaBackgroundColorImage+'; padding: 2px; cursor:pointer;" onclick="wppa_downl();" />' );
left = xwidth-30;
wnd.document.write( '<img src="'+wppaImageDirectory+'printer.png" id="wppa_printer" title="Print" style="position:absolute; top:6px; left:'+left+'px; background-color:'+wppaBackgroundColorImage+'; padding: 2px; cursor:pointer;" onclick="wppa_print();" />' );
wnd.document.write( '</div>' );
wnd.document.write( '</body>' );
wnd.document.write( '</html>' );
}
// Frontend Edit Photo
function wppaEditPhoto( mocc, id ) {
var name = 'Edit Photo '+id;
var desc = '';
var width = 960;
var height = 512;
if ( screen.availWidth < width ) width = screen.availWidth;
// var hdoc = document;
var wnd = window.open( "", "_blank", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=yes, width="+width+", height="+height, true );
wnd.document.write( '<! DOCTYPE html>' );
wnd.document.write( '<html>' );
wnd.document.write( '<head>' );
// The following is one statement that fixes a bug in opera
wnd.document.write( '<link rel="stylesheet" id="wppa_style-css" href="'+wppaWppaUrl+'/wppa-admin-styles.css?ver='+wppaVersion+'" type="text/css" media="all" />'+
'<style>body {font-family: sans-serif; font-size: 12px; line-height: 1.4em;}a {color: #21759B;}</style>'+
'<script type="text/javascript" src="'+wppaIncludeUrl+'/js/jquery/jquery.js?ver='+wppaVersion+'"></script>'+
'<script type="text/javascript" src="'+wppaWppaUrl+'/wppa-admin-scripts.js?ver='+wppaVersion+'"></script>'+
'<title>'+name+'</title>'+
'<script type="text/javascript">wppaAjaxUrl="'+wppaAjaxUrl+'";</script>' );
wnd.document.write( '</head>' );
wnd.document.write( '<body>' ); // onunload="window.opener.location.reload()">' ); // This does not work in Opera
var xmlhttp = wppaGetXmlHttp();
// Make the Ajax send data
var data = 'action=wppa&wppa-action=front-edit&photo-id='+id+'&moccur='+mocc;
var url = wppaAjaxUrl+'?'+data;
// Do the Ajax action
xmlhttp.open( 'POST', url, false ); // Synchronously ! !
xmlhttp.setRequestHeader( "Content-type","application/x-www-form-urlencoded" );
xmlhttp.send( data );
// Process result
if ( xmlhttp.readyState==4 && xmlhttp.status==200 ) {
var result = xmlhttp.responseText;
wnd.document.write( result );
}
wnd.document.write( '<script>wppaPhotoStatusChange( '+id+' )</script>' );
wnd.document.write( '</body>' );
wnd.document.write( '</html>' );
//
}
/*
function wppaReloadWindow( hwnd ) {
alert( typeof( hwnd ) );
hwnd.document.location.reload( true );
}
*/
// Part 3: Ajax
// Additionally: functions to change the url during ajax and browse operations
// AJAX RENDERING INCLUDING HISTORY MANAGEMENT
// IF AJAX NOT ALLOWED, ALSO NO HISTORY MENAGEMENT! !
var wppaHis = 0;
var wppaStartHtml = [];
var wppaCanAjaxRender = false; // Assume failure
var wppaCanPushState = false;
var wppaAllowAjax = true; // Assume we are allowed to use ajax
var wppaMaxOccur = 0;
var wppaFirstOccur = 0;
var wppaUsePhotoNamesInUrls = false;
// Initialize
jQuery( document ).ready(function( e ) {
// Are we allowed and capable to ajax?
if ( wppaAllowAjax && wppaGetXmlHttp() ) {
wppaCanAjaxRender = true;
}
// Can we do history.pushState ?
if ( typeof( history.pushState ) != 'undefined' ) {
// Save entire initial page content ( I do not know which container is going to be modified first )
var i=1;
while ( i<=wppaMaxOccur ) {
wppaStartHtml[i] = jQuery( '#wppa-container-'+i ).html();
i++;
}
//if ( wppaUpdateAddressLine )
wppaCanPushState = true;
}
});
// Get the http request object
function wppaGetXmlHttp() {
if ( window.XMLHttpRequest ) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else { // code for IE6, IE5
xmlhttp=new ActiveXObject( "Microsoft.XMLHTTP" );
}
return xmlhttp;
}
// Setup an event handler for popstate events
window.onpopstate = function( event ) {
var occ = 0;
if ( wppaCanPushState ) {
if ( event.state ) {
occ = event.state.occur;
switch ( event.state.type ) {
case 'html':
// Restore wppa container content
jQuery( '#wppa-container-'+occ ).html( event.state.html );
break;
case 'slide':
// Go to specified slide without the didgoto switch to avoid a stackpush here
_wppaGoto( occ, event.state.slide );
break;
}
}
else if ( wppaUpdateAddressLine ) {
/**/
occ = wppaFirstOccur;
// Restore first modified occurrences content
jQuery( '#wppa-container-'+occ ).html( wppaStartHtml[occ] );
// Now we are back to the initial page
wppaFirstOccur = 0;
// If a photo number given goto that photo
if ( occ == 0 ) { // Find current occur if not yet known
var url = document.location.href;
var urls = url.split( "&wppa-occur=" );
occ = parseInt( urls[1] );
}
var url = document.location.href;
var urls = url.split( "&wppa-photo=" );
var photo = parseInt( urls[1] );
if ( photo > 0 ) {
var idx = 0;
while ( idx < _wppaId[occ].length ) {
if ( _wppaId[occ][idx] == photo ) break;
idx++;
}
if ( idx < _wppaId[occ].length ) _wppaGoto( occ, idx );
}
/* */
}
// If it is a slideshow, stop it
if ( document.getElementById( 'theslide0-'+occ ) ) {
_wppaStop( occ );
}
}
if ( typeof( wppaQRUpdate ) != 'undefined' ) wppaQRUpdate( document.location.href );
// wppaQRData = document.location.href; //????
};
// The AJAX rendering routine Sync
function wppaDoAjaxRender( mocc, ajaxurl, newurl ) {
// Fix the url
if ( wppaLang != '' ) ajaxurl += '&lang='+wppaLang;
// Create the http request object
var xmlhttp = wppaGetXmlHttp();
// Ajax possible ?
if ( wppaCanAjaxRender ) {
// If it is a slideshow: Stop slideshow before pushing it on the stack
if ( _wppaSSRuns[mocc] ) _wppaStop( mocc );
// Display the spinner
jQuery( '#wppa-ajax-spin-'+mocc ).css( 'display', '' );
// Do the Ajax action
xmlhttp.open( 'GET',ajaxurl,false );
xmlhttp.send();
// Update the wppa container
jQuery( '#wppa-container-'+mocc ).html( xmlhttp.responseText );
// Push the stack
if ( wppaCanPushState && wppaUpdateAddressLine ) {
wppaHis++;
cont = xmlhttp.responseText;
try {
history.pushState( {page: wppaHis, occur: mocc, type: 'html', html: cont}, "---", newurl );
wppaConsoleLog( 'Ajax rendering: History stack updated' );
}
catch( err ) {
wppaConsoleLog( 'Ajax rendering: Failed to update history stack' );
}
if ( wppaFirstOccur == 0 ) wppaFirstOccur = mocc;
}
// If lightbox is on board, refresh the imagelist. It has just changed, you know!
wppaUpdateLightboxes();
// Update qrcode
if ( typeof( wppaQRUpdate ) != 'undefined' ) wppaQRUpdate( newurl );
// Run Autocol?
wppaColWidth[mocc] = 0;
_wppaDoAutocol( mocc );
// If it is a slideshow: Upate 'Faster' and 'Slower' to the desired language.
// The ajax stuff may get the admin language while we need the frontend language
jQuery( '#speed0-'+mocc ).html( wppaSlower );
jQuery( '#speed1-'+mocc ).html( wppaFaster );
// Remove spinner
jQuery( '#wppa-ajax-spin-'+mocc ).css( 'display', 'none' );
// Report if scripts
var scriptPos = xmlhttp.responseText.indexOf( '<script' );
var scriptPosLast = xmlhttp.responseText.lastIndexOf( '<script' );
if ( scriptPos == -1 ) {
wppaConsoleLog( 'Ajax render did NOT contain a script tag', 'force' );
}
else {
wppaConsoleLog( 'Ajax render did contain a script tag at position '+scriptPos+' last at '+scriptPosLast, 'force' );
}
}
else { // Ajax NOT possible
document.location.href = newurl;
// Run Autocol?
wppaColWidth[mocc] = 0; // force a recalc and triggers autocol if needed
_wppaDoAutocol( mocc );
}
}
function wppaAjaxApprovePhoto( photoid ) {
var xmlhttp = wppaGetXmlHttp();
xmlhttp.onreadystatechange = function() {
if ( xmlhttp.readyState == 4 && xmlhttp.status == 200 ) {
if ( xmlhttp.responseText == 'OK' ) {
jQuery( '.wppa-approve-'+photoid ).css( 'display', 'none' );
}
else {
alert( xmlhttp.responseText );
}
}
}
// Do the Ajax action
ajaxurl = wppaAjaxUrl+'?action=wppa&wppa-action=approve&photo-id='+photoid;
xmlhttp.open( 'GET',ajaxurl,true );
xmlhttp.send();
}
function wppaAjaxRemovePhoto( mocc, photoid, isslide ) {
var xmlhttp = wppaGetXmlHttp();
xmlhttp.onreadystatechange = function() {
if ( xmlhttp.readyState == 4 && xmlhttp.status == 200 ) {
var rtxt = xmlhttp.responseText.split( '||' );
if ( rtxt[0] == 'OK' ) {
if ( isslide ) {
// alert( rtxt[1] );
// document.location = document.location;
// _wppaUrl[mocc][_wppaCurIdx[mocc]] = '';
// _wppaSlides[mocc][_wppaCurIdx[mocc]] = ' src=""';
jQuery( '#wppa-film-'+_wppaCurIdx[mocc]+'-'+mocc ).attr( 'src', '' );
jQuery( '#wppa-pre-'+_wppaCurIdx[mocc]+'-'+mocc ).attr( 'src', '' );
jQuery( '#wppa-film-'+_wppaCurIdx[mocc]+'-'+mocc ).attr( 'alt', 'removed' );
jQuery( '#wppa-pre-'+_wppaCurIdx[mocc]+'-'+mocc ).attr( 'alt', 'removed' );
wppaNext( mocc );
}
else {
jQuery( '.wppa-approve-'+photoid ).css( 'display', 'none' );
jQuery( '.thumbnail-frame-photo-'+photoid ).css( 'display', 'none' );
}
}
else {
alert( xmlhttp.responseText );
}
}
}
// Do the Ajax action
ajaxurl = wppaAjaxUrl+'?action=wppa&wppa-action=remove&photo-id='+photoid;
xmlhttp.open( 'GET',ajaxurl,true );
xmlhttp.send();
}
function wppaAjaxApproveComment( commentid ) {
var xmlhttp = wppaGetXmlHttp();
xmlhttp.onreadystatechange = function() {
if ( xmlhttp.readyState == 4 && xmlhttp.status == 200 ) {
if ( xmlhttp.responseText == 'OK' ) {
jQuery( '.wppa-approve-'+commentid ).css( 'display', 'none' );
}
else {
alert( xmlhttp.responseText );
}
}
}
// Do the Ajax action
ajaxurl = wppaAjaxUrl+'?action=wppa&wppa-action=approve&comment-id='+commentid;
xmlhttp.open( 'GET',ajaxurl,true );
xmlhttp.send();
}
function wppaAjaxRemoveComment( commentid ) {
var xmlhttp = wppaGetXmlHttp();
xmlhttp.onreadystatechange = function() {
if ( xmlhttp.readyState == 4 && xmlhttp.status == 200 ) {
var rtxt = xmlhttp.responseText.split( '||' );
if ( rtxt[0] == 'OK' ) {
jQuery( '.wppa-approve-'+commentid ).css( 'display', 'none' );
jQuery( '.wppa-comment-'+commentid ).css( 'display', 'none' );
}
else {
alert( xmlhttp.responseText );
}
}
}
// Do the Ajax action
ajaxurl = wppaAjaxUrl+'?action=wppa&wppa-action=remove&comment-id='+commentid;
xmlhttp.open( 'GET',ajaxurl,true );
xmlhttp.send();
}
function wppaPushStateSlide( mocc, slide, url ) {
if ( ! wppaIsMini[mocc] ) { // Not from a widget
if ( wppaCanPushState && wppaUpdateAddressLine ) {
// var url = wppaGetCurrentFullUrl( mocc, _wppaCurIdx[mocc] );
if ( url != '' ) {
try {
history.pushState( {page: wppaHis, occur: mocc, type: 'slide', slide: slide}, "---", url );
wppaConsoleLog( 'Slide history stack updated' );
}
catch( err ) {
wppaConsoleLog( 'Slide history stack update failed' );
}
}
}
}
}
// WPPA EMBEDDED NATIVE LIGHTBOX FUNCTIONALITY
//
var wppaOvlUrls;
var wppaOvlUrl;
var wppaOvlTitles;
var wppaOvlTitle;
var wppaOvlIdx = -1;
var wppaOvlFirst = true;
var wppaOvlKbHandler = '';
var wppaOvlSizeHandler = '';
var wppaOvlPadTop = 5;
var wppaWindowInnerWidth;
var wppaWindowInnerHeight;
var wppaOvlIsSingle;
var wppaOvlRunning = false;
var wppaOvlVideoHtmls;
var wppaOvlVideoHtml;
var wppaOvlAudioHtmls;
var wppaOvlAudioHtml;
var wppaOvlVideoNaturalWidths;
var wppaOvlVideoNaturalWidth;
var wppaOvlVideoNaturalHeights;
var wppaOvlVideoNaturalHeight;
var wppaOvlMode = 'normal';
var wppaOvlVideoPlaying = false;
var wppaOvlAudioPlaying = false;
// The next var values become overwritten in wppa-non-admin.php -> wppa_load_footer()
var wppaOvlCloseTxt = 'CLOSE';
var wppaOvlTxtHeight = 36; // 12 * ( n lines of text including the n/m line )
var wppaOvlOpacity = 0.8;
var wppaOvlOnclickType = 'none';
var wppaOvlTheme = 'black';
var wppaOvlAnimSpeed = 300;
var wppaOvlSlideSpeed = 3000;
var wppaVer4WindowWidth = 800;
var wppaVer4WindowHeight = 600;
var wppaOvlFontFamily = 'Helvetica';
var wppaOvlFontSize = '10';
var wppaOvlFontColor = '';
var wppaOvlFontWeight = 'bold';
var wppaOvlLineHeight = '12';
var wppaOvlShowCounter = true;
var wppaOvlIsVideo = false;
var wppaShowLegenda = '';
var wppaOvlFsPhotoId = 0;
var wppaPhotoId = 0;
var wppaOvlVideoStart = false;
var wppaOvlAudioStart = false;
// Initial initialization
jQuery( document ).ready(function( e ) {
wppaInitOverlay();
});
// Window resize handler
jQuery( window ).resize(function() {
jQuery("#wppa-overlay-bg").css({height:window.innerHeight});
wppaOvlResize( 10 );
});
// Keyboard handler
function wppaOvlKeyboardHandler( e ) {
var keycode;
var escapeKey;
if ( e == null ) { // ie
keycode = event.keyCode;
escapeKey = 27;
} else { // mozilla
keycode = e.keyCode;
escapeKey = 27; //e.DOM_VK_ESCAPE;
}
var key = String.fromCharCode( keycode ).toLowerCase();
switch ( keycode ) {
case escapeKey:
wppaStopVideo( mocc );
wppaOvlHide();
break;
case 37:
wppaOvlShowPrev();
break;
case 39:
wppaOvlShowNext();
break;
}
switch ( key ) {
// case 'x':
// case 'o':
// case 'c':
// case 'q':
// wppaOvlHide();
// break;
case 'p':
wppaOvlShowPrev();
break;
case 'n':
wppaOvlShowNext();
break;
case 's':
wppaOvlStartStop();
break;
case 'd':
jQuery('#wppa-ovl-legenda-1').css('visibility','hidden');
jQuery('#wppa-ovl-legenda-2').css('visibility','hidden');
wppaShowLegenda = 'hidden';
break;
case 'f':
var oldMode = wppaOvlMode;
wppaOvlStepMode();
var elem = document.getElementById('wppa-overlay-ic');
if ( oldMode == 'normal' ) {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen();
}
setTimeout( 'wppaOvlShow( '+wppaOvlIdx+' )', 1000 );
}
if ( wppaOvlMode == 'normal' ) {
if (document.cancelFullScreen) {
document.cancelFullScreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
}
jQuery('#wppa-ovl-legenda-1').html('');
break;
}
}
function wppaFindWindowSize() {
wppaConsoleLog( 'wppaFindWindowSize' );
wppaWindowInnerWidth = window.innerWidth;
wppaWindowInnerHeight = window.innerHeight;
if ( typeof( wppaWindowInnerWidth )=='undefined' ) wppaWindowInnerWidth = jQuery( window ).width(); // wppaVer4WindowWidth;
if ( typeof( wppaWindowInnerHeight )=='undefined' ) wppaWindowInnerHeight = jQuery( window ).height(); //wppaVer4WindowHeight;
wppaConsoleLog( 'winw='+wppaWindowInnerWidth+', winh='+wppaWindowInnerHeight );
}
function wppaOvlShow( arg ) {
wppaConsoleLog( 'wppaOvlShow arg='+arg );
if ( wppaOvlFirst ) {
// Install keyboard handler
jQuery( document ).on('keydown', wppaOvlKeyboardHandler );
// Stop all slideshows
var occ = 0;
while ( occ < wppaTopMoc ) {
occ++;
wppaStopShow( occ );
}
wppaOvlFirst = false;
}
wppaFindWindowSize();
// Prevent Weaver ii from hiding us
jQuery( '#weaver-final' ).removeClass( 'wvr-hide-bang' );
// Display spinner
jQuery( '#wppa-overlay-sp' ).css( {left: ( wppaWindowInnerWidth/2 )-16, top: ( wppaWindowInnerHeight/2 )-16, visibility: 'visible'});
var href;
if ( parseInt( arg ) == arg ) { // Arg is Numeric
if ( arg != -1 ) {
wppaOvlUrl = wppaOvlUrls[arg];
wppaOvlTitle = wppaOvlTitles[arg];
wppaOvlIdx = arg;
wppaOvlVideoHtml = wppaOvlVideoHtmls[arg];
wppaOvlAudioHtml = wppaOvlAudioHtmls[arg];
wppaOvlVideoNaturalWidth = wppaOvlVideoNaturalWidths[arg];
wppaOvlVideoNaturalHeight = wppaOvlVideoNaturalHeights[arg];
//wppaConsoleLog( 'nw='+wppaOvlVideoNaturalWidth+', nh='+wppaOvlVideoNaturalHeight, 'force');
} // else redo the same single
}
else { // Arg is 'this' arg
wppaOvlIdx = -1; // Assume single
wppaOvlUrl = arg.href;
if ( jQuery( arg ).attr( 'data-lbtitle' ) ) {
wppaOvlTitle = wppaRepairScriptTags( jQuery( arg ).attr( 'data-lbtitle' ) );
}
else {
wppaOvlTitle = wppaRepairScriptTags( arg.title );
}
wppaOvlVideoHtml = decodeURI( jQuery( arg ).attr( 'data-videohtml' ) );
wppaOvlAudioHtml = decodeURI( jQuery( arg ).attr( 'data-audiohtml' ) );
wppaOvlVideoNaturalWidth = jQuery( arg ).attr( 'data-videonatwidth' );
wppaOvlVideoNaturalHeight = jQuery( arg ).attr( 'data-videonatheight' );
var rel = arg.rel;
var temp = rel.split( '[' );
if ( temp[1] ) { // We are in a set
wppaOvlUrls = [];
wppaOvlTitles = [];
wppaOvlVideoHtmls = [];
wppaOvlAudioHtmls = [];
wppaOvlVideoNaturalWidths = [];
wppaOvlVideoNaturalHeights = [];
var setname = temp[1];
var anchors = jQuery( 'a' );
var anchor;
var i, j = 0;
wppaOvlIdx = -1;
// Save the set
for ( i=0;i<anchors.length;i++ ) {
anchor = anchors[i];
if ( anchor.rel ) {
temp = anchor.rel.split( "[" );
if ( temp[0] == 'wppa' && temp[1] == setname ) { // Same set
wppaOvlUrls[j] = anchor.href;
if ( jQuery( anchor ).attr( 'data-lbtitle' ) ) {
wppaOvlTitles[j] = wppaRepairScriptTags( jQuery( anchor ).attr( 'data-lbtitle' ) );
}
else {
wppaOvlTitles[j] = wppaRepairScriptTags( anchor.title );
}
wppaOvlVideoHtmls[j] = decodeURI( jQuery( anchor ).attr( 'data-videohtml' ) );
wppaOvlAudioHtmls[j] = decodeURI( jQuery( anchor ).attr( 'data-audiohtml' ) );
wppaOvlVideoNaturalWidths[j] = jQuery( anchor ).attr( 'data-videonatwidth' );
wppaOvlVideoNaturalHeights[j] = jQuery( anchor ).attr( 'data-videonatheight' );
if ( anchor.href == wppaOvlUrl ) wppaOvlIdx = j; // Current index
j++;
}
}
}
}
else { // Single
wppaOvlUrls = false;
wppaOvlTitles = false;
wppaOvlVideoHtmls = false;
wppaOvlVideoNaturalWidths = false;
wppaOvlVideoNaturalHeights = false;
wppaOvlIdx = -1;
}
}
wppaPhotoId = wppaUrlToId( wppaOvlUrl );
//alert(wppaOvlUrl+':'+wppaPhotoId);
_bumpViewCount( wppaPhotoId );
var wppaIsVideo = typeof( wppaOvlVideoHtml ) != 'undefined' && wppaOvlVideoHtml != '' && wppaOvlVideoHtml != 'undefined';
var wppaHasAudio = wppaOvlAudioHtml != '';
// Fullsize?
if ( wppaOvlMode != 'normal' ) {
var html;
// Init background
jQuery( '#wppa-overlay-bg' ).fadeTo( 300, wppaOvlOpacity ); // show black background first
// Fullsize Video
if ( wppaIsVideo ) {
html =
'<div id="wppa-ovl-full-bg" style="position:fixed; width:'+wppaWindowInnerWidth+'px; height:'+wppaWindowInnerHeight+'px; left:0px; top:0px; text-align:center;" >'+
'<video id="wppa-overlay-img" controls preload="metadata"' +
( wppaOvlVideoStart ? ' autoplay' : '' ) +
' ontouchstart="wppaTouchStart( event, \'wppa-overlay-img\', -1 );"' +
' ontouchend="wppaTouchEnd( event );"' +
' ontouchmove="wppaTouchMove( event );"' +
' ontouchcancel="wppaTouchCancel( event );"' +
' onpause="wppaOvlVideoPlaying = false;"' +
' onplay="wppaOvlVideoPlaying = true;"' +
' style="border:none; width:'+wppaWindowInnerWidth+'px; box-shadow:none; position:absolute;" >'+
wppaOvlVideoHtml+
'</video>'+
'<div style="height: 20px; width: 100%; position:absolute; top:0; left:0;" onmouseover="jQuery(\'#wppa-ovl-legenda-2\').css(\'visibility\',\'visible\');" onmouseout="jQuery(\'#wppa-ovl-legenda-2\').css(\'visibility\',\'hidden\');wppaShowLegenda=\'hidden\';" >'+
'<div id="wppa-ovl-legenda-2" style="position:fixed; left:0; top:0; background-color:'+(wppaOvlTheme == 'black' ? '#272727' : '#a7a7a7')+'; color:'+(wppaOvlTheme == 'black' ? '#a7a7a7' : '#272727')+'; visibility:'+wppaShowLegenda+';" >'+
'Mode='+wppaOvlMode+'. '+( wppaOvlIsSingle ? wppaOvlFullLegendaSingle : wppaOvlFullLegenda )+
'</div>'+
'</div>';
'</div>';
}
// Fullsize Photo
else {
html =
'<div id="wppa-ovl-full-bg" style="position:fixed; width:'+wppaWindowInnerWidth+'px; height:'+wppaWindowInnerHeight+'px; left:0px; top:0px; text-align:center;" >'+
'<img id="wppa-overlay-img"'+
' ontouchstart="wppaTouchStart( event, \'wppa-overlay-img\', -1 );"'+
' ontouchend="wppaTouchEnd( event );"'+
' ontouchmove="wppaTouchMove( event );"'+
' ontouchcancel="wppaTouchCancel( event );"'+
' src="'+wppaOvlUrl+'"'+
' style="border:none; width:'+wppaWindowInnerWidth+'px; visibility:hidden; box-shadow:none; position:absolute;"'+
' />';
if ( wppaHasAudio ) {
html += '<audio' +
' id="wppa-overlay-audio"' +
' class="wppa-overlay-audio"' +
' preload="metadata"' +
( ( wppaOvlAudioStart && ! wppaOvlAudioPlaying ) ? ' autoplay' : '' ) +
' onpause="wppaOvlAudioPlaying = false;"' +
' onplay="wppaOvlAudioPlaying = true;"' +
' style="' +
'width:100%;' +
'position:absolute;' +
'left:0px;' +
'bottom:0px;' +
'padding:0;' +
'"' +
' controls' +
' >' +
wppaOvlAudioHtml +
'</audio>';
}
html +=
'<div style="height: 20px; width: 100%; position:absolute; top:0; left:0;" onmouseover="jQuery(\'#wppa-ovl-legenda-2\').css(\'visibility\',\'visible\');" onmouseout="jQuery(\'#wppa-ovl-legenda-2\').css(\'visibility\',\'hidden\');wppaShowLegenda=\'hidden\';" >'+
'<div id="wppa-ovl-legenda-2" style="position:fixed; left:0; top:0; background-color:'+(wppaOvlTheme == 'black' ? '#272727' : '#a7a7a7')+'; color:'+(wppaOvlTheme == 'black' ? '#a7a7a7' : '#272727')+'; visibility:'+wppaShowLegenda+';" >'+
'Mode='+wppaOvlMode+'. '+( wppaOvlIsSingle ? wppaOvlFullLegendaSingle : wppaOvlFullLegenda )+
'</div>'+
'</div>';
'</div>';
}
// Replacing the html stops a running video,
// so we only replace html on a new id, or a photo without audio
if ( ( ! wppaIsVideo && ! wppaHasAudio ) || wppaOvlFsPhotoId != wppaPhotoId || wppaPhotoId == 0 ) {
wppaStopVideo( 0 );
wppaStopAudio();
jQuery( '#wppa-overlay-ic' ).html( html );
//alert('Html set');
}
wppaOvlIsVideo = wppaIsVideo;
setTimeout( 'wppaOvlShowFull()', 10 );
if ( wppaIsVideo || wppaHasAudio ) {
setTimeout( 'wppaOvlUpdateFsId()', 2000 );
}
else {
wppaOvlFsPhotoId = 0;
}
return false;
}
// NOT fullsize
else {
wppaOvlFsPhotoId = 0; // Reset ovl fullscreen photo id
wppaPhotoId = 0;
var mw = 250;
wppaStopVideo( 0 );
jQuery( '#wppa-overlay-bg' ).fadeTo( 300, wppaOvlOpacity );
var lft = ( wppaWindowInnerWidth/2-125 )+'px';
var ptp = ( wppaWindowInnerHeight/2-125 )+'px';
jQuery( '#wppa-overlay-ic' ).css( {left: lft, paddingTop: ptp});
var txtcol = wppaOvlTheme == 'black' ? '#a7a7a7' : '#272727'; // Normal font
var qtxtcol = wppaOvlTheme == 'black' ? '#a7a7a7' : '#575757'; // Bold font
if ( wppaOvlFontColor ) txtcol = wppaOvlFontColor;
var startstop = wppaOvlRunning ? wppaStop : wppaStart;
var html = '<div id="wppa-overlay-start-stop" style="position:absolute; left:0px; top:'+( wppaOvlPadTop-1 )+'px; visibility:hidden; box-shadow:none; font-family:helvetica; font-weight:bold; font-size:14px; color:'+qtxtcol+'; cursor:pointer; " onclick="wppaOvlStartStop()" ontouchstart="wppaOvlStartStop()" >'+startstop+'</div>'+
'<div id="wppa-overlay-qt-txt" style="position:absolute; right:16px; top:'+( wppaOvlPadTop-1 )+'px; visibility:hidden; box-shadow:none; font-family:helvetica; font-weight:bold; font-size:14px; color:'+qtxtcol+'; cursor:pointer; " onclick="wppaOvlHide()" ontouchstart="wppaOvlHide()" >'+wppaOvlCloseTxt+' </div>'+
'<img id="wppa-overlay-qt-img" src="'+wppaImageDirectory+'smallcross-'+wppaOvlTheme+'.gif'+'" style="position:absolute; right:0; top:'+wppaOvlPadTop+'px; visibility:hidden; box-shadow:none; cursor:pointer" onclick="wppaOvlHide()" ontouchstart="wppaOvlHide()" >';
// Not Fullsize Video
if ( wppaIsVideo ) {
html += '<video' +
' id="wppa-overlay-img"' +
' preload="metadata"' +
( wppaOvlVideoStart ? ' autoplay' : '' ) +
' onpause="wppaOvlVideoPlaying = false;"' +
' onplay="wppaOvlVideoPlaying = true;"' +
' ontouchstart="wppaTouchStart( event, \'wppa-overlay-img\', -1 );"' +
' ontouchend="wppaTouchEnd( event );"' +
' ontouchmove="wppaTouchMove( event );"' +
' ontouchcancel="wppaTouchCancel( event );" ' +
' style="' +
'border-width:16px;' +
'border-style:solid;' +
'border-color:'+wppaOvlTheme+';' +
'margin-bottom:-15px;' +
'max-width:'+mw+'px;' +
'visibility:hidden;' +
'box-shadow:none;"' +
' controls' +
' >'+wppaOvlVideoHtml+'</video>';
wppaOvlIsVideo = true;
}
// Not fullsize photo
else {
html += '<img' +
' id="wppa-overlay-img"'+
' ontouchstart="wppaTouchStart( event, \'wppa-overlay-img\', -1 );"' +
' ontouchend="wppaTouchEnd( event );"' +
' ontouchmove="wppaTouchMove( event );"' +
' ontouchcancel="wppaTouchCancel( event );"' +
' src="'+wppaOvlUrl+'"' +
' style="' +
'border-width:16px;' +
'border-style:solid;' +
'border-color:'+wppaOvlTheme+';' +
'margin-bottom:-15px;' +
'max-width:'+mw+'px;' +
'visibility:hidden;' +
'box-shadow:none;"' +
' />';
// Audio on not fullsize
if ( wppaHasAudio ) { //wppaOvlAudioHtml != '' ) {
html += '<audio' +
' id="wppa-overlay-audio"' +
' class="wppa-overlay-audio"' +
' preload="metadata"' +
// ( ( wppaOvlAudioStart && ! wppaOvlAudioPlaying ) ? ' autoplay' : '' ) +
' onpause="wppaOvlAudioPlaying = false;"' +
' onplay="wppaOvlAudioPlaying = true;"' +
' style="' +
'width:100%;' +
'position:relative;' +
'top:-'+( wppaAudioHeight + 16 )+'px;' +
'padding:16px;' +
'background-color:transparent;' +
'box-sizing:border-box;' +
'"' +
' controls' +
' >' +
wppaOvlAudioHtml +
'</audio>';
}
wppaOvlIsVideo = false;
// wppaOvlAudioPlaying = true;
}
html += '<div id="wppa-overlay-txt-container"' +
' style="' +
'position:relative;' +
( wppaHasAudio ? 'top:-'+( wppaAudioHeight + 32 )+'px;' : '' ) +
'padding:10px;' +
'background-color:'+wppaOvlTheme+'; color:'+txtcol+'; text-align:center; font-family:'+wppaOvlFontFamily+'; font-size: '+wppaOvlFontSize+'px; font-weight:'+wppaOvlFontWeight+'; line-height:'+wppaOvlLineHeight+'px; visibility:hidden; box-shadow:none;" ><div>';
jQuery( '#wppa-overlay-ic' ).html( html );
setTimeout( 'wppaOvlShow2()', 10 );
return false;
}
}
function wppaOvlUpdateFsId() {
wppaOvlFsPhotoId = wppaPhotoId;
}
function wppaStopVideo( mocc ) {
var id = [];
var video;
var i;
id[1] = 'wppa-overlay-img';
id[2] = 'theimg0-'+mocc;
id[3] = 'theimg1-'+mocc;
i = 0;
while ( i < 3 ) {
i++;
video = document.getElementById( id[i] );
if ( video ) {
if ( typeof( video.pause ) == 'function' ) {
video.pause();
wppaConsoleLog( 'Video '+id[i]+' paused', 'force' );
}
}
}
}
function wppaStopAudio() {
var items = jQuery( 'audio' );
if ( items.length > 0 ) {
var i = 0;
while ( i < items.length ) {
items[i].pause();
i++;
}
}
}
function wppaOvlStartAudio() {
// Due to a bug in jQuery, must do myself:
var elm = document.getElementById( 'wppa-overlay-audio' );
if ( elm ) {
if ( typeof( elm.play ) == 'function' ) {
elm.play();
wppaConsoleLog('Audio play '+'wppa-overlay-audio', 'force');
}
}
// document.getElementById( 'wppa-overlay-audio' ).play();
// if ( typeof( jQuery( '#wppa-overlay-audio' ).play ) == 'function' ) {
// jQuery( '#wppa-overlay-audio' ).play();
// alert( 'Start attempted');
// }
// else alert( 'Start failed');
}
// Show fullscreen lightbox image
function wppaOvlShowFull() {
//wppaConsoleLog('ShowFull '+wppaOvlMode, 'force' );
//wppaConsoleLog('Is V ='+wppaOvlIsVideo, 'force');
var img;
var natWidth;
var natHeight;
// Find out if the picture is more portrait than the screen
if ( wppaOvlIsVideo ) {
img = document.getElementById( 'wppa-overlay-img' );
natWidth = wppaOvlVideoNaturalWidth;
natHeight = wppaOvlVideoNaturalHeight;
//wppaConsoleLog( 'V Nw='+natWidth+', Nh='+natHeight, 'force');
}
else {
img = document.getElementById( 'wppa-overlay-img' );
if ( ! img || ! img.complete ) {
setTimeout( 'wppaOvlShowFull()', 10 ); // Wait for load complete
return;
}
natWidth = img.naturalWidth;
natHeight = img.naturalHeight;
//wppaConsoleLog( 'P Nw='+natWidth+', Nh='+natHeight, 'force');
}
var screenRatio = wppaWindowInnerWidth / wppaWindowInnerHeight;
var imageRatio = natWidth / natHeight;
var margLeft = 0;
var margTop = 0;
var imgHeight = 0;
var imgWidth = 0;
var scrollTop = 0;
var scrollLeft = 0;
var Overflow = 'hidden';
switch ( wppaOvlMode ) {
case 'padded':
if ( screenRatio > imageRatio ) { // Picture is more portrait
margLeft = ( wppaWindowInnerWidth - wppaWindowInnerHeight * imageRatio ) / 2;
margTop = 0;
imgHeight = wppaWindowInnerHeight;
imgWidth = wppaWindowInnerHeight * imageRatio;
}
else {
margLeft = 0;
margTop = ( wppaWindowInnerHeight - wppaWindowInnerWidth / imageRatio ) / 2;
imgHeight = wppaWindowInnerWidth / imageRatio;
imgWidth = wppaWindowInnerWidth;
}
break;
case 'stretched':
margLeft = 0;
margTop = 0;
imgHeight = wppaWindowInnerHeight;
imgWidth = wppaWindowInnerWidth;
break;
case 'clipped':
if ( screenRatio > imageRatio ) { // Picture is more portrait
margLeft = 0;
margTop = ( wppaWindowInnerHeight - wppaWindowInnerWidth / imageRatio ) / 2;
imgHeight = wppaWindowInnerWidth / imageRatio;
imgWidth = wppaWindowInnerWidth;
}
else {
margLeft = ( wppaWindowInnerWidth - wppaWindowInnerHeight * imageRatio ) / 2;
margTop = 0;
imgHeight = wppaWindowInnerHeight;
imgWidth = wppaWindowInnerHeight * imageRatio;
}
break;
case 'realsize':
margLeft = ( wppaWindowInnerWidth - natWidth ) / 2;
if ( margLeft < 0 ) {
scrollLeft = - margLeft;
margLeft = 0;
}
margTop = ( wppaWindowInnerHeight - natHeight ) / 2;
if ( margTop < 0 ) {
scrollTop = - margTop;
margTop = 0;
}
imgHeight = natHeight;
imgWidth = natWidth;
Overflow = 'auto';
break;
}
margLeft = parseInt( margLeft );
margTop = parseInt( margTop );
imgHeight = parseInt( imgHeight );
imgWidth = parseInt( imgWidth );
jQuery(img).css({height:imgHeight,width:imgWidth,marginLeft:margLeft,marginTop:margTop,left:0,top:0});
jQuery(img).css({visibility:'visible'});
jQuery( '#wppa-ovl-full-bg' ).css({overflow:Overflow});
jQuery( '#wppa-ovl-full-bg' ).scrollTop( scrollTop );
jQuery( '#wppa-ovl-full-bg' ).scrollLeft( scrollLeft );
jQuery( '#wppa-overlay-sp' ).css({visibility:'hidden'});
return true; // Done!
}
function wppaOvlShow2() {
wppaConsoleLog( 'wppaOvlShow2' );
var img = document.getElementById( 'wppa-overlay-img' );
if ( ! wppaOvlIsVideo && ( ! img || ! img.complete ) ) {
setTimeout( 'wppaOvlShow2()', 10 ); // Wait for load complete
return;
}
if ( wppaOvlAnimSpeed!=0 )
img.style.visibility = 'visible'; // Display image
setTimeout( 'wppaOvlShow3()', 10 );
return false;
}
function wppaOvlShow3() {
wppaConsoleLog( 'wppaOvlShow3' );
// Remove spinner
jQuery( '#wppa-overlay-sp' ).css( {visibility: 'hidden'});
// Size to final dimensions
jQuery( '#wppa-overlay-txt-container' ).html( '<div id="wppa-overlay-txt"></div>' ); // reqd for sizeing
var speed = wppaOvlAnimSpeed;
wppaOvlSize( speed );
// Go on
setTimeout( 'wppaOvlShow4()', speed+50 );
return false;
}
function wppaOvlShow4() {
wppaConsoleLog( 'wppaOvlShow4' );
var cw = document.getElementById( 'wppa-overlay-img' ).clientWidth;
if ( wppaOvlIdx != -1 ) { // One out of a set
var vl = 'visibility:hidden;';
var vr = 'visibility:hidden;';
var ht = 'height:'+wppaOvlTxtHeight+'px;';
var txtwidth;
if ( wppaOvlRunning ) txtwidth = cw + 12;
else txtwidth = cw - 80;
if ( wppaOvlIdx != 0 ) vl = 'visible';
if ( wppaOvlIdx != ( wppaOvlUrls.length-1 ) ) vr = 'visible';
if ( wppaOvlTxtHeight == 'auto' ) ht = '';
var html = '';
if ( ! wppaOvlRunning ) {
html +=
'<img src="'+wppaImageDirectory+'prev-'+wppaOvlTheme+'.gif" style="position:relative; top:-8px; float:left; '+vl+'; box-shadow:none;" onclick="wppaOvlShowPrev()" ontouchstart="wppaOvlShowPrev()" />'+
'<img src="'+wppaImageDirectory+'next-'+wppaOvlTheme+'.gif" style="position:relative; top:-8px; float:right;'+vr+'; box-shadow:none;" onclick="wppaOvlShowNext()" ontouchstart="wppaOvlShowNext()" />';
}
html +=
'<div id="wppa-overlay-txt" style="text-align:center; min-height:36px; '+ht+' overflow:auto; box-shadow:none; width:'+txtwidth+'px;" >';
if ( wppaOvlShowCounter ) html += ( wppaOvlIdx+1 )+'/'+wppaOvlUrls.length+'<br />';
html += wppaOvlTitle+'</div>';
// if ( wppaFotomoto ) {
// html += '<span class="FotomotoToolbarPosition"></span>';
// html += '<script style="text/javascript" >FOTOMOTO.API.setBoxImage( "'+wppaOvlUrl+'" );</script>';
// }
jQuery( '#wppa-overlay-txt-container' ).html( html );
wppaOvlIsSingle = false;
}
else {
jQuery( '#wppa-overlay-txt-container' ).html( '<div id="wppa-overlay-txt" style="text-align:center; margin-left:45px;" >'+wppaOvlTitle+'</div>' );
wppaOvlIsSingle = true;
}
jQuery( '#wppa-overlay-txt-container' ).css( 'visibility', 'visible' );
jQuery( '#wppa-overlay-qt-txt' ).css( {visibility: 'visible'});
jQuery( '#wppa-overlay-qt-img' ).css( {visibility: 'visible'});
if ( ! wppaOvlIsSingle ) jQuery( '#wppa-overlay-start-stop' ).css( {visibility: 'visible'});
if ( wppaOvlTxtHeight == 'auto' ) wppaOvlResize( 10 ); // Resize to accomodate for var text height
return false;
}
function wppaOvlStepMode() {
wppaConsoleLog('StepMode from '+wppaOvlMode);
var modes = new Array( 'normal', 'padded', 'stretched', 'clipped', 'realsize', 'padded' );
var i = 0;
while ( i < modes.length ) {
if ( wppaOvlMode == modes[i] ) {
wppaOvlMode = modes[i+1];
wppaOvlShow( wppaOvlIdx );
return;
}
i++;
}
}
function wppaOvlStartStop() {
if ( wppaOvlRunning ) {
jQuery( '#wppa-overlay-start-stop' ).html( wppaStart );
wppaOvlRunning = false;
}
else {
jQuery( '#wppa-overlay-start-stop' ).html( wppaStop );
wppaOvlRunning = true;
wppaOvlRun();
}
}
function wppaOvlRun() {
wppaConsoleLog( 'wppaOvlRun, running='+wppaOvlRunning );
if ( ! wppaOvlRunning ) return;
if ( wppaOvlVideoPlaying || wppaOvlAudioPlaying ) {
setTimeout( 'wppaOvlRun()', 500 );
return;
}
var next;
if ( wppaOvlIdx >= ( wppaOvlUrls.length-1 ) ) next = 0;
else next = wppaOvlIdx + 1;
wppaOvlFsPhotoId = 0;
wppaPhotoId = 0;
wppaOvlShow( next );
wppaConsoleLog( 'Setting timeout wppaOvlRun(), '+wppaOvlSlideSpeed );
setTimeout( 'wppaOvlRun()', wppaOvlSlideSpeed );
}
function wppaOvlShowPrev() {
wppaConsoleLog( 'wppaOvlShowPrev' );
wppaOvlFsPhotoId = 0;
wppaPhotoId = 0;
if ( wppaOvlIsSingle ) return false;
if ( wppaOvlIdx < 1 ) {
wppaOvlIdx = wppaOvlUrls.length; // Restart at last
// wppaOvlHide(); // There is no prev, quit
// return false;
}
wppaOvlShow( wppaOvlIdx-1 );
return false;
}
function wppaOvlShowNext() {
wppaConsoleLog( 'wppaOvlShowNext' );
wppaOvlFsPhotoId = 0;
wppaPhotoId = 0;
if ( wppaOvlIsSingle ) return false;
if ( wppaOvlIdx >= ( wppaOvlUrls.length-1 ) ) {
wppaOvlIdx = -1; // Restart at first
// wppaOvlHide(); // There is no next, quit
// return false;
}
wppaOvlShow( wppaOvlIdx+1 );
return false;
}
function wppaOvlSize( speed ) {
wppaConsoleLog( 'wppaOvlSize' );
// Are we still visible?
if ( jQuery('#wppa-overlay-bg').css('display') == 'none' ) {
wppaConsoleLog('Lb quitted');
return;
}
// Full screen?
if ( wppaOvlMode != 'normal' ) {
wppaOvlShowFull();
return;
}
// Wait for text complete
if ( ! document.getElementById( 'wppa-overlay-txt' ) ) { setTimeout( 'wppaOvlSize( '+speed+' )', 10 ); return;}
wppaFindWindowSize();
var iw = wppaWindowInnerWidth;
var ih = wppaWindowInnerHeight;
var img = document.getElementById( 'wppa-overlay-img' );
var cw, nw, nh;
if ( wppaOvlIsVideo ) {
cw = 640;
nw = 640;
nh = 480;
}
else {
cw = img.clientWidth;
nw = img.naturalWidth;
nh = img.naturalHeight;
}
var fakt1;
var fakt2;
var fakt;
// If the width is the limiting factor, adjust the height
if ( typeof( nw ) == 'undefined' ) { // ver 4 browser
nw = img.clientWidth;
nh = img.clientHeight;
fakt1 = ( iw-100 )/nw;
fakt2 = ih/nh;
if ( fakt1<fakt2 ) fakt = fakt1; // very landscape, width is the limit
else fakt = fakt2; // Height is the limit
if ( true ) { // Up or downsize
nw = parseInt( nw * fakt );
nh = parseInt( nh * fakt );
}
}
else {
fakt1 = ( iw-100 )/nw;
fakt2 = ih/nh;
if ( fakt1<fakt2 ) fakt = fakt1; // very landscape, width is the limit
else fakt = fakt2; // Height is the limit
if ( fakt < 1.0 ) { // Only downsize if needed
nw = parseInt( nw * fakt );
nh = parseInt( nh * fakt );
}
}
var mh; // max image height
var tch = document.getElementById( 'wppa-overlay-txt' ).clientHeight;
if ( wppaOvlTxtHeight == 'auto' ) {
if ( tch == 0 ) tch = 36;
mh = ih - tch - 52;
}
else {
mh = ih - wppaOvlTxtHeight - 52;
}
var mw = parseInt( mh * nw / nh );
var pt = wppaOvlPadTop;
var lft = parseInt( ( iw-mw )/2 );
var wid = mw;
// Image too small? ( never for ver 4 browsers, we do not know the natural dimensions
if ( nh < mh ) {
pt = wppaOvlPadTop + ( mh - nh )/2;
lft = parseInt( ( iw-nw )/2 );
wid = nw;
}
var cwid = wid+32; // container width = image width + 2 * border
lft -= 16; // border width
// Go to final size
if ( speed == 0 ) {
jQuery( '#wppa-overlay-img' ).css( {width:wid, maxWidth: wid, visibility: 'visible'});
jQuery( '#wppa-overlay-ic' ).css( {width: cwid, left: lft, paddingTop: pt});
jQuery( '#wppa-overlay-qt-txt' ).css( {top: ( pt-1 )});
jQuery( '#wppa-overlay-start-stop' ).css( {top: ( pt-1 )});
jQuery( '#wppa-overlay-qt-img' ).css( {top: pt});
}
else {
jQuery( '#wppa-overlay-img' ).stop().animate( {width:wid, maxWidth: wid}, speed );
jQuery( '#wppa-overlay-ic' ).stop().animate( {width: cwid, left: lft, paddingTop: pt}, speed );
jQuery( '#wppa-overlay-qt-txt' ).stop().animate( {top: ( pt-1 )}, speed );
jQuery( '#wppa-overlay-start-stop' ).stop().animate( {top: ( pt-1 )}, speed );
jQuery( '#wppa-overlay-qt-img' ).stop().animate( {top: pt}, speed );
}
// If resizing, also resize txt elements when sizing is complete
if ( document.getElementById( 'wppa-overlay-txt' ) ) {
// Hide during resize if sizing takes longer than 10 ms.
if ( speed > 10 ) jQuery( '#wppa-overlay-txt' ).css( {visibility: 'hidden'});
}
setTimeout( 'wppaOvlSize2()', 20 );
return true;
}
function wppaOvlSize2() {
wppaConsoleLog( 'wppaOvlSize2' );
var cw = document.getElementById( 'wppa-overlay-img' ).clientWidth;
var txtwidth;
if ( wppaOvlRunning ) txtwidth = cw + 12;
else txtwidth = cw - 80;
jQuery( '#wppa-overlay-img' ).css( {width: cw}); // Req'd for ver 4 browsers
jQuery( '#wppa-overlay-ic' ).css( {width: cw+32}); // ditto
jQuery( '#wppa-overlay-txt' ).css( {width: txtwidth+'px', visibility: 'visible'});
return true;
}
function wppaOvlHide() {
wppaConsoleLog( 'wppaOvlHide' );
// Stop audio
wppaStopAudio();
// Clear image container
jQuery( '#wppa-overlay-ic' ).html( '' );
jQuery( '#wppa-overlay-ic' ).css( {paddingTop: 0});
// Remove background
jQuery( '#wppa-overlay-bg' ).fadeOut( 300 );
// Remove kb handler
jQuery( document ).off( 'keydown', wppaOvlKeyboardHandler );
// Reset switches
wppaOvlFirst = true;
wppaOvlRunning = false;
wppaOvlMode = 'normal';
jQuery( '#wppa-overlay-sp' ).css({visibility:'hidden'});
}
function wppaOvlOnclick( event ) {
switch ( wppaOvlOnclickType ) {
case 'none':
break;
case 'close':
wppaOvlHide();
break;
case 'browse':
var x = event.screenX - window.screenX;
if ( x < wppaWindowInnerWidth/2 ) wppaOvlShowPrev();
else wppaOvlShowNext();
break;
default:
alert( 'Unimplemented action: '+wppaOvlOnclickType );
break;
}
return true;
}
function wppaInitOverlay() {
wppaConsoleLog( 'wppaInitOverlay' );
var anchors=jQuery( 'a' );
var anchor;
var i;
wppaOvlFsPhotoId = 0; // Reset ovl fullscreen photo id
wppaPhotoId = 0;
for( i=0;i<anchors.length;i++ ) {
anchor = anchors[i];
if ( anchor.rel ) {
temp = anchor.rel.split( "[" );
if ( temp[0] == 'wppa' ) {
wppaWppaOverlayActivated = true; // found one
jQuery( anchor ).click(function( event ) {
wppaOvlShow( this );
event.preventDefault();
});
jQuery( anchor ).on( "touchstart", function( event ) {
wppaOvlShow( this );
event.preventDefault();
});
}
}
}
// wppaOvlRunning = false;
// Almost done, Install eventhandlers
if ( wppaOvlFirst ) {
// Enable kb input
// jQuery( document ).on('keydown', wppaOvlKeyboardHandler );
// if ( document.onkeydown ) {
// wppaOvlKbHandler = document.onkeydown;
// }
// document.onkeydown = wppaKbAction;
// if ( window.onresize ) {
// wppaOvlSizeHandler = window.onresize;
// }
// window.onresize = function () {return wppaOvlResize( 10 );}
// wppaOvlFirst = false;
}
}
/*
var wppaKbAction = function( e ) {
if ( e == null ) { // ie
keycode = event.keyCode;
escapeKey = 27;
} else { // mozilla
keycode = e.keyCode;
escapeKey = 27; //e.DOM_VK_ESCAPE;
}
key = String.fromCharCode( keycode ).toLowerCase();
if ( ( key == 'x' ) || ( key == 'o' ) || ( key == 'c' ) || ( key == 'q' ) || ( keycode == escapeKey ) ) {
wppaOvlHide();
}
else if( ( key == 'p' ) || ( keycode == 37 ) ) {
wppaOvlShowPrev();
} else if( ( key == 'n' ) || ( keycode == 39 ) ) {
wppaOvlShowNext();
}
}
*/
// This module is intented to be used in any onclick definition that opens or closes a part of the photo description.
// this will automaticly adjust the picturesize so that the full description will be visible.
// Example: <a href="javascript://" onclick="myproc()" >Show Details</a>
// Change to: <a href="javascript://" onclick="myproc(); wppaOvlResize()" >Show Details</a>
// Isn't it simple?
function wppaOvlResize() {
wppaConsoleLog( 'wppaOvlResize' );
// See if generic lightbox is on
// if ( wppaLightBox != 'wppa' ) return; // No, not this time.
// Wait for completeion of text and do a size operation
setTimeout( 'wppaOvlSize( 10 )', 50 ); // After resizing, the number of lines may have changed
setTimeout( 'wppaOvlSize( 10 )', 100 );
setTimeout( 'wppaOvlSize( 10 )', 150 );
setTimeout( 'wppaOvlSize( 10 )', 1000 );
if ( wppaOvlAudioStart && ! wppaOvlAudioPlaying ) {
setTimeout( 'wppaOvlStartAudio()', 1010 );
}
}
function wppaAjaxMakeOrigName( mocc, id ) {
// Create the http request object
var xmlhttp = wppaGetXmlHttp();
var url = wppaAjaxUrl+'?action=wppa&wppa-action=makeorigname&photo-id='+id+'&from=fsname';
// Issue request Synchronously! !
xmlhttp.open( "GET",url,false );
xmlhttp.send();
if ( xmlhttp.readyState==4 && xmlhttp.status==200 ) {
var result = xmlhttp.responseText.split( '||' );
if ( result[1] == '0' ) { // Ok, no error
// Publish result
if ( wppaArtMonkyLink == 'file' ) window.open( result[2] );
if ( wppaArtMonkyLink == 'zip' ) document.location = result[2];
// Go
return true;
}
else {
// Show error
alert( 'Error: '+result[1]+'\n\n'+result[2] );
return false;
}
}
else {
alert( 'Comm error encountered' );
return false;
}
}
function wppaAjaxDownloadAlbum( mocc, id ) {
// Show spinner
jQuery( '#dwnspin-'+mocc+'-'+id ).css( 'display', '' );
// Create the http request object
var xmlhttp = wppaGetXmlHttp();
var url = wppaAjaxUrl+'?action=wppa&wppa-action=downloadalbum&album-id='+id;
// Issue request Synchronously! !
xmlhttp.open( "GET",url,false );
xmlhttp.send();
// Hide spinner
jQuery( '#dwnspin-'+mocc+'-'+id ).css( 'display', 'none' );
// Alalyze the result
var result = xmlhttp.responseText.split( '||' );
var url = result[0];
var erok = result[1];
var text = result[2];
if ( result.length == 3 && text != '' ) alert( 'Attention:\n\n'+text );
if ( xmlhttp.readyState == 4 && xmlhttp.status == 200 ) { // Normal successfull return
if ( erok == 'OK' ) {
document.location = url;
return true;
}
}
else { // See if a ( partial ) zipfile has been created
var zipurl = wppaGetAlbumZipUrl( id );
if ( zipurl != '' ) {
alert( 'The server could not complete the request. The zipfile may be incomplete' );
document.location = zipurl;
}
else {
alert( 'Comm error encountered. readyState = '+xmlhttp.readyState+', status = '+xmlhttp.status );
}
return false;
}
}
function wppaGetAlbumZipUrl( id ) {
// Create the http request object
var xmlhttp = wppaGetXmlHttp();
var url = wppaAjaxUrl+'?action=wppa&wppa-action=getalbumzipurl&album-id='+id;
// Issue request Synchronously! !
xmlhttp.open( "GET",url,false );
xmlhttp.send();
if ( xmlhttp.readyState == 4 && xmlhttp.status == 200 ) { // Normal successfull return
if ( xmlhttp.responseText != 'ER' && xmlhttp.responseText != '' ) { // Got a valid url
return xmlhttp.responseText;
}
}
return '';
}
function wppaAjaxComment( mocc, id ) {
if ( ! _wppaValidateComment( mocc ) ) return;
// Show spinner
jQuery( "#wppa-comment-spin-"+mocc ).css( 'display', 'inline' );
// Create the http request object
var xmlhttp = wppaGetXmlHttp();
// Make the Ajax send data
var data = 'action=wppa&wppa-action=do-comment&photo-id='+id
+'&comname='+jQuery( "#wppa-comname-"+mocc ).val( )
+'&comment='+wppaEncode( jQuery( "#wppa-comment-"+mocc ).val( ) )
+'&wppa-captcha='+jQuery( "#wppa-captcha-"+mocc ).val( )
+'&wppa-nonce='+jQuery( "#wppa-nonce-"+mocc ).val( )
+'&moccur='+mocc;
if ( typeof ( jQuery( "#wppa-comemail-"+mocc ).val() ) != 'undefined' ) data += '&comemail='+jQuery( "#wppa-comemail-"+mocc ).val( );
if ( typeof ( jQuery( "#wppa-comment-edit-"+mocc ).val() ) != 'undefined' ) data += '&comment-edit='+jQuery( "#wppa-comment-edit-"+mocc ).val( );
if ( typeof ( jQuery( "#wppa-returnurl-"+mocc ).val() ) != 'undefined' ) {
data += '&returnurl='+encodeURIComponent(jQuery( "#wppa-returnurl-"+mocc ).val());
wppaConsoleLog(encodeURIComponent(jQuery( "#wppa-returnurl-"+mocc ).val()), 'force');
}
// Do the Ajax action
xmlhttp.open( 'POST',wppaAjaxUrl,false ); // Synchronously ! !
xmlhttp.setRequestHeader( "Content-type","application/x-www-form-urlencoded" );
xmlhttp.send( data );
// Process result
if ( xmlhttp.readyState==4 && xmlhttp.status==200 ) {
var result = xmlhttp.responseText;
result = result.replace( /\\/g, '' );
jQuery( "#wppa-comments-"+mocc ).html( result );
_wppaCommentHtml[mocc][_wppaCurIdx[mocc]] = result;
wppaOpenComments( mocc );
}
else {
alert( 'Comm error encountered' );
return false;
}
// Hide spinner
jQuery( "#wppa-comment-spin-"+mocc ).css( 'display', 'none' );
}
function wppaConsoleLog( arg, force ) {
//wppaDebug=true;//diagnostic
if ( typeof( console ) != 'undefined' && ( wppaDebug || force == 'force' ) ) {
console.log( arg );
}
}
function wppaRepairScriptTags( text ) {
var temp;
var newtext;
// Just to be sure we do not run into undefined error
if ( typeof( text ) == 'undefined' ) return '';
temp = text.split( '[script' );
if ( temp.length == 1 ) return text;
newtext = temp[0];
var idx = 0;
while ( temp.length > idx ) {
newtext += '<script';
idx++;
newtext += temp[idx];
}
temp = newtext.split( '[/script' );
newtext = temp[0];
idx = 0;
while ( temp.length > idx ) {
newtext += '</script';
idx++;
newtext += temp[idx];
}
return newtext;
}
function wppaRepairBrTags( text ) {
var newtext;
// Just to be sure we do not run into undefined error
if ( typeof(text) == 'undefined' ) return '';
newtext = text.replace( '[br /]', '<br />' );
return newtext;
}
function wppaTrimAlt( text ) {
var newtext;
// Just to be sure we do not run into undefined error
if ( typeof(text) == 'undefined' ) return '';
if ( text.length > 13 ) {
newtext = text.substr( 0,10 ) + '...';
}
else newtext = text;
return newtext;
}
function _wppaUpdateOgMeta( mocc ) {
if ( wppaIsMini[mocc] ) return; // Not in a widget
var metas = jQuery( "meta" );
var i=0;
while ( i < metas.length ) {
elm = metas[i];
if ( jQuery( elm ).attr( "property" ) == "og:image" ) {
jQuery( elm ).attr( "content", _wppaUrl[mocc][_wppaCurIdx[mocc]] );
}
if ( jQuery( elm ).attr( "property" ) == "og:description" ) {
jQuery( elm ).attr( "content", _wppaOgDsc[mocc][_wppaCurIdx[mocc]] );
}
if ( jQuery( elm ).attr( "property" ) == "og:title" ) {
jQuery( elm ).attr( "content", _wppaNames[mocc][_wppaCurIdx[mocc]] );
}
if ( jQuery( elm ).attr( "property" ) == "og:url" ) {
jQuery( elm ).attr( "content", wppaGetCurrentFullUrl( mocc, _wppaCurIdx[mocc] ) );
}
i++;
}
// var fbc = jQuery( ".fbc-comments" );
// jQuery( fbc ).attr( "data-href", _wppaShareUrl[mocc][_wppaCurIdx[mocc]] ); // doet het niet
}
var wppaFbInitBusy = false;
function wppaFbInit() {
if ( ! wppaFbInitBusy ) {
if ( typeof( FB ) != 'undefined' ) {
wppaFbInitBusy = true; // set busy
setTimeout( '_wppaFbInit()', 10 ); // do it async over 10 ms
// FB.init( {status : true, xfbml : true });
}
else {
wppaConsoleLog( 'Fb wait' );
setTimeout( 'wppaFbInit()', 200 );
}
}
else {
wppaConsoleLog( 'Fb Init busy' );
}
}
function _wppaFbInit() {
FB.init( {status : true, xfbml : true } );
wppaFbInitBusy = false;
}
function wppaInsertAtCursor( elm, value ) {
//IE support
if ( document.selection ) {
elm.focus();
sel = document.selection.createRange();
sel.text = value;
}
//MOZILLA and others
else if ( elm.selectionStart || elm.selectionStart == '0' ) {
var startPos = elm.selectionStart;
var endPos = elm.selectionEnd;
elm.value = elm.value.substring( 0, startPos )
+ value
+ elm.value.substring( endPos, elm.value.length );
elm.selectionStart = startPos + value.length;
elm.selectionEnd = startPos + value.length;
} else {
elm.value += value;
}
}
function wppaGeoInit( mocc, lat, lon ) {
var myLatLng = new google.maps.LatLng( lat, lon );
var mapOptions = {
disableDefaultUI: false,
panControl: false,
zoomControl: true,
mapTypeControl: true,
scaleControl: true,
streetViewControl: true,
overviewMapControl: true,
zoom: 10,
center: myLatLng,
// mapTypeId: google.maps.MapTypeId.TERRAIN,
// mapTypeControlOptions: {
// mapTypeIds: [ google.maps.MapTypeId.TERRAIN, google.maps.MapTypeId.SATELLITE, google.maps.MapTypeId.HYBRID ],
// style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
// },
};
var map = new google.maps.Map( document.getElementById( "map-canvas-"+mocc ), mapOptions );
var marker = new google.maps.Marker( {
position: myLatLng,
map: map,
title:""
});
google.maps.event.addListener( map, "center_changed", function() {
// 1 second after the center of the map has changed, pan back to the
// marker.
window.setTimeout(function() {
map.panTo( marker.getPosition() );
}, 1000 );
});
}
function wppaEncode( xtext ) {
var text, result;
if ( typeof( xtext )=='undefined' ) return;
text = xtext;
result = text.replace( /#/g, '||HASH||' );
text = result;
result = text.replace( /&/g, '||AMP||' );
text = result;
// result = text.replace( /+/g, '||PLUS||' );
var temp = text.split( '+' );
var idx = 0;
result = '';
while ( idx < temp.length ) {
result += temp[idx];
idx++;
if ( idx < temp.length ) result += '||PLUS||';
}
return result;
}
function wppaUrlToId( url ) {
var temp = url.split( '/wppa/' ); // if '/wppa/' found, a wppa image
if ( temp.length == 1 ) {
temp = url.split( '/upload/' ); // if '/upload/' found, a cloudinary image
}
if ( temp.length == 1 ) {
return 0; // Still nothing, not a wppa image or ahires image, return 0
}
// Find image id
temp = temp[1];
temp = temp.split( '.' );
temp = temp[0].replace( '/', '' );
temp = temp.replace( '/', '' );
temp = temp.replace( '/', '' );
temp = temp.replace( '/', '' );
temp = temp.replace( '/', '' );
return temp;
}
function wppaPrevTags( tagsSel, tagsEdit, tagsAlbum, tagsPrev ) {
var sel = jQuery( '.'+tagsSel );
var selArr = [];
var editTag = '';
var album = jQuery( '#'+tagsAlbum ).val();
var i = 0;
var j = 0;
var result = '';
// Get the selected tags
while ( i < sel.length ) {
if ( sel[i].selected ) {
selArr[j] = sel[i].value;
j++;
}
i++;
}
// Add edit field if not empty
editTag = jQuery( '#'+tagsEdit ).val();
if ( editTag != '' ) {
selArr[j] = editTag;
}
// Prelim result
result = selArr.join();
// Sanitize if edit field is not empty or album known
if ( editTag != '' || tagsAlbum != '' ) {
jQuery( '#'+tagsPrev ).html( 'Working...' );
result = wppaAjaxSanitizeTags( result, album );
}
// Update preview text
jQuery( '#'+tagsPrev ).html( result );
}
function wppaAjaxSanitizeTags( tags, album ) {
// Create the http request object
var xmlhttp = wppaGetXmlHttp();
var url = wppaAjaxUrl+'?action=wppa&wppa-action=sanitizetags&tags='+tags+'&album='+album;
// Issue request Synchronously! !
xmlhttp.open( "GET",url,false );
xmlhttp.send();
// Return the result
return xmlhttp.responseText;
}
function wppaAjaxDestroyAlbum( album, nonce ) {
// Are you sure?
if ( confirm('Are you sure you want to delete this album?') ) {
// Create the http request object
var xmlhttp = wppaGetXmlHttp();
var url = wppaAjaxUrl+'?action=wppa&wppa-action=destroyalbum&album='+album+'&nonce='+nonce;
// Issue request Synchronously! !
xmlhttp.open( "GET",url,false );
xmlhttp.send();
// Process result
if ( xmlhttp.responseText != '' ) {
alert( xmlhttp.responseText );
}
// Reload page
document.location.reload( true );
}
return false;
}
wppaConsoleLog( 'wppa.js version '+wppaJsVersion+' loaded.', 'force' );