//************************************************************
// 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 += "" + (jQuery(node)[0].tagName) + ">";
return strTmpInnerXml;
};