//************************************************************ // Purpose : // Filename : // Author : Ashvin Jiawon // Date : // Document : //************************************************************ function LIPUHandler() { this.lipuURL = '/pages/popups_frames/lipu_ajax.asp'; this.xmlParamName = 'XmlParam'; this.htmlParamName = 'HtmlParam'; this.sendDataParamName = 'SendData'; this.ErrorCode = ''; this.Location = ''; this.ExeptionMsg = ''; this.HtmlParam = ''; this.Plugin = ''; this.XmlParam = ''; this.SendData = ''; this.Params = {}; this.Async = true; LIPUHandler.prototype.lipuURL; LIPUHandler.prototype.xmlParamName; LIPUHandler.prototype.htmlParamName; LIPUHandler.prototype.sendDataParamName; LIPUHandler.prototype.ErrorCode; LIPUHandler.prototype.Location; LIPUHandler.prototype.ExeptionMsg; LIPUHandler.prototype.HtmlParam; LIPUHandler.prototype.Plugin; LIPUHandler.prototype.XmlParam; LIPUHandler.prototype.SendData; LIPUHandler.prototype.Plugin; LIPUHandler.prototype.Async; LIPUHandler.prototype.LoadLIPUHandlerXml = function(xml) { var xmlDocument = jQuery.xmlDOM(xml); this.ErrorCode = '380'; this.Location = 'LoadLIPUXml'; this.ErrorCode = jQuery('ROOT > LIPU > ERRORCODE', xmlDocument).text(); this.Location = jQuery('ROOT > LIPU > ERRORLOCATION', xmlDocument).text(); this.ExeptionMsg = jQuery('ROOT > LIPU > ERRORMSG', xmlDocument).text(); var plugins = jQuery('ROOT > LIPU > PARAMS > PARAM', xmlDocument); for(var i = 0; i < plugins.length; i++) { var param = jQuery('NAME', plugins.get(i)).text(); var value = jQuery('VALUE', plugins.get(i)).text(); var isXml = jQuery('VALUE', plugins.get(i)).attr('isxml') == '1'; this.SetParamInternal(param, value, false); if(isXml) { var cnt = 0; //value = ( getInnerXml( jQuery('VALUE', plugins.get(i)).children().eq(0) ) ); value = (jQuery(plugins.get(i)).getInnerXml()); //console.log(value); } if(param.toLowerCase() == this.xmlParamName.toLowerCase()) { this.XmlParam = value; //this.XmlParam = this.XmlParam.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); } if(param.toLowerCase() == this.htmlParamName.toLowerCase()) { this.HtmlParam = value; //this.HtmlParam = this.HtmlParam.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); } if(param.toLowerCase() == this.sendDataParamName.toLowerCase()) { this.SendData = value; //this.SendData = this.SendData.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); } } } LIPUHandler.prototype.ProcessInput = function(onComplete) { var url = ''; var queryString = ''; this.Params['Plugin'] = this.Plugin; var objLipu = this; this.SetParamInternal(this.xmlParamName, this.XmlParam, true); this.SetParamInternal(this.htmlParamName, this.HtmlParam, true); this.SetParamInternal(this.sendDataParamName, this.SendData, true); queryString = queryString + 'articleid=' + this.GetParamInternal('articleid') + '&token=' + this.GetParamInternal('token') + '&loadtoken=1'; url = this.lipuURL + '?' + queryString jQuery.ajax({ type: 'POST', url: url, cache: false, async: this.Async, data: this.Params, success: function(data) { objLipu.LoadLIPUHandlerXml(data) onComplete(objLipu); }, error: function(data) { objLipu.ErrorCode = '371' objLipu.ExeptionMsg = data onComplete(objLipu); }, dataType: 'text' }); } LIPUHandler.prototype.GetRawXml = function() { //Unavailable for now } LIPUHandler.prototype.ParseXml = function() { //Unavailable for now } LIPUHandler.prototype.SetParam = function(param, value) { if(param.toLowerCase() != this.xmlParamName.toLowerCase() && param.toLowerCase() != this.htmlParamName.toLowerCase() && param.toLowerCase() != this.sendDataParamName.toLowerCase()) { this.SetParamInternal(param, value, false); } } LIPUHandler.prototype.SetParamInternal = function(param, value, encode) { encode = false; if(encode) { value = this.HTMLEncode(value); } this.Params[param.toLowerCase()] = value; } LIPUHandler.prototype.GetParam = function(param) { if(param.toLowerCase() != this.xmlParamName.toLowerCase() && param.toLowerCase() != this.htmlParamName.toLowerCase() && param.toLowerCase() != this.sendDataParamName.toLowerCase()) { return this.GetParamInternal(param.toLowerCase()); } } LIPUHandler.prototype.GetParamInternal = function(paramName) { return this.Params[paramName]; } LIPUHandler.prototype.HTMLEncode = function(strText) { return jQuery('').text(strText).html(); } LIPUHandler.prototype.OpenThickBox = function(strPage, strWidth, strHeight, blnModal, strTitle, openInParent) { var url = ''; var querystring = ''; querystring = querystring + 'loadtoken=1'; var querystring_tb = 'keepThis=true&TB_iframe=true&modal=' + blnModal +'&height=' + strHeight + '&width=' + strWidth; for(var p in this.Params) { if(querystring.length > 0) { querystring = querystring + '&'; } querystring = querystring + p + '=' + jQuery.URLEncode(this.Params[p]); } if(strTitle ==undefined) strTitle = ''; url = strPage + '?' + querystring + '&' + querystring_tb; //alert(strTitle); if(openInParent == true) parent.tb_show(strTitle, url, false); else tb_show(strTitle, url, false); } } // //Example // var objLipu = new LIPUHandler(); // // objLipu.Plugin = 'Dummy'; // // objLipu.SetParam('1', 'a'); // objLipu.SetParam('2', 'b'); // objLipu.SetParam('3', 'b&12345'); // objLipu.SetParam('4', 'd'); // objLipu.XmlParam = ''; // // // var oncompleteFunc = function(lipuObj) // { // jQuery('#d1').html(objLipu.HtmlParam); // jQuery('#d2').html(objLipu.GetParam('3')); // alert(objLipu.XmlParam); // }; // // objLipu.ProcessInput(oncompleteFunc); var strTmpInnerXml = ''; var getInnerXml = function(node, internal) { if(!internal) strTmpInnerXml = ''; var numChildren = jQuery(node).children().length; strTmpInnerXml += "<" + (jQuery(node)[0].tagName) + ">"; jQuery(node).children().each(function() { getInnerXml(this, true); }); if(numChildren == 0) strTmpInnerXml += /*''*/; strTmpInnerXml += ""; return strTmpInnerXml; };