var defaultEmptyOK = false
collabapplication = "blog";
var helpUrl;
var imgFileCnt = 5
	var oldDDRow = null;

function strltrim() 
{
    return this.replace(/^\s+/,'');
}

function strrtrim() 
{
    return this.replace(/\s+$/,'');
}
function strtrim() 
{
    return this.replace(/^\s+/,'').replace(/\s+$/,'');
}

function et_g_trimNbsp()
{
	return this.replace(/^[\u00A0]+/,'').replace(/[\u00A0]+$/,'');
}
String.prototype.ltrim = strltrim;
String.prototype.rtrim = strrtrim;
String.prototype.trim = strtrim;
String.prototype.trimNbsp = et_g_trimNbsp;

String.prototype.endsWith = function (s) {
    if ('string' != typeof s) {
        throw('IllegalArgumentException: Must pass a ' +
            ' string to String.prototype.endsWith()');
    }
    var start = this.length - s.length;
    return this.substring(start) == s;
};


	/*
	 * function to set focus on the first text field in the form
	 */
	 
function callsearchlist()
{
	document.forms[0].action="searchpostlist.jsp";
	document.forms[0].submit();
}
	function et_g_setInitialFocus()
	{
		try
		{
			document.body.onfocus="";
			for(var x=0; x<document.forms[0].elements.length; x++)
			{
				var type = document.forms[0].elements[x].type;
				if((type) && ((type == "text") || (type == "textarea")))
				{
					try
					{
						var r = document.forms[0].elements[x].getAttribute("et.readonly");
						if((!r)||(r=="false")) //to avoid onfocus handler get
											   // called
						{
							var en = document.forms[0].elements[x].getAttribute("et.enabled");
							if( (!en) || (en=="true") )
							{
								document.forms[0].elements[x].focus();
								break;
							}
						}
					}
					catch(err){}
				}
			}
		}
		catch(er){}
	}
	
	/*
	 * function to replace a pattern in a string with another string
	 */
	function et_g_replace(str, pattern, replace)
	{
		s = 0;
		e = 0;
		var result = new String();
		while ((e = str.indexOf(pattern, s)) >= 0) {
			result = result + str.substring(s, e);
			result = result + replace;
			s = e + pattern.length;
		}
		result = result +  str.substring(s);
		return result;
	}	
	
	
	/*
	 * function to replace a pattern in a string with another string
	 */
	function et_g_replaceLast(str, pattern, replace)
	{
		var e = -1;
		var result = new String();
		if ((e = str.lastIndexOf(pattern)) >= 0) {
			result = str.substring(0, e);
			result = result + replace;
			result = result + str.substring(e+pattern.length);;
		}
		return result;
	}
	
	/*
	 * returns the last event type
	 */
	function et_g_getEventType()
	{
		return et_evtType;
	}
	
	/*
	 * returns the last event target
	 */
	function et_g_getEventTarget()
	{
		return et_evtTarget;
	}
	
	/*
	 * returns the event data
	 */
	function et_g_getEventData()
	{
		return et_evtData;
	}
	
	/*
	 * sets the global event type & target
	 */
	function et_g_setEvent(e)
	{
		try
		{
			if(e)
			{
				var t = (e.target || e.srcElement);
				et_evtTarget = t.name;
				if(e.type == 'change')
					et_evtType = et_ev_CHANGE;
				else if(e.type == 'click')
					et_evtType = et_ev_CLICK;
				document.forms[0].et_event.value = et_g_getEventType();
				document.forms[0].et_target.value = et_g_getEventTarget();
			}
		}
		catch(err){}
	}
	
	function et_g_setEventCustom(e, target, data)
	{
		try
		{
			et_evtType = e;
			et_evtTarget = target;
			et_evtData = data;
			document.forms[0].et_event.value = et_g_getEventType();
			document.forms[0].et_target.value = et_g_getEventTarget();
			document.forms[0].et_event_data.value = et_g_getEventData();
		}
		catch(err){}
	}
	
	
	/*
	 * checks for empty string
	 */
	function et_g_isEmpty(s)
	{
		return ((s == null) || (s.length == 0));
	}
	
	/*
	 * checks for whitespace string
	 */
	function et_g_isWhitespace (s)
	{
		return (et_g_isEmpty(s) || reWhitespace.test(s));
	}
	
	
	function et_g_isInteger (s)
	{
		var i;
		for (i = 0; i < s.length; i++){
			// Check that current character is number.
			var c = s.charAt(i);
			if (!et_g_isDigit(c)) return false;
		}
		// All characters are numbers.
		return true;
	}
	// Returns true if character c is a digit
	// (0 .. 9).
	function et_g_isDigit (c)
	{
		return ((c >= "0") && (c <= "9"))
	}
	
	// Returns true if character c is a digit
	// (1 .. 9).
	function et_g_isNonZeroDigit (c)
	{
		return ((c > "0") && (c <= "9"))
	}
	
	function et_g_isNonZeroInteger(s)
	{
		var i;
		if(s.length==1){
			if(et_g_isNonZeroDigit (s)) return true;
			else return false;
		}
		for (i = 0; i < s.length; i++){
			// Check that current character is number.
			var c = s.charAt(i);
			if (!et_g_isInteger(c)) return false;
		}
		// All characters are numbers.
		return true;
	}
	
	
	/*
	 * returns an elements width
	 */
	function et_g_getElementClientWidth(containerElement)
	{
		if(typeof(containerElement) == "undefined")
			return 0;
		if(et_user_agent.indexOf("safari") != -1)
		{
			return containerElement.offsetWidth;
		}
		else
		{
			return containerElement.clientWidth;
		}
	}
	
	/*
	 * returns available width for Body in the browser
	 */
	function et_g_getAvailableWidth()
	{
		try
		{
			var x = 0;
			if (self.innerWidth) 
			{    // safari, netscape etc.... but not IE
				x = self.innerWidth;
			}
			else if (document.documentElement && document.documentElement.clientWidth) 
			{
				x = document.documentElement.clientWidth;
			}
			else if (document.body) 
			{
				x = document.body.clientWidth;
			}
			x = (x - et_fixedW);
			if((et_minW > 0) && (x < et_minW))
				x = et_minW;
			return x;
		}
		catch(err){}
	}
	
	/*
	 * returns available height for Body in the browser
	 */
	function et_g_getAvailableHeight()
	{
		try
		{
			var x = 0;
			if (self.innerHeight) 
			{    // safari, netscape etc.... but not IE
				x = self.innerHeight;
			}
			else if (document.documentElement && document.documentElement.clientHeight) 
			{
				x = document.documentElement.clientHeight;
			}
			else if (document.body) 
			{
				x = document.body.clientHeight;
			}
			x = (x - et_fixedH);
			if( (et_minH > 0) && (x < et_minH) )
				x = et_minH;
			return x;
		}
		catch(err){}
	}
	
	/*
	 * check whether all the mandatory input fields have been filled in or not
	 * returns True - if all mandatory are filled, otherwise returns False
	 */
	function et_g_checkMandatory()
	{
		var w = document.getElementById('win');
		var ret = true;
		if(w)
			ret = et_g_checkMandatoryNode(w);
		if(!ret)
			alert("mandatory input missing");
		return ret;
	}
	
	/*
	 * check whether all the mandatory input fields have been filled in or not
	 * returns True - if all mandatory are filled, otherwise returns False
	 */
	function et_g_checkMandatoryNode(node)
	{
		try
		{
			var type = node.type;
			var ret = true;
			var m = document.getElementById('man');
			if(node.type)
			{
				var man = node.getAttribute('et.mandatory');
				var dis = node.getAttribute('et.enabled');
				if(man == 'true' && dis != 'false')
				{
					if(type == "select-multiple")
					{
						if(node.options.length == 0 || node.selectedIndex == -1)
						{
							ret = false;
							node.style.backgroundColor='#FFCC99';
						}
						else
							node.style.backgroundColor='white';
						//m.className='invisible';
					}
					else if( (type == "text") || (type == "textarea") || (type == "password") || (type == "file"))
					{
						alert(type);
						alert(node.value);
						if(et_g_isWhitespace(node.value))
						{
							ret = false;
							node.style.backgroundColor='#FFCC99';
						}
						else
							node.style.backgroundColor='white';
						//m.className='invisible';
					}
					else if(type == "checkbox")
					{
						
					}
				}
			}
			if(ret)
			{
				//find the first child
				var ch = node.firstChild;
				while(ch)
				{
					ret = et_g_checkMandatoryNode(ch);
					if(!ret)
						break;
					ch = ch.nextSibling;
				}
			}
			return ret;
		}
		catch(err){}
		
	}
	
	function et_resizeAddrBar()
	{
		var addrBar = document.getElementById("et.addr_row");
		if(addrBar)
		{
			et_assignFixedWidth(addrBar, et_g_getAvailableWidth(), 20, false);
		}
	}
	
	/*
	 * function to assign the width to the HTML elements, based on the et.width &
	 * et.height attribute et.width attribute specifies %width w.r.t. the
	 * container of the element. this function is called on load and window
	 * resize
	 */
	
	function et_assignFixedWidth(pnode, pw, ph, resize)
	{
		try
		{
			var ch, w, h;
			var tmp; //temp variable
			if(pnode == null)
			{
				pnode = document.getElementById("wintbl_rsz");//document.body;
				pw = et_g_getAvailableWidth(); 
				ph = et_g_getAvailableHeight(); 
				w = parseInt(pnode.getAttribute("et.width"));
				h = parseInt(pnode.getAttribute("et.height"));
				pnode.style.width = pw * w /100;
				pnode.width = pw * w /100;
				pnode.style.height = ph * h /100;
				pnode.height = ph * h /100;
				et_assignFixedWidth(pnode, pw * w /100, ph * h /100, resize);
				et_resizeAddrBar();
				return;
			}
			ch = pnode.firstChild;
			while(ch)
			{
				w = pw;
				h = ph;
				var ch_done = false;

				//added by sanjay
				if(ch.nodeType == 1 && ch.nodeName)
				{
					var childNodeName = ch.nodeName.toLowerCase();
					if( (childNodeName == 'object') || (childNodeName == 'applet') || (childNodeName == 'embed') )
					{
						ch = ch.nextSibling;
						continue;
					}
				}
				//
				
				if(ch.nodeType == 1)
				{
					var wtype = ch.getAttribute("et.widgettype");
					//wtype = ch.getAttribute("et.widgettype");
					if((resize) && (wtype) &&( (wtype == "wingrid_data")||(wtype == "wingrid_hdr")) )
					{
						ch_done = true;
					}
					else if((!resize) && (wtype) && (wtype == "wingrid_data"))
					{
						//resize the wingrid
						et_wg_resize_grid(ch, pw, ph);
						ch_done = true;
					}
				}
				
				if( (!ch_done ) && (ch.nodeType == 1) )
				{
					if(pw > 0) //set the width only if a valid value is passed
					{
						var chw = ch.getAttribute("et.width");
						if(chw)
						{
							if(et_g_isNumeric(chw))
							{
								w = parseInt(chw);
								//convert it to fixed size
								w = pw * w / 100;
							}
							else
							{
								//tmp = ch.getAttribute("et.width");
								chw = et_g_replace(chw, "pw", pw);
								w = eval(chw);
							}
							if(w >= 1)
							{
								//set the width of this node
								ch.style.width = w;
								ch.width = w;
							}
						}
					}
					if(ph > 0) //set the height only if a valid value is passed
					{
						var chh = ch.getAttribute("et.height");
						if(chh)
						{
							if(et_g_isNumeric(chh))
							{
								h = parseInt(chh);
								//convert it to fixed size
								h = ph * h / 100;
							}
							else
							{
								//tmp = ch.getAttribute("et.height");
								chh = et_g_replace(chh, "ph", ph);
								h = eval(chh);
							}
							if(h >= 1)
							{
								//set the width of this node
								ch.style.height = h;
								ch.height = h;
							}
						}
					}
				}
				//follow the childrens of this node
				
				//changed today
				
				if((!ch_done) && (ch.nodeType == 1))
				{
					//Nodes to skip while resizing
					var nodeName = ch.nodeName.toLowerCase();
					if( (nodeName != "script")&&(nodeName != "object")&&(nodeName != "applet")&&(nodeName != "embed")&&(nodeName != "img")&&(nodeName != "br")&&(nodeName != "script")&&(nodeName != "a")&&(nodeName != "option") )
					{
						var chrsz = ch.getAttribute("et.childresize");
						if((!chrsz) || (chrsz == "true"))
						{
							et_assignFixedWidth(ch, w, h, resize);
						}
					}
				}
				ch = ch.nextSibling;
			}
		}
		catch(err){}
	}
	
	
	
	// function to toggle display for an element
	function et_g_toggleDisplay(elemid)
	{
		var elm = document.getElementById(elemid);
		if (elm.style.display == 'none'){
			elm.style.display = "";
		}else{
			elm.style.display = "none";
		}
	}
	
	/*
	 * function to prepare the Window for submit()
	 */
	function et_g_prepare()
	{
		try
		{
			var ret = true;
			if(et_g_prepArray)
			{
				for(var i=0; i<et_g_prepArray.length; i++)
				{
					var id = et_g_prepArray[i];
					if(id)
					{
						var elem = document.getElementById(id);
						if(elem)
						{
							var fName = elem.getAttribute("et.prep");
							if(fName)
							{
								var fPtr;
								try
								{
									fPtr = eval(fName);
								}catch(err){}
								if(fPtr)
								{
									if(!fPtr(id)) //If any prepare function
												  // fails, exit
									{
										ret = false;
										break;
									}
								}
							}
						}
					}
				}
			}
			return ret;
		}
		catch(err){}
	}
	
	function et_g_submit()
	{
		if(et_g_checkFields())
		{
			if(et_g_prepare())
			{
				et_g_enableAllFields();
				//set width & height of the client
				document.forms[0].et_ch.value = et_availH+et_fixedH;
				document.forms[0].et_cw.value = et_availW+et_fixedW;
				document.forms[0].submit();
			}
		}
		
	}
	
	/*
	 * enables all fields on the page
	 */
	
	/*function et_g_enableAllFields()
	{
			
		var w = document.getElementById('win');
		if(w){
			et_g_enableFields(w, true);
		}
		return;
	}*/

	function et_g_enableAllFields()
	{

		try
		{
			for(var x=0; x<document.forms[0].elements.length; x++)
			{
				var type = document.forms[0].elements[x].type;
				if((type) && ((type == "text") || (type == "textarea") || (type == "select")  || (type == "checkbox") ||  (type == "radio")))
				{
					try
					{
						var r = document.forms[0].elements[x].getAttribute("et.enabled");
						if(r && r == 'false') 
						{
							/*document.forms[0].elements[x].removeAttribute('disabled');
							document.forms[0].elements[x].setAttribute('et.enabled', 'true');
							*/
							et_g_enableFormControl(document.forms[0].elements[x]);
						}
					}
					catch(err){}
				}
			}
		}
		catch(er){}

	}
	
	/*
	 * enables all fields under a node (inclusive)
	 */
	function et_g_enableFields(node)
	{
		try
		{
			if(node.type)
			{
				var enab = node.getAttribute('et.enabled');
				if(enab == 'false')
				{
					/*node.removeAttribute('disabled');
					node.setAttribute('et.enabled', 'true');
					*/
					et_g_enableFormControl(node);
				}
			}
			var ch = node.firstChild;
			while(ch)
			{
				ret = et_g_enableFields(ch);
				ch = ch.nextSibling;
			}
			return true;
		}
		catch(err){}
	}
	
	function et_g_enableFormControl(node)
	{
		try
		{
			if(node.nodeName.toLowerCase() == "textarea")
			{
				node.removeAttribute('readonly');
			}
			else
			{
				node.removeAttribute('disabled');
			}
			node.setAttribute('et.enabled', 'true');
		}
		catch(err){}
	}
	
	function et_g_disableFormControl(node)
	{
		try
		{
			if((!isIE) && node.nodeName.toLowerCase() == "textarea")
			{
				node.setAttribute("readonly", "true");
			}
			else
			{
				node.setAttribute("disabled", "true");
			}
			node.setAttribute('et.enabled', 'false');
			node.style.backgroundColor=et_g_DISABLED;
		}
		catch(err){}
	}
	/*
	 * enables the specified field
	 */
	function et_g_enableField(id)
	{
		try
		{
			var node = document.getElementById(id);
			if(node.type)
			{
				var enab = node.getAttribute('et.enabled');
				if(enab == 'false')
				{
					et_g_enableFormControl(node);
				}
			}
		}
		catch(err){}
	}
	
	
	/*
	 * disables all fields under a node (inclusive)
	 */
	function et_g_disableFields(node)
	{
		try
		{
			if(node.type)
			{
				var enab = node.getAttribute('et.enabled');
				if(enab == 'true')
				{
					/*node.setAttribute('disabled', 'true');
					node.setAttribute('et.enabled', 'false');
					*/
					et_g_disableFormControl(node);
				}
			}
			var ch = node.firstChild;
			while(ch)
			{
				ret = et_g_disableFields(ch);
				ch = ch.nextSibling;
			}
			return true;
		}
		catch(err){}
	}
	
	function et_g_disableAllFields()
	{
		try
		{
			for(var x=0; x<document.forms[0].elements.length; x++)
			{
				var type = document.forms[0].elements[x].type;
				if((type) && ((type == "text") || (type == "textarea") || (type == "select")  || (type == "checkbox") ||  (type == "radio")))
				{
					try
					{
						var r = document.forms[0].elements[x].getAttribute("et.enabled");
						if(r && r == 'true') 
						{
							/*r.set('disabled', 'true');
							r.setAttribute('et.enabled', 'false');
							*/
							et_g_disableFormControl(document.forms[0].elements[x]);
						}
					}
					catch(err){}
				}
			}
		}
		catch(er){}
	}
	/*
	 * disables the specified field
	 */
	function et_g_disableField(id)
	{
		try
		{
			var node = document.getElementById(id);
			
			if(node.type)
			{
				var enab = node.getAttribute('et.enabled');
				if(enab == 'true')
				{
					/*node.setAttribute('disabled', 'true');
					node.setAttribute('et.enabled', 'false');*/
					et_g_disableFormControl(node);
				}
			}
		}
		catch(err){}
	}
	
	
	function et_g_checkFields()
	{		
		try
		{
			et_g_message = ""; 
			var w = document.getElementById('win');
			var ret = true;
			if(w){
				var formElements = document.forms[0].elements;
				for (var i=0; i < formElements.length; i++)
				{
					if ((formElements[i].type != 'hidden') && 
							(formElements[i].type != 'submit') && 
							(formElements[i].type != 'checkbox'))
					{
						et_g_message = et_g_checkFieldsNode(formElements[i]);

						if (formElements[i].type == 'textarea')
						{
							if (et_g_checkMaxLength(formElements[i]) == false)
							{
								ret = false;
								break;
							}
						}
					}
				}


			}
			if(et_g_message.length > 0){
				var finalMessage = et_g_getFinalMessage(et_g_message);
				alert(finalMessage);
				ret = false;
			}
			return ret;
		}
		catch(err){}
	}
	
	/*
	 * check whether all the mandatory input fields have been filled in or not
	 * returns True - if all mandatory are filled, otherwise returns False
	 */
	function et_g_checkFieldsNode(node)
	{
		try
		{
			var type = node.type;
			var ret = true;
			var m = document.getElementById('man');
			
			
			if(node.type)
			{
				var man = node.getAttribute('et.mandatory');
				var dis = node.getAttribute('et.enabled');
				var datatype = node.getAttribute('et.datatype');
				var dataformat = node.getAttribute('et.dataformat');
				if(datatype != null)
					datatype = datatype.toLowerCase();
				if(man == 'true' && dis != 'false')
				{
					if((type == "select-multiple")||(type == "select"))
					{
						if(node.options.length == 0 || node.selectedIndex == -1)
						{
							et_g_message = et_g_checkAndAdd(et_g_message,"Mandatory input missing.");
							node.style.backgroundColor=et_g_MAND_MISS;
						}
						else
							node.style.backgroundColor='white';
						//m.className='invisible';
					}
					else if( (type == "text") || (type == "textarea") || (type == "password") || (type == "file"))
					{
						if(et_g_isWhitespace(node.value))
						{
							
							et_g_message = et_g_checkAndAdd(et_g_message,"Mandatory input missing.");
							//et_g_message = et_g_message + "\n Mandatory input
							// missing.";
							node.style.backgroundColor=et_g_MAND_MISS;
						}
						else
							node.style.backgroundColor='white';
						//m.className='invisible';
						//et_g_validateTypeAndFormat(node,type,datatype,dataformat)
						
					}
					else if(type == "checkbox")
					{
						
					}
				} 
				
				if(dis != 'false')
				{
					if( (type == "text") || (type == "textarea") || (type == "password") || (type == "file"))
					{
						et_g_validateTypeAndFormat(node,type,datatype,dataformat);
					}

					/*		
					if( type == "textarea" )
					{
						var maxlength = node.getAttribute('maxlength');
						
						if (node.value.length > maxlength)
						{
							et_g_message = et_g_checkAndAdd(et_g_message,"Length is more than maximum characters allowed for the field.");
							ret = false;
							node.style.backgroundColor=et_g_MAXLENGTH_EXCD;
						}
						else
							node.style.backgroundColor='white';
					}
					*/
							
				}
			}
			return et_g_message;
		}
		catch(err){}
	}

/*
	 * check whether all the mandatory input fields have been filled in or not
	 * returns True - if all mandatory are filled, otherwise returns False
	 */
	function et_g_checkMaxLength(node)
	{
		try
		{
			var type = node.type;
			var ret = true;
			var m = document.getElementById('man');
			
			
			if(node.type)
			{
				var dis = node.getAttribute('et.enabled');
				
				if(dis != 'false')
				{
					if( type == "textarea" )
					{
						var maxlength = node.getAttribute('maxlength');
						
						if ((maxlength > 0) && (node.value.length > maxlength))
						{
							et_g_message = et_g_checkAndAdd(et_g_message,"Length of the field is more than " + maxlength + " characters.");
							ret = false;
							node.style.backgroundColor=et_g_MAXLENGTH_EXCD;
							return false;
						}
						else
							node.style.backgroundColor='white';
					}
							
				}
			}
			return true;
		}
		catch(err){}
	}
	
	function et_g_validateTypeAndFormat(node,type,datatype,dataformat)
	{
		try
		{
			if(et_g_isWhitespace(node.value))
			{
				return true;
			}
			if(type == "text")
			{
				if (datatype == "integer")
				{
					if (!et_g_isSignedInteger(node.value))
					{
						
						et_g_message = et_g_checkAndAdd(et_g_message,"Enter valid data.");
						node.style.backgroundColor=et_g_INV_DATA_TYPE;	
					}
				} else if (datatype == "numeric")
				{
					if (!et_g_isNumeric(node.value))
					{
						
						et_g_message = et_g_checkAndAdd(et_g_message,"Enter valid data.");
						node.style.backgroundColor=et_g_INV_DATA_TYPE;	
					}
				}
				
				if(dataformat != null && dataformat != ""){
					if(node.value != ""){
						if (!et_g_validateData(dataformat,node.value))
						{
							
							et_g_message = et_g_checkAndAdd(et_g_message,"Please enter valid data format.");
							
							node.style.backgroundColor=et_g_INV_DATA_FORMAT;	
						}
					}
				}
			}
		}
		catch(err){}
	}
	
	function validateField(node)
	{
		try
		{
			if(node.type)
			{
				var type = node.type;
				var man = node.getAttribute('et.mandatory');
				var dis = node.getAttribute('et.enabled');
				var datatype = node.getAttribute('et.datatype');
				var dataformat = node.getAttribute('et.dataformat');
				if(datatype != null)
					datatype = datatype.toLowerCase();
				if(man == 'true' && dis != 'false')
				{
					if(type == "select-multiple")
					{
						if(node.options.length == 0 || node.selectedIndex == -1)
						{
							
							return false;;
						}
						else
							return true;
					}
					else if( (type == "text") || (type == "textarea") || (type == "password"))
					{
						if(et_g_isWhitespace(node.value))
						{
							return false;					
						}
						else
						{
						}
					}
					else if(type == "checkbox")
					{
						
					}
				} 
				
				if( (type == "text") || (type == "textarea") || (type == "password"))
				{
					if (datatype == "integer")
					{
						if (!et_g_isInteger(node.value))
						{
							return false;	
						}
					} else if (datatype == "numeric")
					{
						if (!et_g_isNumeric(node.value))
						{
							return false;	
						}
					}
					
					if(dataformat != null && dataformat != ""){
						if(node.value != ""){
							if (!et_g_validateData(dataformat,node.value))
							{
								return false;	
							}
						}
					}
				}
			}
			return true;
		}
		catch(err){}
	}
	
	/*
	 * function to get the final messages from concatenated string.
	 */
	function et_g_getFinalMessage(message)
	{
		try
		{
			var finalMessage = "";
			var arrdata = message.split("|-|");
			for (i = 0; i < arrdata.length; i++){
				if(arrdata[i] != ""){
					
					finalMessage = finalMessage+ arrdata[i]+"\n";
					
				}
			}
			return finalMessage;
		}
		catch(err){}
	}
	
	/*
	 * check and add messages in a string. don't add duplicate messages.
	 */
	function et_g_checkAndAdd(message,mStr)
	{
		try
		{
			if(message != "")
			{
				if(message.indexOf("|-|"+mStr+"|-|") != -1)
				{
					
				}
				else
				{
					message = message+mStr+"|-|";	
				}
				
				
			}
			else
			{
				message = "|-|"+mStr+"|-|";	
			}
			return message;
		}
		catch(err){}
	}
	
	function et_g_isInteger (s)
	{
		try
		{
			var i;
			for (i = 0; i < s.length; i++)
			{
				// Check that current character is number.
				var c = s.charAt(i);
				if (!et_g_isDigit(c)) return false;
			}
			// All characters are numbers.
			return true;
		}
		catch(err){}
	}
	
	function et_g_isDigit (c)
	{
		return ((c >= "0") && (c <= "9"))
	}
	
	function et_g_isNumeric(sText)
	{
		try
		{
			var ValidChars = "0123456789.";
			var isNumber=true;
			var Char;
			for (i = 0; i < sText.length && isNumber == true; i++) 
			{ 
				Char = sText.charAt(i); 
				if (ValidChars.indexOf(Char) == -1) 
				{
					isNumber = false;
				}
			}
			return isNumber;
		}
		catch(err){}
	}
	
	function et_g_validateData(format,value)
	{
		try
		{
			var thePat = et_g_validators[format]; 
			var gotIt = thePat.exec(value); 
			var ret;
			if(! gotIt)
			{
				ret = false;
			}
			else
			{
				ret = true;
			}
			return ret;
		}
		catch(err){}
	}
	
	function et_element_hide(elementName)
	{
		var element = document.getElementById(elementName);
		if(element) 
		{
			element.style.display = "none";
		}
	}
	
	function et_element_show(elementName)
	{
		var element = document.getElementById(elementName);
		if(element) 
		{
			element.style.display = "";
		}
	}
	
	/*
	 * diplays formattext in specified div
	 */
	function et_showdiv(evt,elem, divname, formattext) 
	{ 
		var cord = et_edd_anchorPosition(elem.name);
		var div = document.getElementById(divname);
		div.innerHTML = formattext;
		div.style.left=cord.x
		div.style.top=cord.y + elem.offsetHeight
		div.style.display="";
	} 
	
	/*
	 * hides specified div
	 */
	function et_hidediv(e, elem, divname)
	{
		document.getElementById(divname).style.display = "none"; 
	}
	
	function et_help_toggle(e, imgElement)
	{
		var helpActive = imgElement.getAttribute("et.active");
		if(!imgElement)
			imgElement = document.getElementById("et_page_help");
		
		if(!et_g_helpon)
		{
			et_g_helpon	= true ;
			imgElement.src = "%imagepath%helpactive.png"
				imgElement.setAttribute("et.active", "true");
			document.body.style.cursor = "help";
		}
		else
		{
			imgElement.src = "%imagepath%helpdeactive.png"
				imgElement.setAttribute("et.active", "false");
			document.body.style.cursor = "";
			hideFrame();
			et_g_helpon	= false ;
		}
	}
	
	function et_show_help(e, elem)
	{
		if(elem.id == "et_page_help")
		{
			et_help_toggle(e, elem)
		}
		else if(elem.getAttribute("et.helpid"))
		{
			showFrame(e, elem);
		}
		
		if(e)
		{
			e.cancelBubble = true;
			e.returnValue = false;
			if (e.stopPropagation) 
				e.stopPropagation();		
		}
	}
	
	function showFrame(e, element)
	{
		hideFrame() ;
		if(element) 
		{
			var helpID	=	element.getAttribute("et.helpid");
			if( helpID == null || helpID == "" )
			{
				helpID	=	-1 ;
			}
			
			var ppcX = 0;
			var ppcY = 0;
			
			if(!isSAFARI)
			{
				ppcX = e.clientX + document.body.scrollLeft;
				ppcY = e.clientY + document.body.scrollTop;
			}
			else
			{
				var x = (e.offsetX) ? e.offsetX : e.layerX;
				var X = (e.pageX)   ? e.pageX   : e.clientX;
				ppcX	= X - x;
				
				var y = (e.offsetY) ? e.offsetY : e.layerY;
				var Y = (e.pageY)   ? e.pageY   : e.clientY;
				ppcY	= (Y - y) + 10;
			}
			
			var frm = document.getElementById?document.getElementById("et_help_frame"):document.all["et_help_frame"];
			frm.src = "../help/et_help.jsp?id=" + helpID;
			frm.style.left	= (ppcX + 10) + 'px';
			frm.style.top		= (ppcY + 5) + 'px';
			frm.style.width	=	"300";
			
			if(isSAFARI)
			{
				document.getElementById("et_help_frame").style.display = "";
			}
			
		}
		
	} 
	
	function hideFrame()
	{
		document.getElementById("et_help_frame").style.display = "none"
	}
	
	function et_paging_getCurrentPage (elementId)
	{
		
		var returnValue = 1;
		
		var element = document.getElementById(elementId+"_currentpage");
		
		if(element) {
			returnValue =  parseInt(element.value) ;
		}
		
		return returnValue;
		
	}
	
	
	function et_paging_getTotalPages (elementId)
	{
		
		var returnValue = 1;
		
		var element = document.getElementById(elementId+"_totalpages");
		
		if(element) {
			returnValue =  parseInt(element.value) ;
		}
		
		return returnValue;
		
	}
	
	
	function et_paging_getGOTOPage (elementId)
	{
		
		var returnValue = 1;
		
		var element = document.getElementById(elementId);
		
		if(element) {
			returnValue =  parseInt(element.value) ;
		}
		
		return returnValue;
		
	}
	
	function et_paging_goFirst (elementId) 
	{
		var element = document.getElementById(elementId);
		element.value = "1";
		return (et_paging_submit (elementId));
	}
	
	function et_paging_goPrev (elementId)
	{
		var element = document.getElementById(elementId+"_currentpage");
		var elementGO = document.getElementById(elementId);
		elementGO.value	=	parseInt(element.value) - 1;
		return (et_paging_submit (elementId));
	}
	
	function et_paging_goNext (elementId)
	{
		var element = document.getElementById(elementId+"_currentpage");
		var elementGO = document.getElementById(elementId);
		elementGO.value	=	parseInt(element.value) + 1;
		return (et_paging_submit (elementId));
	}
	
	function et_paging_goLast (elementId)
	{
		var element = document.getElementById(elementId+"_totalpages");
		var elementGO = document.getElementById(elementId);
		elementGO.value	=	element.value;
		return (et_paging_submit (elementId));
	}
	
	function et_paging_go (elementId)
	{
		
		var element									= document.getElementById(elementId+"_visible"); // go
																										// text
																										// box
		var elementHidden						= document.getElementById(elementId); // go
																					   // text
																					   // box
		elementHidden.value = element.value;
		return (et_paging_submit (elementId));
		
	}
	
	
	function et_paging_submit (elementId)
	{
		
		var elementPageCount				= document.getElementById(elementId+"_totalpages"); // total
																								// page
																								// holder
		var elementHidden						= document.getElementById(elementId); // go
																					   // text
																					   // box
		
		var val = elementHidden.value;
		var totalPagecount	=	elementPageCount.value;
		elementHidden.value		=	"";
		
		var a= et_g_isNonZeroInteger(val);
		var b = et_g_isWhitespace(val);
		
		var lreturnVal = false ;
		
		if(!b)
		{
			
			if(a)
			{
				
				if( (parseInt(val) <= 0 ) || (parseInt(val) > parseInt(totalPagecount)) )
				{
					
					alert("Invalid page number. Only "+totalPagecount+" pages exist.")
					
				}
				else
				{
					
					var currentPage = document.getElementById(elementId+"_currentpage");
					
					if( parseInt(currentPage.value) != parseInt(val) ) 
					{
						
						elementHidden.value = val ;
						
						et_g_setEventCustom(et_ev_CLICK, elementId, ""); //set
																		 // the
																		 // event
						
						lreturnVal = true ;
						
					}else
					{
						
						alert("You are already on page " + val);
					}
					
				}
				
			}
			else
			{
				et_g_nonNumericErrorMessage();
			}
			
		}
		else
		{
			et_g_nonNumericErrorMessage();
		}
		
		return lreturnVal;
		
	}
	
	function et_g_nonNumericErrorMessage()
	{
		alert("Please enter a numeric value, greater than zero.");
	}
	
	/*
	 * opens context menu for toolbar buttons
	 */
	function et_g_showContextMenu(e, clickedObj)
	{
		/*
		 * var menuid = "jsId_" + clickedObj.id + "menu";
		 * if(!document.getElementById(menuid)) { menuid = "jsId_" +
		 * clickedObj.getAttribute("et.itemdata"); }
		 * showContextMenuEx(eval(menuid), e,clickedObj.parent)
		 */
		menuid = clickedObj.getAttribute("et.itemdata");
		et_m_showCtxMenu(e, clickedObj, menuid);
	}
	
	/*
	 * sets the server side handler to be invoked, and event data @param h -
	 * handler @param v - event data to be set
	 */
	function et_g_setEventHandler(h, v)
	{
		document.getElementById("et_handler").value = h;
		document.getElementById("et_event_data").value = v;
	}
	
	/*
	 * sets the event data @param v - event data to be set
	 */
	function et_g_setEventData(v)
	{
		document.getElementById("et_event_data").value = v;
	}
	
	/*
	 * open next page... should be used instead of calling window.location.href
	 * directly
	 */
	function et_g_openurl(url)
	{
		if(url.indexOf("?") < 0)
		{
			url += "?";
		}
		else
		{
			url += "&";
		}
		url += "et_cw="+(et_availW+et_fixedW);
		url += "&et_ch="+(et_availH+et_fixedH);
		window.location.href=url;
	}
	
	/*
	 * returns itemdata of a widget such as button
	 */
	function et_g_getItemData(elemId)
	{
		var elem = document.getElementById(elemId);
		var ret;
		if(elem)
		{
			ret = elem.getAttribute("et.itemdata");
		}
		return ret;
	}
	
	/*
	 * closes the System Message DIV
	 */
	function et_closeMsgDetail()
	{
		var msgDiv = document.getElementById("et.sysMsg");
		if(msgDiv)
		{
			msgDiv.style.display="none";
		}
	}
	/*
	 * opens the System Message DIV
	 */
	function et_openMsgDetail(e, elem)
	{
		var msgDiv = document.getElementById("et.sysMsg");
		var posx = 0;
		var posy = 0;
		if (!e) 
			e = window.event;
		if (e.pageX || e.pageY)
		{
			posx = e.pageX;
			posy = e.pageY;
		}
		else if (e.clientX || e.clientY)
		{
			posx = e.clientX + document.body.scrollLeft;
			posy = e.clientY + document.body.scrollTop;
		}
		if(msgDiv)
		{
			var m = et_g_longMsg.trim();
			if(m == '')
				m = "&nbsp;";
			m = et_g_replace(m, "&quot;", "'");
			var msgDataDiv = document.getElementById("et.sysMsgData");
			msgDataDiv.innerHTML = m;
			msgDiv.style.display="";
			msgDiv.style.left=posx;
			msgDiv.style.top=posy-200;
		}
	}
	
	function et_logoff_hdlr(e, elem)
	{
		var fName = "app_logOff";
		var fPtr;
		try
		{
			fPtr = eval(fName);
		}catch(err){}	
		if(fPtr)
		{
			fPtr(e, elem);
		}
	}
	
	/*
	 * opens given url in a popup window
	 */
	function et_openPopup(url,width,height,title, wfeature){
		var windowX = (screen.width-width)/2;
		var windowY = (screen.height-height)/2;
		
		var strWindowFeatures = "";
		if(url.indexOf("?") < 0)
		{
			url += "?";
		}
		else
		{
			url += "&";
		}
		url += "et_cw="+width;
		url += "&et_ch="+height;
		if(typeof wfeature != "undefined" && wfeature != null && !et_g_isWhitespace(wfeature))
		{
			strWindowFeatures	=	wfeature + ',width='+width+',height='+height+',left='+windowX+',top='+windowY+'screenX='+windowX+',screenY='+windowY;
		}
		else
		{
			strWindowFeatures += 'menubar=no,location=no,toolbar=no,directories=no,scrollbars=yes,status=no,resizable=yes,' +'width='+width+',height='+height+',left='+windowX+',top='+windowY+'screenX='+windowX+',screenY='+windowY ;
		}
		winPopupWindow = window.open(url,title,strWindowFeatures);
		winPopupWindow.focus();
	}
	
	//et_edd_anchorPosition(anchorname)
	//This function returns an object having .x and .y properties which are the
	// coordinates
	//of the named anchor, relative to the page.
	function et_edd_anchorPosition(anchorname) 
	{
		// This function will return an Object with x and y properties
		var useWindow=false;
		var coordinates=new Object();
		var x=0,y=0;
		
		// Browser capability sniffing
		var use_gebi=false, use_css=false, use_layers=false;
		
		if (document.getElementById) 
		{ 
			use_gebi=true; 
		}
		else if (document.all) 
		{ 
			use_css=true; 
		}
		else if (document.layers) 
		{ 
			use_layers=true; 
		}
		
		// Logic to find position
		if (use_gebi && document.all) 
		{
			x=et_edd_anchorPosition_getPageOffsetLeft(document.all[anchorname]);
			y=et_edd_getPageOffsetTop(document.all[anchorname]);
		}
		else if (use_gebi) 
		{
			var o=document.getElementById(anchorname);
			x=et_edd_anchorPosition_getPageOffsetLeft(o);
			y=et_edd_getPageOffsetTop(o);
		}
		else if (use_css) 
		{
			x=et_edd_anchorPosition_getPageOffsetLeft(document.all[anchorname]);
			y=et_edd_getPageOffsetTop(document.all[anchorname]);
		}
		else if (use_layers) 
		{
			var found=0;
			
			for (var i=0; i<document.anchors.length; i++) 
			{
				if (document.anchors[i].name==anchorname) 
				{ 
					found=1; break; 
				}
			}
			if (found==0) 
			{
				coordinates.x=0; coordinates.y=0; return coordinates;
			}
			
			x=document.anchors[i].x;
			y=document.anchors[i].y;
		}
		else 
		{
		    coordinates.x=0; coordinates.y=0; return coordinates;
		}
		
		coordinates.x=x;
		coordinates.y=y;
		
		return coordinates;
		
	}
	
	//et_edd_anchorWindowPosition(anchorname)
	//This function returns an object having .x and .y properties which are the
	// coordinates
	//of the named anchor, relative to the window
	function et_edd_anchorWindowPosition(anchorname) 
	{
		
		var coordinates=et_edd_anchorPosition(anchorname);
		
		var x=0;
		var y=0;
		
		if (document.getElementById) 
		{
			if (isNaN(window.screenX)) 
			{
				x=coordinates.x-document.body.scrollLeft+window.screenLeft;
				y=coordinates.y-document.body.scrollTop+window.screenTop;
			}
			else 
			{
				x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
				y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
			}
		}
		else if (document.all) 
		{
			x=coordinates.x-document.body.scrollLeft+window.screenLeft;
			y=coordinates.y-document.body.scrollTop+window.screenTop;
		}
		else if (document.layers) 
		{
			x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
			y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
		}
		coordinates.x=x;
		coordinates.y=y;
		return coordinates;
	}
	
	// Functions for IE to get position of an object
	function et_edd_anchorPosition_getPageOffsetLeft (el) 
	{
		
		var ol=el.offsetLeft;
				
		while ((el=el.offsetParent) != null) 
		{ 
			ol += el.offsetLeft - ( parseInt( el.scrollLeft ? el.scrollLeft : 0 ) ) ;
		}
		
		if (document.all || document.getElementById) 
		{
			ol=ol+document.body.scrollLeft;
		}
		else if (document.layers) 
		{
			ol=ol+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
		}
		
		return ol;
	}
	
	function et_edd_getWindowOffsetLeft (el) 
	{
		return et_edd_anchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
	}	
	
	function et_edd_getPageOffsetTop (el) 
	{
		var ot=el.offsetTop;
		while((el=el.offsetParent) != null) 
		{ 
			ot += el.offsetTop - ( parseInt( el.scrollTop ? el.scrollTop : 0 ) ) ;
		}
		
		if (document.all || document.getElementById) 
		{
			ot=ot+document.body.scrollTop;
		}
		else if (document.layers) 
		{
			ot=ot+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
		}
		return ot;
	}
	
	function et_edd_getWindowOffsetTop (el) 
	{
		return et_edd_getPageOffsetTop(el)-document.body.scrollTop;
	}
	
	function et_g_stopevents(e)
	{
		if(window.event)
			e = window.event;
		if(e)
		{
			e.cancelBubble = true;
			e.returnValue = false;
			if (e.stopPropagation)
			{
				e.stopPropagation();
				e.preventDefault();
				return false
			}
		}
	}
	
	
	
	// whitespace characters
	var et_g_whitespace = " \t\n\r";
	var et_g_reWhitespace = /^\s+$/
	function et_g_isEmpty(s)
	{
		return ((!s) || (s == null) || (s.length == 0));
	}
	
	function et_g_isWhitespace (s)
	{
		return (et_g_isEmpty(s) || et_g_reWhitespace.test(s));
	}
	
	function et_g_stripInitialWhitespace (s)
	{   
		var i = 0;
		while ((i < s.length) && et_g_charInString (s.charAt(i), et_g_whitespace))
			i++;
		return s.substring (i, s.length);
	}
	
	function et_g_charInString (c, s)
	{   
		for (i = 0; i < s.length; i++)
		{   
			if (s.charAt(i) == c) 
				return true;
		}
		return false
	}
	
	function et_g_stripTrailingWhitespace (s)
	{
		if(et_g_isWhitespace(s))
		{
			return s;
		}
		var i = 0;
		for (i = s.length-1; i >= 0; i-- )
		{
			if(et_g_whitespace.indexOf(s.charAt(i)) == -1 )
			{
				break ;
			}
		}
		return s.substring (0, i+1);
	}
	
	function et_g_trim(s)
	{
		/*if(et_g_isWhitespace(s))
		{
			return s;
		}
		s = et_g_stripInitialWhitespace(s);
		return et_g_stripTrailingWhitespace(s);
		*/
		return s.trim();
	}
	
	/**
	 * checks whether passed name is valid for XML entity name.
	 */
	function et_g_isValidEntityName (s)
	{
		s	=	et_g_trim(s);
		var i;
		for (i = 0; i < s.length; i++){
			// Check that current character is number or letter.
			var c = s.charAt(i);
			if ( c == "\"" || c == "\\" || c == "/" || c == "|" || c == "%" || c == ":" || c == "^" || c == ">" || c == "<"){
				return false;
			}
		}
		return true;
	}
	
	
	function et_g_equalsIgnoreCase(str1, str2)
	{
		var a	=	et_g_trim(new String(str1));
		var b	=	et_g_trim(new String(str2));
		if(a.toLowerCase() == b.toLowerCase())
			return true ;
		else
			return false ;
	}	
	
	
	function et_g_getMonthStr(m)
	{
		var ret = "";
		switch(m)
		{
		case 0:
			ret = "JAN";
			break;
		case 1:
			ret = "FEB";
			break;
		case 2:
			ret = "MAR";
			break;
		case 3:
			ret = "APR";
			break;
		case 4:
			ret = "MAY";
			break;
		case 5:
			ret = "JUN";
			break;
		case 6:
			ret = "JUL";
			break;
		case 7:
			ret = "AUG";
			break;
		case 8:
			ret = "SEP";
			break;
		case 9:
			ret = "OCT";
			break;
		case 10:
			ret = "NOV";
			break;
		case 11:
			ret = "DEC";
			break;
		}
		return ret;
	}
	
	/*
	 * input - date object output - date string dd-MMM-yyyy format
	 */
	function et_g_getFormattedDate(d)
	{
		var ret = "";
		try
		{
			if(d)
			{
				ret = (d.getDate()<10?"0"+d.getDate():d.getDate()) + "-" + et_g_getMonthStr(d.getMonth()) + "-"+ d.getYear();
			}
		}
		catch(err){}
		return ret;
	}
	
	/*
	 * input - date object output - Time string hh:mm format
	 */
	function et_g_getFormattedTime(d)
	{
		var ret = "";
		try
		{
			if(d)
			{
				ret = (d.getHours()<10?"0"+d.getHours():d.getHours()) + ":" + (d.getMinutes()<10?"0"+d.getMinutes():d.getMinutes());
			}
		}
		catch(err){}
		return ret;
	}
	/*
	 * input - calendate widget id output - Date object
	 */
	function et_g_getDateFromWidget(widget)
	{
		try
		{
			var w = document.getElementById(widget);
			if(w)
			{
				var s = w.value;
				s = et_g_replace(s, "-", ",");
				var d = new Date(s);
				return et_g_getValidDate(d);
			}
		}
		catch(err){}
	}
	
	/*
	 * input - calendate widget id output - Date object (with time)
	 */
	function et_g_getDateTimeFromWidget(widget)
	{
		try
		{
			var w = document.getElementById(widget);
			var t = document.getElementById(widget+"_et_time");
			if((w) && (t))
			{
				
				var s = w.value;
				s = et_g_replace(s, "-", ",");
				s = s + " " + t.value;
				var d = new Date(s);
				return et_g_getValidDate(d);
			}
		}
		catch(err){}
	}
	
	function et_g_getValidDate(d)
	{
		var ret = d;
		try
		{
			var t = d.getTime();
			if(isNaN(t))
			{
				ret = null;
				return;
			}
		}
		catch(err)
		{
			ret = null;
		}
		return ret;
	}
	
	/**
	opens new url using form post.
	frmAction: form action (URL)
	frmFields: name of hidden fields
	frmFieldValues: hidden field values
	**/
	function et_g_openFormURL( frmAction, frmFields, frmFieldValues )
	{
		
		var oldFrm = document.getElementById(et_g_dyn_frm);
		var i=0;	
		
		if( oldFrm != null )
		{
			for (i=0; i<oldFrm.elements.length; i++)
			{
				oldFrm.removeChild(oldFrm.elements[i]);
			}
			document.body.removeChild(oldFrm);
		}
		
		var newFrm = document.createElement("form");
		newFrm.setAttribute('name', et_g_dyn_frm);
		newFrm.setAttribute('id', et_g_dyn_frm);
		newFrm.setAttribute('action', frmAction);
		newFrm.setAttribute('method','post');
		
		var hidden	= null;
		for ( i=0; i<frmFields.length; i++ )
		{
			hidden	= document.createElement("input");
			hidden.setAttribute("type","hidden");
			hidden.setAttribute("name",frmFields[i]);
			hidden.setAttribute("id", frmFields[i]);
			hidden.setAttribute("value", frmFieldValues[i]);
			newFrm.appendChild(hidden);
		}
		document.body.appendChild(newFrm);
		newFrm.submit();
	}
	/*
	 * this function calls a callback function defined in application, as response to clicking the contact us link on footer
	 */
	function et_mailto()
	{
		var fPtr;
		try
		{
			fPtr = eval("et_mailto_handler");
		}catch(err){}
		if(fPtr)
		{
			fPtr();
		}
	}
	
	function et_sb_greetings_clk()
	{
		var fPtr;
		try
		{
			fPtr = eval("et_sb_greetings_clk_handler");
		}catch(err){}
		if(fPtr)
		{
			fPtr();
		}
	}
	
	function et_sb_sys_msg_clk()
	{
		var fPtr;
		try
		{
			fPtr = eval("et_sb_sys_msg_clk_handler");
		}catch(err){}
		if(fPtr)
		{
			fPtr();
		}
	}
	
	function et_sb_app_msg_clk()
	{
		var fPtr;
		try
		{
			fPtr = eval("et_sb_app_msg_clk_handler");
		}catch(err){}
		if(fPtr)
		{
			fPtr();
		}
	}
	
	function et_sb_cust_msg_clk()
	{
		var fPtr;
		try
		{
			fPtr = eval("et_sb_cust_msg_clk_handler");
		}catch(err){}
		if(fPtr)
		{
			fPtr();
		}
		
	}
	
	function et_getUriType()
	{
		return document.forms[0].getAttribute("et.uritype");
	}

	function et_getAppId()
	{
		return document.forms[0].getAttribute("et.appid");
	}
	
	function et_getModuleId()
	{
		return document.forms[0].getAttribute("et.moduleid");
	}
	
	function et_getPageId()
	{
		return document.forms[0].getAttribute("et.pageid");
	}
	
	function et_hide_close_button()
	{
		try
		{
			document.getElementById("et_page_close").style.display="none";
		}
		catch(err){}
	}
	
	function et_show_close_button()
	{
		try
		{
			document.getElementById("et_page_close").style.display=" ";
		}
		catch(err){}
	}

	function et_hide_help_button()
	{
		try
		{
			document.getElementById("et_page_help").style.display="none";
		}
		catch(err){}
	}
	
	function et_show_help_button()
	{
		try
		{
			document.getElementById("et_page_help").style.display=" ";
		}
		catch(err){}
	}

	/*
	 * to get the real image ... for PNGs, a htc is used in IE which changes the src of the original image.
	 * to get the real src of this image this function should be used. Works both in IE and Mozilla
	 * input is - IMG element
	 */
	function et_g_getRealImgSrc(img)
	{
		var ret = "";
		try
		{
			ret = img.getAttribute("src");
			var f = img.runtimeStyle.filter;
			if(f)
			{
				if(f.indexOf("src='") > 0)
				{
					f = f.substring(f.indexOf("src='"));
					f = f.substring(5);
					f = f.substring(0, f.indexOf("'"));
					ret = f;
				}
			}
		}
		catch(err){}
		return ret;
	}
	
	/*
	 * sets the exception message short text 
	 */
	function et_g_setShortMsgInParent(shortMsg)
	{
		try
		{
			var sb = document.getElementById("win_sb"); 
			var tds = sb.getElementsByTagName("td");
			var excpPanel = tds[1]; //2nd panel
			shortMsg = et_g_replace(shortMsg,"&quot;", "'");
			if(shortMsg.trim() == '')
				shortMsg = "&nbsp;";
			excpPanel.innerHTML = shortMsg;
		}
		catch(err){}
	}
	
	/*
	 * sets the exception message long text 
	 */
	function et_g_setLongMsgInParent(longMsg)
	{
		try
		{
			et_g_longMsg = et_g_replace(longMsg,"&quot;", "'");
		}
		catch(err){}
	}
	
	/*
	 * open next page... should be used instead of calling window.location.href
	 * directly
	 */
	function et_g_setIFrameSrc(iframeId, src)
	{
		try
		{
			var frame = document.getElementById(iframeId);
			var w = parseInt(frame.style.width);
			var h = parseInt(frame.style.height);
			if(src.indexOf("?") < 0)
			{
				src += "?";
			}
			else
			{
				src += "&";
			}
			src += "et_cw="+w;
			src += "&et_ch="+h;
			frame.setAttribute("src", src);
		}
		catch(err){}
	}
	
	/*
	 * open a url by submitting the form instead of GET. 
	 * params : 
	 * url - url to open
	 * names - array of names or a single name (if only one param need to be passed)
	 * values - array of values or a single value(if only one param need to be passed)
	 * handler - server side event handler to invoke... 
	 */ 
	function et_g_openurlWithParams(url, names, values, handler)
	{
		try
		{
			//alert(names); alert(values);
			var formNode = document.forms[0];
			if(names && (typeof names != "string")) //if array is passed in input
			{
				if(names.length > 0)
				{
					for(var i=0; i<names.length; i++)
					{
						n = names[i];
						v = values[i];
						var inputField = eval("document.forms[0]."+n);
						if(!inputField)
						{
							inputField = document.createElement("INPUT");
							inputField.setAttribute("type", "hidden");
							inputField.setAttribute("id", n);
							inputField.setAttribute("name", n);
							formNode.appendChild(inputField);
						}
						inputField.value = v;
					}
				}
			}
			else
			{
				var inputField = eval("document.forms[0]."+names);
				if(!inputField)
				{
					inputField = document.createElement("INPUT");
					inputField.setAttribute("type", "hidden");
					inputField.setAttribute("id", names);
					inputField.setAttribute("name", names);
					formNode.appendChild(inputField);
				}
				
				inputField.value = values;
				//alert(inputField.value);
			}
			et_g_prepare();
			
			formNode.setAttribute("action", url);
			if(handler)
			{
				document.forms[0].et_handler.value = handler;
			}
			et_g_submitWithoutValidations();
		}
		catch(err){}
	}

	/*
	 * submit form without Validation or Prepare 
	 */
	function et_g_submitWithoutValidations()
	{
		//set width & height of the client
		document.forms[0].et_ch.value = et_availH+et_fixedH;
		document.forms[0].et_cw.value = et_availW+et_fixedW;
		document.forms[0].submit();
	}
	function et_hideAnySelectInRegion(x, y, w, h)
	{
		et_showHideAnySelectInRegion(x, y, w, h, false);
	}

	function et_showAnySelectInRegion(x, y, w, h)
	{
		et_showHideAnySelectInRegion(x, y, w, h, true);
	}

	function et_showHideAnySelectInRegion(x, y, w, h, show)
	{
		if(!isIE)
			return;
		try
		{
			var formElements = document.forms[0].elements;
			for (var i=0; i < formElements.length; i++)
			{
				if ((formElements[i].type == 'select') || 
						(formElements[i].type == 'select-one') || 
						(formElements[i].type == 'select-multiple')) 
				{
					p1 = et_edd_anchorPosition(formElements[i].getAttribute("name"));
					var x1 = p1.x;
					var y1 = p1.y;
					var ew = parseInt(formElements[i].style.width);
					//see if it is in the region
					if(x1 >= x && y1 >= y && (x+w >= x1) && (y+h >= y1) ||
							(x >= x1 && (y <= y1) && (x1+ew >= x)  && (y1 <= y+h)) )		
					{
						if(show)
						{
							formElements[i].style.visibility = "visible";
						}
						else
						{
							formElements[i].style.visibility = "hidden";
						}
					}
				}
			}
			
		}
		catch(err){}
	}
	
	function et_g_showFloatingRegions()
	{
		for(var i=0; i<et_g_floatRegionArray.length; i++)
		{
			try
			{
				//var imgId = et_g_floatRegionArray[i]+"_pos";//get anchor image
				//var pos = et_edd_anchorPosition(imgId);
				var fReg = document.getElementById(et_g_floatRegionArray[i]);//get floating region
				if(fReg.getAttribute("et.autoshow") == "true")
				{
					et_g_showHideFloatingRegion(fReg);
				}
			}
			catch(err){alert(err);}
		}
	}
	
	function et_g_showHideFloatingRegionById(fRegId, hide)
	{
		try
		{
			var imgId = fRegId+"_pos";//get anchor image
			var pos = et_edd_anchorPosition(imgId);
			var fReg = document.getElementById(fRegId);//get floating region
			et_g_showHideFloatingRegion(fReg, hide);
		}
		catch(err){alert(err);}
	}
	
	function et_g_showHideFloatingRegion(fReg, hide)
	{
		try
		{
			var imgId = fReg.getAttribute("id")+"_pos";//get anchor image
			var pos = et_edd_anchorPosition(imgId);
			var align = parseInt(fReg.getAttribute("et.align"));
			var classname = fReg.className;//_hidden
			if(hide && (hide==true))
			{
				classname = classname + "_hidden"; //add _hidden in the classname
				fReg.className = classname;
			}
			else
			{//toggle the visibility
				if(classname.indexOf("_hidden") > 0)
					classname = classname.substring(0, classname.indexOf("_hidden")); //strip _hidden from the classname
				else
					classname = classname + "_hidden"; //add _hidden in the classname
				fReg.className = classname;
				//align 1=NW, 2=SW, 3=NE, 4=SE
				if(align == 2)
				{
					pos.y -= fReg.clientHeight;
				}
				else if(align == 3)
				{
					pos.x -= fReg.clientWidth;
				}
				else if(align == 4)
				{
					pos.x -= fReg.clientWidth;
					pos.y -= fReg.clientHeight;
				}
				fReg.style.left = pos.x;
				fReg.style.top = pos.y;
			}
		}
		catch(err){}
	}

function et_g_isSignedInteger (s)
{   if (et_g_isEmpty(s)) 
       if (et_g_isSignedInteger.arguments.length == 1) return defaultEmptyOK;
       else return (et_g_isSignedInteger.arguments[1] == true);

    else {
        var startPos = 0;
        var secondArg = defaultEmptyOK;

        if (et_g_isSignedInteger.arguments.length > 1)
            secondArg = et_g_isSignedInteger.arguments[1];

        // skip leading + or -
        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
           startPos = 1;    
        return (et_g_isInteger(s.substring(startPos, s.length), secondArg))
    }
}


var msg60000	= "Are you sure to delete the <?>?"
var msg60001	= "Please enter valid <?>."
var msg60002	= "Please enter a valid e-mail address."
var msg60003	= "Password is invalid, please re-enter."
var msg60004	= "Password and Confirm Password does not match."
var msg60005	= "<?> is empty."
var msg60006	= "Are you sure you want to publish <?>? This process may take some time."
var msg60007	= "Are you sure you want to delete selected posts? This process may take some time."
var msg60008	= "Are you sure you want to delete selected images?"
var msg60009	= "<?> cannot exceed <?> characters."
var msg60010	= "<?> cannot contain any of the following characters:\n\n <?>";

function showDialog ( id, arValues ) {
	if((arValues) && (typeof arValues == "string"))
	{
		var tmp = arValues;
		arValues = new Array();
		arValues[arValues.length] = tmp;
	}
	var msgId = eval("msg"+id);
	s = 0;
	e = 0;
	nCounter	=	0;
	var result = new String();
	while ((e = msgId.indexOf("<?>", s)) >= 0) {
		result = result + msgId.substring(s, e);
		result = result + arValues[nCounter++];
		s = e + "<?>".length;
	}
	result = result +  msgId.substring(s);
	alert (result) 
}

function getMessageText ( id, arValues ) {
	if((arValues) && (typeof arValues == "string"))
	{
		var tmp = arValues;
		arValues = new Array();
		arValues[arValues.length] = tmp;
	}
	var msgId = eval("msg"+id);
	s = 0;
	e = 0;
	nCounter	=	0;
	var result = new String();
	while ((e = msgId.indexOf("<?>", s)) >= 0) {
		result = result + msgId.substring(s, e);
		result = result + arValues[nCounter++];
		s = e + "<?>".length;
	}
	result = result +  msgId.substring(s);
	return (result)
}

function showConfirm ( id, arValues ) {
	if((arValues) && (typeof arValues == "string"))
	{
		var tmp = arValues;
		arValues = new Array();
		arValues[arValues.length] = tmp;
	}
	var msgId = eval("msg"+id);
	s = 0;
	e = 0;
	nCounter	=	0;
	var result = new String();
	while ((e = msgId.indexOf("<?>", s)) >= 0) {
		result = result + msgId.substring(s, e);
		result = result + arValues[nCounter++];
		s = e + "<?>".length;
	}
	result = result +  msgId.substring(s);
	return confirm (result) 
}
	function showForgotPassword()
	{
		document.getElementById("div_fpassword").style.display = "";
		document.getElementById("email_fpassword").focus();
	}
	function cancelForgotMail()
	{
		document.getElementById("div_fpassword").style.display = "none";
	}


  function setEditorToolbar(config, pagename)
	{

		
config.toolbar =	[
						[ 
						  "formatblock","space","fontname","space","fontsize","separator","insertimage", "createlink", "inserttable",
						 "separator","spellcheck","findreplace","separator","insertsmiley","inserthorizontalrule", "insertspecialchar","separator","cut","copy", "paste","pasteastext","separator", "undo", "redo","separator",
						   "htmlmode","popupeditor" , "separator","showhelp",
						],
						 [ "bold","italic", "underline", "strikethrough", "separator","justifyleft", "justifycenter", "justifyright", "justifyfull", "separator", "insertorderedlist", "insertunorderedlist", "outdent", "indent", "separator","forecolor", "hilitecolor", "separator","removeformat" ,"separator","showborder", "separator","subscript", "superscript","lefttoright", "righttoleft"
						 ]
						   ];

			if(is_safari2())
			{
				 config.toolbar =	[
								[ 
								  
								 //advanced
								   "bold","italic", "underline", "strikethrough", "separator",
								   "cut", "justifyleft", "justifycenter", "justifyright", "justifyfull",
								 "undo", "redo","subscript", "superscript","lefttoright", "righttoleft","separator",//advanced
								 "htmlmode","popupeditor", "separator", //advanced
								 "showhelp"
								],
								
									];
			}
			
			config.registerButton("removeformat", "Remove Formatting", appendImagePath("object/16x16/ed_rmformat.gif"), false, editBtnHandler);
			config.registerButton("insertsmiley", "Insert Smiley", appendImagePath("state/16x16/regular_smile.gif"), false, editBtnHandler);
			//config.registerButton("createanchor", "Create Anchor", appendImagePath("object/16x16/anchor.gif"), false, editBtnHandler);
			//config.registerButton("insertpanel", "Insert Panel", appendImagePath("object/16x16/panel.gif"), false, editBtnHandler);
			config.registerButton("insertspecialchar", "Insert Special Characters", appendImagePath("object/16x16/specialchar.png"), false, editBtnHandler);
			config.registerButton("findreplace", "Find/Replace Ctrl+F or Ctrl+H", appendImagePath("ix_ap_all/16x16/text_find.png"), false, editBtnHandler);
			config.registerButton("pasteastext", "Paste as text", appendImagePath("operation/16x16/ed_paste_text.gif"), false, editBtnHandler);
			config.registerButton("showborder", "Show Table Border", appendImagePath("operation/16x16/show_table_border.png"), false, function(editor){editor._toggleBorders()});
			config.registerButton("spellcheck", "Spell check  F7",appendImagePath("other/spell-check.gif"), false, editBtnHandler);
			config.registerButton("insertimage", "Insert/Modify Image",getAppPath()+"/htmlarea/images/ed_image.gif", false, function(editor){editor._insertBlogImage()});
			config.registerButton("createlink", "Insert Link",getAppPath()+"/htmlarea/images/ed_link.gif", false, function(editor){editor._createBlogLink()});
		
		
	}	
	
	function editBtnHandler(editor, buttonId)
	{
		 switch (buttonId) {
		    case "cust_save":
		    	savePage();
		    	break;
		    case "cust_cancel":
		    	if(!stopToSave())
		    	{
		    		cancelPage();
		    	}
		    	break;
		    case "cust_preview":
		    	previewPage()
		    	break;
		    case "cust_perm":
		    	openPermission()
		    	break;
			case "cleanword":
			  	editor._wordClean()
				break;
			case "removeformat":
			  	editor.execCommand("removeformat")
				break;
			case "removescript":
			  	editor._stripScriptTag()
				break;
			case "insertsmiley":
			  	editor._insertBlogSmiley()
				break;
			case "createanchor":
			  	editor._createAnchor()
				break;
			case "insertpanel":
			  	editor._insertPanel()
				break;
			case "insertwiki":
			  	editor._insertWiki()
				break;
			case "insertplugin":
			  	editor._insertPlugin()
				break;
			case "insertspecialchar":
			  	editor._insertSpecialChar()
				break;
			case "contentextract":
				editor._insertExcel()
				break;
			case "findreplace":
			  	var tbo = new FindReplace(editor);
				tbo.buttonPress(editor);
				break;
			case "pasteastext":
			  	var tbo = new PasteText(editor);
				tbo.buttonPress(editor);
				break;
			case "spellcheck":
				editor._spellCheck();
				break;
		  }
	}

	function getAppPath()
	{
		return "/"+appContext+"/"+jspContext;
	}

	function appendImagePath(path)
	{
		return (getAppPath() + "/images/" + path);
	}
	function appendPath(path)
	{
		return (getAppPath() + "/blog/" + path);
	}

	function setSpelledData(data)
	{
	  wys_editor.setHTML(data);
	}
	
	function isEnterEvent(e)
	{
	    if(window.event) e = window.event || e;
		if(e)
		{		    		
			var code;
			if (e.keyCode) code = e.keyCode;
			else if (e.which) code = e.which;
			
			if (code == 13)
			{
				return true;
			}
		}
		return false;	
	}
	
	function chgRowColor(obj, mouseEvent)
	{
		if(mouseEvent=="over")
		{
			if(obj.getAttribute("oldcolor") == null)
			{
				obj.setAttribute("oldcolor",obj.style.backgroundColor);
			}
			obj.style.backgroundColor = "#FFFFCC";
		}
		else
		{
			obj.style.backgroundColor = obj.getAttribute("oldcolor");
		}
	}
	
	
	function getNextTr(elem)
	{
		if(elem.nodeName != "TR")
		{
			while(elem && elem.nodeName != "TR")
			{
				elem = elem.parentNode;
			}
		}
		if(elem && elem.nodeName == "TR")
		{
			elem = elem.nextSibling;
			while(elem && elem.nodeName != "TR")
			{
				elem = elem.nextSibling;
			}
		}
		return elem;
	}

	function getPrevTr(elem)
	{
		if(elem.nodeName != "TR")
		{
			while(elem && elem.nodeName != "TR")
			{
				elem = elem.parentNode;
			}
		}
		if(elem && elem.nodeName == "TR")
		{
			elem = elem.previousSibling;
			while(elem && elem.nodeName != "TR")
			{
				elem = elem.previousSibling;
			}
		}
		return elem;
	}
	
	function trKeyDown(e, elem)
	{
		try
		{
			if(window.event)
				e = window.event;
			elem = e.target||e.srcElement;
			var cancel = false;

			if(elem)
			{
				var pressedKey = e.keyCode;

				if(pressedKey == 40) //Down 
				{
					//set focus on next row
					elem = getNextTr(elem);
					if(elem && elem.nodeName == "TR" && elem.focus)
					{
						elem.focus();
					}
					cancel = true;
				}
				else if(pressedKey == 38) //Up
				{
					elem = getPrevTr(elem);
					if(elem && elem.nodeName == "TR" && elem.focus)
					{
						elem.focus();
					}
					cancel = true;
				}
				if(cancel)
				{
					e.cancelBubble = true;
					e.returnValue = false;
					if (e.stopPropagation) 
						e.stopPropagation();
				}
				return (!cancel);
			}
		}
		catch(err){alert(err)}		
	}

	function showLoginBox()
	{
		var theUrl = window.location.href;
		
		if (ssoEnabled == "true")
		{
			if (theUrl.indexOf("bassout=y")!= -1)
			{
				theUrl = theUrl.substring(0, theUrl.indexOf("bassout=y")-1) + 
			         theUrl.substring(theUrl.indexOf("bassout=y")+9);
			}
			if (theUrl.indexOf("?") != -1)
			{
				window.location.href = theUrl + "&ssologin=true";
			}
			else
			{
				window.location.href = theUrl + "?ssologin=true";
			}
			return;	
		}
		
		var pos = et_edd_anchorPosition("loginanchor");
		
		//alert("anchor x, y"+pos.x+' '+pos.y);

		var maindiv = document.getElementById("login_div");

		pos.x = pos.x - 297;

		pos.y = pos.y + 20;

		maindiv.style.left = pos.x;

		maindiv.left = pos.x;

		maindiv.style.top = pos.y;
		
		maindiv.top = pos.y;

		maindiv.className="log_div_show";

		document.getElementById("lid").focus();

		try

		{

		  if(et_g_isWhitespace(document.getElementById("lid").value))

		  {

			var label = "c_wiki_user=";

			var labelLen = label.length;

			var cLen = document.cookie.length

			var i = 0

			while (i < cLen) {

				  var j = i + labelLen

				  if (document.cookie.substring(i,j) == label) {

					var cEnd = document.cookie.indexOf(";",j)

					if (cEnd == -1) { 

					  cEnd = document.cookie.length 

					}

					document.getElementById("lid").value = unescape(document.cookie.substring(j,cEnd));

					document.getElementById("lpass").focus();

					break;

				  }

				  i++

			}

		  }

		}

		catch(err){}

	}

	function hideLoginBox()
	{
		var maindiv = document.getElementById("login_div");
		maindiv.className="log_div_hide";
	}
	
	//et_edd_anchorPosition(anchorname)
	//This function returns an object having .x and .y properties which are the coordinates
	//of the named anchor, relative to the page.
	function et_edd_anchorPosition(anchorname) 
	{
	    
		// This function will return an Object with x and y properties
		var useWindow=false;
		var coordinates=new Object();
		var x=0,y=0;
		
		// Browser capability sniffing
		var use_gebi=false, use_css=false, use_layers=false;
		
		if (document.getElementById) 
		{ 
			use_gebi=true; 
		}
		else if (document.all) 
		{ 
			use_css=true; 
		}
		else if (document.layers) 
		{ 
			use_layers=true; 
		}
		
		// Logic to find position
	 	if (use_gebi && document.all) 
	 	{
	 	    x=et_edd_anchorPosition_getPageOffsetLeft(document.all[anchorname]);
			y=et_edd_getPageOffsetTop(document.all[anchorname]);
		}
		else if (use_gebi) 
		{
		    var o=document.getElementById(anchorname);
			x=et_edd_anchorPosition_getPageOffsetLeft(o);
			y=et_edd_getPageOffsetTop(o);
		}
	 	else if (use_css) 
	 	{
	 	    x=et_edd_anchorPosition_getPageOffsetLeft(document.all[anchorname]);
			y=et_edd_getPageOffsetTop(document.all[anchorname]);
		}
		else if (use_layers) 
		{
			var found=0;
			
			for (var i=0; i<document.anchors.length; i++) 
			{
				if (document.anchors[i].name==anchorname) 
				{ 
					found=1; break; 
				}
			}
			if (found==0) 
			{
				coordinates.x=0; coordinates.y=0; return coordinates;
			}
			
			x=document.anchors[i].x;
			y=document.anchors[i].y;
		}
		else 
		{
		    coordinates.x=0; coordinates.y=0; return coordinates;
		}
		
		coordinates.x=x;
		coordinates.y=y;
		
		return coordinates;
		
	}
	
	function writeLoginBox()
	{
		//alert("writeLoginBox called..");
		/*if(isGuest())*/
		{
			var html = new Array();
			html.push("<div id=\"login_div\" class=\"log_div_hide\">");
			html.push("<form method='post' style='margin:0px;padding:0px'>");
			html.push("<table cellspacing='0' cellpadding='0' border='0'>");

			html.push("<tr>");
			html.push("<td colspan='2' class='login_heading'>");
			html.push("Sign In");	
			html.push("</td>");
			html.push("</tr>");
			
			html.push("<tr>");
			html.push("<td class='login_td' style='width:5%'>");
			html.push("<label for='lid' title='Required'>Username</label><font color='red'>*</font>:");
			html.push("</td>");
			html.push("<td class='login_td'>");
			html.push("<input type='text' name='lid' id='lid' size='20' maxlength='50'>");
			html.push("</td>");
			html.push("</tr>");
			
			html.push("<tr>");
			html.push("<td class='login_td' style='width:5%'>");
			html.push("<label for='lpass' title='Required'>Password</label><font color='red'>*</font>:");
			html.push("</td>");
			html.push("<td class='login_td'>");
			html.push("<input type='password' name='lpass' id='lpass' size='20' maxlength='50'>");
			html.push("</td>");
			html.push("</tr>");
			
			html.push("<tr>");
			html.push("<td colspan='2' align='center' class='login_td'>");
			html.push("<input type='submit' class='button' value='Sign in' title='Sign in' onClick='javaScript:return divLogin()'></button>&nbsp;&nbsp;");
			html.push("<input type='button' class='button' value='Cancel' title='Cancel' onClick='javaScript:hideLoginBox()'></button>");
			html.push("</td>");
			html.push("</tr>");
			html.push("</table>");
			html.push("</form>");
			html.push("</div>");
			//alert("writing login div "+html.join(""));
			document.writeln(html.join(""));
		}
	}
	
	
	var uBox = null;
	var pBox = null;
	function divLogin(userBox, paswordBox)
	{
		if(typeof userBox == "undefined")
		{
			uBox = 	"lid";
		}
		else
		{
			uBox = 	userBox;
		}
		if(typeof paswordBox == "undefined")
		{
			pBox = 	"lpass";
		}
		else
		{
			pBox = paswordBox; 
		}
		if(et_g_isWhitespace(document.getElementById(pBox).value) || et_g_isWhitespace(document.getElementById(uBox).value))
		{
			alert("Your account was not found. Please verify your information and try again.");
			document.getElementById(uBox).focus();
			return false;
		}
		else
		{
			try
			{
				var logAjax = new WikiAjax();
				logAjax.setMethodTOPOST();
				logAjax.setCallback(onLogin);
				logAjax.addField("dologin", "true");
				logAjax.addField("username", document.getElementById(uBox).value);
				logAjax.addField("password", document.getElementById(pBox).value);
				/*if(document.getElementById("w_u_template") != null)
				{
					try
					{
						var tmpl = document.frmlogin.w_u_template.options[document.frmlogin.w_u_template.selectedIndex].value;
						logAjax.addField("w_u_template", tmpl);
					}catch(err){}
				}*/
				logAjax.send();
			}
			catch(err){}
		}
		return false;
	}
	
	function onLogin(responseDOM, errorMessage)
	{
		if(errorMessage == null)
		{
			var obj = parseResponse(responseDOM);
			if(obj.statusCode == "200")
			{
				if(obj.output=="1")
				{
					var date = new Date();
					date.setTime(date.getTime()+(365*24*60*60*1000));
					var expires = "; expires="+date.toGMTString();
					document.cookie = "c_wiki_user="+document.getElementById(uBox).value+expires+"; path=/"+appContext;
					/// refresh page....
					window.location.reload(true);
				}
				else
				{
					alert( "Invalid Userid or Password. Please try again.");					
				}
			}
		}
	}
	
	function cm_isValidEntityName(s)
	{			
		s=cm_stripWhitespace(s);
		var i;
		for (i = 0; i < s.length; i++)
		{
			// Check that current character is number or letter.
			var c = s.charAt(i);
			if ( c == "\"" || c == "\\" || c == "/" || c == "|" || c == "%" || c == ":" || c == "^" || c == ">" || c == "<" || c == "?" || c == "&")
			{
				return false;
			}
		}
		return true;
	}

	function cm_stripWhitespace (s)
	{
		return cm_stripCharsInBag (s,  " \t\n\r")	;
	}
	
	function cm_stripCharsInBag (s, bag)
	{			
		var i;
		var returnString = "";
		// Search through string's characters one by one.
		// If character is not in bag, append to returnString.
		for (i = 0; i < s.length; i++)
		{
			// Check that current character isn't whitespace.
			var c = s.charAt(i);
			if (bag.indexOf(c) == -1) returnString += c;
		}
		return returnString;
	}

	function addMoreImgFiles()
	{
	    var addInDiv;
	    var FileElement;	     
	    for (var i=0; i<5; i++)
	    {
			imgFileCnt = imgFileCnt + 1;
			addInDiv = document.getElementById("div_saveattach");
			FileElement	= null;
			FileElement	= document.createElement("input");
			FileElement.setAttribute("name",("file_"+imgFileCnt));
			FileElement.setAttribute("id", ("file_"+imgFileCnt));
			FileElement.setAttribute("size", "50");
			FileElement.setAttribute("type", "file");
			addInDiv.appendChild(document.createElement("br"));
			addInDiv.appendChild(FileElement);
		}
	}
	
	function validateImgFileNames()
	{
		var hasfileToUpload = 0;
		for (var i=1; i<=imgFileCnt; i++)
		{
			elemId= "file_"+i;
			if ( document.getElementById(elemId) )
			{
				fName = document.getElementById(elemId).value;
				var expr = /\\/g;
				fName = fName.replace (expr, "/");
				fName = fName.substring(fName.lastIndexOf("/")+1,fName.length);

				if (!cm_isValidEntityName(fName))
				{
					alert("Filename cannot contain any of the following characters:\n\n \\ / \" | % ^ :< > ? &");
				 	return false;
				}
				if (fName != null && fName != "")
				{
					hasfileToUpload ++;
				}
			}
		}
		if (hasfileToUpload == 0)
		{
			alert("Please select atleast one attachment.");
			return false;
		}
		else
			return true;
	}

	function setEditTopic(topic)
	{
		var elem;
		var i=0;
		var tName = "";
		var arNewTopics;
		if(!et_g_isWhitespace(document.getElementById("editpost_topic").value))
		{
			arNewTopics = document.getElementById("editpost_topic").value.split(",");
		}
		else
		{
			arNewTopics = new Array();
		}
		for (i=0; i < document.createpost.length; i++)
		{
			elem = document.createpost.elements[i];
			if( elem.name && elem.name.indexOf("chktc_") != -1 )
			{
				tName = elem.name.substring(elem.name.indexOf("chktc_")+6);
				if(elem.checked)
				{
					if(arNewTopics.length>0)
					{
						var exists = false;
						for(var j=0;j<arNewTopics.length;j++)
						{
							if( trim(arNewTopics[j]) == tName )
							{
								exists = true;
								break;
							}
						}
						if(!exists)
						{
							arNewTopics[arNewTopics.length] = tName;
						}
					}
					else
					{
						arNewTopics[0]=tName;
					}
				}
				else
				{
					var idx = -1;
					for( var j=0;j<arNewTopics.length; j++ )
					{
						if( trim(arNewTopics[j]) == tName )
						{
							idx = j;
							break;
						}
					}
					if(idx!=-1)
					{
						arNewTopics.splice(idx,1);
					}
				}
			}
		}
		if(arNewTopics.length>0)
		{
			document.getElementById("editpost_topic").value = arNewTopics.join(","); 
		}
		else
		{
			document.getElementById("editpost_topic").value = "";
		}
		hideTopicsDD();
	}

	function getTopicsDD(show)
	{
		var maindiv = document.getElementById("div_topic");
		if(maindiv.className=="div_topic_show" && show == null)
		{
			hideTopicsDD();
			return;
		}

		var pos = et_edd_anchorPosition("editpost_topic");
		maindiv.style.width = document.getElementById("editpost_topic").offsetWidth;
		maindiv.top = (pos.y+this.document.getElementById("editpost_topic").offsetHeight) + "px";
		maindiv.style.top = (pos.y+this.document.getElementById("editpost_topic").offsetHeight) + "px";
			
		maindiv.style.left = pos.x; 
		maindiv.left = pos.x; 
		maindiv.className="div_topic_show";
		document.getElementById("img_topicdd").setAttribute("src", appendImagePath("other/16x16/collapse_up.png"));
	}

	function hideTopicsDD()
	{
		var maindiv = document.getElementById("div_topic");
		clearDDRow();
		maindiv.className="div_topic_hide";
		document.getElementById("img_topicdd").setAttribute("src", appendImagePath("other/16x16/expand_down.png"));
		document.getElementById("editpost_topic").focus();
	}
	
	function clearDDRow()
	{
		if(oldDDRow!=null)
		{
			oldDDRow.className = 'div_topic_row';
		}
	}
	
	function highlightDDRow(obj)
	{
		clearDDRow();
		obj.className = 'div_topic_row_curr';
		oldDDRow = obj;
	}
	
	function getAttachments(doc, postId, blogName, userName, locale)
	{
		var attReader = new WikiAjax();
		attReader.setMethodTOPOST();
		var attResponseHandler = new AttachmentResponseHandler( doc, postId );
		attReader.setCallback(attResponseHandler.process);
		
		var methodName = "getInLinePostAttachments";
		
		var params = new Array();
		var index = 0;
		params[index] = new Object();
		params[index].type = "long";
		params[index].value = postId;
		index++;
		
		params[index] = new Object();
		params[index].type = "String";
		params[index].value = blogName;
		index++;
		
		params[index] = new Object();
		params[index].type = "String";
		params[index].value = userName;
		index++;

		params[index] = new Object();
		params[index].type = "String";
		params[index].value = locale;
		index++;
				
		var req = createRequest(createManagerMethod(methodName, params));
		attReader.addField("reqdata", req);
		
		attReader.send();

	}
		
function AttachmentResponseHandler( doc,id )
{
	this.id = id;
	this.doc = doc;
	this.process = process;

	function process(responseDOM, errorMessage)
	{
		if(errorMessage == null)
		{
			
			var obj = parseResponse(responseDOM);
			
			if(obj == null)
			{
				alert("Response is not well formed.");
			}
			else
			{
				if(obj.statusCode == "200")
				{
					
					var td = doc.getElementById("title_td_"+id);
					td.style.display = "inline";
					td.innerHTML =obj.output;
				}
				else
				{
					alert( "["+ obj.statusMessage + "] " + obj.output );
				}
			}
		}
	};
}


	function getAlbumPhotos(doc, blogName, albumName, albumId)
	{
		var attReader = new WikiAjax();
		attReader.setMethodTOPOST();
		var attResponseHandler = new AttachmentResponseHandler( doc, albumId);
		attReader.setCallback(attResponseHandler.process);
		
		var methodName = "getInLineAlbumPhotos";
		
		var params = new Array();
		var index = 0;
		params[index] = new Object();
		params[index].type = "String";
		params[index].value = blogName;
		index++;
		
		params[index] = new Object();
		params[index].type = "String";
		params[index].value = albumName;
		index++;
		
		params[index] = new Object();
		params[index].type = "long";
		params[index].value = albumId;
		index++;
				
		var req = createRequest(createManagerMethod(methodName, params));
		attReader.addField("reqdata", req);
		
		attReader.send();

	}


	function goNextPage(formName)
	{
		document.getElementById("currentpage").value = parseInt(document.getElementById("currentpage").value)+1;
		document.postlist.submit();
	}

	function goPrevPage(formName)
	{
		document.getElementById("currentpage").value = parseInt(document.getElementById("currentpage").value)-1;
		if(typeof formName == "undefined")
		{
			document.postlist.submit();
		}
		else
		{
			eval("document."+formName+".submit()");
		}
	}

	function goFirstPage(formName)
	{
		document.getElementById("currentpage").value = "1";
		if(typeof formName == "undefined")
		{
			document.postlist.submit();
		}
		else
		{
			eval("document."+formName+".submit()");
		}
	}
	
	function goLastPage(formName)
	{
		document.getElementById("currentpage").value = "-1";
		if(typeof formName == "undefined")
		{
			document.postlist.submit();
		}
		else
		{
			eval("document."+formName+".submit()");
		}
	}
	
	function goToPage()
	{
		var val = document.getElementById("page_g").value;
		var totalPages = document.getElementById("totalpages").value;
		if(et_g_isWhitespace(val))
		{
			alert("Please enter a numeric value, greater than zero.");
			return;
		}
		var a= et_g_isNonZeroInteger(val);
		if(!a)
		{
			alert("Please enter a numeric value, greater than zero.");
			return;
		}
		
		if( (parseInt(val) <= 0 ) || (parseInt(val) > parseInt(totalPages)) )
		{
			alert("Invalid page number. Only "+totalPages+" pages exist.");
			return;
		}
		else
		{
			document.getElementById("currentpage").value = val;
			document.postlist.submit();
		}
	}
		
	function executeOnEnter(e, func)
    {
		if(isEnterEvent(e))
		{
			eval(func);
		}
    }
	
	
	var imgExtns = new Array("gif", "jpg", "jpeg", "bmp", "png", 
						"tif", "tiff", "jpe", "mac", "pbm", 
						"pct", "pgm", "pic", "pict", "pnm", 
						"pnt", "ppm", "psd", "qti", "qtif", 
						"rgb", "xbm","xpm", "xwd", "wbmp");

	function isImage(fileName)
	{
		extn = fileName.substring(fileName.lastIndexOf(".")+1);
		for (i in imgExtns)
		{
			if (extn == imgExtns[i])
				return true;
		}
		return false;
	}
	
	function getRSSFeed(blogAlias)
	{
	    pageNumber = "";
	    if (document.getElementById("page_g"))
	    {
	    	pageNumber = document.getElementById("page_g").attributes["initpagenum"].value;
	    }
		//url = "/"+appContext+"/blogrss/feed?blogName="+blogAlias+"&pagenum="+pageNumber;
				url =  "/"+appContext+"/rssfeed/blog/"+blogAlias+".rss";
		et_openPopup(url,850,600,'RSS','menubar=no,location=yes,toolbar=no,directories=no,scrollbars=yes,status=no,resizable=yes');
	}
	
	function getRssFeedForItem(theEntity, windowTitle)
	{
		url = "/"+appContext+"/blogrss/feed?entity="+theEntity+"&count=10";
		et_openPopup(url,850,600,windowTitle,'menubar=no,location=yes,toolbar=no,directories=no,scrollbars=yes,status=no,resizable=yes');		
	}
	
	function getRSSFeedForSearchCategory(blogName, searchCat, searchData)
	{
		url = "/"+appContext+"/blogrss/feed?entity=catsearch&blogname="+blogName+"&searchcat="+searchCat+"&searchdata="+searchData;
		et_openPopup(url,850,600,'serachcat','menubar=no,location=yes,toolbar=no,directories=no,scrollbars=yes,status=no,resizable=yes');		
	}
	
	function showLoading()
	{
	    if (parseInt(navigator.appVersion)>3) 
		{
		     x=document.body.scrollLeft;
		     y=document.body.scrollTop;
			 if (navigator.appName=="Netscape") 
			 {
				winW = window.innerWidth;
				winH = window.innerHeight;
		
			 }
			 if (navigator.appName.indexOf("Microsoft")!=-1) 
			 {
				winW = document.body.offsetWidth;
				winH = document.body.offsetHeight;
			 }
		
			 var flashElem = document.getElementById('loading_div');
			 if (!flashElem)
			 {
			 	flashElem = document.createElement("div");
			 	flashElem.innerHTML = "<iframe width='150px' height='40px' scrolling='no' src='"+getAppPath()+"/blog/includes/loading.jsp' style='border:none;' frameborder='0' marginwidth='10' marginheight='5'></iframe>";
			 	flashElem.setAttribute("id", "loading_div");
			 	flashElem.style.display = "inline";
			 	flashElem.style.position = "absolute";
			 	flashElem.style.background = "#FFFFFF";
			 	flashElem.style.border = "1px solid #000";
			 	document.body.appendChild(flashElem);
			 }
			
			if (flashElem.style.display == "none")
			{
				flashElem.style.display = "inline";
			} 
			x_cord = x+(winW/2)-75;
			y_cord = y+winH/3;
			flashElem.left = x_cord;
			flashElem.style.left = x_cord;			
			flashElem.top = x_cord;
			flashElem.style.top = y_cord;			 			 
		}	
	}
	
	function exportBlog(blogAlias, blogDesc)
	{
	    var aUrl = appendPath("export.jsp?blogalias=") + blogAlias + "&blogdesc=" + URLEncode(blogDesc); 
	    et_openPopup(aUrl, 350, 100, "export", 'menubar=no,location=no,toolbar=no,directories=no,scrollbars=no,status=no,resizable=yes');
	}
	
	function startBlogExport(blogAlias, blogDesc)
	{
	    var aUrl = appendPath("export.jsp?blogalias=") + blogAlias + "&blogdesc=" + URLEncode(blogDesc) + "&start=true"; 
		et_openPopup(aUrl, 350, 100, "export", 350, 100, "export", 'menubar=no,location=no,toolbar=no,directories=no,scrollbars=no,status=no,resizable=yes');
	}
	
	function downloadzip(zippath)
	{
		var aUrl =appendPath("export.jsp?filepath=") + zippath + "&start=true"; 
		et_openPopup(aUrl, 350, 100, "export", 'menubar=no,location=no,toolbar=no,directories=no,scrollbars=no,status=no,resizable=yes');
	}
	
	function URLEncode(val)
	{
		if(encodeURIComponent)
		{
			return encodeURIComponent(val);
		}
		else
		{
			return escape(val);
		}
	}	

	function is_safari2()
	{
		if(BrowserDetect.browser == "safari" || BrowserDetect.browser == "Safari")
		{
			if(parseInt(BrowserDetect.version) < 510)
			{
			   return true;
			}
			else
			{
				return false;
			}
		}
		else
		{
			return false;
		}
	}

	function openHelp(){
		openPopup(getAppPath() + '/wiki/help.jsp', 800, 500, 'eTouch SamePageHelp');
	}
	
	//added by Vijay Ummalaneni
	function renderLogin(x){
		if(x=="guest"){
			document.getElementById("login_form_placeholder").innerHTML="<input id=\"lid\" type=\"text\" value=\"Username\" name=\"lid\" onClick=\"javascript:fnClearTextBox(this)\"/> <input id=\"lpass\" type=\"password\" value=\"********\" name=\"lpass\"  onClick=\"javascript:fnClearTextBox(this)\" onKeyDown=\"return loginWithEnter(document.all?window.event:event);\"/><BR/>"
			document.getElementById("sign_in_out").innerHTML="<a href=\"javascript:fnLogin()\"> Sign In</a>";
		}else{
			document.getElementById("sign_in_out").innerHTML="<a href=\"/cm/newui/blog/blogs.jsp?logout=y\"> Sign Out</a>";
		}
	}
	function fnLogin(){
		var x=document.frmLogin.lid.id;
		var y=document.frmLogin.lpass.id;
		divLogin(x,y);
	}
	
	function fnClearTextBox(x){
		var elementName=x.id;
		x.value="";
		document.frmLogin.lpass.value="";
	
	}
	function loginWithEnter(e)
	{
		try
		{
			var elem = e.target||e.srcElement;
			if(elem){
				var pressedKey=0;
				if (e.keyCode) pressedKey = e.keyCode;
				else if (e.which) pressedKey = e.which;
				if(pressedKey == 13) //Enter
				{
					fnLogin();
					return false;
				}
			}
			return true;
		}
		catch(err){alert(err)}
	
		
	}
	
//end of adding
	
	//----------------- Session timeout -------------------------------

	var maxTimeout = 1800*1000+10000;
	var editorActivityChecktime = 60000;
	var sCount;
	var existingSessionId = 0;
	var sessionCheckTimeoutId = null;
	function getSessionTimeoutTime()
	{
		if (wikiTimeout != "undefined"){
			maxTimeout = wikiTimeout*1000+10000;
		}
	}
	function timeoutWarning()
	{	
		if (sys_user!= "undefined" && sys_user != "guest")
		{
			if( typeof jSessionId != "undefined")
			{
				existingSessionId  = jSessionId;
			}
					
			getSessionTimeoutTime();
			resetCount();
			setSessionTimeout(maxTimeout);
		}
	}
	function resetCount() {
		sCount = new Date().getTime();
	}
	function setSessionTimeout(t) {
		clearSessionTimeOut();
		//alert("setsession again id :"+existingSessionId);
	    sessionCheckTimeoutId = window.setTimeout(function(){expireSession();}, t);
	}
	function clearSessionTimeOut()
	{
		if( sessionCheckTimeoutId != null )
		{
			window.clearTimeout(sessionCheckTimeoutId);
			sessionCheckTimeoutId = null;
		}
	}
	function expireSession()
	{
		 var curTime = new Date().getTime();
		 var dt = curTime-sCount;
		 if (dt<maxTimeout) {
			setSessionTimeout(getSessionTimeoutTime() - dt);
			return;	
		 }

		var sId = existingSessionId;
		try{
		   	var wAjax = new WikiAjax();
			wAjax.setMethodTOPOST();
			wAjax.setCallback(expireSessionCallback);
			var methodName = "sessionTimeoutChecker";
			var params = new Array();
			params[0] = new Object();
			params[0].type = "String";
			params[0].value = sId;
			params[1] = new Object();
			params[1].type = "httprequest";
			params[1].value = "";
					
			var req = createRequest(createManagerMethod(methodName, params));
			wAjax.addField("reqdata", req);
			wAjax.send();
		}
		catch(err){}
	}
	function expireSessionCallback(responseDOM, errorMessage)
	{
		if(errorMessage == null)
		{
			var obj = parseResponse(responseDOM);
			if(obj != null)
			{ 
				if (obj.statusCode == "200")
				{
					if(obj.output != "valid")
					{
						alert("Your session has expired");
						window.location.href=appendPath("blogs.jsp");
					}
					else
					{
						resetCount();
						setSessionTimeout(maxTimeout);
					}
				}
				else
				{
					//alert("Error status code:"+obj.statusCode);
				}
			}
		}
		else if (errorMessage.indexOf("401") > -1)
		{
			alert("Your session was timed out due to inactivity. Please login to continue.");
			window.location.href=appendPath("blogs.jsp");
		}
	}

	function resetSession()
	{
		if (typeof setEventFlag != "undefined")
		{
			
			if (setEventFlag == "true")
			{
				try{
				   	var wAjax = new WikiAjax();
					wAjax.setMethodTOPOST();
					wAjax.setCallback(resetSessionCallback);
					wAjax.addField("sessionCheckEvent", "1");
					wAjax.send();
				}
				catch(err){}
			}
			else
			{
				HTMLAreaSetTimer();
			}
		}
		
	}
	function resetSessionCallback(responseDOM, errorMessage)
	{
		if(errorMessage == null)
		{
			setEventFlag = "false";
			resetCount();
			setSessionTimeout(maxTimeout);
			HTMLAreaSetTimer();
		}
		else if (errorMessage.indexOf("401") > -1)
		{
			alert("Your session was timed out due to inactivity. Please Login to continue.");
			window.location.href=appendPath("blogs.jsp");
		}
	}

  // set timer to test any activity on htmlarea every 1 minute
  function HTMLAreaSetTimer(){
    	setTimeout("resetSession()", editorActivityChecktime);	
  }

  var xssEditCheck = "";
  function setXssStatus(status)
  {
	xssEditCheck = status;
  }
  function getXssStatus()
  {
	return xssEditCheck;
  }
  function xssfilter()
	{
		try{
		    var wAjax = new WikiAjax();
			wAjax.setMethodTOPOST();
			var methodName = "xssChecker";
			var params = new Array();
			var req = createRequest(createManagerMethod(methodName, params));

			for ( var i=0; i < document.forms[0].length; i++)
			{
				elem = document.forms[0].elements[i];
				if( elem.name && elem.name != "") 
				{
					wAjax.addField(elem.name, elem.value);
				}
			}
			
			wAjax.addField("reqdata", req);
			var requestObj = wAjax.getRequest();
			wAjax.send(false);
			
			var resp = requestObj.responseText;
			if (resp.indexOf("xssValidData") != -1 ){
				setXssStatus("valid");
			}
			else{
				setXssStatus("invalid");
				alert("Invalid input data found. Please remove it and try saving again.");
			}

			if (wAjax != null)
				wAjax = null;
			requestObj = null;
			return;
		}
		catch(err){}
	}


        function changePointer(cursorType)
	{
		/*try
		{
			var length = document.all.length ;
			for (var j=0; j<length; j++)
			{
				try
				{
					document.all[j].style.cursor=cursorType;
					if(document.all[j].contentWindow)
					{
						document.all[j].contentWindow.document.body.style.cursor=cursorType;
					}
				}
				catch(err){}
			}
		}
		catch(err){}*/
		try
		{
			document.body.style.cursor=cursorType;
		}
		catch(err){}
	}

        function goToPagePost(pos)
        {
            if(pos=="T"){
                document.getElementById("page_g").value=document.getElementById("page_t").value;
        }
            else{
                document.getElementById("page_g").value=document.getElementById("page_b").value;

            }
            goToPage();

        }
