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 classes: { 182 'ui-dialog': 'dnnFormPopup', 183 }, 184 position: { my: "center", at: "center" }, 185 minWidth: width, 186 minHeight: height, 187 maxWidth: 1920, 188 maxHeight: 1080, 189 resizable: true, 190 closeOnEscape: true, 191 refresh: refresh, 192 showReturn: showReturn, 193 closingUrl: closingUrl, 194 open: dialogOpened, 195 close: function() { window.dnnModal.closePopUp(refresh, closingUrl); } 196 }) 197 .width(width - 11) 198 .height(height - 11); 199 200 if ($modal.parent().find('.ui-dialog-title').next('a.dnnModalCtrl').length === 0) { 201 var $dnnModalCtrl = $('<a class="dnnModalCtrl"></a>'); 202 $modal.parent().find('.ui-dialog-titlebar-close').wrap($dnnModalCtrl); 203 var $dnnToggleMax = $('<a href="#" class="dnnToggleMax"><span>Max</span></a>'); 204 $modal.parent().find('.ui-dialog-titlebar-close').before($dnnToggleMax); 205 206 $dnnToggleMax.click(function (e) { 207 e.preventDefault(); 208 209 var $window = $(window), 210 newHeight, 211 newWidth, 212 JQUERY_UI_HEIGHT_SHRINK_OFFSET = 100, 213 horizontalPosition = "center", 214 verticalPosition = "center"; 215 216 var closeButtonWidthCorrection = 0; 217 var closeButtonHeightCorrection = 0; 218 219 if ($('button.ui-dialog-titlebar-close').length) { 220 closeButtonHeightCorrection = $('button.ui-dialog-titlebar-close').parent('.dnnModalCtrl').height(); 221 closeButtonWidthCorrection = $('button.ui-dialog-titlebar-close').parent('.dnnModalCtrl').width(); 222 } 223 224 if ($modal.data('isMaximized')) { 225 226 var appliedHeight = $modal.data('height') + JQUERY_UI_HEIGHT_SHRINK_OFFSET; 227 if (appliedHeight >= $window.height()) { 228 appliedHeight = $modal.data('height'); 229 } 230 231 newHeight = appliedHeight - closeButtonHeightCorrection; 232 233 newWidth = $modal.data('width'); 234 $modal.data('isMaximized', false); 235 236 } else { 237 $modal.data('height', $modal.dialog("option", "minHeight")) 238 .data('width', $modal.dialog("option", "minWidth")); 239 240 var personaBarIFrameWidth = 0; 241 if ($('#personaBar-iframe').length) { 242 personaBarIFrameWidth = $('#personaBar-iframe').width(); 243 } 244 245 // closeButtonWidthCorrection is whole width of buttons modal on top right of maximized mode 246 // 7.5 is proportional width for IE-FF-CH, this needs to be substracted 247 newWidth = $window.outerWidth() - personaBarIFrameWidth - (closeButtonWidthCorrection / 7.5) - 40; 248 newHeight = $window.height() - closeButtonHeightCorrection; 249 250 // need to move top right corner into view port
250caring of Persona bar on left 251 // 5.5 is proportional right padding and 11 is same from top padding 252 horizontalPosition = "right-" + (closeButtonWidthCorrection / 5.5) + " center"; 253 verticalPosition = "right center-" + (closeButtonHeightCorrection / 11); 254 $modal.data('isMaximized', true); 255 } 256 257 $modal.dialog("option", "height", newHeight); 258 $modal.dialog("option", "width", newWidth); 259 $modal.dialog("option", "position", { my: horizontalPosition, at: verticalPosition, of: window }); 260 }); 261 } 262 } else { 263 mobileWidth = $(window).width() - 100; 264 var originalHeightCss = $('body').css('height'); 265 $modal.dialog({ 266 modal: true, 267 autoOpen: true, 268 classes: { 269 'ui-dialog': 'dnnFormPopup dnnFormPopupMobileView' 270 }, 271 resizable: false, 272 closeOnEscape: true, 273 refresh: refresh, 274 showReturn: showReturn, 275 closingUrl: closingUrl, 276 minHeight: height, 277 position: { my: "top", at: "top" }, 278 draggable: false, 279 open: function() { 280 $('#Form').hide(); 281 $('body').css('height', 'auto'); 282 $modal.parent().css({ 'width': 'auto', 'left': '0', 'right': '0', 'top': '0', 'box-shadow': 'none' }); 283 window.scrollTo(0, 0); 284 dialogOpened(); 285 286 }, 287 close: function() { 288 $('#Form').show(); 289 if(originalHeightCss) 290 $('body').css('height', originalHeightCss); 291 window.scrollTo(0, 0); 292 window.dnnModal.closePopUp(refresh, closingUrl); 293 } 294 }); 295 } 296 297 showLoading(); 298 299 if (showReturn.toString() === "true") { 300 return false; 301 } 302 }, 303 304 closePopUp: function(refresh, url) { 305 var windowTop = parent; //needs to be assign to a varaible for Opera compatibility issues. 306 var popup = windowTop.jQuery("#iPopUp"); 307 308 if (typeof refresh === "undefined" || refresh == null) { 309 refresh = true; 310 } 311 312 if (refresh.toString() == "true") { 313 if (typeof url === "undefined" || url == "") { 314 url = windowTop.location.href; 315 } 316 windowTop.location.href = url; 317 popup.hide(); 318 } else { 319 popup.dialog('option', 'close', null).dialog('close'); 320 } 321 $(windowTop.document).find('html').css('overflow', ''); 322 }, 323 324 refreshPopup: function(options) { 325 var windowTop = parent; 326 var windowTopTop = windowTop.parent; 327 if (windowTop.location.href !== windowTopTop.location.href && 328 windowTop.location.href !== options.url) { 329 windowTopTop.dnnModal.show(options.url, options.showReturn, options.height, options.width, options.refresh, options.closingUrl); 330 } else { 331 dnnModal.closePopUp(options.refresh, options.url); 332 } 333 } 334 }; 335 336 window.dnnModal.load(); 337}(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.