1(function(window, $) { 2 function parseUri (str) { 3 var o = parseUri.options, 4 m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), 5 uri = {}, 6 i = 14; 7 8 while (i--) uri[o.key[i]] = m[i] || ""; 9 10 uri[o.q.name] = {}; 11 uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { 12 if ($1) uri[o.q.name][$1] = $2; 13 }); 14 15 return uri; 16 }; 17 18 parseUri.options = { 19 strictMode: false, 20 key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], 21 q: { 22 name: "queryKey", 23 parser: /(?:^|&)([^&=]*)=?([^&]*)/g 24 }, 25 parser: { 26 strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, 27 loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ 28 } 29 }; 30 31 var mobileBrowser = (function(){ 32 var check = false; 33 (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera); 34 return check; 35 })(); 36 37 window.dnnModal = { 38 39 load: function () { 40 41 try { 42 if (parent.location.href !== undefined) { 43 44 var windowTop = parent; 45 var parentTop = windowTop.parent; 46 47 if (typeof(parentTop.$find) != "undefined") { 48 if (location.href.indexOf('popUp') == -1 || windowTop.location.href.indexOf("popUp") > -1) { 49 50 var popup = windowTop.jQuery("#iPopUp"); 51 var refresh = popup.dialog("option", "refresh"); 52 var closingUrl = popup.dialog("option", "closingUrl"); 53 var width = popup.dialog("option", "minWidth"); 54 var height = popup.dialog("option", "minHeight"); 55 var showReturn = popup.dialog("option", "showReturn"); 56 57 if (!closingUrl) { 58 closingUrl = location.href; 59 } 60 61 if (popup.dialog('isOpen') === true) { 62 63 popup.dialog("option", { 64 close: function(event, ui) { 65 dnnModal.refreshPopup({ 66 url: closingUrl, 67 width: width, 68 height: height, 69 showReturn: showReturn, 70 refresh: refresh 71 }); 72 } 73 }).dialog('close'); 74 } 75 } else { 76 windowTop.jQuery("#iPopUp").dialog({ autoOpen: false, title: document.title }); 77 } 78 } 79 } 80 return false; 81 } catch(err) { 82 return true; 83 } 84 }, 85 86 show: function(url, showReturn, height, width, refresh, closingUrl) { 87 var $modal = $("#iPopUp"); 88 89 if ($modal.length) { 90 // for ie9+ 91 $modal[0].src = 'about:blank'; 92 $modal.remove(); 93 } 94 95 $modal = $("<iframe id=\"iPopUp\" name=\"iPopUp\" src=\"about:blank\" scrolling=\"auto\" frameborder=\"0\"></iframe>"); 96 $(document.body).append($modal); 97 $(document).find('html').css('overflow', 'hidden'); 98 99 var ss = document.styleSheets; 100 var isAdmin = false; 101 for(var i = 0, max = ss.length; i < max; i++){ 102 var cssHref = ss[i].href; 103 if(typeof cssHref == 'string' && cssHref.indexOf('admin.css') > -1){ 104 isAdmin = true; 105 break; 106 } 107 }
108 var isMobile = !isAdmin && ($(window).width() < 481 || mobileBrowser); 109 if (isMobile) $('html').addClass('mobileView'); else $('html').removeClass('mobileView'); 110 111 var mobileWidth = 0; 112 var showLoading = function() { 113 var loading = $("<div class=\"dnnLoading\"></div>"); 114 loading.css({ 115 width: $modal.width(), 116 height: $modal.height() 117 }); 118 $modal.before(loading); 119 }; 120 var hideLoading = function() { 121 $modal.prev(".dnnLoading").remove(); 122 }; 123 var dialogOpened = function () { 124 125 $modal.on("load", function () { 126 hideLoading(); 127 var iframe = document.getElementById("iPopUp"); 128 var currentHost = window.location.hostname.toLowerCase(); 129 var currentPort = window.location.port.toLowerCase(); 130 131 var uri = parseUri(url); 132 var iframeHost = uri.host.toLowerCase(); 133 var iframePort = uri.port.toLowerCase(); 134 iframeHost = iframeHost? iframeHost : currentHost; 135 iframePort = iframePort? iframePort : currentPort; 136 var isSameDomain = currentHost === iframeHost && currentPort === iframePort; 137 138 if(isSameDomain){ 139 try{ 140 if (isMobile) { 141 var iframeBody = iframe.contentDocument.body, 142 iframeHtml = iframe.contentDocument.documentElement; 143 iframeHtml.style.width = mobileWidth + 'px'; 144 iframeBody.className += 'mobileView dnnFormPopup dnnFormPopupMobileView'; 145 var iframeHeight = Math.max(iframeBody.scrollHeight, iframeBody.offsetHeight, iframeHtml.clientHeight, iframeHtml.scrollHeight, iframeHtml.offsetHeight); 146 $modal.css('height', iframeHeight + 100) 147 .dialog('option', 'position', { my: "top", at: "top" }); 148 } 149 150 iframe.contentWindow.dnnModal.show = function (sUrl, sShowReturn, sHeight, sWidth, sRefresh, sClosingUrl) { 151 var windowTop = parent; 152 var popup = windowTop.jQuery("#iPopUp"); 153 if (!sClosingUrl) { 154 sClosingUrl = location.href; 155 } 156 157 if (popup.dialog('isOpen')) { 158 popup.dialog("option", { 159 close: function () { 160 parent.dnnModal.show(sUrl, sShowReturn, sHeight, sWidth, sRefresh, sClosingUrl); 161 } 162 }).dialog('close'); 163 } 164 }; 165 } 166 catch(e){ 167 } 168 } 169 }); 170 171 $modal[0].src = url; 172 173 if (typeof $.ui.dialog.prototype.options.open === 'function') 174 $.ui.dialog.prototype.options.open.apply(this, arguments); 175 }; 176 177 if (!isMobile) { 178 $modal.dialog({ 179 modal: true, 180 autoOpen: true, 181 dialogClass: "dnnFormPopup", 182 position: { my: "center", at: "center" }, 183 minWidth: width, 184 minHeight: height, 185 maxWidth: 1920, 186 maxHeight: 1080, 187 resizable: true, 188 closeOnEscape: true, 189 refresh: refresh, 190 showReturn: showReturn, 191 closingUrl: closingUrl, 192 open: dialogOpened, 193 close: function() { window.dnnModal.closePopUp(refresh, closingUrl); } 194 }) 195 .width(width - 11) 196 .height(height - 11); 197 198 if ($modal.parent().find('.ui-dialog-title').next('a.dnnModalCtrl').length === 0) { 199 var $dnnModalCtrl = $('<a class="dnnModalCtrl"></a>'); 200 $modal.parent().find('.ui-dialog-titlebar-close').wrap($dnnModalCtrl); 201 var $dnnToggleMax = $('<a href="#" class="dnnToggleMax"><span>Max</span></a>'); 202 $modal.parent().find('.ui-dialog-titlebar-close').before($dnnToggleMax); 203 204 $dnnToggleMax.click(function (e) { 205 e.preventDefault(); 206 207 var $window = $(window), 208 newHeight, 209 newWidth, 210 JQUERY_UI_HEIGHT_SHRINK_OFFSET = 100, 211 horizontalPosition = "center", 212 verticalPosition = "center"; 213 214 var closeButtonWidthCorrection = 0; 215 var closeButtonHeightCorrection = 0; 216 217 if ($('button.ui-dialog-titlebar-close').length) { 218 closeButtonHeightCorrection = $('button.ui-dialog-titlebar-close').parent('.dnnModalCtrl').height(); 219 closeButtonWidthCorrection = $('button.ui-dialog-titlebar-close').parent('.dnnModalCtrl').width(); 220 } 221 222 if ($modal.data('isMaximized')) { 223 224 var appliedHeight = $modal.data('height') + JQUERY_UI_HEIGHT_SHRINK_OFFSET; 225 if (appliedHeight >= $window.height()) { 226 appliedHeight = $modal.data('height'); 227 } 228 229 newHeight = appliedHeight - closeButtonHeightCorrection; 230 231 newWidth = $modal.data('width'); 232 $modal.data('isMaximized', false); 233 234 } else { 235 $modal.data('height', $modal.dialog("option", "minHeight")) 236 .data('width', $modal.dialog("option", "minWidth")); 237 238 var personaBarIFrameWidth = 0; 239 if ($('#personaBar-iframe').length) { 240 personaBarIFrameWidth = $('#personaBar-iframe').width(); 241 } 242 243 // closeButtonWidthCorrection is whole width of buttons modal on top right of maximized mode 244 // 7.5 is proportional width for IE-FF-CH, this needs to be substracted 245 newWidth = $window.outerWidth() - personaBarIFrameWidth - (closeButtonWidthCorrection / 7.5) - 40; 246 newHeight = $window.height() - closeButtonHeightCorrection; 247 248 // need to move top right corner into view port
248caring of Persona bar on left 249 // 5.5 is proportional right padding and 11 is same from top padding 250 horizontalPosition = "right-" + (closeButtonWidthCorrection / 5.5) + " center"; 251 verticalPosition = "right center-" + (closeButtonHeightCorrection / 11); 252 $modal.data('isMaximized', true); 253 } 254 255 $modal.dialog("option", "height", newHeight); 256 $modal.dialog("option", "width", newWidth); 257 $modal.dialog("option", "position", { my: horizontalPosition, at: verticalPosition, of: window }); 258 }); 259 } 260 } else { 261 mobileWidth = $(window).width() - 100; 262 var originalHeightCss = $('body').css('height'); 263 $modal.dialog({ 264 modal: true, 265 autoOpen: true, 266 dialogClass: "dnnFormPopup dnnFormPopupMobileView", 267 resizable: false, 268 closeOnEscape: true, 269 refresh: refresh, 270 showReturn: showReturn, 271 closingUrl: closingUrl, 272 minHeight: height, 273 position: { my: "top", at: "top" }, 274 draggable: false, 275 open: function() { 276 $('#Form').hide(); 277 $('body').css('height', 'auto'); 278 $modal.parent().css({ 'width': 'auto', 'left': '0', 'right': '0', 'top': '0', 'box-shadow': 'none' }); 279 window.scrollTo(0, 0); 280 dialogOpened(); 281 282 }, 283 close: function() { 284 $('#Form').show(); 285 if(originalHeightCss) 286 $('body').css('height', originalHeightCss); 287 window.scrollTo(0, 0); 288 window.dnnModal.closePopUp(refresh, closingUrl); 289 } 290 }); 291 } 292 293 showLoading(); 294 295 if (showReturn.toString() === "true") { 296 return false; 297 } 298 }, 299 300 closePopUp: function(refresh, url) { 301 var windowTop = parent; //needs to be assign to a varaible for Opera compatibility issues. 302 var popup = windowTop.jQuery("#iPopUp"); 303 304 if (typeof refresh === "undefined" || refresh == null) { 305 refresh = true; 306 } 307 308 if (refresh.toString() == "true") { 309 if (typeof url === "undefined" || url == "") { 310 url = windowTop.location.href; 311 } 312 windowTop.location.href = url; 313 popup.hide(); 314 } else { 315 popup.dialog('option', 'close', null).dialog('close'); 316 } 317 $(windowTop.document).find('html').css('overflow', ''); 318 }, 319 320 refreshPopup: function(options) { 321 var windowTop = parent; 322 var windowTopTop = windowTop.parent; 323 if (windowTop.location.href !== windowTopTop.location.href && 324 windowTop.location.href !== options.url) { 325 windowTopTop.dnnModal.show(options.url, options.showReturn, options.height, options.width, options.refresh, options.closingUrl); 326 } else { 327 dnnModal.closePopUp(options.refresh, options.url); 328 } 329 } 330 }; 331 332 window.dnnModal.load(); 333}(window, jQuery));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.