!function(undefined){var count,logEnabled,hiddenCheckEnabled,msgHeaderLen,msgId,msgIdLen,pagePosition,requestAnimationFrame,resetRequiredMethods,settings,timer,defaults,frameTimer,iFrames,ifrm,srcIfrm;function getMutationObserver(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}function addEventListener(el,evt,func){el.addEventListener(evt,func,!1)}function removeEventListener(el,evt,func){el.removeEventListener(evt,func,!1)}function formatLogHeader(iframeId){return msgId+"["+function(iframeId){var retStr="Host page: "+iframeId;return retStr=window.top!==window.self?window.parentIFrame&&window.parentIFrame.getId?window.parentIFrame.getId()+": "+iframeId:"Nested host page: "+iframeId:retStr}(iframeId)+"]"}function isLogEnabled(iframeId){return settings[iframeId]?settings[iframeId].log:logEnabled}function log(iframeId,msg){output("log",iframeId,msg,isLogEnabled(iframeId))}function info(iframeId,msg){output("info",iframeId,msg,isLogEnabled(iframeId))}function warn(iframeId,msg){output("warn",iframeId,msg,!0)}function output(type,iframeId,msg,enabled){!0===enabled&&"object"==typeof window.console&&console[type](formatLogHeader(iframeId),msg)}function iFrameListener(event){function resizeIFrame(){ensureInRange("Height"),ensureInRange("Width"),syncResize(function(){setSize(messageData),setPagePosition(iframeId),on("onResized",messageData)},messageData,"init")}function processMsg(){var data=msg.substr(msgIdLen).split(":"),height=data[1]?parseInt(data[1],10):0,iframe=settings[data[0]]&&settings[data[0]].iframe,compStyle=getComputedStyle(iframe);return{iframe:iframe,id:data[0],height:height+function(bot){if("border-box"!==bot.boxSizing)return 0;var top=bot.paddingTop?parseInt(bot.paddingTop,10):0,bot=bot.paddingBottom?parseInt(bot.paddingBottom,10):0;return top+bot}(compStyle)+function(bot){if("border-box"!==bot.boxSizing)return 0;var top=bot.borderTopWidth?parseInt(bot.borderTopWidth,10):0,bot=bot.borderBottomWidth?parseInt(bot.borderBottomWidth,10):0;return top+bot}(compStyle),width:data[2],type:data[3]}}function ensureInRange(size){var max=Number(settings[iframeId]["max"+size]),min=Number(settings[iframeId]["min"+size]),dimension=size.toLowerCase(),size=Number(messageData[dimension]);log(iframeId,"Checking "+dimension+" is in range "+min+"-"+max),sizesettings[iframeId]["max"+dimension])throw new Error("Value for min"+dimension+" can not be greater than max"+dimension)}iframeId in settings&&"iFrameResizer"in iframe?warn(iframeId,"Ignored iFrame, already setup."):(processOptions(options),function(){switch(log(iframeId,"IFrame scrolling "+(settings[iframeId]&&settings[iframeId].scrolling?"enabled":"disabled")+" for "+iframeId),iframe.style.overflow=!1===(settings[iframeId]&&settings[iframeId].scrolling)?"hidden":"auto",settings[iframeId]&&settings[iframeId].scrolling){case"omit":break;case!0:iframe.scrolling="yes";break;case!1:iframe.scrolling="no";break;default:iframe.scrolling=settings[iframeId]?settings[iframeId].scrolling:"no"}}(),chkMinMax("Height"),chkMinMax("Width"),addStyle("maxHeight"),addStyle("minHeight"),addStyle("maxWidth"),addStyle("minWidth"),"number"!=typeof(settings[iframeId]&&settings[iframeId].bodyMargin)&&"0"!==(settings[iframeId]&&settings[iframeId].bodyMargin)||(settings[iframeId].bodyMarginV1=settings[iframeId].bodyMargin,settings[iframeId].bodyMargin=settings[iframeId].bodyMargin+"px"),init(createOutgoingMsg(iframeId)),settings[iframeId]&&(settings[iframeId].iframe.iFrameResizer={close:closeIFrame.bind(null,settings[iframeId].iframe),removeListeners:removeIframeListeners.bind(null,settings[iframeId].iframe),resize:trigger.bind(null,"Window resize","resize",settings[iframeId].iframe),moveToAnchor:function(anchor){trigger("Move to anchor","moveToAnchor:"+anchor,settings[iframeId].iframe,iframeId)},sendMessage:function(message){trigger("Send Message","message:"+(message=JSON.stringify(message)),settings[iframeId].iframe,iframeId)}}))}function debouce(fn,time){null===timer&&(timer=setTimeout(function(){timer=null,fn()},time))}function tabVisible(){"hidden"!==document.visibilityState&&(log("document","Trigger event: Visiblity change"),debouce(function(){sendTriggerMsg("Tab Visable","resize",createOutgoingDocumentMsg())},16))}function sendTriggerMsg(eventName,event,data){Object.keys(settings).forEach(function(iframeId){!function(iframeId){return settings[iframeId]&&"parent"===settings[iframeId].resizeFrom&&settings[iframeId].autoResize&&!settings[iframeId].firstRun}(iframeId)||trigger(eventName,event+(data?":"+data:""),settings[iframeId].iframe,iframeId)})}function setupEventListeners(){addEventListener(window,"message",iFrameListener),addEventListener(window,"resize",function(){var event;log("window","Trigger event: "+(event="resize")),debouce(function(){sendTriggerMsg("Window "+event,"resize",createOutgoingDocumentMsg())},16)}),addEventListener(document,"visibilitychange",tabVisible),addEventListener(document,"-webkit-visibilitychange",tabVisible)}function createJQueryPublicMethod($){$.fn?$.fn.iFrameResize||($.fn.iFrameResize=function(options){return this.filter("iframe").each(function(index,element){setupIFrame(element,options)}).end()}):info("","Unable to bind to jQuery, it is not fully loaded.")}function init(options,element){element&&(function(){if(!element.tagName)throw new TypeError("Object is not a valid DOM element");if("IFRAME"!==element.tagName.toUpperCase())throw new TypeError("Expected