var ResizeEvents={baseTextHeight:null,currentTextHeight:null,baseWindowWidth:null,baseWindowHeight:null,currentWindowWidth:null,currentWindowHeight:null,initialised:false,intervalReference:null,controlElement:null,eventElement:$(document),conf:{textResizeEvent:"x-text-resize",windowResizeEvent:"x-window-resize",windowWidthResizeEvent:"x-window-width-resize",windowHeightResizeEvent:"x-window-height-resize",initialResizeEvent:"x-initial-sizes",pollFrequency:500,controlElementId:"text-resize"}};(function($){$(function(){if(ResizeEvents.initialised!==true){ResizeEvents.initialise();}});ResizeEvents.initialise=function(){if(ResizeEvents.initialised===true){return;}ResizeEvents.controlElement=$('<span id="'+ResizeEvents.conf.controlElementId+'">&nbsp;</span>').css({position:"absolute",left:"-9999px","font-size":"100%","font-family":"Courier New, mono",padding:"0",margin:"0"}).get(0);$("body").append(ResizeEvents.controlElement);startResizePolling();ResizeEvents.initialised=true;};ResizeEvents.bind=function(events,handler){ResizeEvents.eventElement.bind(events,handler);};ResizeEvents.triggerEvent=function(eventType,args){ResizeEvents.eventElement.trigger(eventType,args);};ResizeEventsPoll=function(){windowWidthNow=getWindowWidth();windowHeightNow=getWindowHeight();textHeightNow=getTextHeight();emPixelNow=windowWidthNow/textHeightNow;widthChanged=false;if(ResizeEvents.baseTextHeight===null){ResizeEvents.baseTextHeight=textHeightNow;ResizeEvents.currentTextHeight=textHeightNow;ResizeEvents.baseWindowWidth=windowWidthNow;ResizeEvents.currentWindowWidth=windowWidthNow;ResizeEvents.baseWindowHeight=windowHeightNow;ResizeEvents.currentWindowWidth=windowHeightNow;ResizeEvents.triggerEvent(ResizeEvents.conf.initialResizeEvent,[emPixelNow,textHeightNow,windowWidthNow,windowHeightNow]);}else{if(ResizeEvents.currentTextHeight!=textHeightNow){ResizeEvents.triggerEvent(ResizeEvents.conf.textResizeEvent,[emPixelNow,textHeightNow,windowWidthNow,windowHeightNow]);ResizeEvents.currentTextHeight=textHeightNow;}if(ResizeEvents.currentWindowWidth!=windowWidthNow){ResizeEvents.triggerEvent(ResizeEvents.conf.windowWidthResizeEvent,[emPixelNow,textHeightNow,windowWidthNow,windowHeightNow]);ResizeEvents.triggerEvent(ResizeEvents.conf.windowResizeEvent,[emPixelNow,textHeightNow,windowWidthNow,windowHeightNow]);ResizeEvents.currentWindowWidth=windowWidthNow;widthChanged=true;}if(ResizeEvents.currentWindowHeight!=windowHeightNow){ResizeEvents.triggerEvent(ResizeEvents.conf.windowHeightResizeEvent,[emPixelNow,textHeightNow,windowWidthNow,windowHeightNow]);if(!widthChanged){ResizeEvents.triggerEvent(ResizeEvents.conf.windowResizeEvent,[emPixelNow,textHeightNow,windowWidthNow,windowHeightNow]);}ResizeEvents.currentWindowHeight=windowHeightNow;}}};getTextHeight=function(){return ResizeEvents.controlElement.offsetHeight+"";};getWindowWidth=function(){if(document.documentElement&&document.documentElement.clientWidth){return document.documentElement.clientWidth;}else{if(typeof document.body.clientWidth!="undefined"){return document.body.clientWidth+"";}else{return window.innerWidth+"";}}};getWindowHeight=function(){if(document.documentElement&&document.documentElement.clientHeight){return document.documentElement.clientHeight;}else{if(typeof document.body.clientHeight!="undefined"){return document.body.clientHeight+"";}else{return window.innerHeight+"";}}};startResizePolling=function(){if(ResizeEvents.intervalReference==null){ResizeEventsPoll();ResizeEvents.intervalReference=window.setInterval("ResizeEventsPoll()",ResizeEvents.conf.pollFrequency);}};stopResizePolling=function(){if(ResizeEvents.intervalReference!=null){window.clearInterval(ResizeEvents.intervalReference);ResizeEvents.intervalReference=null;}};})(jQuery);
