function AjaxRequest(url, options) {var xmlHttpReq;var opts = options;if (window.XMLHttpRequest) {xmlHttpReq = new XMLHttpRequest();if (xmlHttpReq.overrideMimeType) {xmlHttpReq.overrideMimeType("text/html");}}else if (window.ActiveXObject) {try {xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");}catch (e) {try {xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");}catch (e) {try {xmlHttpReq = new XMLHttpRequest();}catch (e) {}}}}var returnFunction = function() {if (xmlHttpReq.readyState == 4) {try {if (xmlHttpReq.status == 200) {if (opts.update) {var el = jQuery.getOne(opts.update);el.innerHTML = xmlHttpReq.responseText;executeLoadedScript(el);}if (opts.onComplete) {opts.onComplete(xmlHttpReq, opts.returnArgs);}AjaxUtil.remove(opts.ajaxId);}}catch(e) {}}};var send = function(url) {var urlArray = url.split("?");var path = urlArray[0];var query = urlArray[1];try {if (opts.method == "get") {xmlHttpReq.open("GET", url, true);xmlHttpReq.onreadystatechange = returnFunction;xmlHttpReq.send("");}else {xmlHttpReq.open("POST", path, true);xmlHttpReq.setRequestHeader("Method", "POST " + path + " HTTP/1.1");xmlHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); xmlHttpReq.onreadystatechange = returnFunction;xmlHttpReq.send(query);}}catch (e) {}};send(url);this.resend = function(url, options) {opts = options;/*ajaxId = 0;onComplete = opts.onComplete;*/send(url);};this.getId = function() {return ajaxId;};this.cleanUp = function() {xmlHttpReq.onreadystatechange = function() {};returnFunction = null;returnArgs = null;xmlHttpReq = null;};}var AjaxUtil = {counter : 1,requests : [],request : function(url, options) {/* * OPTIONS: * onComplete (function) - function to call after response is received * returnArgs (object) - object to pass to return function * reverseAjax (boolean) - use reverse ajax. (only one at a time) * method (string) - use "get" or "post". Default is post. */var opts = options || {};var ajaxId = (opts.reverseAjax) ? 0 : AjaxUtil.getNextId();opts.ajaxId = ajaxId;var request;if (ajaxId == 0 && AjaxUtil.requests[0]) {request = AjaxUtil.requests[0];request.resend(url, opts);}else {request = new AjaxRequest(url, opts);AjaxUtil.requests[ajaxId] = request;}if (!opts.onComplete && !opts.update) {AjaxUtil.remove(ajaxId);}},submit: function(form, options) {var url = form.action;var inputs = jQuery("input, textarea, select", form);var opts = options || {};var params = inputs.serialize();if (url.indexOf("?") == -1) {url = url + "?" + params;}if (url.lastIndexOf("?") == url.length - 1) {url = url + params;}else {url = url + "&" + params;}if (opts.disable) {inputs.attr("disabled", true);}AjaxUtil.request(url, opts);},update : function(url, id, options) {var opts = options || {};opts.update = id;AjaxUtil.request(url, opts);},getNextId : function() {var id = AjaxUtil.counter++;if (AjaxUtil.counter > 20) {/* Reset array in a round-robin fashion *//* Reserve index 0 for reverse ajax requests */AjaxUtil.counter = 1;}return id;},remove : function(id) {if (id) {var request = AjaxUtil.requests[id];if (request) {request.cleanUp();request = null;}}}};var ReverseAjax = {initialize: function() {jQuery(window).bind('unload', ReverseAjax.release);ReverseAjax.request();},request: function() {AjaxUtil.request(themeDisplay.getPathMain() + "/portal/reverse_ajax",{onComplete: ReverseAjax.response,reverseAjax: true});},response: function(xmlHttpRequest) {var res = Liferay.Util.toJSONObject(xmlHttpRequest.responseText);var status = res.status;if (status && status != "failure") {if (status == "success") {if (res.chatMessages) {Messaging.getChatsReturn(res.chatMessages);}if (res.chatRoster) {MessagingRoster.getEntriesReturn(res.chatRoster);}}ReverseAjax.request();}},release : function() {AjaxUtil.request(themeDisplay.getPathMain() + "/portal/reverse_ajax?release=1", {reverseAjax:true});}};function executeLoadedScript(el) {var scripts = el.getElementsByTagName("script");for (var i = 0; i < scripts.length; i++) {if (scripts[i].src) {var head = document.getElementsByTagName("head")[0];var scriptObj = document.createElement("script");scriptObj.setAttribute("type", "text/javascript");scriptObj.setAttribute("src", scripts[i].src);head.appendChild(scriptObj);}else {try {if (Liferay.Browser.is_safari) {eval(scripts[i].innerHTML);}else if (Liferay.Browser.is_mozilla) {eval(scripts[i].textContent);}else {eval(scripts[i].text);}}catch (e) {}}}}/* * NOTE: loadPage() has been depricated.  Use AjaxUtil.request() instead */function loadPage(path, queryString, returnFunction, returnArgs) {AjaxUtil.request(path + "?" + queryString, {onComplete: returnFunction,returnArgs: returnArgs});}function printJSON(data) {if (data && data.id) {var target = document.getElementById(data.id);if (target) {target.innerHTML = data.toString();}}} 