/** * @file utility funcs for jQuery projects * */ // + + + + + + + + + + + + + + + + + + + + + + + + + + + + // object literal with funcs for jquery plug-ins // + + + + + + + + + + + + + + + + + + + + + + + + + + + + var spc = { /*general options */ config: { debug: false, dev: true }, isDef: function(val){ return (val===undefined) ? false : true; }, /* get options of object */ get_options: function(key, options){ var result = null; if ('object' == typeof(options)) { result = options[key]; } if (!result) { return ""; } return result; }, /* set wai aria roles to list of containern */ set_wa: function(contlist, ariaattr,ariaval){ $(contlist).attr(ariaattr, ariaval); }, /* Encode/decode htmlentities */ encode_entities: function(s){ return $("<acronym/>").text(s).html(); }, decode_entities: function(s){ return $("<acronym/>").html(s).text(); }, /* add func to load event */ add_loadEvent: function(func_name){ var lastonload = window.onload; if (typeof window.onload != 'function') { window.onload = func_name; } else { window.onload = function() { lastonload(); func_name(); }; } }, /* logging for debug */ _debug: function(msg){ if(this.config.debug) { try{ if(console){ console.log(msg); } else{ alert(msg); } }catch(err){ alert(msg); } } }, /* return obj values for debug */ _get_objVs: function(objl){ try{ var p = typeof JSON != "undefined" ? JSON.stringify : function(objl){ var arr = []; $.each(objl,function(key,val){ var next = key + ": "; next += $.isPlainObject(val) ? printObj(val) : val; arr.push( next ); }); return "{ " + arr.join(", ") + " }"; }; return p(objl); }catch(err){ this._debug(err); return ''; } }, aria_live: function(setobj){ if(typeof(setobj)=='object'){ setobj.attr('aria-live',"polite"); } }, aria_role: function(setobj, role){ if(typeof(setobj)=='object'){ setobj.attr('role',role); } }, change_tabindex: function(remobj,setobj,i){ if(typeof(remobj)=='object'){ remobj.removeAttr('tabindex'); } if(typeof(setobj)=='object'){ setobj.attr('tabindex',i); } }, /* set focus to dom object: param obj */ set_newfocusObj: function(focusobj){ try{ if(focusobj) focusobj.focus(); }catch(err){ this._debug('exception: '+err); } }, /* set focus to dom object: param id */ set_newfocusId: function(fid){ try{ var focusobj = document.getElementById(fid); if(focusobj) focusobj.focus(); if(focusobj) console.log(focusobj); }catch(err){ this._debug('exception: '+err); } }, /* set focus to nonfocussable dom object: */ set_newfocusBox: function(remobj,setobj){ this.change_tabindex(remobj,setobj,0); try{ if(setobj) setobj.focus(); }catch(err){ this._debug('exception: '+err); } }, /* set title(s) and remove other title(s) if set */ set_title: function(remobj,setobj,ctitle){ if(typeof(remobj)=='object'){ remobj.removeAttr('title'); } if(typeof(setobj)=='object'){ setobj.attr('title',ctitle); } }, /* count appearances of dom elems with certain markup */ count: function(jqdom){ var num = 0; $(jqdom).each(function() { num++; }); return num; }, countOV: function(objlit){ var i = 0; for (var elem in objlit){ i++; } return i; }, /*merge object literals (do not overwrite default, not recursively) */ merge: function(objl1,objl2,objl3,objl4){ return $.extend({},objl1,objl2,objl3,objl4); }, /*merge object literals (do not overwrite default, recursively) */ mergeR: function(objl1,objl2,objl3,objl4){ return $.extend(true,{},objl1,objl2,objl3,objl4); }, loadImage: function(isrc, func, errfunc){ try{ var img = new Image(); img.onload = func; img.onerror = errfunc; img.src = isrc; }catch(err){ errfunc(); } }, tb_getPageSize: function(){ var de=document.documentElement; var w=window.innerWidth||self.innerWidth||(de&&de.clientWidth)||document.body.clientWidth; var h=window.innerHeight||self.innerHeight||(de&&de.clientHeight)||document.body.clientHeight; arrayPageSize=[w,h]; return arrayPageSize; } };