function printloadconfirmation (loadid) { window.open('load.php?edit='+loadid+'&print=confirmation') } function printinvoice(loadid) { window.open('load.php?edit='+loadid+'&print=invoice') } function cookie_set(cname, cvalue, exdays) { var d = new Date(); if(exdays!='') { d.setTime(d.getTime() + (exdays*24*60*60*1000)); } var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function cookie_delete(cname) { var expires = "expires=Thu, 01 Jan 1970 00:00:00 UTC"; document.cookie = cname + "=;" + expires + ";path=/"; } function cookie_get(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for(var i = 0; i 0) { clearTimeout(timeout); } var timeout = setTimeout(function(){ updatefield_fromurl(url,obj,parentselector,data) },100); $(obj).data('updatefield_fromurl_timeout', timeout); return; } { var container = $(obj).closest('#modal'); var count = container.data('updatefield-count') if(!count) count=0; count++; container.data('updatefield-count',count) //console.log("updatefield-count",count); }// add the update field count to the modal if we are inside of it $(obj).data('updatefield_fromurl_processing',true) fn({ 'url': updatefieldurl , data: data , error: function(ret) { $(obj).data('updatefield_fromurl_processing',false) updatefield_fromurl_error(obj, parentselector, ret) } , success: function(ret) { $(obj).data('updatefield_fromurl_processing',false) var err = false if(ret.toLowerCase().indexOf('error')>=0) err = true if(ret.toLowerCase().indexOf('die:')>=0) err = true if(ret.toLowerCase().indexOf('fail')>=0) err = true if(ret.toLowerCase().indexOf('forcedisplay')>=0) err = true if(ret.toLowerCase().indexOf('postunset')>=0) //being told to unset these post arguments { retjson = JSON.parse(ret);//expecting data struct for ex. from PHP of json_encode(array(postunset => array(postarg1, postarg2, ...))) retjson.postunset.forEach(function(postarg) { console.log(postarg); $('[name='+postarg+']').val(''); }); } if(err) { updatefield_fromurl_error(obj, parentselector, ret) } else { if(obj.hasClass('objectform-reloadfield')) { var frm = $(parentselector).closest('form'); var reloadinput = document.createElement('input'); reloadinput.setAttribute('type', 'hidden'); reloadinput.setAttribute('name', 'formreload'); reloadinput.setAttribute('value', $(obj).attr('name')); frm.append(reloadinput); $(frm).submit(); return; } else obj.addClass('updatefield-success'); } } }) } function updatefield_fromurl_error(obj,parentselector,ret) { if(ret.responseText) ret = ret.responseText; try { var errors = JSON.parse(ret); var objerror = errors[obj.attr('name')]; if(obj.attr('erroroutput') && objerror === undefined) { obj = $(obj).closest(parentselector).find(obj.attr('erroroutput')); ; obj.addClass('updatefield-success') } for(var field in errors) { var fieldobj = $(obj).closest(parentselector).find('[name=\"'+field+'\"]'); if(fieldobj.attr('erroroutput')) { fieldobj = $(obj).closest(parentselector).find(fieldobj.attr('erroroutput')); ; } fieldobj.addClass('updatefield-failure1'); fieldobj.after("
"+errors[field]+ "
"); } }catch(e) { //console.log(e); obj.addClass('updatefield-failure2'); obj.after("
"+ret+"
"); } } function init_selfcontained_ui() { // this will take any element that has a class of selfcontained-ui and hijack it to post to itself $(".selfcontained-ui").find("form").on("submit",function(event){ event.preventDefault(); var data=$(this).serialize() var posturl=$(this).attr('action'); if(!posturl) posturl="?"; that=$(this) $.post(posturl,data,function(response){ if(!$(that).find('.form-notice').length) { $(that).prepend("
") } $(that).find('.form-notice').html(response); }) }) } function fixheaderonscroll() { $(window).scroll(function(){ console.warn($(window).scrollTop()) if($(window).scrollTop()>50) $("header.header-fixed").css({ 'overflow': 'hidden' }) else $("header.header-fixed").css({ 'overflow': 'visible' }) }) } //todo // need to get rid of this from app.js. document.addEventListener("DOMContentLoaded", function() { if($("#loadlist").length) $("#loadlist").DataTable({ "columnDefs": [ { "orderable": false, "targets":[0] } ], order: [[1, 'desc']] }); if($("#userlist").length) $("#userlist").DataTable({ "columnDefs": [ { "orderable": false, "targets":[0,1] } ], order: [[3, 'desc']] }); // make sure the drop menu is able to be clicked from the lis $("#header ul.menu>li>ul>li").click(function(event){ if($(this).find("a").length) { hreftogo=$(this).find("a").attr('href'); window.location.href=hreftogo } }) // alert("page ready") // set submit and cancel buttons to be clickable outside of text $("div[btn-icon]").click(function(event){ if($(this).hasClass('no-hijack')) return true; if($(event.target).attr("type")=="submit") // this will keep the endless loop from running against the click return; $(this).find("input[type=submit]").click(); $(this).css({ "outline": "5px auto -webkit-focus-ring-color", "outline-offset":" -2px" }) $(this).find("input[type=submit]").css({ "outline": "none", "outline-offset":" 0" }) }) if($(".dashboard-menu").length) { // this will handle the side bar when it exists and always make sure it stretches the entire height of the page $('body').on('change',setdashboardmenuheight()); $('body').on('click',setdashboardmenuheight()); } // tool tips $(".help-tooltip").hover(function(){ //$(this).find(".innercontent").addClass("tooltip-open") $(this).find(".innercontent").addClass('tooltip-open'); },function(){ $(this).find(".innercontent").removeClass("tooltip-open") }) }); function manage_viewport_units() { return; var ua=navigator.userAgent if(ua.indexOf("Safari")>0) { var viewportWidth = $(window).width(); // Adds element for visual conformation of varible change $('body').prepend('Viewport Width: ' + viewportWidth + ''); // Adds style element to add CSS to base the REM unit off of $('head').append(''); // Adds CSS into the style element $('style.viewport-css').text('html {font-size:' + viewportWidth + 'px;}'); // Changes CSS variable and style when resized $(window).resize(function() { var viewportWidth = $(window).width(); $('style.viewport-css').text('html {font-size:' + viewportWidth + 'px;}'); $('.port-size').text('Viewport Width: ' + viewportWidth + 'px'); }); } } function init_panels() { var panels=$j("[panel]"); $j.each(panels,function(pi,po) { var heading=$j(po).find("[panel-title]"); var hidebutton="
×
"; var headclone=$j(heading).clone(); $j(heading).remove(); var pcontent=$j(po).html(); $j(po).html("
"+pcontent+"
"); $j(po).prepend(headclone) $j(po).find("[panel-title]").append(hidebutton); $j(po).find(".panelclose").click(function() { var tt=$j(po); var hideablecontent=tt.closest('[panel]').find('.panel-hideable-content') if($j(hideablecontent).is(":visible")) { $j(hideablecontent).hide() } else { $j(hideablecontent).show() } }) }) } function init_tabbedpanels(activetabbedpanel) { var tpgexists=$(".tabbed-panel-container").length if(!tpgexists) return; var tpg=$(".tabbed-panel-container"); $.each($(tpg),function(tpgi,tpgo) { var tps=$(tpgo).find("[tabbed-panel]"); var tpsgroupname=$(tpgo).attr("tp-groupname") $(tpgo).prepend("
"); var tabcnt=0; $.each($(tps),function(tpsi,tpso) { var tptabname=$(tpso).attr('tp-name'); var tptablabel=$(tpso).attr('tp-label'); var tpopencallback=$(tpso).attr('tp-opencallback'); var activetabclass=''; var activetabbedpanelclass=''; switch (true) { case (typeof activetabbedpanel == 'undefined'): case (activetabbedpanel.trim() == ''): if (tabcnt > 0) break; // if this is the case the first tab is the default tab case (activetabbedpanel == tptabname): activetabclass='tab-active'; activetabbedpanelclass="tabbed-panel-active"; } $(tpso).addClass(activetabbedpanelclass); var thistabhtml="
"+tptablabel+"
"; $(tpso).closest('.tabbed-panel-container').find(".tabbed-panel-tabgroup").append(thistabhtml); $(tpso).hide(); $(tpso).closest('.tabbed-panel-container').find(".tabbed-panel-active").show(); tabcnt++; }); }); $(".tabbed-panel-container").find('.tabbed-panel-tabgroup').find("[tp-tab]").click(function(){ var tpname=$(this).attr("tp-tab-name"); var closesttabgroup=$(this).closest(".tabbed-panel-container"); $(closesttabgroup).find(".tab-active").removeClass("tab-active") $(this).addClass("tab-active"); $(closesttabgroup).find("[tabbed-panel].tabbed-panel-active").removeClass('tabbed-panel-active'); $(closesttabgroup).find("[tabbed-panel]").hide(); $(closesttabgroup).find("div[tp-name='"+tpname+"']").show().addClass('tabbed-panel-active'); }); } function set_search_columns(){ $($("table").find("thead tr")[0]).after("") $.each($("table").find("tbody tr td"),function(){ if($(this).text()!='' || $(this).find("input").length==0) $("#dt-searchrow").append("") }) } function columnsearch(col) { var indy=$(col).parent().index() var stext=$(col).val() $.each($("table").find("tbody tr td"),function(){ var thisindy=$(this).index() if(thisindy==indy) { if(stext==$(this).text() || $(this).text().indexOf(stext)>-1 ) { //$(this).closest("tr").css({"border":"2px solid green"}) $(this).closest("tr").show(); }else { // $(this).closest("tr").css({"border":"2px solid red"}) $(this).closest("tr").hide() } } }) } document.addEventListener("DOMContentLoaded", function() { // set_search_columns(); set_submenuclicktosetactive(); set_mobilemenu_trigger(); set_input_focus_ui(); set_accordions(); // in the repoerts area , prevent the enter button from submitting the form $("#report-table").find("tr:nth-child(1)").find("input").on("keypress",function(ev){ if(ev.which == 13) { ev.preventDefault(); } }) if (window.location.pathname!='/index.php') $(".panel-menu").unbind() $(".panel-menu").click(function() { parent=$(this).parent(); if($(parent).find(".panel-menu .panelmenucontent").is(":visible")) action='hide'; else action='show'; $(".panelmenucontent").hide(); if(action=="hide") $(parent).find(".panel-menu .panelmenucontent").hide(); else $(parent).find(".panel-menu .panelmenucontent").show(); }); }) function setdashboardmenuheight() { if($(".dashboard-overview").closest("#modal")) return; setTimeout(function(){ console.warn("We are increasing out dashboard heeight..... Dont d o this in a modal") dashheight=$(".dashboard-overview").height(); menuheight=$(".dashboard-menu").height(); if(dashheight>menuheight) { $(".dashboard-menu").css({"height":parseInt($(".dashboard-overview").height())}) } else if(dashheight 0) { //console.log("Setting the enhanced inputs") // if we find two inputs in a td add a class to control this $.each($("form table").find('input[type=text]'),function(){ //console.log($(this).closest("td").children("div").length); if($(this).closest("#multipledatepicker-wrapper").length >0 ) return; if($(this).hasClass('input-ui-disallow') || $(this).closest('tr').hasClass('input-ui-disallow')) return; if(!$(this).hasClass('double-input-ui-disallow')) if($(this).closest("td").find('input[type=text]').length ==2) $(this).closest("tr").addClass("double-input-ui"); if(!$(this).hasClass('double-input-ui-disallow')) if($(this).closest("td").children("div").length >1) $(this).closest("tr").addClass("double-input-ui"); $(this).addClass('focusedinput') }) $.each($("form table").find('input[type=file]'),function(){ //console.log($(this).closest("td").children("div").length); if($(this).closest("#multipledatepicker-wrapper").length >0 ) return; if($(this).hasClass('input-ui-disallow') || $(this).closest('tr').hasClass('input-ui-disallow')) return; if($(this).closest("td").children("div").length >1) $(this).closest("tr").addClass("file-input-ui"); }) $.each($("form table").find('select'),function(){ if($(this).closest("#multipledatepicker-wrapper").length >0 ) return; if($(this).hasClass('input-ui-disallow') || $(this).closest('tr').hasClass('input-ui-disallow')) return; if(!$(this).hasClass('double-input-ui-disallow')) if($(this).closest("td").find('input[type=text]').length ==2) $(this).closest("tr").addClass("double-input-ui"); if(!$(this).hasClass('double-input-ui-disallow')) if($(this).closest("td").children('div').length >1) $(this).closest("tr").addClass("double-input-ui"); }) $.each($("form table").find('[btn-icon-button]'),function(){ if($(this).closest("#multipledatepicker-wrapper").length >0 ) return; if($(this).hasClass('input-ui-disallow') || $(this).closest('tr').hasClass('input-ui-disallow')) return; if(!$(this).hasClass('double-input-ui-disallow')) { if($(this).closest('tr').find('th').is(':empty')) { $(this).closest("tr").addClass("fullwidth-ui"); return; }else { if($(this).closest("td").find('input[type=text]').length ==2) $(this).closest("tr").addClass("double-input-ui"); } } if(!$(this).hasClass('double-input-ui-disallow')) { if($(this).closest("td").children().length >1) $(this).closest("tr").addClass("double-input-ui"); } if(!$(this).hasClass('fullwidth-ui-disallow')) { if($(this).closest("td").children('div').length ==1) $(this).closest("tr").addClass("fullwidth-ui"); } }) $.each($("form table").find('[btn-icon-input]'),function(){ if($(this).closest("#multipledatepicker-wrapper").length >0 ) return; if($(this).hasClass('input-ui-disallow') || $(this).closest('tr').hasClass('input-ui-disallow')) return; if(!$(this).hasClass('double-input-ui-disallow')) if($(this).closest("td").find('input[type=text]').length ==2) $(this).closest("tr").addClass("double-input-ui"); if(!$(this).hasClass('double-input-ui-disallow')) if($(this).closest("td").children('div').length >1) $(this).closest("tr").addClass("double-input-ui"); if(!$(this).hasClass('fullwidth-ui-disallow')) if($(this).closest("td").children('div').length ==1) $(this).closest("tr").addClass("fullwidth-ui"); }) $.each($("form table").find('input[type=password]'),function(){ //console.log($(this).closest("td").children("div").length); $(this).addClass('focusedinput') }) $.each($("form table").find('input,select,textarea'),function(){ // we need classes or attributed on these things - anything so they can be targeted in css $(this).closest('tr').attr('formfield',$(this).attr('name')) }) $.each($("form table").find('input[name=countrymapposition]'),function(){ //console.log($(this).closest("td").children("div").length); $(this).addClass('focusedinput') $(this).closest("tr").addClass("fullwidth-ui"); $(this).closest("td").css({"display":"block"}); }) $.each($('.focusedinput'),function(){ if($(this).closest('form').attr('action')=='object.php?type=schedule&add=1&expand=') return; if(!$(this).closest(".fi-hl").length) { $(this).wrap("
"); $(this).closest('.fi-hl').append(""); } }) /* to be imlemented when labels are ready console.log('I am in doc ready and being called') $.each($('input[type=text]'),function(){ if(!$(this).closest('form').hasClass('enhanced-user-interface')) $(this).closest('form').addClass('enhanced-user-interface') $(this).addClass('focusedinput2') $(this).attr('id',$(this).attr('name')) $(this).wrap('') }); */ } } function manage_footer_positioning() { var ftr=$(".sticktobottom") if($(ftr).closest("#pagecontent").length) { $("body").append($(ftr)) } } document.addEventListener("DOMContentLoaded", function(event) { //do work manage_footer_positioning(); setTimeout(function(){ set_focusedinputs() },100) }) function add_searchablecolumns_table(skiparray) { var dt=$("table.dataTable"); } function make_data_tables(tableid,forcepagesearch,callbackfunc) { var lengthdefinition='"lengthMenu": [[100, 500, -1], [100, 500, "All"]]'; usespecialcolumnsort=1; if($("#"+tableid).find('tr').length<3) { usespecialcolumnsort=0 } pagingdefinition=''; numrows=$("#"+tableid).find('tr').length; if (numrows< 15 ) { pagingdefinition='"paging": false,'; infodefinition='"info": false,'; searchingdefinition='"searching": false,'; autowidthdefinition='"autoWidth": false,'; } else { pagingdefinition='"paging": true,'; infodefinition='"info": true,'; searchingdefinition='"searching": true,'; autowidthdefinition='"autoWidth": false,'; } if(typeof forcepagesearch !='undefined') { if(forcepagesearch==1) searchingdefinition='"searching": true,'; } // we shoudl destroy any instance of the dataTable that may aqlready be initiallized destroyerdefinition="destroy: true,"; /* Create an array with the values of all the input boxes in a column */ $.fn.dataTable.ext.order['dom-text'] = function ( settings, col ) { return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) { return $('input', td).val(); } ); } /* Create an array with the values of all the input boxes in a column, parsed as numbers */ $.fn.dataTable.ext.order['dom-text-numeric'] = function ( settings, col ) { return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) { return $('input', td).val() * 1; } ); } /* Create an array with the values of all the select options in a column */ $.fn.dataTable.ext.order['dom-select'] = function ( settings, col ) { return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) { return $('select', td).val(); } ); } /* Create an array with the values of all the checkboxes in a column */ $.fn.dataTable.ext.order['dom-checkbox'] = function ( settings, col ) { return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) { return $('input', td).prop('checked') ? '1' : '0'; } ); } if(usespecialcolumnsort) { // we need to see what type of content we are working with and set up sorting colarray=[]; if($("#"+tableid).find('tr:nth-child(2)').find('td').length) $.each($("#"+tableid).find('tr:nth-child(2)').find('td'),function(ind,ob){ if($(ob).find('input[type="text"]').length) colarray[ind]="dom-text"; else if($(ob).find('input[type="text"]').length && $(ob).find('input[type="text"]').hasClass('sort-numeric')) colarray[ind]="dom-text-numeric"; else if($(ob).find('input[type="checkbox"]').length) colarray[ind]="dom-checkbox"; else if($(ob).find('select').length) colarray[ind]="dom-select"; else // if(!$(ob).find('select').length && !$(ob).find('input[type="text"]').length && !$(ob).find('input[type="checkbox"]').length) colarray[ind]="null"; }); sort_definitions='"columns": ['; $.each(colarray,function(indexer,objector){ if(objector=="dom-text") sort_definitions+='{"orderDataType": "'+objector+'", type:"string" },\n'; else if(objector=='dom-checkbox') sort_definitions+='{"orderDataType": "'+objector+'"},\n'; else if(objector=='dom-select') sort_definitions+='{"orderDataType": "'+objector+'"},\n'; else sort_definitions+='null,\n'; }); sort_definitions=sort_definitions.substring(0, sort_definitions.length - 1); sort_definitions+='\n]'; } else { console.log('nospecilcolumnsort'); sort_definitions=""; } callbackdef=""; if(callbackfunc) { callbackdef='initComplete: function(settings, json) {'+callbackfunc+'(settings,json)},'; } console.log('columnsort',sort_definitions ); var functioncall='var tableData= $("#'+tableid+'").DataTable({"order": [],'+pagingdefinition+autowidthdefinition+infodefinition+searchingdefinition+callbackdef+destroyerdefinition+'"columnDefs": [ {"targets" : "no-sort","orderable": false,}],'+sort_definitions+","+lengthdefinition+'});'; setTimeout(functioncall,0); setTimeout(function() { tableData.on('page', function () { var info = tableData.page.info(); if(info.page===0) { setTimeout(function(){ $("#"+tableid+"_previous").css({"opacity":"0","transition":"all 1s"}) ; },50); } if(info.page>0) { setTimeout(function(){ $("#"+tableid+"_previous").css({"opacity":"1","transition":"all 1s"}) ; },50) } if(info.page+1==info.pages) { setTimeout(function(){ $("#"+tableid+"_next").css({"opacity":"0","transition":"all 1s"}) ; },50) } if(info.page+1 0 && notdone) { var urlobj = container_breadcrumbs.pop(); $.each(urlobj, function(name, url) { if (url == currurl) { title = name; notdone = false; } }); } container_load(currurl, true, containerselector,title); } function container_update(obj,addedurl) { if(obj) container = container_closest(obj) if(!container.attr('href')) alert("Invalid attempt to container_update("+containerselector+")") var href=container.attr('href'); if(href.indexOf('?')<1) href+="?"; href+='&'; href+=addedurl container_load(href, false, container); } function container_refresh(containerselector) { container = $(containerselector); if(!container.attr('href')) alert("Invalid attempt to container_refresh("+containerselector+")") container_load(container.attr('href'), false, containerselector); } function waiticon(selector) { if(!$(selector).find('.waitwall').length) $(selector).prepend("
"); } function waiticonremove() { $(".waitwall").remove(); } function container_load(url, urlreturn, containerselector, title, scriptonclose,callback) { console.log("Container loading..."); console.log(containerselector); container_open(title, "",containerselector); container = $(containerselector); if(scriptonclose) container.attr('scriptonclose', scriptonclose); if(!container.attr('href')||container.attr('href')=='false') container.attr('href',url); var contentarea = container; var containertitle = false; var containerbreadcrumbs = false; var containerbodyname = container.data('bodyclass'); if(containerbodyname) contentarea = $("."+containerbodyname); var containertitlename = container.data('titleclass'); if(containertitlename) containertitle = $("."+containertitlename); var containerbreadcrumbsname = container.data('breadcrumbsclass'); if(containerbreadcrumbsname) containerbreadcrumbs = $("."+containerbreadcrumbsname); if(url.indexOf("?")<1) url +='?' else url +='&' waiticon(contentarea); url += 'in_modal=1'; url += '&container=1'; contentarea.load(url,function() { console.log('contentarea.load.function'); setTimeout(callback,0) var loadingtitle = title; container_processcontent(containerselector); var head2 = $(container).find('.head2'); if (head2.length > 0) { head2 = head2[0]; loadingtitle = $(head2).text(); if(containertitle.length>0) $(head2).remove(); } if(!loadingtitle) var loadingtitle = ' '; if(containertitle) { containertitle.html(loadingtitle); } if (urlreturn) { var urlobj = {}; urlobj[loadingtitle] = url; var notdupe = true; $.each(container_breadcrumbs, function(i, e) { $.each(e, function(name, bc_url) { if (bc_url == url) { notdupe = false; } }) }); if (notdupe) container_breadcrumbs.push(urlobj); } var text_breadcrumbs = sep = ""; text_breadcrumbs+=""; if(container_breadcrumbs.length > 0) { console.log('breadcrumbs','on'); containerbreadcrumbs.css('display','block'); containerbreadcrumbs.html(text_breadcrumbs); } else { console.log('breadcrumbs','off'); if(typeof(containerbreadcrumbs.css) !== 'undefined') containerbreadcrumbs.css('display','none'); } }); } var container_page_needsreload = false; function container_pageneedsreload(needsreload, containerselector) { var rval = container_page_needsreload; if (needsreload) container_page_needsreload = needsreload; return rval; } var container_submit_name = ''; var container_submit_value = ''; function container_isinside(obj) { var container = $(obj).closest('[container_selector_name]'); if(container.length>0) return container; return false } function container_closest(obj) { var container = $(obj).closest('[container_selector_name]'); if(container.length>0) return container; return false } function container_processcontent(containerselector) { $(containerselector).attr('container_selector_name',containerselector) $(containerselector).find('form').each(function() { var frm = $(this); var attrformsubmitbyajax = $(frm).attr('formsubmitbyajax'); var formsubmitbyajax = (typeof attrformsubmitbyajax !== typeof undefined && attrformsubmitbyajax !== false) ? true : false; if(!formsubmitbyajax) { frm.submit(function(){ console.log('form submit hijacked by function container_processcontent()') container_submit(this, containerselector,container_submit_name); return false; }); } }); $(containerselector).find('a').each(function() { var href = $.trim($(this).attr('href')) if(href.slice(0,2)=='//' || href.slice(0,4)=='http') return; if($(this).hasClass('container-tabcontent')) return; if($(this).attr('target')) return; $(this).unbind('click') $(this).click(function(e) { var href = $(this).attr('href') if(typeof(href)=='undefined') return; if(href.indexOf('javascript') > -1) return; if($(this).hasClass('container-tabcontent') && containerselector.indexOf('tab_content')==-1) { var type = ''; var startindex = href.indexOf('type=')+5; var endindex = href.indexOf('&',startindex); if(endindex != -1) type = href.substring(startindex, endindex); else type = href.substring(startindex); if(type) containerselector = containerselector+" ."+type+"tab_content"; } container_load(href,'',containerselector) e.preventDefault(); return false; }) }) $(containerselector).find('input[type=submit]').click(function(){ container_submit_name = $(this).attr('name'); container_submit_value = $(this).val(); }) $(containerselector).attr('container_processcontent','true') } function container_submit(frm, containerselector,submitname,callback,onstartprocesscallback) { if(onstartprocesscallback) setTimeout(onstartprocesscallback,0) if(frm) if($(frm).prop("tagName")!='form') frm=$(frm).closest('form'); if(!frm) frm = $(containerselector).find('form'); if(!frm&&containerselector) frm = $(containerselector).find('form'); if(frm.data('submitting')=='1') return;; frm.data('submitting','1'); if(!containerselector) { containerselector=container_closest(frm).attr('container_selector_name') //alert(containerselector) } if(container_submit_name) { if($('[name='+container_submit_name+']').hasClass('nocontainersubmit')) $(frm).unbind('submit').submit(); } var fdata = $(frm).serialize(); if(!submitname) submitname = 'submit'; fdata = fdata+"&container=1&submit="+submitname; if(container_submit_name) fdata += "&"+container_submit_name+"="+container_submit_value; var container = $(containerselector); // alert($(frm).attr('action')) // alert(container.attr('href')) if(!$(frm).attr('action')&&container.attr('href')) { $(frm).attr('action',container.attr('href')) } var furl = $(frm).attr('action'); var containertitlename = container.data('titleclass'); var title = ''; if(containertitlename) title = $("."+containertitlename).html(); $.ajax({ url:furl , data: fdata , method: 'POST' , success: function (message) { container_open(title, message,containerselector); if(callback) setTimeout(callback,0) } }) } function container_open(title, content, containerselector) { var container = $(containerselector); var contentarea = container; var containerbodyname = container.data('bodyclass'); if(containerbodyname) contentarea = $("."+containerbodyname); var containertitlename = container.data('titleclass'); if(containertitlename) { $("."+containertitlename).html(title); } if(container.data('openclass')) $("body").addClass(container.data('openclass')); contentarea.html(content); container_processcontent(containerselector); setTimeout(function(){ set_focusedinputs() },0) } function container_close(containerselector) { $(containerselector).attr('href',false); if (container_breadcrumbs.length > 1) { container_breadcrumbs.pop(); var urlobj = container_breadcrumbs.pop(); var lasturl; $.each(urlobj, function(name, url) { lasturl = url; }); container_load(lasturl,1,containerselector); } else { container_breadcrumbs = []; var container = $(containerselector); if(container.data('openclass')) $("body").removeClass(container.data('openclass')); var containertitlename = container.data('titleclass'); if(containertitlename) $("."+containertitlename).html(); //new process, modals reload only when told to explicitly by runing javascript:modal_reload_onclose() /* try //Add modal_close_page_reload(){return 1;} to any page that wants to be reloaded on modal_close(), including after a modal_submit(). { if(container_pageneedsreload() || modal_close_page_reload()) location.reload(); else if(container_close_page_reload() || containerclosepagereload) location.reload(); } catch(e) { } */ } } var modal_close_register_script="" function modal_close_register(script) { modal_close_register_script = script } function modal_close_script() { var count = $('#modal').data('updatefield-count') if(count) { document.location.href=document.location.href; //reload the screen return; } var reloadonclose = $('#modal').attr('reloadonclose'); var scriptonclose = $('#modal').attr('scriptonclose'); if(scriptonclose) eval(scriptonclose); else if(reloadonclose) document.location.href=document.location.href } function modal_reload_onclose() { $('#modal:visible').attr('reloadonclose','true') } var modaltitle = ''; function modal_load(title, url, urlreturn,scriptonclose) { modaltitle = title; container_load(url, urlreturn, '#modal',modaltitle, scriptonclose) } function modal_processcontent(modal) { container_processcontent(modal) } function modal_submit(frm) { container_submit(frm, '#modal') } function modal_open(title, content) { modaltitle= title; container_open(modaltitle, content, '#modal') } function modal_close() { modal_close_script() container_close('#modal') } function help_modal_open(helpshortname,editmode,addtourl) { if(!editmode) editmode=0; var url = '_help_content.php?helpshortname=' + helpshortname + '&editmode=' + editmode; if(addtourl) url = url + '&' + addtourl; container_load(url, '', '#modal','Help'); } function window_seturl(url) { window.history.pushState({},'',url); } function currency_format(val) { var formatdata = {currency: currentcountry.countrycurrencyisocode, locale: currentcountry.countrylocale} if(typeof(basicvalcurrencies[formatdata.currency.toLowerCase()]) !== 'undefined') { return formatdata.currency + val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");; } return OSREC.CurrencyFormatter.format(val, formatdata); } function currency_parse(val) { var formatdata = {currency: currentcountry.countrycurrencyisocode, locale: currentcountry.countrylocale} if(typeof(basicvalcurrencies[formatdata.currency.toLowerCase()]) !== 'undefined') { val = val.toLowerCase(); val = val.replace(formatdata.currency.toLowerCase(),''); val = val.replace(' ',''); val = val.replace(',',''); return val; } if(currentcountry.countrycurrencyskipjsformatparse) { return val; } else val = OSREC.CurrencyFormatter.parse(val, formatdata); return val; } function currency_symbolget() { var currencysymbol = OSREC.CurrencyFormatter.symbols[currentcountry.countrycurrencyisocode]; return currencysymbol; } function currency_formatget() { //might want to ajax and send error if no locale found... if(typeof(currentcountry.countrylocale) === 'undefined') { console.log('Could not find locale!'); currentcountry.countrylocale = 'en_US'; } var currencyformat = ''; if(typeof(OSREC.CurrencyFormatter.locales[currentcountry.countrylocale]) === 'undefined') { console.log(currentcountry.countrycurrencyisocode+':Could not find currency format locale data!'); currencyformat = '!#,##0.00'; } else currencyformat = OSREC.CurrencyFormatter.locales[currentcountry.countrylocale].p; if(!currencyformat) { var parentlocale = currentcountry.countrylocale.split('_')[0]; var currencyformat = OSREC.CurrencyFormatter.locales[parentlocale].p; } // console.log('currency_formatget'); if(typeof(currentcountry.countrycurrencyswapseparator) !== 'undefined') { console.log(currentcountry.countrycurrencyisocode+": SWAPPING SEPARATORS!!"); currencyformat = currencyformat.replace(',','[@@@]'); currencyformat = currencyformat.replace('.',','); currencyformat = currencyformat.replace('[@@@]','.'); return currencyformat; } // console.log('currencyformat', currencyformat); return currencyformat; } function copytoclipboard(copyval) { var el = document.createElement('textarea'); el.value = copyval; document.body.appendChild(el); el.select(); document.execCommand('copy'); document.body.removeChild(el); }; /** * Gets the browser name or returns an empty string if unknown. * This function also caches the result to provide for any * future calls this function has. * * @returns {string} */ var browser = function() { // Return cached result if avalible, else get result then cache it. if (browser.prototype._cachedResult) return browser.prototype._cachedResult; var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0; var isFirefox = typeof InstallTrigger !== 'undefined'; var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification); var isIE = /*@cc_on!@*/false || !!document.documentMode; var isChrome = !!window.chrome && !!window.chrome.webstore; var isBlink = (isChrome || isOpera) && !!window.CSS; return browser.prototype._cachedResult = isOpera ? 'Opera' : isFirefox ? 'Firefox' : isSafari ? 'Safari' : isChrome ? 'Chrome' : isIE ? 'IE' : //isEdge ? 'IE' : isBlink ? 'Blink' : "Don't know"; }; function globalenrollmentprint(id) { console.warn(browser(),"Browser Identifies as: "); var mywindow = window.open('enrollmentprint.php?id='+id, '_blank'); mywindow.onload = function() { mywindow.focus(); mywindow.print(); if(browser()!='Safari') mywindow.close(); } } $.fn.isInViewport = function() { var elementTop = $(this).offset().top; var elementBottom = elementTop + $(this).outerHeight(); var viewportTop = $(window).scrollTop(); var viewportBottom = viewportTop + $(window).height(); return elementBottom > viewportTop && elementTop < viewportBottom; }; function form_ajaxsubmit(frm,callback,submitname) { var furl = $(frm).attr('action'); var fdata = $(frm).serialize(); if(!submitname) submitname = 'submit'; fdata += "&form_ajaxsubmit=1"; console.log('furl', furl); $.ajax({ url:furl , data: fdata , method: 'POST' , success: function (message) { callback(message) } }) } function ie_auto_gridder(gridcellelement,maxcols,skiprows,forcerow,forcerowstart,definitionobject) { var isIE=detectIE(); if(isIE!='ie11') return; var indyrow=1; alert("We are loking at IE"); if(forcerowstart) indyrow=forcerowstart; if(typeof(definitionobject) !=='undefined' && definitionobject.length) console.log(definitionobject) if(typeof(gridcellelement) === 'undefined') return false;//May need changed Jeremy! --KH var col=1; var el=$(gridcellelement) var colmodulus; $.each(el,function(indy,ob){ colmodulus=parseInt(maxcols+1); if(col%colmodulus==0) { col=1; indyrow++; } if(!skiprows && !forcerow) $(ob).attr('style',"-ms-grid-column:"+col+";-ms-grid-row:"+indyrow); else if(forcerow) $(ob).attr('style',"-ms-grid-column:"+col+";-ms-grid-row:"+forcerow); else $(ob).attr('style',"-ms-grid-column:"+col); col++; }) } /* * Not even in a fucntion?! */ function detectIE() { var ua = window.navigator.userAgent; var msie = ua.indexOf('MSIE '); if (msie > 0) { // IE 10 or older => return version number return 'ie10'; } var trident = ua.indexOf('Trident/'); if (trident > 0) { // IE 11 => return version number var rv = ua.indexOf('rv:'); return 'ie11'; } var edge = ua.indexOf('Edge/'); if (edge > 0) { // Edge (IE 12+) => return version number return 'edge'; } // other browser return false; } function cookieconsent_require() { //if the user has not consented to cookies, then do this first and return false if($('div.cookieconsent-div').length>0) { if($(window).width() < 700) { $('div.cookieconsent-div').addClass('shakeyelement') setTimeout(function(){ $('div.cookieconsent-div').removeClass('shakeyelement') },1000) return false; } $(".cc-cookieoptinout").animate({ "width":'50%', "position":'absolute', "left":'25%', "bottom":'40%', },500) setTimeout(function(){ $('div.cookieconsent-div').addClass('shakeyelement') setTimeout(function(){ $('div.cookieconsent-div').removeClass('shakeyelement') },500) },1000) setTimeout(function(){ $(".cc-cookieoptinout").animate({ "width":'100%', "position":'fixed', "left":'0', "bottom":'0' },500) },3000) return false; } return true; } function browser_check() { var os = [ { name: 'Windows Phone', value: 'Windows Phone', version: 'OS' }, { name: 'Windows', value: 'Win', version: 'NT' }, { name: 'iPhone', value: 'iPhone', version: 'OS' }, { name: 'iPad', value: 'iPad', version: 'OS' }, { name: 'Kindle', value: 'Silk', version: 'Silk' }, { name: 'Android', value: 'Android', version: 'Android' }, { name: 'PlayBook', value: 'PlayBook', version: 'OS' }, { name: 'BlackBerry', value: 'BlackBerry', version: '/' }, { name: 'Macintosh', value: 'Mac', version: 'OS X' }, { name: 'Linux', value: 'Linux', version: 'rv' }, { name: 'Palm', value: 'Palm', version: 'PalmOS' } ] var browser = [ { name: 'Chrome', value: 'Chrome', version: 'Chrome' }, { name: 'Firefox', value: 'Firefox', version: 'Firefox' }, { name: 'Safari', value: 'Safari', version: 'Version' }, { name: 'Internet Explorer', value: 'MSIE', version: 'MSIE' }, { name: 'Opera', value: 'Opera', version: 'Opera' }, { name: 'BlackBerry', value: 'CLDC', version: 'CLDC' }, { name: 'Mozilla', value: 'Mozilla', version: 'Mozilla' } ] var header = [ navigator.platform, navigator.userAgent, navigator.appVersion, navigator.vendor, window.opera ]; } function matchinstring(string, data) { var i = 0, j = 0, html = '', regex, regexv, match, matches, version; for (i = 0; i < data.length; i += 1) { regex = new RegExp(data[i].value, 'i'); match = regex.test(string); if (match) { regexv = new RegExp(data[i].version + '[- /:;]([\d._]+)', 'i'); matches = string.match(regexv); version = ''; if (matches) { if (matches[1]) { matches = matches[1]; } } if (matches) { matches = matches.split(/[._]+/); for (j = 0; j < matches.length; j += 1) { if (j === 0) { version += matches[j] + '.'; } else { version += matches[j]; } } } else { version = '0'; } return { name: data[i].name, version: parseFloat(version) }; } } return { name: 'unknown', version: 0 }; } function browser_verify_latestversion() { (function () { 'use strict'; var module = { options: [], header: [navigator.platform, navigator.userAgent, navigator.appVersion, navigator.vendor, window.opera], dataos: [ { name: 'Windows Phone', value: 'Windows Phone', version: 'OS' }, { name: 'Windows', value: 'Win', version: 'NT' }, { name: 'iPhone', value: 'iPhone', version: 'OS' }, { name: 'iPad', value: 'iPad', version: 'OS' }, { name: 'Kindle', value: 'Silk', version: 'Silk' }, { name: 'Android', value: 'Android', version: 'Android' }, { name: 'PlayBook', value: 'PlayBook', version: 'OS' }, { name: 'BlackBerry', value: 'BlackBerry', version: '/' }, { name: 'Macintosh', value: 'Mac', version: 'OS X' }, { name: 'Linux', value: 'Linux', version: 'rv' }, { name: 'Palm', value: 'Palm', version: 'PalmOS' } ], databrowser: [ { name: 'edge', value: 'Edge', version: 'edge' }, { name: 'chrome', value: 'chrome', version: 'chrome' }, { name: 'firefox', value: 'firefox', version: 'firefox' }, { name: 'safari', value: 'safari', version: 'Version' }, { name: 'ie', value: 'Trident', version: 'ie' }, { name: 'opera', value: 'opera', version: 'opera' }, { name: 'blackBerry', value: 'CLDC', version: 'CLDC' }, { name: 'mozilla', value: 'mozilla', version: 'mozilla' } ], init: function () { var agent = this.header.join(' '), os = this.matchItem(agent, this.dataos), browser = this.matchItem(agent, this.databrowser); return { os: os, browser: browser }; }, matchItem: function (string, data) { var i = 0, j = 0, html = '', regex, regexv, match, matches, version; for (i = 0; i < data.length; i += 1) { regex = new RegExp(data[i].value, 'i'); match = regex.test(string); if (match) { regexv = new RegExp(data[i].version + '[- /:;]([\\d._]+)', 'i'); matches = string.match(regexv); version = ''; if (matches) { if (matches[1]) { matches = matches[1]; } } if (matches) { matches = matches.split(/[._]+/); for (j = 0; j < matches.length; j += 1) { if (j === 0) { version += matches[j] + '.'; } else { version += matches[j]; } } } else { version = '0'; } return { name: data[i].name, version: parseFloat(version) }; } } return { name: 'unknown', version: 0 }; } }; var e = module.init(), debug = ''; debug += 'os.name = ' + e.os.name + '\n'; debug += 'os.version = ' + e.os.version + '\n'; debug += 'browser.name = ' + e.browser.name + '\n'; debug += 'browser.version = ' + e.browser.version + '\n'; console.log(debug) // we need to show this to ios users of old ipads and such - grid id not supported for them. //alert(debug) if(e.os.name=='iPad' && e.os.version<10 && e.browser.name=='safari') { $("body").append("

Notice

×

The iPad you are using to access this website is out of date. Unfortunatly, this iPad cannot be updated to the current operating system and therefore is unable to support some of the features that this website offers. We reccomend that you access this website from a current, modern browser for the best user experience.

"); } var minversion=browser_min_version(e.browser.name,e); if(e.browser.name=='chrome' || e.browser.name=='firefox') { if(e.browser.version < minversion) { $("body").append("

Notice

×

The browser you are using is out of date. In order to ensure compatability with this website, it is recomended that you upgrade your browser to the latest version. Failure to use an up-to-date browser may result in odd behaviors and inaccessible areas of the site.

You can find out more about updating "+e.browser.name+" here.
Current Browser: "+e.browser.name+"
Browser Version: "+e.browser.version+"
Minimum Browser Version: "+minversion+"
"); } } }()); } function browser_min_version(browser,eobj) { if(eobj.browser.name!='chrome' && eobj.browser.name!='firefox' && eobj.browser.name!='ie') return false; // we really just need to be sure they area t a version that supports grid if(browser=='chrome') return 70; if(browser=='firefox') return 63; if (browser=='ie') return 11; // // console.log(browser) // var urlposty="https://raw.githubusercontent.com/Fyrd/caniuse/master/data.json"; // $.get(urlposty,function(resul){ // if(!resul) // return false; // // browserdata=JSON.parse(resul); // console.log(browserdata) // var bstring=browserdata.agents[browser]; // var latestdevversion=bstring.versions.slice(-1).pop() // var lateststableversion=bstring.versions.max() // console.log(lateststableversion) // // //const arrMax = bstring.versions => Math.max(bstring.versions); // // return lateststableversion; // }) saved in cASE WE DO WANT TO GET UP TO SDATE VERSIONS IN THE FUTURE. } function browser_update_instructions(browser) { if(browser=='chrome') return 'https://support.google.com/chrome/answer/95414?co=GENIE.Platform%3DDesktop&hl=en'; else if (browser=='firefox') return "https://www.firefox.com/"; else if(browser=='safari') return "https://www.apple.com/safari/"; else if (browser=='opera') return "https://www.opera.com/"; else if(browser=='internet explorer') return "https://support.microsoft.com/en-us/help/17621/internet-explorer-downloads"; } function filters_submit(container,callback) { var frm=$("#"+container).find('form') var frmdata=frm.serialize(); var frmid=$(frm).attr('id'); var frmaction=$(frm).attr('action'); $.post(frmaction,frmdata,function(data){ $("#"+container).html(data); setTimeout(callback,0); }) } function dashboard_container_load(url,container,callback,postobj) { if(postobj) { $.post(url,postobj,function(data){ $("#"+container).html(data) setTimeout(callback,300); }) } else{ $("#"+container).load(url,function(){ setTimeout(callback,0); }); } } function makewait(){ waiticon('#widgetquadrant2') } function pushin_open(){ var url='_reporting_pushin_filters.php'; dashboard_container_load(url, 'reporting-pushin-ui',function(){ $('#reporting-pushin-ui').addClass('pushin-pushed'); }) } function widgets_load() { var w=$(".fipwidget"); $.each(w,function(){ if($(this).data('widgeturl')!='') { if($("#loadertoborrow").length){ var loader=$("#loadertoborrow").clone(); $(loader).addClass('borrowed').show(); // throw the loader upa nd cler out the content for a fsater feel $("#"+$(this).attr('id')).html(loader) } setTimeout($(this).data('beforeurlloadcallback'),0) var dat=$("#filterform").serialize() console.log(dat) if(!dat){dat=''} var urlappend="" if($(this).data('urlappend')) urlappend=$(this).data('urlappend') dashboard_container_load($(this).data('widgeturl')+"&"+dat+urlappend, $(this).attr('id'),function(){ setTimeout($(this).data('afterloadcallback'),500) }) } }) } function widget_load(widgetobject,urlappend,formid,callback) { console.log(widgetobject,urlappend) if($(widgetobject).data('widgeturl')!='') { if($("#loadertoborrow").length){ var loader=$("#loadertoborrow").clone(); $(loader).addClass('borrowed').show(); // throw the loader upa nd cler out the content for a fsater feel $(widgetobject).html(loader) } if(!formid) formid="#filterform" setTimeout($(widgetobject).data('beforeurlloadcallback'),0) //var urlappend='' // var urlParams = new URLSearchParams(window.location.search); var dat=$(formid).serialize() // var url=urlParams.append('data', dat); // console.log(url) $(widgetobject).data('urlappend',urlappend); //if(urlParams.get('table')) // urlappend="&table=1" dashboard_container_load($(widgetobject).data('widgeturl')+"&"+dat+urlappend, $(widgetobject).attr('id'),function(){ //if(callback) setTimeout(callback,0) }) } } function print_page_section(elem) { var tblstyleforce=" "; var mywindow = window.open('', 'PRINT', 'height=400,width=600'); mywindow.document.write('' + document.title + ''); mywindow.document.write(tblstyleforce+''); mywindow.document.write('

' + document.title + '

'); var html=$("#"+elem).html(); mywindow.document.write(html); mywindow.document.close(); // necessary for IE >= 10 mywindow.focus(); // necessary for IE >= 10*/ setTimeout(function(){ mywindow.print(); mywindow.close(); },500) return true; } $.urlParam = function(name){ var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href); if (results==null){ return null; } else{ return decodeURI(results[1]) || 0; } }