/*if (Fse == undefined) { var Fse = {}; }*/ window.Fse = window.Fse || {}; window.Fse.op = window.Fse.op || {}; /* on page functions name space */ Fse.uploadItemCount = 0; Fse.arPageSocketStack = []; Fse.currentPageSocket = ''; Fse.nextPageNum = 1; // JQM $(document).bind("mobileinit", function() { $.mobile.defaultPageTransition = 'fade'; $.event.special.swipe.horizontalDistanceThreshold = (screen.availWidth) / 2; /* half the screen width to activate swipe */ }); $(document).bind('pageinit', function() { // loop through page sockets determine which is visible/current on app start $('.page-socket-here').each(function(i, obj) { if ( $(this).css("display") != 'none' ) { Fse.currentPageSocket = $(this).attr('id'); } }); // testing replace of unbind/bind below $(document).on( 'expand', '[data-role="collapsible"]', Fse.expandHandler ); }); $(document).bind("pagecreate", function() { /* GETS CALLED MANY TIMES!! alert('bind pagecreate');*/ /*$(document).on( 'pagecreate', '#fse-login-page', function() { alert('on pagecreate');*/ //$('[data-role="collapsible"]').unbind('expand', Fse.expandHandler); //$('[data-role="collapsible"]').bind('expand', Fse.expandHandler); /* tinkering with scrolling to top of collapsible when expanded. a little jerky. also test in fse.expandhandler $(document).delegate(".ui-collapsible", "expand", function () { $("html, body").animate({ scrollTop: ($(this).offset().top)-50 }, 500); }); */ }); Fse.expandHandler = function(event) { var lazyLoad = $(this).attr('FSE:lazyLoad'); var lazySocket = $(this).attr('FSE:lazySocket'); var lazyLoaded = $(this).attr('FSE:lazyLoaded'); var alwaysLoad = $(this).attr('FSE:alwaysload'); if ( lazyLoaded != 'true') { if (alwaysLoad != 'true') { $(this).attr('FSE:lazyLoaded', 'true'); } if (lazyLoad && lazyLoad != '') { var lazyParts = lazyLoad.split(':'); if (lazyParts[0] == 'fn') { eval(lazyParts[1]); } else if (lazyParts[0] == 'url') { Fse.serverRequest( lazyParts[1], lazySocket, $.mobile.activePage.attr('id'), undefined, undefined, undefined, 'force'); } } } //$("html, body").animate({ scrollTop: ($(this).offset().top)-50 }, 200); } /* defunct, keep as example for possible future use $(document).bind( "pagechange", function( e, data ) { alert('test'); if ( $.mobile.activePage ) { //if ( $.mobile.activePage.attr('id') == 'page-home') { // if ($('#recent-activity-socket').attr('FSE:dirty') == 'true') { // Fse.serverRequest('index.cfm?view=home-recent-activity','recent-activity-socket','page-home',undefined,undefined,undefined,'force'); // $('#recent-activity-socket').attr('FSE:dirty','false'); // } //} } }); */ // COMMON Fse.onError = function(data, status) { alert('Oops! An error occured...'); } Fse.scrollTo = function( _top, _animateRate ) { if (!_animateRate) { _animateRate = 200 }; // 0=none $("html, body").animate({ scrollTop: _top }, _animateRate); } Fse.ajaxRequest = function(vars) { Fse.serverRequest(vars["urlString"], vars["socketId"], vars["pgId"], vars["callBack"], vars["formId"], vars["reqType"], vars["loadMode"], vars["onError"], vars["showLoading"], vars["appendContent"], vars["scrollSocketTop"], vars["scrollSocketTopOffset"], vars["validateForm"]); } Fse.serverRequest = function(urlString, socketId, pgId, callBack, formId, reqType, loadMode, onError, showLoading, appendContent, scrollSocketTop, scrollSocketTopOffset, validateForm ) { /* if only one or less instances of socketid are found OR the socketid is one of the standard "page" sockets OR the socket id is empty string THEN use upper most container as the page scope for updating the socketid. safe to do so, and necessary for the page sockets. ELSE limit the socketid manipulation to within the current page socket */ if ( $('[id='+socketId+']').length <= 1 || $('#'+socketId).hasClass('page-socket-here') || $('#'+socketId).hasClass('page-socket-here-custom') || Fse.currentPageSocket == '' ) { var _parentPageScope = 'fse-pageset-container'; } else { var _parentPageScope = Fse.currentPageSocket; } if ( validateForm == undefined ) { validateForm = true; } if ( formId == undefined ) { var formData = undefined; } else { if ( validateForm ) { $('#'+formId).validate(); // jq validate var fseValid = Fse.validateForm( formId ); // fse validate if ( $('#'+formId).valid() && fseValid ) { var formData = $('#'+formId).serialize(); } else { return false; } } else { var formData = $('#'+formId).serialize(); } } if (pgId == undefined) { pgId = $.mobile.activePage.attr('id') }; if (reqType == undefined) { reqType = "GET" }; if (loadMode == undefined) { loadMode = 'normal'; } // normal, refresh, force if ( loadMode == 'force' ) { $('#'+_parentPageScope).find('#'+socketId).attr( 'FSE:page-url', '' ); } else if ( loadMode == 'refresh' ) { //pgUrl = $('#'+pgId).attr( 'FSE:page-url' ); //$('#'+_parentPageScope).find('#'+socketId).attr( 'FSE:page-url', '' ); urlString = $('#'+_parentPageScope).find('#'+socketId).attr( 'FSE:page-url' ); $('#'+_parentPageScope).find('#'+socketId).attr( 'FSE:page-url', '' ); } if ( onError == undefined ) { onError = Fse.onError }; if ( showLoading == undefined ) { showLoading = true }; if ( appendContent == undefined ) { appendContent = false }; if ( scrollSocketTop == undefined ) { scrollSocketTop = false }; if ( scrollSocketTopOffset == undefined ) { scrollSocketTopOffset = 0 }; if ( socketId == undefined || $('#'+_parentPageScope).find('#'+socketId).attr('FSE:page-url') != urlString ) { $.ajax({ beforeSend: function() { if(showLoading){$.mobile.showPageLoadingMsg()}; }, complete: function() { if(showLoading){$.mobile.hidePageLoadingMsg()}; }, type: reqType, url: urlString+'&appver='+$('#fse-master-page').attr('FSE:appver')+'&fsevariant='+$('#fse-master-page').attr('FSE:fsevariant')+'&fsecustom='+$('#fse-master-page').attr('FSE:fsecustom')+'&fsemisc='+$('#fse-master-page').attr('FSE:fsemisc'), data: formData, cache: false, success: function(data,status,request) { data = $.trim(data); if (request.getResponseHeader("FSEunauthorized") == 'true') { alert('Session timed out.'); Fse.handleUnauthorized(); } else if(request.getResponseHeader("FSEoutdated") == 'true') { //alert('Updating your app to the latest version.'); //location.reload(true); Fse.alert('Food Service CRM','Updating your app to the
latest version.','location.reload(true);'); } else { if ( socketId ) { //$("#"+socketId).html(data); //$('[id='+socketId+']').html(data); if (appendContent) { $('#'+_parentPageScope).find('#'+socketId).append(data); } else { $('#'+_parentPageScope).find('#'+socketId).html(data); } if (pgId) { try { $("#"+pgId).trigger("pagecreate"); //$("#"+$.mobile.activePage.attr('id')).trigger("pagecreate"); // switched this back to page passed in. in most cases, don't need to pass page - uses // active. but when passed, it might not be current, so make sure this is one we recreate } catch(err) {} }; if (scrollSocketTop) { var headerHeight = $('#home-header').height(); Fse.scrollTo( ( ( $('#'+_parentPageScope).find('#'+socketId).offset().top ) - headerHeight ) + scrollSocketTopOffset ); } // touch-n-swipe image slider initialization. look for evidence of the slider in the data and init if found if ( data.search('data-elem="slider"') >= 0 || data.search('data-elem="touchnswipe"') >= 0) { try { // needed slight delay otherwise first image was wrong size setTimeout(function(){ TouchNSwipe.init(); },5); } catch(err) {} } } /* if form data with method get, add it to the socket ref url */ if (formData && reqType.toUpperCase() == "GET") { var _urlString = urlString + '&' + formData; } else { var _urlString = urlString; } $('#'+_parentPageScope).find('#'+socketId).attr( 'FSE:page-url', _urlString ); $('#'+_parentPageScope).find('#'+socketId).attr( 'FSE:y-offset', '0' ); $('#'+_parentPageScope).find('#'+socketId).attr( 'FSE:dirty','false'); $( '#home-header' ).css( 'position', 'fixed' ); /* some ajax requests mess with the fixed header and set it to absolute. this sets it back to fixed. */ if (callBack) { callBack(data,status,request); }; } }, error: onError }); } else { if (callBack) { callBack(); }; } return true; } Fse.validateForm = function(formId) { var noErrors = true; $('#'+formId).find('.radio-toolbar-float, .cbx-toolbar-float').each(function( i ) { if ( $(this).find("input:radio:enabled").length > 0 || $(this).find("input:checkbox:enabled").length > 0 ) { if ( $(this).find("input:radio:checked").length > 0 || $(this).find("input:checkbox:checked").length > 0 ) { var noSelections = false; } else { var noSelections = true; } } else { var noSelections = false; } if ( noSelections && $(this).hasClass('required') ) { if ($(this).next().hasClass("fseerror")) { $(this).next().show(); } else { var errorText = $(this).attr("fse:message"); if (!errorText) { errorText = "This field is required."; } // add after, not within, so the error still shows in the event the container is hidden $( this ).after( '
'+errorText+'
' ); } noErrors = false; } else { if ($(this).next().hasClass("fseerror")) { $(this).next().hide(); } } }); return noErrors; } Fse.loadPage = function( pgId, pgSocket, pgUrl, loadMode, changePageParams, callBack ) { // NOTE: obsolete function for current approach. Replace with Fse.loadSocket(). if (loadMode == undefined) { loadMode = 'normal'; } // normal, refresh, force var fnCallback = function() { if (callBack) { callBack(); }; $.mobile.changePage( '#'+pgId, changePageParams ); // set any presets to collapsed false to true, else ajax calls to page with pagecreate after // will reset to the default open section $("div:jqmData(collapsed='false')").each(function (i) { $(this).attr("data-collapsed","true"); }); } Fse.serverRequest( pgUrl, pgSocket, pgId, fnCallback, undefined, undefined, loadMode ); } Fse.loadSocket = function( socketId, pgUrl, loadMode, callBack, formId, reqType ) { // although named loadSocket, think of it as loadPageSocket, as in page-1-socket, page-2-socket, etc. // socketId defined - special base starting pt, such as prod search pg. use generic sockets from that pt forward. // socketId 'reset' - reset to the beginning, pg 1. do this from main menu selections. // socketId 'next' - use next available generic pg socket. progressing outward. // socketId undefined or 'current' - use current page socket, ie paging through record set var _pgTransition = ( socketId != 'current' ); // pg transition for all but 'current' /* find socket to use, based on search string passed. ie find:my-search-string. searches the socket url string for a match. if no match, then defaults to 'next' socket. */ if ( socketId.substring(0,5).toLowerCase() == "find:" ) { var _findSocketId = 'next'; var _searchStr = socketId.substring(5,30).toLowerCase(); $('.page-socket-here').each(function(i, obj) { var _socketUrl = $(this).attr('FSE:page-url'); if ( _socketUrl && _socketUrl.toLowerCase().indexOf(_searchStr.toLowerCase()) >= 0 ) { _findSocketId = $(this).attr( "id" ); } }); socketId = _findSocketId; } if ( socketId == 'reset' ) { socketId = 'page-1-socket'; Fse.nextPageNum = 2; Fse.arPageSocketStack = []; /* scrum 17677 */ $('#'+Fse.currentPageSocket).hide(); Fse.currentPageSocket = ''; } else if ( socketId == 'next' ) { socketId = 'page-' + Fse.nextPageNum + '-socket'; Fse.nextPageNum = Fse.nextPageNum + 1; if (Fse.nextPageNum > 10) { alert('Error: socket count exceeded.'); } } else if ( socketId == undefined || socketId == 'current' || socketId == 'currentfade') { socketId = Fse.currentPageSocket; } else { /* defined special start point, reset generic pg num to continue from this point */ Fse.nextPageNum = 1; Fse.arPageSocketStack = []; /* scrum 17677 */ $('#'+Fse.currentPageSocket).hide(); Fse.currentPageSocket = ''; } if (loadMode == undefined) { loadMode = 'normal'; } // normal, refresh, force if ( loadMode == 'force' ) { $('#'+socketId).attr( 'FSE:page-url', '' ); } else if ( loadMode == 'refresh' ) { pgUrl = $('#'+socketId).attr( 'FSE:page-url' ); $('#'+socketId).attr( 'FSE:page-url', '' ); } if ( $('#'+socketId).attr('FSE:page-url') != pgUrl ) { var lsCallback = function() { //if (socketId != Fse.currentPageSocket) { if (_pgTransition) { Fse.showPage(socketId); } else { Fse.showPage(socketId, 'none'); } if (callBack) { callBack(); }; $('#'+socketId).attr('FSE:page-url', pgUrl ); } Fse.serverRequest( pgUrl, socketId, undefined, lsCallback, formId, reqType ); } else { Fse.showPage(socketId); if (callBack) { callBack(); }; } } Fse.hideShow = function( hideId, showId, adjustPosition ) { if ( Fse.currentPageSocket == '' ) { var _parentPageScope = 'fse-pageset-container'; } else { var _parentPageScope = Fse.currentPageSocket; } if (adjustPosition == undefined) { adjustPosition = false; } if ( $('#'+_parentPageScope).find('#'+hideId).is(":visible") ) { $('#'+_parentPageScope).find('#'+hideId).attr('FSE:y-offset',window.pageYOffset) $('#'+_parentPageScope).find('#'+hideId).hide(); } if (showId) { var yOffset = $('#'+_parentPageScope).find('#'+showId).attr('FSE:y-offset'); $('#'+_parentPageScope).find('#'+showId).fadeIn('slow', function() { // put post fade code here if ( (yOffset == undefined || yOffset == '0') && adjustPosition ) { window.scrollTo(0,$('#'+_parentPageScope).find('#'+showId).offset().top-60); //$('body,html').animate({ scrollTop: $('#'+showId).offset().top-60 }, 0); } else if (adjustPosition) { window.scrollTo(0,yOffset); //$('body,html').animate({ scrollTop: yOffset }, 0); } }); } } Fse.emptyPages = function(pgScope,preservePg1) { // all (generic and custom) or just generic pgs. option to skip over pg 1 socket to // avoid taking unecessary hit on heavy results page, like objective dashboard. if (preservePg1 == undefined) { preservePg1 = false; } if (pgScope == undefined || pgScope == 'all') { var _className = "[class^='page-socket-here']"; window.Fse.op = {}; /* clean up on page name space while at it */ } else { var _className = '.page-socket-here'; }; // loop through page sockets and clean them out $(_className).each(function(i, obj) { if (!preservePg1 || $(this).attr( 'id') != 'page-1-socket') { $(this).empty(); $(this).attr( 'FSE:page-url', '' ); $(this).attr( 'FSE:y-offset', '0' ); } }); } Fse.emptyPage = function(pgId) { $("#"+pgId).empty(); $("#"+pgId).attr( 'FSE:page-url', '' ); $("#"+pgId).attr( 'FSE:y-offset', '0' ); } Fse.popPage = function( refreshTransition ) { if (refreshTransition == undefined) { refreshTransition = 'fade'; } var bPopped = false; if ( Fse.arPageSocketStack.length > 0 ) { pageSocketId = Fse.arPageSocketStack.pop(); if (Fse.nextPageNum > 1) { Fse.nextPageNum = Fse.nextPageNum - 1; } var callBack = function() { $('#'+pageSocketId).attr( 'FSE:y-offset', _curY ); Fse.transitionPage(pageSocketId,true,'back'); } if ($('#'+pageSocketId).attr('FSE:dirty') == 'true' ) { var _curY = $('#'+pageSocketId).attr( 'FSE:y-offset' ); Fse.serverRequest(undefined, pageSocketId, undefined, callBack, undefined, undefined, 'refresh' ); } else { Fse.transitionPage(pageSocketId,true,'back'); } bPopped = true; /* scrum 17677 */ } else { try { if ($("#main-menu-collapsible").hasClass('main-menu-hide')) { Fse.toggleMainMenu(true,true) bPopped = true; } else { // already at home pg, return false and let android wrapper handle next action bPopped = false; } } catch(err) { bPopped = false; } /* end new */ } return bPopped; }; Fse.onHomePage = function() { return !$("#main-menu-collapsible").hasClass('main-menu-hide'); } Fse.showPage = function( pageSocketId, refreshTransition ) { if (refreshTransition == undefined) { refreshTransition = 'fade'; } // new 4/11/13: same socket, re-show it, but leave variables alone and exit if (pageSocketId == Fse.currentPageSocket) { Fse.setBackbtnText(pageSocketId); $("#right-panel").removeClass('main-menu-hide'); if (refreshTransition == 'fade') { $('#'+pageSocketId).hide(); $('#'+pageSocketId).fadeIn(); } else if (refreshTransition == 'none') { $('#'+pageSocketId).show(); } else { $('#'+pageSocketId).show(); } //window.scrollTo(0,yOffset); return true; } if ( pageSocketId == undefined ) { if ( Fse.arPageSocketStack.length > 0 ) { pageSocketId = Fse.arPageSocketStack.pop(); if (Fse.nextPageNum > 1) { Fse.nextPageNum = Fse.nextPageNum - 1; } var callBack = function() { $('#'+pageSocketId).attr( 'FSE:y-offset', _curY ); if (_backTxt) { $('#'+pageSocketId).find('#backbtn-txt').html( _backTxt ); }; Fse.transitionPage(pageSocketId,true,'back'); } if ($('#'+pageSocketId).attr('FSE:dirty') == 'true' ) { var _curY = $('#'+pageSocketId).attr( 'FSE:y-offset' ); var _backTxt = $('#'+pageSocketId).find('#backbtn-txt').attr( 'FSE:backbtn-txt' ); Fse.serverRequest(undefined, pageSocketId, undefined, callBack, undefined, undefined, 'refresh' ); } else { Fse.transitionPage(pageSocketId,true,'back'); } } else { /* new 12/12/2018, scrum 24914 */ if ($("#main-menu-collapsible").hasClass('main-menu-hide')) { Fse.toggleMainMenu(true,true); } } } else { /* scrum 17677 */ /*Fse.arPageSocketStack.push(Fse.currentPageSocket);*/ if (Fse.currentPageSocket != '') { Fse.arPageSocketStack.push(Fse.currentPageSocket) } else { Fse.arPageSocketStack = [] } if (Fse.arPageSocketStack.length > 20) { Fse.arPageSocketStack.shift(); } Fse.setBackbtnText(pageSocketId); Fse.transitionPage(pageSocketId); } } Fse.transitionPageTEST1 = function(pageSocketId,emptyCurrent) { if (!emptyCurrent) { emptyCurrent = false; } if (pageSocketId) { var yOffset = $('#'+pageSocketId).attr('FSE:y-offset'); $('#'+Fse.currentPageSocket).attr('FSE:y-offset',window.pageYOffset) var fadeoutCallback = function() { alert(1); $("#right-panel").removeClass('main-menu-hide'); $('#'+pageSocketId).fadeIn(400,fadeinCallback); } var fadeinCallback = function() { //alert(2); window.scrollTo(0,yOffset); //Fse.scrollTo(yOffset); } //$('#'+Fse.currentPageSocket).fadeOut(400,fadeoutCallback); //$('#'+Fse.currentPageSocket).fadeOut(400,function() {alert('hey');}); $('#'+Fse.currentPageSocket).hide(); //window.scrollTo(0,yOffset); $('#'+pageSocketId).fadeIn(400,fadeinCallback); // if going back to prev pg, empty out current page to keep memory/dom clean if (emptyCurrent) { Fse.emptyPage(Fse.currentPageSocket); } Fse.currentPageSocket = pageSocketId; } } Fse.transitionPageTEST2 = function(pageSocketId,emptyCurrent) { if (!emptyCurrent) { emptyCurrent = false; } if (pageSocketId) { var yOffset = $('#'+pageSocketId).attr('FSE:y-offset'); $('#'+Fse.currentPageSocket).attr('FSE:y-offset',window.pageYOffset) if (Fse.currentPageSocket != '') { var fadeoutCallback = function() { $('#'+Fse.currentPageSocket).hide(); $('#'+pageSocketId).fadeTo(0,0,fadeinCallback); } var fadeinCallback = function() { $("#right-panel").removeClass('main-menu-hide'); $('#'+pageSocketId).show(); window.scrollTo(0,yOffset); $('#'+pageSocketId).fadeTo(1000,1); } $('#'+Fse.currentPageSocket).fadeTo(5000,0,fadeoutCallback); } else { $('#'+pageSocketId).fadeIn(); } // if going back to prev pg, empty out current page to keep memory/dom clean if (emptyCurrent) { Fse.emptyPage(Fse.currentPageSocket); } Fse.currentPageSocket = pageSocketId; } } Fse.transitionPageTEST3 = function(pageSocketId,emptyCurrent) { if (!emptyCurrent) { emptyCurrent = false; } if (pageSocketId) { var yOffset = $('#'+pageSocketId).attr('FSE:y-offset'); $('#'+Fse.currentPageSocket).attr('FSE:y-offset',window.pageYOffset) if (Fse.currentPageSocket != '') { //$('#'+Fse.currentPageSocket).fadeTo(400,0,function(){$('#'+Fse.currentPageSocket).css('display','none')}); $('#'+Fse.currentPageSocket).hide(); $("#right-panel").removeClass('main-menu-hide'); $('#'+pageSocketId).fadeTo(0,0); $('#'+pageSocketId).show(); $('#'+pageSocketId).fadeTo(400,1); } else { //$('#'+pageSocketId).fadeIn(); $('#'+pageSocketId).fadeTo(0,0); $('#'+pageSocketId).show(); $('#'+pageSocketId).fadeTo(400,1); } // if going back to prev pg, empty out current page to keep memory/dom clean if (emptyCurrent) { Fse.emptyPage(Fse.currentPageSocket); } Fse.currentPageSocket = pageSocketId; } } Fse.transitionPageTEST4 = function(pageSocketId,emptyCurrent) { /* FOR NOW, GOING WITH BRUTE FORCE HIDE/SHOW - NO FADES. IOS9 HAS MADE THINGS HORRIBLY SLOW!!! */ if (!emptyCurrent) { emptyCurrent = false; } if (pageSocketId) { var yOffset = $('#'+pageSocketId).attr('FSE:y-offset'); $('#'+Fse.currentPageSocket).attr('FSE:y-offset',window.pageYOffset) $('#'+Fse.currentPageSocket).hide(); $("#right-panel").removeClass('main-menu-hide'); $('#'+pageSocketId).show(); window.scrollTo(0,yOffset); // if going back to prev pg, empty out current page to keep memory/dom clean if (emptyCurrent) { Fse.emptyPage(Fse.currentPageSocket); } Fse.currentPageSocket = pageSocketId; } } Fse.transitionPage = function(pageSocketId,emptyCurrent,direction) { /* if ($('#fse-master-page').attr('FSE:demologin') == 'yes') { Fse.transitionPageNewMethod(pageSocketId,emptyCurrent,direction); } else { Fse.transitionPageOldMethod(pageSocketId,emptyCurrent,direction); } */ if (Fse.getDeviceType() == 'phone') { Fse.transitionPageNewMethod(pageSocketId,emptyCurrent,direction); } else { /* slide transition is ok on tablet, but little slow. also slide right goes over nav and looks a little funny */ Fse.transitionPageOldMethod(pageSocketId,emptyCurrent,direction); } } Fse.transitionPageOldMethod = function(pageSocketId,emptyCurrent) { if (!emptyCurrent) { emptyCurrent = false; } if (pageSocketId) { var yOffset = $('#'+pageSocketId).attr('FSE:y-offset'); $('#'+Fse.currentPageSocket).attr('FSE:y-offset',window.pageYOffset) $('#'+Fse.currentPageSocket).hide(); $("#right-panel").removeClass('main-menu-hide'); $('#'+pageSocketId).fadeIn(); window.scrollTo(0,yOffset); // if going back to prev pg, empty out current page to keep memory/dom clean if (emptyCurrent) { Fse.emptyPage(Fse.currentPageSocket); } Fse.currentPageSocket = pageSocketId; } } Fse.transitionPageNewMethod = function(pageSocketId,emptyCurrent,direction) { if (!emptyCurrent) { emptyCurrent = false; } if (!direction) { direction = 'forward'; } if (pageSocketId) { var yOffset = $('#'+pageSocketId).attr('FSE:y-offset'); var divWidth = $('#'+pageSocketId).width(); $('#'+Fse.currentPageSocket).attr('FSE:y-offset',window.pageYOffset) $('#'+Fse.currentPageSocket).hide(); $("#right-panel").removeClass('main-menu-hide'); if (direction.toLowerCase() == 'forward') { $('#'+pageSocketId).css("margin-left",+divWidth); $('#'+pageSocketId).show(); $('#'+pageSocketId).animate({"margin-left": '-='+divWidth},150,'linear',function(){}); } else { $('#'+pageSocketId).css("margin-left",-divWidth); $('#'+pageSocketId).show(); $('#'+pageSocketId).animate({"margin-left": '+='+divWidth},150,'linear',function(){}); } //$("#right-panel").removeClass('main-menu-hide'); window.scrollTo(0,yOffset); // if going back to prev pg, empty out current page to keep memory/dom clean if (emptyCurrent) { Fse.emptyPage(Fse.currentPageSocket); } Fse.currentPageSocket = pageSocketId; } } Fse.setBackbtnText = function(newPageSocketId) { if ( newPageSocketId != Fse.currentPageSocket ) { _backPgId = Fse.currentPageSocket; } else { _backPgId = Fse.arPageSocketStack[Fse.arPageSocketStack.length-1]; } var _backTxt = $('#'+_backPgId).find('.fse-page-info').attr( 'FSE:descrip' ); if (_backTxt == undefined) { _backTxt = 'Back'; } $('#'+newPageSocketId).find('#backbtn-txt').html( _backTxt ); $('#'+newPageSocketId).find('#backbtn-txt').attr( 'FSE:backbtn-txt', _backTxt ); } Fse.dirtyPage = function( pageSocketId, dirtySetting ) { if (pageSocketId == 'previous') { pageSocketId = Fse.arPageSocketStack[Fse.arPageSocketStack.length-1]; } if (pageSocketId == 'current') { pageSocketId = Fse.currentPageSocket; } if (dirtySetting==undefined) { dirtySetting = 'true'; } $('#'+pageSocketId).attr('FSE:dirty',dirtySetting); } Fse.showPopupDialog = function(urlString, maxWidth, minWidth, dismissible ) { // 12-6-13 testing "history: false" to see if it helps screen flicker when closing popups if (!maxWidth) { maxWidth = ''; } if (!minWidth) { minWidth = ''; } if (dismissible == undefined) { dismissible = false; } var openDialog = function() { $('#fse-popup-dialog').css({"max-width":maxWidth}); $('#fse-popup-dialog').css({"min-width":minWidth}); /* trying transition:fade. was transition:none */ $('#fse-popup-dialog').popup({ transition: 'fade', tolerance: '0,10,0,10', dismissible: dismissible, history: false }); try { Fse.popupDialogInit(); } catch(err) { } $('#fse-popup-dialog').popup('open'); if ( $('#fse-popup-dialog').offset().top < window.pageYOffset ) { Fse.scrollTo( $("#fse-popup-dialog").offset().top ); } else { $('#fse-popup-dialog').popup("reposition", {positionTo: 'origin'}); } // ensure the popup is centered horizontally. maxwidth can throw it off. var windowWidth = $(window).width(); var popupWidth = $("#fse-popup-dialog").width(); var popupPadding = 30; var _left = (windowWidth - (popupWidth+popupPadding))/2; $("#fse-popup-dialog-popup").css({ "left" : _left }); // important to center the container fse-popup-dialog-popup } if ( urlString.indexOf("id:") >= 0 ) { /* populate popup from client side element. CAUTION: this should only be done with simple displays that do not have IDs that will be referenced in other code! Forms are bad idea. The copy of the element will create duplicate IDs and cause issues. */ var idParts = urlString.split(':'); var _puContentId = idParts[1]; $('#fse-popup-dialog-socket').html( $('#'+ _puContentId).html() ); openDialog(); } else { Fse.serverRequest(urlString, 'fse-popup-dialog-socket', undefined, openDialog, undefined, undefined, 'force'); } } Fse.closePopupDialog = function(confirmClose, dialogId, confirmMessage) { if (dialogId == undefined) { dialogId = 'fse-popup-dialog'; } if (confirmMessage == undefined) { confirmMessage = 'Are you sure?'; } if (confirmClose == "true" || confirmClose == true) { if (!confirm(confirmMessage)) { return false; } } $('#'+dialogId).popup('close'); } Fse.chainPopupDialog = function( openDialogString, waitTime ) { if (waitTime == undefined) { waitTime = 200; } Fse.closePopupDialog(); setTimeout(function() { Fse.showPopupDialog( openDialogString ); }, waitTime); } // SOUND, MISC Fse.audioPlayDing = function() { var ding = document.getElementById('audio-ding'); ding.play(); } Fse.alert = function(ttl,msg,okOnclick) { _activePg = $.mobile.activePage.attr('id'); if (ttl != '') { $('#'+_activePg+'-popup-hdr').show(); $('#'+_activePg+'-popup-ttl').html(ttl); } else { $('#'+_activePg+'-popup-hdr').hide(); } $('#'+_activePg+'-popup-msg').html(msg); if (okOnclick) { $('#'+_activePg+'-popup-ok').attr("onclick","$('#"+_activePg+"-popup').popup('close');" + okOnclick); } else { $('#'+_activePg+'-popup-ok').attr("onclick","$('#"+_activePg+"-popup').popup('close');"); } $('#'+_activePg+'-popup' ).popup( "open" ); } Fse.confirm = function(msg,okOnclick) { $('#fse-confirm-popup-msg').html(msg); $('#fse-confirm-popup-ok').attr('onclick','$(\'#fse-confirm-popup\').popup(\'close\');' + okOnclick); $('#fse-confirm-popup' ).popup('open'); }