/* *+------------------------------------------------------------------------+ *| Licensed Materials - Property of IBM *| BI and PM: prmt *| (C) Copyright IBM Corp. 2002, 2018 *| *| US Government Users Restricted Rights - Use, duplication or *| disclosure restricted by GSA ADP Schedule Contract with IBM Corp. *| *+------------------------------------------------------------------------+ */ function C_PromptElement( sTag, oAttr, oParent ) { this.m_sTag = sTag; this.m_oAttr = {}; this.m_aChild = []; if ( oAttr ) { Object.f_extend( this.m_oAttr, oAttr ); } if ( oParent ) { oParent.f_appendChild( this ); } } C_PromptElement.prototype.f_appendText = function( v_sText ) { var v_sLabel = null; v_sLabel = sDecodeU003(K_PRMT_sEMPTY + v_sText); var reMarkup = new RegExp("(<|>)"); if ( v_sLabel.match( reMarkup ) ) { v_sLabel = sHtmlEncode(v_sLabel ); } this.m_aChild.push( v_sLabel ); }; C_PromptElement.prototype.f_getHTML = function() { var s = K_PRMT_sLT + this.m_sTag; for (var a in this.m_oAttr) { if ( this.m_oAttr[a] !== null ) { var sAttr = K_PRMT_sEMPTY + this.m_oAttr[a]; s += K_PRMT_sSP + a + K_PRMT_sEQ_QU + sAttr.replace(K_PRMT_reQU, K_PRMT_sQU_encoded) + K_PRMT_sQU; } } if ( this.m_aChild.length > 0 ) { s += K_PRMT_sGT; var v_aStrings = []; for (var i = 0; i < this.m_aChild.length; i++) { var c = this.m_aChild[i]; if ( c && (typeof c.f_getHTML == K_PRMT_sFUNCTION) ) { s += c.f_getHTML(); } else { s += c; } } s += K_PRMT_sLT_SL + this.m_sTag; } else if ( this.m_sTag != 'img' ) { s += K_PRMT_sSL; } s += K_PRMT_sGT; return s; }; C_PromptElement.prototype.f_setStyle = function( v_oElement, v_sStyle ) { var v_aStyles = PRMTUtils.f_parseStyle( v_sStyle ); for (var i = 0; i < v_aStyles.length; i++) { var v_s = v_aStyles[i]; v_oElement.style[ PRMTUtils.f_camelCase(v_s[0]) ] = v_s[1]; } }; C_PromptElement.prototype.f_create = function() { var v_oElement = document.createElement( this.m_sTag ); if ( window.ie ) { for (var a in this.m_oAttr) { if ( this.m_oAttr[a] !== null ) { switch( a ) { case "class": v_oElement.className = this.m_oAttr[a]; break; case "style": this.f_setStyle( v_oElement, this.m_oAttr[a] ); break; default: v_oElement.setAttribute( a, K_PRMT_sEMPTY + this.m_oAttr[a] ); } } } } else { for (var a in this.m_oAttr) { v_oElement.setAttribute( a, K_PRMT_sEMPTY + this.m_oAttr[a] ); } } if ( this.m_aChild.length > 0 ) { for (var i = 0; i < this.m_aChild.length; i++) { var c = this.m_aChild[i]; if ( c && (typeof c.f_create == K_PRMT_sFUNCTION) ) { v_oElement.appendChild( c.f_create() ); } else { // add text v_oElement.innerHTML += ( K_PRMT_sEMPTY + c ); } } } return v_oElement; }; C_PromptElement.prototype.f_appendChild = function(oP) { this.m_aChild.push( oP ); }; C_PromptElement.prototype.f_appendClass = function( v_sNewClass ) { var v_sClass = this.f_getProperty( "class" ); v_sClass = ( v_sClass ? v_sClass + K_PRMT_sSP : K_PRMT_sEMPTY ) + v_sNewClass; this.f_setProperty( "class", v_sClass ); }; C_PromptElement.prototype.f_getProperty = function ( v_sName ) { return ( this.m_oAttr[ v_sName ] ); }; C_PromptElement.prototype.f_setProperty = function ( v_sName, v_sValue ) { this.m_oAttr[ v_sName ] = v_sValue; };