		var m_cells;
		var m_datacelltypes;
		var m_datacells;
		var m_datakeys;
		var m_callID;
		var m_dataservices_state;
		var m_dataID;
		var m_dataseqs;
		var m_datarequestms;
		var m_insertsdone;
		var m_status_cellindex;
		var m_status_max;
		var m_w2x;
		var m_allowdownloads;
		var m_allowuploads;
		var m_readonly; 
		var m_pID;
		var m_session;
		var m_canpublish;
		var m_reload;
		var m_inserterrors;
		var m_w2token;
		var m_pagecsID;
		var m_pp;
		var m_debug;
		var m_marked;
		var m_mitems;
		var m_luser;
		var m_useds;
		var m_attachedlist;
		var m_attachedviews;
		var m_attachedindex;
		var m_attacheditemcount;
		var m_attachedsetcallcount;
		var m_lastattachsetrequest;
		var m_publisher;
		var m_promopanes;
		var m_promopanecount;
		var m_nextpane;
		var m_isIE;
		var m_isFF;
		var m_isNS;
		var m_isOP;
		var m_isSF;
		var m_bver;
		
		var m_openwindow;
		var m_rresult;
		var m_returnvalue;
		var m_openwindowname;
		var m_geturlwindow;
		var m_quickpwindow;

		var m_topninited;
		var m_topnlist;
		var m_topntitlelist;
		var m_topnlupdatelist;
		var m_topnitemlist;
		var m_topnitem;
		var m_topnlastgetset;
		var m_topnswapinterval;
		var m_topngetnexttimerpending;
		var m_topnpin;
		var m_topnpinitem;
		var m_topnswapcount;
		
		function DEBUGWRITE(w)
		{
		    if ( m_isIE )
		        Debug.writeln(w);
		}
		
		function setbrowser()
		{
            m_bver = 0;

            if (navigator.appName=="Netscape" && parseFloat(navigator.appVersion)>=4.7)
            {
                m_isIE = false;
                m_isFF = false;
                m_isNS = true;
                m_isOP = false;
                m_isSF = false;
            }
                        
            if (navigator.userAgent.indexOf("Firefox")!=-1)
            {
                var versionindex=navigator.userAgent.indexOf("Firefox")+8
                if (parseInt(navigator.userAgent.charAt(versionindex))>=1)
                {
                    m_isIE = false;
                    m_isFF = true;
                    m_isNS = false;
                    m_isOP = false;
                    m_isSF = false;
                }
            }

            if (navigator.appVersion.indexOf("MSIE")!=-1)
            {
                temp = navigator.appVersion.split("MSIE");
                m_bver = parseFloat(temp[1]);                
            }

            if (m_bver >= 5.5)
            {
                m_isIE = true;
                m_isFF = false;
                m_isNS = false;
                m_isOP = false;
                m_isSF = false;
            }

            if (navigator.userAgent.indexOf("Opera")!=-1)
            {
                var versionindex=navigator.userAgent.indexOf("Opera")+6
                if (parseInt(navigator.userAgent.charAt(versionindex))>=8)
                {
                    m_isIE = false;
                    m_isFF = false;
                    m_isNS = false;
                    m_isOP = true;
                    m_isSF = false;
                }
            }
            
            if (navigator.userAgent.indexOf("AppleWebKit")!=-1)
            {
                m_isIE = false;
                m_isFF = false;
                m_isNS = false;
                m_isOP = false;
                m_isSF = true;
            }            
		}

		function onpageload()
		{		
		    //debugger
		    		 		    		    	    		
		    setbrowser();	    
			resetform();
			
			var now = new Date();
			document.Form1.__w2TZ.value = now.getTimezoneOffset();
			
			m_pp = document.getElementById("pageproperties");
			m_debug = m_pp.getAttribute("debug");
			
			if ( m_debug != null )
			{
			    // ?
			}
			
			if ( !m_isFF )
			{
			    var ml = m_pp.getAttribute("mlibs")
			    if ( ml != null )
			    {
			        var pm = m_pp.getAttribute("pmargins")
			        var pml = parselist(pm);
			        
			        var mrl = parselist(ml);
		            for (var n=0; n < mrl.length; n+=1)
		            {
                        var mbar = document.getElementById(mrl[n]);

                        if ( mbar != null )
                        { 
                            var w = mbar.style.width;
			                if (/px$/.test(w))
			                    w = parseInt(w);
        			               			        
			               // if ( document.body.offsetWidth >= 1024 && w >= 1024 )
    			                mbar.style.width = document.body.offsetWidth - 85 - pml[n];
    			        }		            
		            }
			    }   
			}
						
			m_w2token = m_pp.getAttribute("w2token");
			m_pID = m_pp.getAttribute("pID");
			m_session = m_pp.getAttribute("session");
			
			var nr = m_pp.getAttribute("nr")
			if ( nr != null )
			{
			    var nrl = parselist(nr);
			    for (var n=0; n < nrl.length; n+=2)
			        Nifty("div#"+ nrl[n], nrl[n+1]);
			}

			var servernow = new Date(m_pp.getAttribute("servernow"));
			m_timedelta = now - servernow;

			var marked = m_pp.getAttribute("marked");
			m_marked = parselist(marked);

			m_mitems = new Array();

			m_luser = m_pp.getAttribute("w2user");
			m_luser = localizeduser(m_luser);
			
			m_useds = true;
			if ( m_pp.getAttribute("useds") == "false" ) 
				m_useds = false;		

			setform();
			init();
			if ( m_useds ) 
				setupdataservices();

			m_colorset = parselist(m_pp.getAttribute("colorset"));
			m_colorintervalset = parselist(m_pp.getAttribute("colorintervalset"));

			var cellspaces = new Number(m_pp.getAttribute("cellspaces"));
			if ( cellspaces > 0 )
				setupcellspaces();
			
			var dset = true;
			if ( m_pp.getAttribute("documentset") == "false" ) 
				dset = false;			
			var downloads = new Number(m_pp.getAttribute("downloads"));
			
			m_allowdownloads = true;
			if ( m_pp.getAttribute("allowdownloads") == "false" )
				m_allowdownloads = false;
			m_allowuploads = true;
			if ( m_pp.getAttribute("allowuploads") == "false" )
				m_allowuploads = false;

			if ( m_pp.getAttribute("readonly") == "false" )
				m_readonly = false;
			else
				m_readonly = true;

			if ( m_pp.getAttribute("canpublish") == "false" )
				m_canpublish = false;
			else
				m_canpublish = true;
			
			/*
			if ( dset == false && downloads > 0 && !m_readonly )
				opendocumentsettingswindow();
			*/
						
			try
			{
				if ( m_w2x )
				{
					// have admin rights?
					var info = m_w2x.getclientinfo(-1);
					
					if ( info == "ok" )
						info = m_w2x.getclientinfo(1);

					if ( info == "ok" )
					{
						var w2server = m_pp.getAttribute("w2server");
						var w2user = m_pp.getAttribute("w2user");
						var w2token = m_pp.getAttribute("w2token");
						m_w2x.setauth(w2server, w2user, w2token);

						var dcount = new Number(m_pp.getAttribute("cellcount_document"));
						if ( dcount > 0 )
							window.setTimeout("status_update()", 1000);
						
						check_drop();
					}
					else if ( info == "error:noprivs" )
					{
						// if no admin rights
						gotoinstallerr();
					}
					else if ( info == "error:dotnetframework" )
					{
						// if .NET framework cannot be installed, allow for manual install
						gotoframeworkinstall();
					}
					else if ( info == "error:w2docmgr" )
					{
						// if w2docmgr cannot be installed, allow for manual install
						gotoinstall();
					}
					else if ( info == "error:mdac" )
					{
						// if MDAC cannot be installed, allow for manual install
						gotoMDACinstall();
					}
				}
			}
			catch(e)
			{
				alert("This page is not fully operational.  Either you did not permit the installation of the Personafile Desktop or your environment does not allow for the installation of this component. \n\nIf you were presented with the choice to install the software and chose \"No\", you can either reload the page and choose \"Yes\" or sign out and sign in as a visitor.  A visitor login will permit you to see the content of this page in a read-only mode.\n\nIf you were not presented with a choice, most likely you do not have administrative privileges on your computer.  In this case, either switch to an account with administrative privileges or sign in as a visitor.");
			}	
			
			//*** test
			//var posted = new Date("7/27/2005 4:55 PM" + " UTC");
			//showalert(999,"my title","my description", "http://www.yahoo.com","yahoo.com","http://us.i1.yimg.com/us.yimg.com/i/us/my/bn/ylinksy_l.gif",posted);	
			
			initnewsroll();
			
			setupsoap();
			
			m_publisher = m_pp.getAttribute("published_by");

			m_topninited = false;
			window.setTimeout("initattachset()", 10);				
			window.setTimeout("inittopn()", 20*1000);	
		}
		
		var m_nrt;
		var m_nru;
		var m_nrindex=0;
				
		function initnewsroll()
		{
		    var nrt = m_pp.getAttribute("nrt");
		    if ( nrt == null )
		        nrt = "";
		    m_nrt = parselist(nrt);
		    
		    var nru = m_pp.getAttribute("nru");
            if ( nru == null )
		        nru = "";
		    m_nru = parselist(nru);

            if ( m_nrt.length > 0 )
			    window.setTimeout("newsroll()", 5*1000);					
		}
		
		function newsroll()
		{
		    var nn = document.getElementById("nnew");
		    if ( nn != null )
		    {
		        nn.innerHTML = m_nrt[m_nrindex];
		        nn.href = m_nru[m_nrindex];
		        		        
		        m_nrindex+=1;
		        if ( m_nrindex >= m_nrt.length )
		            m_nrindex = 0;
		        
			    window.setTimeout("newsroll()", 5*1000);					
		    }
		}
		
		/*  soap call support
		*/
		
		var m_xmlhttpobj;
		var m_soapcall;
		var m_soapapi;
		var m_w2apiurl;
		var m_dataservicesapiurl;
		var m_htmlcall;

		function setupsoap()
		{
		    m_soapcall = null;
		    m_soapapi = null;		    
		    m_w2apiurl = m_pp.getAttribute("w2apiurl");
		    m_dataservicesapiurl = m_pp.getAttribute("dataservicesurl");				    
		}
		
		function gethtml(call, url)
		{
		    initx();
		    
		    m_htmlcall = call;

		    m_xmlhttpobj.open("GET", url, true);
		    m_xmlhttpobj.onreadystatechange = htmlresponse;
		    
		    m_xmlhttpobj.send(null);
		}
		
		function htmlresponse()
		{		    
            if (m_xmlhttpobj.readyState==4) 
            {                  
                if ( m_xmlhttpobj.status == 200 )
                {
                    if ( m_htmlcall == "sectionget" )
                        sectiongetresp(m_xmlhttpobj.responseText);
                }
            }            
		}
        
        function initx()
        {
            try
		    {
		        m_xmlhttpobj = new ActiveXObject("Msxml2.XMLHTTP");
		    }
			catch(e)
		    {
			    try
		        {
		            m_xmlhttpobj = new ActiveXObject("Microsoft.XMLHTTP");
		        }
			    catch(e1)
			    {
                    try
                    {
                        m_xmlhttpobj = new XMLHttpRequest();
                    }
                    catch(e2)
                    {
			            m_xmlhttpobj = null;
			            return;
                    }
			    }
		    }
		}
        
		function callsoap(api, call, params)
		{
		    DEBUGWRITE("callsoap: " + api + " " + call + " " + params);

		    //if ( m_soapcall != null )
		    //    alert("ERROR: soap call " + call + " on top of: " + m_soapcall);
		    
		    var soapurl = null;
		    if ( api == "dataservices" ) 
		        soapurl = m_dataservicesapiurl;
		    else if ( api == "w2" )
		        soapurl = m_w2apiurl;
		    				    		    
		    if ( soapurl == null )
		        return;
		    
		    m_soapapi = api;
		    m_soapcall = call;

			initx();
		    
		    try
		    {	    
		        var posturl = soapurl + "/" + call;
    		    
			    m_xmlhttpobj.onreadystatechange = soapresponse;
			    m_xmlhttpobj.open("POST", posturl);
			    //m_xmlhttpobj.open("GET", posturl, false);
    			
			    m_xmlhttpobj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			    var contentlen = "\"" + params.length + "\"";
			    m_xmlhttpobj.setRequestHeader("Content-Length", contentlen);
			    m_xmlhttpobj.send(params);
			}
			catch(e3)
			{
    		    DEBUGWRITE("callsoap error: " + e3);
			}
		}		
		
		function escapeplus(s) 
		{
             s = escape(s);
             s = s.replace(/\+/g,"%2B");
             s = s.replace(/\//g,"%2F");
             s = s.replace(/\?/g,"%3F");
             s = s.replace(/=/g,"%3D");
             s = s.replace(/&/g,"%26");
             s = s.replace(/@/g,"%40");
             return s;
        } 
		
		function getInnerText(node)
		{
            if (typeof node.textContent != 'undefined') 
            {
                return node.textContent;
            }
            else if (typeof node.innerText != 'undefined') 
            {
                return node.innerText;
            }
            else if (typeof node.text != 'undefined') 
            {
                return node.text;
            }
            else 
            {
                switch (node.nodeType)
                {
                    case 3:
                    case 4:
                        return node.nodeValue;
                        break;
                        
                    case 1:
                    case 11:
                        var innerText = '';
                        for (var i = 0; i < node.childNodes.length; i++)
                        {
                            innerText += getInnerText(node.childNodes[i]);
                        }
                        return innerText;
                        break;
                        
                    default:
                        return '';
                }
            }
        }

        function soapresponse()
        {
            try
            {
                //alert("soapresponse: " + m_xmlhttpobj.readyState + " " + m_xmlhttpobj.status);
                
	            if ( m_xmlhttpobj.readyState == 4 )
	            {
	                if ( m_xmlhttpobj.status == 200 )
	                {	   
	                    try
	                    {
	                        var soapcall = m_soapcall;
	                        m_soapcall = null;                    

	                        var resp = getInnerText(m_xmlhttpobj.responseXML.documentElement);
	                        //alert("response: for: " + soapcall + " >" + resp);
    	                    	                    
	                        if ( m_soapapi == "w2" )
	                        {           
	                            switch ( soapcall )
	                            {
	                                case "registerp":
	                                    registerp_resp(resp);
	                                    break;
	                                    
	                                case "getattachset":
	                                    getattachset_resp(resp);
	                                    break;
    	                                
	                                case "getattachitem":
	                                    getattachitem_resp(resp);
	                                    break;
    	                            
	                                case "gettopnset":
	                                    gettopnset_resp(resp);
	                                    break;
    	                                
	                                case "gettopnitem":
	                                    gettopnitem_resp(resp);
	                                    break;
	                            }         
	                        }
	                        else if ( m_soapapi == "dataservices" )
	                        {
	                        }	
	                    }
	                    catch(e2)
	                    {
                            DEBUGWRITE("soapresponse error: " + e2);
	                    }                 
	                }
	            }
            }
            catch(e)
            {
                DEBUGWRITE("soapresponse2 error: " + e);
            }            
        }
		
		function inittopn()
		{
		    var pageuse = m_pp.getAttribute("page_use");
		    if ( pageuse == null )
		        return;

		    if ( pageuse != "phome" && pageuse != "home" )
		        return;

		    m_topnitem = -1;
		    
		    m_topnpinitem = -1;
		    m_topnpin = "";
		    
		    var pin = m_pp.getAttribute("pin");
		    if  ( pin != null )
		        m_topnpin = pin;
		        		    
		    m_topnswapinterval = 30 * 1000;
		    m_topngetnexttimerpending = false;
		    
		    m_topnswapcount = 0;
		    		    
		    gettopnset();
		}
		
        function gettopngetsetinterval()
        {
            var iv;
            
            if ( m_topnswapcount < 10 )
                iv = 2 * 60 * 1000;
            else if ( m_topnswapcount < 20 )
                iv = 5 * 60 * 1000;
            else if ( m_topnswapcount < 40 )
                iv = 7 * 60 * 1000;
            else if ( m_topnswapcount < 70 )
                iv = 10 * 60 * 1000;
            else
                iv = 15 * 60 * 1000;
                        
            return iv;        
        }
        		
		function gettopnset()
		{
           	var token = escapeplus(m_w2token);
	        var p = "wtoken=" + token + "&publisher=" + m_publisher;
	        callsoap("w2", "gettopnset", p);
		}
		
		function gettopnset_resp(data)
		{		    
		    try
		    {
                m_topnlastgetset =  new Date();
    		    
		        if ( m_topnitem == -1 )
		        {
		            m_topnlist = new Array();
		            m_topntitlelist = new Array();
		            m_topnlupdatelist = new Array();
		            m_topnitemlist = new Array();
		        }
    		    
		        var nlist = parselist(data);
		        var ncount = nlist.length / 3;
		        var i = 0;
    		    		    
		        var n;
		        for (n=0; n < ncount; n++)
		        {
		            var inn = n * 3;
		            var newu = new Date(nlist[inn+2]);
		                		        
		            if ( m_topnitem == -1 )
		                m_topnitemlist[i] = null;
		            else
		            {
		                if ( newu > m_topnlupdatelist[i] )
		                    m_topnitemlist[i] = null;
		            }
    		        
		            m_topnlist[i] = nlist[inn];
		            m_topntitlelist[i] = nlist[inn+1];
		            m_topnlupdatelist[i] = newu;
                    
                    if ( m_topnlist[i] == m_topnpin )
                        m_topnpinitem = i;
		            i++;
		        }
    		    
    		    m_topninited = true;
                window.setTimeout("getnexttopnitem()", 10);				    
            }
		    catch(e)
		    {
		    }		 
		}
		
		function getnexttopnitem()
		{
		    m_topngetnexttimerpending = false;
		    
		    var now = new Date();
		    var lastm = now - m_topnlastgetset;
		    if ( lastm > gettopngetsetinterval() )
		    {   
		        gettopnset();
		        return;
		    }
		    
		    gotopn("animate");
		}
		
		function gotopn(dir)
		{
		    if ( !m_topninited )
		    {
		        inittopn();
		        return;
		    }
		    
	        if ( dir == "goprev" ) 
	            m_topnitem -= 1;
	        else if ( dir == "gonext" )
	            m_topnitem += 1;
	        else
            {
                m_topnswapcount++;
                
                if ( m_topnpin.length > 0 )
                    m_topnitem = m_topnpinitem;     // snap to pinned
                else
                    m_topnitem += 1; 
            }
            		    
		    if ( m_topnitem >= m_topnlist.length )
		        m_topnitem =  0;
		    if ( m_topnitem < 0 )
		        m_topnitem = m_topnlist.length - 1;
		        
		    var d = m_topnlupdatelist[m_topnitem];
		    if ( d.getFullYear() < 2000 )
                gotopn(dir);

		    if ( m_topnitemlist[m_topnitem] == null )
		    {		        
		        var topnitem = m_topnlist[m_topnitem];
    		    
           	    var token = escapeplus(m_w2token);
	            var p = "wtoken=" + token + "&publisher=" + m_publisher + "&id=" + topnitem;
	            callsoap("w2", "gettopnitem", p);
		    }
		    else
		    {
		        displaytopnitem(m_topnitemlist[m_topnitem]);
		        if ( dir == "animate" )
		        {
		            window.setTimeout("getnexttopnitem()", m_topnswapinterval);	
		            m_topngetnexttimerpending = true;
		        }
            }
		}
		
		function gotopnnext()
		{
		    gotopn("gonext");
		}   
		
		function gotopnprev()
		{
		    gotopn("goprev");
		}
		
		function gettopnitem_resp(html)
		{
		    m_topnitemlist[m_topnitem] = html;
		    displaytopnitem(html);
		    
		    if ( ! m_topngetnexttimerpending )
            {
		        window.setTimeout("getnexttopnitem()", m_topnswapinterval);	
		        m_topngetnexttimerpending = true;
            }
    	}
    	
    	function displaytopnitem(html)
    	{
    	    var topnu = document.getElementById("topn_update");
    	    
    	    var now = new Date();
    	    var localdt = new Date(m_topnlupdatelist[m_topnitem].valueOf() - (now.getTimezoneOffset() * (60*1000)));      	    
    	    var template = "updated " + formatdt(localdt,"M/d/yyyy h:mm:ss tt") + " ()";
    	    sindex = template.length-2;
    	    var subs = sindex + ",ago,dhms"
    	    setdpitem(topnu, localdt, template, subs);
    	    topnu.innerHTML = "updated " + formatdt(localdt,"M/d/yyyy h:mm:ss tt");
    	    
  			var topnb = document.getElementById("topn_body");
            if ( m_isOP )
                topnb.innerHTML = dx(html);
            else
                topnb.innerHTML = html;
                
            var topnt = document.getElementById("topn_title");
            topnt.innerHTML = m_topntitlelist[m_topnitem];
    	}
		
		function initattachset()
		{
		    m_attachedsetcallcount = 0;
		    m_promopanecount = 2;
		    m_nextpane = -1;
		    m_promopanes = new Array();
		    var p;
		    for (p=0; p < m_promopanecount; p++)
		        m_promopanes[p] = null;
		    
		    getattachset();
		}
		
		function getattachset()
		{			
		    m_attacheditemcount = 0;
		    
		    var pageuse = m_pp.getAttribute("page_use");
		    if ( pageuse == null )
		        return;

		    if ( pageuse != "phome" && pageuse != "home" )
		        return;
		        		    
		    m_lastattachsetrequest = new Date();
		    
           	var token = escapeplus(m_w2token);
	        var p = "wtoken=" + token + "&publisher=" + m_publisher + "&method=allpromo";
	        callsoap("w2", "getattachset", p);
		}
		
		function getattachset_resp(data)
		{		    		     		       		
		    m_attachedsetcallcount++;
		    
		    m_attachedlist = parselist(data);
		    m_attachedindex = parseInt(m_attachedlist.length*Math.random());
		    
		    m_attachedviews = new Array();
		    
		    var i;
		    for (i=0; i < m_attachedlist.length; i++)
			    m_attachedviews[i] = 0;
			      
            window.setTimeout("doattachset()", 10);	
		}
		
		function getattachitem_resp(data)
		{		
		    var id = m_attachedlist[m_attachedindex];
		    m_attachedviews[m_attachedindex] += 1;
		    showattach(id, data);
		    
		    if ( m_attacheditemcount < 2 )
		        getnextattachitem();
		}
				
		function paneshown(id)
		{
		    var p;
		    for (p=0; p < m_promopanecount; p++)
		        if ( m_promopanes[p] == id )
		            return true;
		    return false;    
		}
		
		function showattach(id, html)
		{		    		
		    m_nextpane++;
		    if ( m_nextpane >= m_promopanecount )
		        m_nextpane = 0;
		    
            var pane = m_nextpane;
		    var promo1;
		    
		    DEBUGWRITE("showattach: pane: " + pane + "; id: " + id + "; hlen: " + html.length);

            if ( pane == 0 )
		    {
		        promo1 = document.getElementById(m_publisher + " promo");
		    }
		    else if ( pane == 1 )
		    {
		        promo1 = document.getElementById(m_publisher + " info");
		    }
		    
		    if (!paneshown(id))
            {
                m_promopanes[pane] = id;
                       
                var h = html.indexOf("pfxuser=");
                if ( h != -1 )
                    html = html.substr(0, h+8) + m_luser + html.substr(h+8);
         
                if ( m_isOP )
                    promo1.innerHTML = dx(html);
                else
                    promo1.innerHTML = html;
            }
		}
				
		function dx(s)
        { 
            s = s.replace ( /&#38;|&amp;/gi, "&" ); 
            s = s.replace ( /&#60;|&lt;/gi, "<" ); 
            s = s.replace ( /&#62;|&gt;/gi, ">" ); 
            s = s.replace ( /&#34;|&quot;/gi, "\"" ); 
            return s; 
        }
        
        function getattachsetinterval()
        {
            var timeout = 10*60*1000;
            
            if ( m_attachedlist.length == 0 )
            {
                if ( m_attachedsetcallcount < 10 )
                    timeout = 3*1000;
                else if ( m_attachedsetcallcount < 25 )
                    timeout = 6*1000;
                else if ( m_attachedsetcallcount < 100 )
                    timeout = 12*1000;
                else
                    timeout = 5*60*1000;
            }
            
            return timeout;        
        }
        
		function doattachset()
		{		    
		    var now = new Date();
            var diff = now.getTime() - m_lastattachsetrequest.getTime(); 
                        
            if ( diff > getattachsetinterval() )
            {
                // *** send previous view counts		            
                getattachset();
            }
            else
            {
	            getnextattachitem();	            
	            window.setTimeout("doattachset()", 15000);	
            } 
		}
		
		function getnextattachitem()
		{
            m_attacheditemcount++;
            
            m_attachedindex++;
            if ( m_attachedindex >= m_attachedlist.length )
                m_attachedindex = 0;
            var id = m_attachedlist[m_attachedindex];
    		     
       	    var token = escapeplus(m_w2token);
            var p = "wtoken=" + token + "&publisher=" + m_publisher + "&id=" + escapeplus(id);
    	         
            callsoap("w2", "getattachitem", p);		
		}
		
		function onpageunload()
		{		
			if ( m_useds ) 
				closedataservices();
		}

		function init()
		{
			m_reload = false;
			m_w2x = document.getElementById("w2x");
			m_insertsdone = false;

			var bpict = m_pp.getAttribute("background");
			if ( bpict != null )
				document.body.background = bpict;

			m_cells = parselist(m_pp.getAttribute("cells"));
			
			m_inserterrors = 0;
			m_status_cellindex = 0;
			m_status_max = 20;
			
			m_openwindow = null;
			m_openwindowname = null;
			m_geturlwindow = null;
			m_quickpwindow = null;
			
			initalerts();
			initdps();	
			initss();	
		}
		
		function closedataservices()
		{
		}
		
		function closedataservices_result(id)
		{
		}
		
		function setupdataservices()
		{			
			m_dataID = -1;
			m_dataservices_state = 0;
			
			m_datacelltypes = new Array();
			m_datacells = new Array();
			m_datakeys = new Array();
			m_dataseqs = new Array();
			
			var pagedata = false;
			var di = 0;
			var keys = "";
			var properties = "";

			var onlyformulas = true;	

			var pdatakey = m_session + "/" + m_pID;
			
			m_datacells[di] = "page";
			m_datacelltypes[di] = "cellspace"
			m_datakeys[di] = pdatakey;
			m_dataseqs[di] = -1;
			di++;
			
			pdatakey = "cellspace:" + pdatakey;
			keys += (pdatakey + ",");
			properties += ",";

			m_datacells[di] = "page";
			m_datacelltypes[di] = "alert"
			m_datakeys[di] = m_luser;
			m_dataseqs[di] = -1;
			di++;
						
			pdatakey = "alert:" + m_datakeys[di-1];
			keys += (pdatakey + ",");
			properties += ",";
			
			onlyformulas = false;
			pagedata = true;
			
			for (count=0; count < m_cells.length; count++)
			{
				var cellname = m_cells[count];
				
				var cell = document.getElementById(cellname);
				if ( cell != null )
				{
					var cellt = cell.getAttribute("type");
					var datakey = cell.getAttribute("datakey");
					if ( datakey != null )
					{
						m_datacells[di] = cellname;
						m_datacelltypes[di] = cellt;
						m_datakeys[di] = datakey;
						m_dataseqs[di] = -1;
						var key = cellt + ":" + datakey;
						keys += (key + ",");
						
						var pdata = cell.getAttribute("properties");
						if ( pdata != null )
							properties += (pdata + ",");
						else
							properties += ",";
						
						di++;
						
						if ( cellt != "formula" )
							onlyformulas = false;
					}
				}
			} 
			
			m_datarequestms = 1000;
			if ( pagedata == true && di == 2 )
				m_datarequestms = 60000;
						
			if ( !onlyformulas && keys.length > 0 )
			{
				// remove trailing commas
				keys = keys.substring(0,keys.length-1);
				properties = properties.substring(0,properties.length-1);
								
				keys = escape(keys);
								 						
				var pID = m_pp.getAttribute("pID");
				var user = m_pp.getAttribute("user");
				var page = m_pp.getAttribute("page");
		 
				wdataservices.useService(m_pp.getAttribute("dataservicesurl"), "dataservices");			
				m_callID = wdataservices.dataservices.callService("opendatarequestwithpage", m_w2token, user, page, pID, keys, properties);
			}
		}
		
		function ondataservicesresult()
		{
			var datams;
			
			if( (event.result.error) && ( m_callID == event.result.id) )
			{
				var xfaultcode   = event.result.errorDetail.code;
				var xfaultstring = event.result.errorDetail.string;
				var xfaultsoap   = event.result.errorDetail.raw;
				
				//if ( xfaultstring != "Unknown server error" )
				//	'alert("This page is having trouble communicating with the server (" + xfaultcode + " | " + xfaultstring + ")");
			}
			else if((!event.result.error) && ( m_callID == event.result.id))
			{
				if ( m_dataservices_state == 0 )
				{
					m_dataservices_state = 1;
					m_dataID = event.result.value;
					datams = 1000;
				}
				else if ( m_dataservices_state == 1 )
				{
					// *** ***
					var ind = new Date();		
					// *** ***
								
					//alert(event.result.value);
					dataextract(event.result.value);
					datams = m_datarequestms;
					
					// *** ***
					var outd = new Date();		
					var diff = outd.getTime() - ind.getTime();                   
					//alert("dataextract in/out: " + diff + " ms");
					// *** ***
				}
				
				if ( m_reload )
				{
					reloadpage();
					return;
				}

				window.setTimeout("datarequest()", datams);	
			}
		}
		
		function setseqs(key, seq)
		{
			var i;
			for (i=0; i < m_datakeys.length; i++)
			{
				if ( m_datakeys[i] == key )
				{
					if ( m_dataseqs[i] != -2 )
						m_dataseqs[i] = seq;
					break;
				}
			}			
		}
		
		function dataextract(data)
		{					
			var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
			xmldoc.loadXML(data);
			var root = xmldoc.documentElement;
			if ( root == null )
				return;
				
			var i;
			for (i=0; i < m_datacells.length; i++)
			{
				var key = m_datakeys[i];
				var cell = m_datacells[i];
								
				var dnode = root.selectSingleNode("/data/item[@key = \"" + key + "\"]");
				if ( dnode != null )
				{
					var seq = dnode.attributes.getNamedItem("seq").value;
					setseqs(key, seq);
					
					if ( m_datacelltypes[i] == "cellspace" || m_datacelltypes[i] == "cellspaceref" )
					{
						processcellspacedata(i, dnode);
					}
					else if ( m_datacelltypes[i] == "alert" )
					{
						processalertdata(i, dnode);
					}
					else
					{
						var n;
						for (n=0; n < dnode.childNodes.length; n++)
						{
							var cnode = dnode.childNodes.item(n);
							
							if ( cnode.nodeName == "search" )
							{
								setseqs(key, -2);
								m_reload = true;
							}
							
							var datapoint = document.getElementById(cell + "_" + cnode.nodeName);	
							if ( datapoint != null )
							{
								var value = cnode.text;
								
								if ( cnode.nodeName == "thumb" )
								{
									if ( value.length > 0 )
									{										
										setseqs(key, -2);
																			
										if ( datapoint.firstChild != null )
										{
											datapoint.firstChild.src = value;
											
											var cellpoint = document.getElementById(cell);
											datapoint.href = cellpoint.getAttribute("href");
										}
										else
											datapoint.src = value;
									}
								}
								else
								{
									datapoint.innerHTML = value;
									
									var formats = datapoint.getAttribute("formats");
									if ( formats != null )
									{
										var xdoc = new ActiveXObject("Microsoft.XMLDOM");
										xdoc.loadXML(formats);
										var froot = xdoc.documentElement;
										var fnodes = froot.selectNodes("/formats/format");
										
										if ( fnodes != null )
										{
											var f;
											for (f=0; f < fnodes.length; f++)
											{
												var fnode = fnodes.item(f);
												var fop = fnode.selectSingleNode("op").text;
												var fval = fnode.selectSingleNode("value").text;
												
												var isnum = true;
												var ftypeN = fnode.selectSingleNode("type");
												if ( ftypeN != null )
													{
														if ( ftypeN.text == "number" )
															isnum = true;
														else if ( ftypeN.text == "string" )
															isnum = false;
													}
													
												if ( isnum )
													value = strip(value);
												
												var apply = applyformat(value, fval, fop, isnum)
												
												if ( apply )
												{
													var color = fnode.selectSingleNode("color");
													if ( color != null )
														datapoint.style.color = color.text;
													
													var img = fnode.selectSingleNode("image");
													if ( img != null )
													{
														var dataimg = document.getElementById(cell + "_" + cnode.nodeName + "_img");
														if ( dataimg != null )
															dataimg.src = img.text;
													}
												}
											} // for
										} // fnodes != null
									} // formats != null	
									
								}						
							} // datapoint != null		
						}
					}
				} // dnode != null
			} // for i			
		}
		
		function applyformat(value, fval, fop, isnum)
		{
			var apply = false;
			
			if ( fop == "LT" )
			{
				if ( isnum )
				{
					if ( value-0 < fval-0 )
						apply = true;
				}
				else
				{
					if ( value < fval )
						apply = true;
				}
			}
			else if ( fop == "GT" )
			{
				if ( isnum )
				{
					if ( value-0 > fval-0 )
						apply = true;
				}
				else
				{
					if ( value > fval )
						apply = true;
				}
			}
			else if ( fop == "=" )
			{
				if ( isnum )
				{
					if ( value-0 == fval-0 )
						apply = true;
				}
				else
				{
					if ( value+'' == fval+'' )
						apply = true;
				}
			}
			return apply;
		}
		
		function strip(n)
		{
			var result = "";
			var c;
			var i;
			for (i=0; i < n.length; i++)
			{
				c = n.charAt(i);
				if (( c >= '0' && c <= '9' ) || c == '.' || c == '+' || c == '-' )
					result += c;
			}					
			return result;
		}
		
		function datarequest()
		{
			if ( m_reload )
			{
				reloadpage();
				return;
			}
				
			var closeds = true;
			
			var seqs = "";
			for (i=0; i < m_dataseqs.length; i++)
			{
				if ( m_dataseqs[i] != -2 )
				{
					closeds = false;
					seqs += ( m_dataseqs[i] + "," );
				}
			}
			seqs = seqs.substring(0,seqs.length-1);
			

			if ( !closeds )
			{
				//alert("datarequest: " + m_dataID + "; seqs: " + seqs);
				m_callID = wdataservices.dataservices.callService("datarequest", m_w2token, m_dataID, seqs);
			}
			else
				closedataservices();
		}
		
		function resetform()
		{
			var mform = document.Form1;
			mform.__w2VIEW.value = "";
			mform.__w2PAGE.value = "";
			mform.__w2USER.value = "";
			mform.__w2SUBVIEW.value = "";
			mform.__w2OP.value = "";
			mform.__w2FILELIST.value = "";
			mform.__w2MARKED.value = "";		
		}
		
		function setform() 
		{
			var mform = document.Form1;
			mform.__w2VIEW.value = m_pp.getAttribute("view");
			mform.__w2PAGE.value = m_pp.getAttribute("page");
			mform.__w2USER.value = m_pp.getAttribute("user");
			mform.__w2SUBVIEW.value = m_pp.getAttribute("subview");
			mform.__w2OP.value = "";
			mform.__w2FILELIST.value = "";
			mform.__w2MARKED.value = makelist(m_marked);
			
			document.Form1.action = m_pp.getAttribute("trueurl");
		}
		
		function reloadpage()
		{
			m_reload = false;
			document.Form1.submit();
		}
				
		function pagenav(page)
		{
			setform();
					
			document.Form1.__w2PAGE.value = page;
			document.Form1.action = m_pp.getAttribute("server") + m_pp.getAttribute("user") + "/" + page
		}
		
		function pagenew()
		{	
			setform();	
			document.Form1.__w2OP.value = "newpage";
		}

		function viewchange()
		{
			setform();

			var mform = document.Form1;
			if ( mform.__w2VIEW.value == "edit" )
				mform.__w2VIEW.value = "viewx";
			else
				mform.__w2VIEW.value = "editx";
		}
		
		function deletepage()
		{
			var result = okdialog("Are you sure you want to delete this page?  This operation cannot be undone!");
				if ( result != "yes" )
					return;
			
			setform();
			document.Form1.__w2OP.value = "deletepage";
		}
		
		function openpackageedit(user, page, pkuid)
		{
			var theme = m_pp.getAttribute("theme");
			var url = "/w2pagev/page.pf?user=" + user +"&page=" + page + "&packageedit=" + pkuid + "&theme=" + theme;
			
			var features = "location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,titlebar=yes,toolbar=no";
			window.open(url, "_blank", features);
		}
		
		function openurl(url)
		{
		    document.location.href = url; 
		}
		
		function openurlonok(question, url)
		{
			var result = okdialog(question);
			if ( result != "yes" )
				return;
			
			openurl(url);
		}
		
		function openwebcelladd(celltype, p1, p2)
		{
			if ( m_openwindow != null )
				return;
				
			var theme = m_pp.getAttribute("theme");
			var page = m_pp.getAttribute("page");
			var user = m_pp.getAttribute("user");
			
			var url = "/w2pagev/qadd.pf?theme=" + theme + "&celltype=" + celltype + "&page=" + page + "&user=" + user;
			
			if ( p1 != null )
			{
				url += "&p1="
				url += p1;
			}
			if ( p2 != null )
			{
				url += "&p2="
				url += p2;
			}
					
			var features = "left=100,right=100,width=430,height=390,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";
			m_openwindow = window.open(url, "_blank", features);
			
			window.setTimeout("checkopenwindowcomplete()", 1000);
		}
		
		/*  window handling
		*/
		
        function ignoreevents(e)
        {
            return false;
        }


        function handlefocus()
        {
            if (m_openwindow)
            {
                if (!m_openwindow.closed)
                {
                    m_openwindow.focus();
                }
                else
                {
                    window.top.releaseEvents(Event.CLICK|Event.FOCUS);
                    window.top.onclick = "";
                }
            }
            return false;
        }	
        
        function openwindow(url, name, height, width, scrollbars)
        {
        	var wval = parseInt(10000000*Math.random());
            url = url + "&_w=" + wval;

            if ( m_isIE && m_bver < 7 )
            {
                height += 55;
                width += 8;
            }
            if ( m_isSF )
            {
                height += 8;
                width += 15;
            }
                
            var features = "left=100,right=100,width=" + width + ",height=" + height + ",location=no,menubar=no,resizable=no,scrollbars=" + scrollbars + ",status=no,titlebar=no,toolbar=no";

            window.open(url, name, features);  
        }
        
        function openmodalwindow(url, name, height, width)
        {        
            m_openwindowname = name;
            
            var wval = parseInt(10000000*Math.random());
            url = url + "&_w=" + wval;
            
            var oheight = height;
            var owidth = width;
            
            if ( m_isIE && m_bver < 7 )
            {
                height += 55;
                width += 8;
            }
            if ( m_isSF )
            {
               height += 8;
               width += 15;
            }

            if (false)      // *** showModalDialog only avail in IE, set to false to avoid now, set to window.showModalDialog to use modal dialog
            {                
                
                //alert("showModalDialog:  width/owidth: " + width + "/" + owidth + "; height/oheight: " + height + "/" + oheight + "(IE:" + m_isIE + ";FF:" + m_isFF + ";NS:" + m_isNS + ";OP:" + m_isOP + ";SF:" + m_isSF + "; vers:" + m_bver + ")");
 			    var features = "dialogHeight:" + height + "px;dialogWidth:" + width + "px;scroll:yes;status:no;unadorned:yes;help:no"
			    m_returnvalue = window.showModalDialog(url, "", features);
			    opencomplete();            
            }
            else
            {
			    var features = "dependent=yes,left=100,right=100,width=" + width + ",height=" + height + ",location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";

                if ( window.top.captureEvents )
                {
                    window.top.captureEvents(Event.CLICK | Event.FOCUS);
                    window.top.onclick = ignoreevents;
                    window.top.onfocus = handlefocus; 
                }
                else
                {
                    window.top.document.onclick = ignoreevents;
                    window.top.document.onfocus = handlefocus; 
                }
                
                //alert("window.open:  width/owidth: " + width + "/" + owidth + "; height/oheight: " + height + "/" + oheight + "(IE:" + m_isIE + ";FF:" + m_isFF + ";NS:" + m_isNS + ";OP:" + m_isOP + ";SF:" + m_isSF + "; vers:" + m_bver + ")");
                m_openwindow = window.open(url, "ModalChild", features);
                if ( m_openwindow != null )
                {
                    m_openwindow.focus();                   
			        checkopenwindowcomplete();
                }
            }
        }
        
		function checkopenwindowcomplete()
		{
			try
			{
				m_openwindow.m_ownerwindow = window;
				if ( m_openwindow.closed )
				    m_openwindow = null;
			}
			catch(e)
			{
				m_openwindow = null;
			}
			
			if ( m_openwindow != null )
			{
				window.setTimeout("checkopenwindowcomplete()", 500);
			}
			else
			{
				opencomplete();
			}
		}
		
		function opencomplete()
		{			        
		    //alert("return value: " + m_returnvalue + "; result: " + m_rresult);
		
			m_openwindow = null;

	        if ( m_returnvalue >= 0 )
	        {
	            if ( m_returnvalue == 2 )
	            {
			        var hurl = m_pp.getAttribute("homeurl");
			        location.href = hurl; 
	            }
	            else if ( m_returnvalue == 1 )
	            {
			        setform();
			        document.Form1.__w2OP.value = m_rresult;
			        document.Form1.submit();
	            }
	        }
		}
				
		function showcontrols()
		{
			setform();
			
			var mform = document.Form1;
			if ( mform.__w2SUBVIEW.value == "showcontrols" )
				mform.__w2SUBVIEW.value = "hidecontrols";
			else
				mform.__w2SUBVIEW.value = "showcontrols";
		}
		
		function signout()
		{
			setform();
			document.Form1.__w2OP.value = "signout";
		}
		
		function opsubmit(op)
		{
			setform();
			document.Form1.__w2OP.value = op;
		}
		
		function insertcells()
		{
			// op:   insertcells\cells\count\before
			
			var value;
			var op = "insertcells\\";

			var fitem = document.getElementById("celledit1_insert_cell");
			op += fitem.value;
			op += "\\";
			
			fitem = document.getElementById("celledit1_insert_num");
			value = fitem.options[fitem.selectedIndex].value;
			op += value;
			op += "\\";
			
			fitem = document.getElementById("celledit1_insert_where");
			value = fitem.options[fitem.selectedIndex].value;
			op += value;
			op += "\\";
					
			setform();
			document.Form1.__w2OP.value = op;
		}

		function deletecells()
		{
			// op:	deletecells\cells
			
			var result = okdialog("Are you sure you want to delete this webcell(s)?");
			if ( result != "yes" )
				return;

			var fitem = document.getElementById("celledit1_delete_cells");
			var value = fitem.value;
			var op = "deletecells\\" + value;
			
			setform();
			document.Form1.__w2OP.value = op;
		}
		
		function deletecell(cell)
		{
			// op:	deletecells\cells
			
			var result = okdialog("Are you sure you want to delete this webcell?");
			if ( result != "yes" )
				return;

			var fitem = document.getElementById("delete_cells");
			var op = "deletecells\\" + cell;
			
			setform();
			document.Form1.__w2OP.value = op;
		}
		
		function movecells()
		{
			// op:	movecells\cells\to
		
			var op = "movecells\\";
			
			var fitem = document.getElementById("celledit1_move_cells");
			op += fitem.value;
			op += "\\";
	
			fitem = document.getElementById("celledit1_to_cell");
			op += fitem.value;
	
			setform();
			document.Form1.__w2OP.value = op;	
		}
		
		function editcell(cell)
		{
			// op:	editcell\cell
		
			var op = "editcell\\";
			op += cell;
	
			setform();
			document.Form1.__w2OP.value = op;	
			document.Form1.submit(); 
		}
		
		function editcellx(layout,cell)
		{
			// op:	editcellx\layout\cell
		
			var op = "editcellx\\";
			op += layout;
			op += "\\";
			op += cell;
	
			setform();
			document.Form1.__w2OP.value = op;	
			document.Form1.submit(); 
		}
		
		function addcell2(cell, section)
		{
			// op:  addcell\cell\type
			
			var theme = m_pp.getAttribute("theme");
			var url = "/w2pagev/packagecelladd.pf?theme=" + theme + "&section=" + section;			
			var features = "dialogHeight:218px;dialogWidth:350px;scroll:no;status:no;unadorned:yes;help:no"
			var result = window.showModalDialog(url, "", features);

			if ( result.length > 0 )
			{
				var type = "";
				if ( section == "info" || section == "package" )
				{
					if ( result == "radio1" )
						type = "html";
					else if ( result == "radio2" )
						type = "xform";
                    else if ( result == "radio3" )
						type = "rss";						
                    else if ( result == "radio4" )
						type = "hyperlink";						
				}
				else if ( section == "main" )
				{
					if ( result == "radio1" )
						type = "html";
					else if ( result == "radio2" )
						type = "document";
                    else if ( result == "radio3" )
						type = "rss";						
                    else if ( result == "radio4" )
						type = "hyperlink";						
				}
								
				if ( type.length > 0 ) 
				{
					var op = "addcell2\\" + cell + "\\" + type;
			
					setform();
					document.Form1.__w2OP.value = op;	
					document.Form1.submit(); 
				}
			}	
		}	
		
		function delcell2(cell)
		{
			// op:  addcell\cell\type
			
			var result = okdialog("Are you sure you want to delete this webcell?");
			if ( result != "yes" )
				return;
			
			var op = "deletecells2\\" + cell;
	
			setform();
			document.Form1.__w2OP.value = op;	
			document.Form1.submit(); 
		}	
		
		function canceledit(cell)
		{
			setform();
			document.Form1.submit(); 
		}
		 
		function registerinvite()
		{		    
		    var s = document.getElementById("emailbox");
                        
            setform();	
		    document.Form1.__w2OP.value = "registerinvite/" + s.value;
		    document.Form1.submit();
		}
		
		function registerp(publisher, pkID, p)
		{				
		    try
		    {
		        var s = document.getElementById("registerpe");
                var sx = s.value;
                if ( sx.length == 0 )
                {
                    alert("You must provide an email address.");
                    return;
                }
                if ( echeck(sx) == false )
                {   
                    alert("Email address invalid.");
                    return;
                }
                
                //alert("registerp: " + e + " " + publisher + " " + pkID);
                
                s = document.getElementById("registerpp");
		        s.innerHTML = "Registering...";

		        document.getElementById("registerpe").style.visibility = "hidden";
		        document.getElementById("registerpb").style.visibility = "hidden";

                var token = escapeplus(m_w2token);
	            var p = "wtoken=" + token + "&publisher=" + publisher + "&pkID=" + pkID + "&email=" + sx + "&p=" + escapeplus(p);
	            callsoap("w2", "registerp", p);
		    }
		    catch(e)
		    {
                alert("Something went wrong.");
		    }	
		    
		    return true;	    
		}
		
		function registerp_resp(resp)
		{		    
		    var s = document.getElementById("registerpp");
		    
		    document.getElementById("registerpe").style.visibility = "hidden";
		    document.getElementById("registerpb").style.visibility = "hidden";
		    
		    if ( resp == "0" )
		    {
		        s.innerHTML ="You are now registered. Thank you.";
		    }
		    else if ( resp == "-2" )
		    {
		        s.innerHTML ="Sorry, cannot use this email.";
		    }
		    else
		    {
		        s.innerHTML ="Error (" + resp + ")";
		    }
		}
				
		function search1()
		{		    
		    var s = document.getElementById("searchbox");
            
            setform();	
		    document.Form1.__w2OP.value = "search1/" + s.value;
		    document.Form1.submit();
		}
		
		function search2()
		{
		    var s = document.getElementById("searchbox");

            setform();	
		    document.Form1.__w2OP.value = "search2/" + s.value;
		    document.Form1.submit();
		}
		
		function ccontrol(v)
		{
			setform();
			document.Form1.__w2OP.value = v;
		}
		
		function ccontrol2(v)
		{
			setform();
			document.Form1.__w2OP.value = v;
			document.Form1.submit(); 
		}
		
		function ccontrolpin(v)
		{
		    v = v + "\\" + m_topnlist[m_topnitem];
		    ccontrol(v);
		}
				
		function headercontrol(v)
		{
			setform();
			document.Form1.__w2OP.value = v;
		}
		
		function headercontrol_submit(item, cell)
		{
			var v = item + "\\" + cell;
			var fitem = document.getElementById(v);
			var value = fitem.options[fitem.selectedIndex].value;
				
			setform();
			document.Form1.__w2OP.value = v + "\\" + value;
			document.Form1.submit(); 
		}
		
		function pagecontrol_submit(item)
		{
			var page = m_pp.getAttribute("page");

			var fitem = document.getElementById(page + "\\" + item);
			var value = fitem.options[fitem.selectedIndex].value;
				
			setform();
			document.Form1.__w2OP.value = "pagesettings\\" + item + "\\" + value;
			document.Form1.submit(); 
		}
		
		function cellinfo_submit(item)
		{
			var fitem = document.getElementById("cellinfo");
			var value = fitem.checked;
			
			setform();
			document.Form1.__w2OP.value = "cellinfo\\" + value;
			document.Form1.submit(); 
		}
		
		function pageselect_submit()
		{
			var fitem = document.getElementById("pageselect");
			var value = fitem.options[fitem.selectedIndex].value;
			pagenav(value);
			document.Form1.submit(); 
		}
								
		function check_drop()
		{
			var w2drop = document.getElementById("w2drop");
			if ( !w2drop )
				return;										// check_drop will NOT be called again
			
			var dropcount = w2drop.dropcount();
					 
			if ( dropcount > 0 )
			{
				if ( !m_canpublish )
				{
					alert("You do not have permission to publish to this page.");
					w2drop.dropclear();
					return;
				}
				
				var page = m_pp.getAttribute("page");
				if ( page == "home" || page == "server" || page == "_admin" || page == "_share" )
				{
					alert("You cannot drop documents on this page.  Please select another page.");
					w2drop.dropclear();
					return;
				}

				var mform = document.Form1;
				
				var s = "";
				var item;	
				var drops = new Array();
				var dindex = 0;
				for (item=0; item < dropcount; item++)
				{
					var ok = true;
					s = w2drop.dropitem(item);
					
					var sstr = s.toLowerCase();
					if ( sstr.charAt(0) == '\\' && sstr.charAt(1) == '\\' )
					{
						ok = false;
						alert("The document " + s + " cannot be added to this page.  This version of the software does not support dropping of documents from file shares.  Please move the document to a local hard drive and try again.");
					}
					var i = sstr.lastIndexOf("\\");
					var j = sstr.lastIndexOf(".");
					if ( j < i )
					{
						ok = false;
						alert("The folder " + s + " cannot be added to this page.  This version of the software does not support dropping of folders.");
					}
					var tdb = "thumbs.db";
					i = sstr.lastIndexOf(tdb);
					if ( i != -1 )
					{
						if ( sstr.length == i + tdb.length )
							ok = false;
					}
					
					if ( ok )
						drops[dindex++] = s;
				}

				if ( drops.length == 0 )
				{
					w2drop.dropclear();
					window.setTimeout("check_drop()", 1000);
					return;
				}
					
				drops.sort();
					
				var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
				xmldoc.loadXML("<doclist></doclist>");
				var root = xmldoc.documentElement;
				
				for (item=0; item < drops.length; item++)
				{
					s = drops[item];
					
					var dnode = xmldoc.createElement("doc");
					
					var docn = xmldoc.createElement("document");
					docn.text = drops[item];
					dnode.appendChild(docn);
					
					var download = "true";
					var upload = "true";			
					if ( isimage(s) )
					{
						download = "false";
						upload = "false";
					}
					
					var downloadn = xmldoc.createElement("download");
					downloadn.text = download;
					dnode.appendChild(downloadn);
					
					var uploadn = xmldoc.createElement("upload");
					uploadn.text = upload;
					dnode.appendChild(uploadn);

					var urlpath = m_pp.getAttribute("urlpath");
					var i1 = s.lastIndexOf("\\");		// escaped "\"
					s = s.substr(i1+1);
					var serverurl = urlpath + s;
					
					var user = m_pp.getAttribute("user");
					var changed_byn = xmldoc.createElement("changed_by");
					changed_byn.text = user;
					dnode.appendChild(changed_byn);
					
					var serverurln = xmldoc.createElement("serverurl");
					serverurln.text = serverurl;
					dnode.appendChild(serverurln);
					
					var localn = xmldoc.createElement("local");
					localn.text = "true";
					dnode.appendChild(localn);
					
					var pIDn = xmldoc.createElement("pID");
					pIDn.text = m_pID;
					dnode.appendChild(pIDn);
					
					var dID = m_w2x.insertdocument(dnode.xml);
					if ( dID == "" )
						alert("error in insert: " + m_w2x.getlasterror());
					
					if ( dID != "" )
					{
						var didn = xmldoc.createElement("dID");
						didn.text = dID;
						dnode.appendChild(didn);
										
						root.appendChild(dnode);
					}
				}
				
				w2drop.dropclear();
				
				setform();
				mform.__w2FILELIST.value = xmldoc.xml;				
				mform.submit();			
			}
			window.setTimeout("check_drop()", 1000);
		}		
		
		function status_update()
		{			
			// *** ***
			var ind = new Date(); 
			var t_docs = 0;
			var t_docs_calls = 0;
			var t_doci = 0;
			var t_doci_calls = 0;
			// *** ***
			                       
			var in_inserts = false;
			                       			
			var sharedroot = m_pp.getAttribute("sharedroot");
			var p_idle = sharedroot + "dok.gif";
			var p_ul = sharedroot + "du-a.gif";
			var p_dl = sharedroot + "dd-a.gif";
			var p_svr = sharedroot + "dsvr.gif";
			var p_dnok = sharedroot + "dnok.gif";
			var p_dpau = sharedroot + "dpau.gif";
			var p_ddpau = sharedroot + "ddpau.gif";
			var p_dupau = sharedroot + "dupau.gif";
			var p_empty = sharedroot + "empty.gif";
						
			// only process status updates on view pages
			var vt = m_pp.getAttribute("view");
			if ( vt == "view" )
			{
				var lindex;
				var uindex;
				
				if ( m_insertsdone == false )
				{
					in_inserts = true;
					
					lindex = 0;
					uindex = m_cells.length;
				}
				else
				{
					lindex = m_status_cellindex;
					uindex = lindex + m_status_max;
					m_status_cellindex = m_status_cellindex + m_status_max;
					
					if ( uindex > m_cells.length )
					{
						uindex = m_cells.length;
						m_status_cellindex = 0;
					}
				}
				//alert("range: " + lindex + " to " + uindex + " of max: " + m_cells.length);
				
				for (count=lindex; count < uindex; count++)
				{
					var cellname = m_cells[count];
					
					var cell = document.getElementById(cellname);				
					if ( cell != null )
					{
						var cellt = cell.getAttribute("type");
						if ( cellt != null && cellt == "document" )
						{
							var cell_file = cell.getAttribute("file");
							var cell_dID = cell.getAttribute("dID");
							
							var cell_download = cell.getAttribute("download");
							if ( !m_allowdownloads )
								cell_download = "false";
							
							var cell_upload = cell.getAttribute("upload");
							if ( !m_allowuploads )
								cell_upload = "false";

							var cell_docadded = cell.getAttribute("docadded");

							var doinsert = false;
							if ( cell_download == "true" || cell_upload == "true" || cell_docadded == "true" )
								doinsert = true; 
							
							if ( !m_insertsdone && doinsert )
							{																
								// call insertdocument
								
								var cell_last_changed = cell.getAttribute("last_changed_document");
								var cell_changed_by = cell.getAttribute("changed_by");
								var cell_last_viewed = cell.getAttribute("last_viewed");
								var cell_revision = cell.getAttribute("revision");

								var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
								xmldoc.loadXML("<doc></doc>");
								var root = xmldoc.documentElement;
								
								var docn = xmldoc.createElement("document");
								docn.text = cell_file;
								root.appendChild(docn);
								var downloadn = xmldoc.createElement("download");
								downloadn.text = cell_download;
								root.appendChild(downloadn);
								var uploadn = xmldoc.createElement("upload");
								uploadn.text = cell_upload;
								root.appendChild(uploadn);
								
								if ( cell_dID != null )
								{
									var didn = xmldoc.createElement("dID");
									didn.text = cell_dID;
									root.appendChild(didn);
								}
								
								if ( cell_last_changed != null )
								{
									var last_changedn = xmldoc.createElement("last_changed_document");
									last_changedn.setAttribute("type","dateTime-UTC");
									last_changedn.text = cell_last_changed;
									root.appendChild(last_changedn);
								}
								
								if ( cell_changed_by != null )
								{
									var changed_byn = xmldoc.createElement("changed_by");
									changed_byn.text = cell_changed_by;
									root.appendChild(changed_byn);
								}
								else
								{
									var user = m_pp.getAttribute("user");
									var changed_byn = xmldoc.createElement("changed_by");
									changed_byn.text = user;
									root.appendChild(changed_byn);
								}
								
								if ( cell_last_viewed != null )
								{
									var last_viewedn = xmldoc.createElement("last_viewed");
									last_viewedn.text = cell_last_viewed;
									root.appendChild(last_viewedn);
								}
								
								if ( cell_revision != null )
								{
									var revisionn = xmldoc.createElement("revision");
									revisionn.text = cell_revision;
									root.appendChild(revisionn);
								}
								
								if ( cell_docadded == "true" )
								{
									var localn = xmldoc.createElement("local");
									localn.text = cell_docadded;
									root.appendChild(localn);
								}
								
								var urlpath = m_pp.getAttribute("urlpath");
								var filename = cell_file;
								var i1 = filename.lastIndexOf("\\");		// escaped "\"
								filename = filename.substr(i1+1);
								var serverurl = urlpath + filename;
								
								var serverurln = xmldoc.createElement("serverurl");
								serverurln.text = serverurl;
								root.appendChild(serverurln);
								
								var pIDn = xmldoc.createElement("pID");
								pIDn.text = m_pID;
								root.appendChild(pIDn);
								
								// *** ***
								var inid = new Date();		
								// *** ***
								
								var dID = m_w2x.insertdocument(xmldoc.xml);
								if ( dID == "" )
								{
									if ( m_inserterrors == 0 )
									{
										var serr = "This page is having trouble communicating with the Personafile Desktop. Closing the browser and reloading this page may fix the problem. (" + m_w2x.getlasterror() + ")";
										alert(serr);
									}
									m_inserterrors++;
								}
									
								// *** ***
								var outid = new Date();		
								t_doci = t_doci + (outid.getTime() - inid.getTime());
								++t_doci_calls;
								// *** ***
				
							} // !m_insertsdone
							
							if ( cell_file != null )
							{
								// *** ***
								var inds = new Date();		
								// *** ***
								
								var result = m_w2x.getdocumentstatus(cell_dID);
																
								// *** ***
								var outds = new Date();		
								t_docs = t_docs + (outds.getTime() - inds.getTime());
								++t_docs_calls;
								// *** ***
								
								if ( result != "" )
								{
									var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
									xmldoc.loadXML(result);
									var statesN = xmldoc.getElementsByTagName("state");
									var state = statesN.item(0).text;
																		
									var status_status = document.getElementById(cellname + "_status_status");
									var status_statusimage = document.getElementById(cellname + "_status_statusimage");
									
									if ( status_status != null )
									{
										var transferonly = status_status.getAttribute("transferonly");
										if ( transferonly == "true" )
										{
											if ( state != "Downloading" && state != "Uploading" && state != "Waiting to Upload" && state != "Waiting to Download" && state != "Paused" )
												state = "";
										}
											
										var progressN = xmldoc.getElementsByTagName("progress");
										var bytesnowN = progressN.item(0).getElementsByTagName("bytesnow");
										var bytestotalN = progressN.item(0).getElementsByTagName("totalbytes");								
									
										var bytesnow = bytesnowN.item(0).text;
										var bytestotal = bytestotalN.item(0).text;
										
										if ( state == "Uploading" )
										{
											if ( status_statusimage.src != p_ul )
												status_statusimage.src = p_ul;

											var p1 = Math.round((bytesnow * 100) / bytestotal);
											var s = state + " (" + p1 + "%)";
											status_status.innerText = s;
										}
										else if ( state == "Downloading" )
										{
											if ( status_statusimage.src != p_dl )
												status_statusimage.src = p_dl;
												
											var p1 = Math.round((bytesnow * 100) / bytestotal);
											var s = state + " (" + p1 + "%)";
											status_status.innerText = s;
										}
										else if ( state == "Up To Date" )
										{
											if ( cell_download == "false" )
											{
												status_status.innerText = "Document on Server";
												status_statusimage.src = p_svr;												
											}
											else
											{
												status_status.innerText = state;
												status_statusimage.src = p_idle;
												
												cell.setAttribute("doclocal", "true");
											}
										}
										else if ( state == "Paused" )
										{
											status_status.innerText = state;
											status_statusimage.src = p_dpau;
										}
										else if ( state == "Waiting to Upload" )
										{
											status_status.innerText = state;
											status_statusimage.src = p_dupau;
										}
										else if ( state == "Waiting to Download" )
										{
											status_status.innerText = state;
											status_statusimage.src = p_ddpau;
										}
										else
										{
											if ( transferonly == "true" )
											{
												status_status.innerText = "";
												status_statusimage.src = p_empty;
											}
											else
											{
												status_status.innerText = state;
												status_statusimage.src = p_dnok;
											}
										}
										
									} // status_status != null			
								}						
							}
						} // cellt == "document"
						
					} // cell != null
					
				} // for
				
				m_insertsdone = true;			// signal that inserts are now done for this page
												
				window.setTimeout("status_update()", 2000);
				
				// *** ***
				// time stats
				var outd = new Date();     
				var diff = outd.getTime() - ind.getTime();                   
				//alert("in/out: " + diff + " ms" + "  docstatus: calls: " + t_docs_calls + " time: " + t_docs + " ====  docinserts calls: " + t_doci_calls + " time: " + t_doci);
				// *** ***
			}			
		}
		
		function opendoc(cellname)
		{
			var cell = document.getElementById(cellname);
			var doclocal = cell.getAttribute("doclocal");
			if ( doclocal == "true" )
			{
				var dID = cell.getAttribute("dID");
				var fref = m_w2x.getlocaldocumentpath(dID);
				if ( fref != "" )
					{
						var allowopen = true;
						
						fref = fref.toLowerCase();
						var i = fref.lastIndexOf(".exe");
						if ( i != -1 && ( i + 4 == fref.length ) )
						{
							var result = okdialog("This document is an application or executable.  Are you sure you wish to open it?");
							if ( result != "yes" )
								allowopen = false;
						}
						
						if ( allowopen )
							m_w2x.opendoc(fref);
					}
			}
			else
			{
				var href =  cell.getAttribute("href");
				window.open(href, "_blank");
			}
		}
		
		function pagethumb(cellname, op)
		{
			var pagenum;
			var properties = document.getElementById(cellname);
			var frame1 = new Number(properties.getAttribute("frame1"));
			var framecount = new Number(properties.getAttribute("framecount"));
			var pagecount = new Number(properties.getAttribute("pagecount"));
			var frameurl = properties.getAttribute("frameurl");
			var frameref = properties.getAttribute("frameref");
					
			if ( op == "next" )
				frame1 += 1;
			else
				frame1 -= 1;
				
			if ( frame1 + framecount - 1 > pagecount )
				return;
			if ( frame1 == 0 )
				return;
				
			properties.setAttribute("frame1", frame1);
		
			for (frame=1; frame <= framecount; frame++)
			{	
				var pgnum = document.getElementById(cellname + "_framenum_" + frame);
				var pgimg = document.getElementById(cellname + "_frameimg_" + frame);
				
				pagenum = frame1 + frame - 1;
				
				pgnum.innerText = pagenum
				pgimg.firstChild.src = frameurl + pagenum + ".jpg";
				pgimg.href = frameref + pagenum + ".jpg";
			}
		}
		
		function gotoinstall()
		{	
			var rurl = m_pp.getAttribute("trueurl");
			
			var url = "/w2pagev/installdm.pf?notinstalled=true&url=" + rurl;
			var w = window.open(url, "_self");
		}
		
		function gotoframeworkinstall()
		{				
			var url = "/w2pagev/installdn.pf";
			var w = window.open(url, "_self");
		}
		
		function gotoMDACinstall()
		{				
			var url = "/w2pagev/installMDAC.pf";
			var w = window.open(url, "_self");
		}

		function gotoinstallerr()
		{				
			var url = "/w2pagev/installerr.pf";
			var w = window.open(url, "_self");
		}

		function opendocumentsettingswindow()
		{
			var theme = m_pp.getAttribute("theme");
			var canpublish = m_pp.getAttribute("canpublish");
			
			var url = "/w2pagev/dset.pf?theme=" + theme + "&canpublish=" + canpublish;			
			var features = "dialogHeight:360px;dialogWidth:410px;scroll:no;status:no;unadorned:yes;help:no"
			var result = window.showModalDialog(url, "", features);
			documentsettings_submit(result); 
		}
		
		function documentsettings_submit(result)
		{		
			setform();
			document.Form1.__w2OP.value = "pagesettings\\documentsettings\\" + result
			document.Form1.submit(); 
		}
		
		function openstatuswindow(theme, tz, page, user, cell, id, celltype, last_viewed, last_viewed_by, hits, last_changed, changed_by, created, created_by, doclast_changed, docchanged_by, revision)
		{				
			var url = "/w2pagev/status.pf?theme=" + theme + "&tz=" + tz + "&page=" + page + "&user=" + user + "&cell=" + cell + "&id=" + id + "&celltype=" + celltype;
			url += ("&last_viewed=" + last_viewed + "&last_viewed_by=" + last_viewed_by + "&hits=" + hits);
			url += ("&last_changed=" + last_changed + "&changed_by=" + changed_by);
			url += ("&created=" + created + "&created_by=" + created_by);
			url += ("&doclast_changed=" + doclast_changed + "&docchanged_by=" + docchanged_by + "&revision=" + revision);
						
			var features = "left=100,right=100,width=405,height=400,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,titlebar=no,toolbar=no";
			window.open(url, "_blank", features);
		}
		 
		function openuserpublishwindow(theme)
		{
			var url = "/w2pagev/userpublish.pf?theme=" + theme;
			var features = "left=100,right=100,width=570,height=340,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";
			window.open(url, "_blank", features);
		}
		
		function scriptfunction(action, params, resultaction, resultobject)
		{
			var result;
			var plist = parselist(params);
			
			if ( action == "createpublishid" )
			{
				var theme = m_pp.getAttribute("theme");
				
				var user = plist[0];
				var page = plist[1];
				var dID = plist[2];
				var fnum = plist[3];
				openuserpublishwindow2(theme, user, page, dID, fnum);
				
				return;
			}
			if ( action == "selectsource" )
			{
				result = openxpubwindow(action, plist[0]);					
			}
			if ( action == "selecttarget" )
			{
				result = openxpubwindow(action, plist[0]);
			}
			
			if ( resultaction == "placetext" )
			{
				if ( result == null ) 
					result = "";
				var elem = document.getElementById(resultobject);
				elem.value = result;
			}
						
			return result;
		}
		
		function closewindow(returnvalue)
		{
			window.returnValue = returnvalue;
			window.close();
		}
		
		function openxpubwindow(action, user)
		{
			var select;
			if ( action == "selectsource" )
				select = "pkselectonepromoinfo";
			else
				select = "pkselectonecontent";
			
			var url = "/w2pagev/page.pf?user=" + user + "&page=_xpub2&select=" + select + "&viewreqs=nocontrols,notitling";
			var features = "dialogHeight:900px;dialogWidth:900px;location=no;menubar=no;resizable=yes;scrollbars=yes;status=no;titlebar=no;toolbar=no";
			
			var result = window.showModalDialog(url, "", features);
			return result;
		}
		
		function openuserpublishwindow2(theme, user, page, dID, fnum)
		{
			var url = "/w2pagev/userpublish2.pf?theme=" + theme + "&dID=" + dID + "&page=" + page + "&user=" + user + "&fnum=" + fnum;
			var features = "left=100,right=100,width=470,height=290,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";
			window.open(url, "_blank", features);
		}	
		 		
		function opensharewindow(refid, theme, page, user, cell, images)
		{
			var from = m_pp.getAttribute("w2user");

			var url = "/w2pagev/share.pf?from=" + from + "&theme=" + theme + "&page=" + page + "&user=" + user + "&cell=" + cell + "&refid=" + refid;
			if ( images )
				url += "&viewreqs=images";
						
			var features = "left=100,right=100,width=390,height=350,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";
			window.open(url, "_blank", features);
		}
	
		function openmreceiptwindow(theme, tzoffset, user, publisher)
		{
			var url = "/w2pagev/mreceipt.pf?theme=" + theme + "&publisher=" + publisher + "&user=" + user + "&tzoffset=" + tzoffset;
			orw(url);			
		}
		
		function openmreceiptwindow2(theme, tzoffset, user, publisher, pkID)
		{
			var url = "/w2pagev/mreceipt.pf?theme=" + theme + "&publisher=" + publisher + "&user=" + user + "&tzoffset=" + tzoffset + "&pkID1=" + pkID + "&preset=true";
			orw(url);			
		}
		
		function orw(url)
		{
			if ( m_openwindow != null )
			{			
			    m_openwindow.focus();
				return;
			}
						
			var features = "left=100,right=100,width=675,height=535,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";
			m_openwindow = window.open(url, "_blank", features);
		    if ( m_openwindow != null )
			    checkopenwindowcomplete();
		}
	
		function opennotifywindow(theme, page, user, cell, images)
		{
			var from = m_pp.getAttribute("w2user");

			var url = "/w2pagev/notify.pf?from=" + from + "&theme=" + theme + "&page=" + page + "&user=" + user + "&cell=" + cell;
			if ( images )
				url += "&viewreqs=images";
						
			var features = "left=100,right=100,width=390,height=389,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";
			window.open(url, "_blank", features);
		}
		
		function opencellopwindow(theme, page, user, cell)
		{
			if ( m_openwindow != null )
				return;
					
			var from = m_pp.getAttribute("w2user");

			var url = "/w2pagev/cellop.pf?from=" + from + "&theme=" + theme + "&page=" + page + "&user=" + user + "&cell=" + cell;
						
			var features = "left=100,right=100,width=330,height=205,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";
			m_openwindow = window.open(url, "_blank", features);	
					
			window.setTimeout("checkopenwindowcomplete()", 1000);			
		}
		
		function openpageopwindow(theme, page, user)
		{
			if ( m_openwindow != null )
				return;
			
			var marked = getmarkedlist(); 
			
			var from = m_pp.getAttribute("w2user");

			var url = "/w2pagev/pageop.pf?from=" + from + "&theme=" + theme + "&page=" + page + "&user=" + user + "&cells=" + marked;
						
			var features = "left=100,right=100,width=330,height=225,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";
			m_openwindow = window.open(url, "_blank", features);	
					
			window.setTimeout("checkopenwindowcomplete()", 1000);			
		}

		function opencatswindow(theme, page, user, cell, readonly)
		{
			var from = m_pp.getAttribute("w2user");

			var url = "/w2pagev/cats.pf?from=" + from + "&theme=" + theme + "&page=" + page + "&user=" + user + "&cell=" + cell + "&readonly=" + readonly;
						
			var features = "left=100,right=100,width=370,height=450,location=no,menubar=no,resizable=no,scrollbars=yes,status=no,titlebar=no,toolbar=no";
			window.open(url, "_blank", features);
		}
		
		function openeditpwindow(theme, pkgID, publisher, transactionID, ttimestamp, transactionreceipt)
		{
			var url = "/w2pagev/editp.pf?theme=" + theme + "&pkgID=" + pkgID + "&publisher=" + publisher + "&transactionID=" + transactionID + "&ttimestamp=" + ttimestamp + "&receipt=" + transactionreceipt;
            openmodalwindow(url, "editp", 157, 320);
		}

		function openedittwindow(theme, publisher, transactionID, ttimestamp, transactionreceipt)
		{
			var pkgID = m_pp.getAttribute("ppkID");
			var url = "/w2pagev/editt.pf?theme=" + theme + "&pkgID=" + pkgID + "&publisher=" + publisher + "&transactionID=" + transactionID + "&ttimestamp=" + ttimestamp + "&receipt=" + transactionreceipt;
            openmodalwindow(url, "editt", 300, 423);
		}

		function opencategorizewindow(theme, pkgID, publisher, transactionID, ttimestamp, transactionreceipt)
		{
			var url = "/w2pagev/categorize.pf?theme=" + theme + "&pkgID=" + pkgID + "&publisher=" + publisher + "&transactionID=" + transactionID + "&ttimestamp=" + ttimestamp + "&receipt=" + transactionreceipt;
            openmodalwindow(url, "cat", 405, 680);
		}
		
		function openproductadd()
		{
			var url = "/w2pagev/addproductreq.pf?"
            openmodalwindow(url, "padd", 405, 680);
		}
		
		function openupcadd(pkID)
		{
			var url = "/w2pagev/upc.pf?pkID=" + pkID;
            openmodalwindow(url, "upc", 290, 385);
		}
		
		function openilinkstats(iidx, uid, tz, owner)
		{
			var url = "/w2pagev/ilinkstats.pf?iidx=" + iidx + "&tz=" + tz;
			
			var width = 518;
            var height = 560;
            var scrollbars = "yes";
            
            if ( owner == "false" )
            {
                height = 380; 
            }
            
            openwindow(url, "ils" + uid, height, width, scrollbars);
		}
		
		function openinvite()
		{
			var url = "/w2pagev/invite.pf?"
            openmodalwindow(url, "inv", 405, 488);
		}
		
		function quickpublish()
		{
			var url = "/w2pagev/quickp.pf"
			
			var width = 680;
            var height = 625;

            if ( m_isIE && m_bver < 7 )
            {
                height += 55;
                width += 8;
            }
            if ( m_isSF )
            {
               height += 8;
               width += 15;
            }    
            
            var features = "left=100,right=100,width=" + width + ",height=" + height + ",location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";

            m_quickpwindow = window.open(url, "quickp", features);
		}
		
		function opengeturl(theme, pkgID, publisher, transactionID, puser, ppage, mlcs)
		{  
			var url = "/w2pagev/geturl.pf?theme=" + theme + "&pkID=" + pkgID + "&publisher=" + publisher + "&transactionID=" + transactionID + "&puser=" + puser + "&ppage=" + ppage + "&mlcs=" + mlcs;
            
            var width = 863;
            var height = 608;
            
            if ( m_isIE && m_bver < 7 )
            {
                height += 55;
                width += 8;
            }
            if ( m_isSF )
            {
               height += 8;
               width += 15;
            }            
                        
            var features = "left=100,right=100,width=" + width + ",height=" + height + ",location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";

            m_geturlwindow = window.open(url, "geturl", features);
		}
		
		function openh(url)
		{
            var features = "";
		    window.open(url, "help", features);
		}
				
		function opentellmewindow(theme, pkgcID, publisher)
		{
			var url = "/w2pagev/tellme.pf?theme=" + theme + "&pkgcID=" + pkgcID + "&publisher=" + publisher;
            openmodalwindow(url, "tellme", 493, 570);
		}
			
		function opentelluswindow(theme, pkguID, publisher)
		{
			var url = "/w2pagev/tellus.pf?theme=" + theme + "&pkguID=" + pkguID + "&publisher=" + publisher;
            openmodalwindow(url, "tellus", 375, 485);
		}
		
		function openc1addwindow(theme, pkID, publisher, section, cID)
		{
			var url = "/w2pagev/c1add.pf?theme=" + theme + "&pkID=" + pkID + "&publisher=" + publisher + "&section=" + section + "&cID=" + cID;
            openmodalwindow(url, "c1", 390, 477);
		}

		function openc2addwindow(theme, pkID, publisher, section, sectiontype, cID, itemid, parentid)
		{
			var url = "/w2pagev/c2add.pf?theme=" + theme + "&pkID=" + pkID + "&publisher=" + publisher + "&section=" + section + "&sectiontype=" + sectiontype + "&cID=" + cID + "&itemid=" + itemid + "&parentid=" + parentid;
            openmodalwindow(url, "c2", 390, 477);
		}

		function opencnaddwindow(theme, pkID, publisher, section, cID, itemid)
		{
			var url = "/w2pagev/cnadd.pf?theme=" + theme + "&pkID=" + pkID + "&publisher=" + publisher + "&section=" + section + "&cID=" + cID + "&itemid=" + itemid;
            openmodalwindow(url, "cn", 422, 613);
		}
		
		function opencnoteswindow(theme, puser, ppage, pID, pkID, publisher, transactionID, ttimestamp, treceipt, section, cID, itemid)
		{
			var url = "/w2pagev/cnoteadd.pf?theme=" + theme + "&puser=" + puser + "&ppage=" + ppage + "&pID=" + pID + "&pkID=" + pkID + "&publisher=" + publisher + "&transactionID=" + transactionID + "&ttimestamp=" + ttimestamp + "&receipt=" + treceipt + "&section=" + section + "&cID=" + cID + "&itemid=" + itemid;
            openmodalwindow(url, "cn", 535, 602);
		}
		
		function opencndeletewindow(theme, pkID, publisher, transactionID, ttimestamp, treceipt, section, cID, itemid)
		{
			var url = "/w2pagev/deletecn.pf?theme=" + theme + "&pkID=" + pkID + "&publisher=" + publisher + "&transactionID=" + transactionID + "&ttimestamp=" + ttimestamp + "&receipt=" + treceipt + "&section=" + section + "&cID=" + cID + "&itemid=" + itemid;
            openmodalwindow(url, "cndel", 115, 324);
		}
		
		function opencnflagwindow(theme, pkID, publisher, transactionID, ttimestamp, treceipt, section, cID, itemid)
		{
			var url = "/w2pagev/flag.pf?theme=" + theme + "&pkID=" + pkID + "&publisher=" + publisher + "&transactionID=" + transactionID + "&ttimestamp=" + ttimestamp + "&receipt=" + treceipt + "&section=" + section + "&cID=" + cID + "&itemid=" + itemid;
            openmodalwindow(url, "cnflag", 337, 485);
		}

		function opensharetransferwindow(user, cellid, itemid, publisher, receipt)
		{					
			if ( itemid == null )
				itemid = "";
				
			var theme = m_pp.getAttribute("theme");
			
			var url = "/w2pagev/shareout.pf?theme=" + theme + "&user=" + user + "&cID=" + cellid + "&itemid=" + itemid + "&publisher=" + publisher + "&receipt=" + receipt
			openmodalwindow(url, "sharet", 545, 504);
		}		
			
		function openmovemwindow(theme, tz, refpage, refuser, refcell, rooturl, page, user, cell, document, sizestr)
		{
			if ( m_openwindow != null )
				return;
		
			var from = m_pp.getAttribute("w2user");

			var url = "/w2pagev/move.pf?from=" + from + "&theme=" + theme + "&tz=" + tz + "&refuser=" + refuser + "&refpage=" + refpage + "&refcell=" + refcell + "&rooturl=" + rooturl + "&user=" + user + "&page=" + page + "&cell=" + cell + "&document=" + document + "&sizestr=" + sizestr;
						
			var features = "left=100,right=100,width=365,height=180,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";
			m_openwindow = window.open(url, "_blank", features);

			checkopenwindowcomplete();
		}
		
		function quickpublish1(user, direct)
		{		
			var url = "/w2pagev/page.pf?user=" + user + "&page=" + "home" + "&direct=" + direct;
			location.href = url; 
		}
		
		function gohome(user, direct)
		{
			var url = "/w2pagev/page.pf?user=" + user + "&page=" + "home" + "&direct=" + direct;
			location.href = url; 
		}
		
		function goprofile(user, direct)
		{
			var url = "/w2pagev/page.pf?user=" + user + "&page=_profile" + "&direct=" + direct;
			location.href = url; 
		}
				
		function getmarkedlist()
		{
			var marr = new Array();
			for (i=0; i < m_marked.length; i++)
				if ( m_marked[i] != "" )
					marr[marr.length] = m_marked[i];
			
			m_marked = marr;
			
			return makelist(marr);
		}
		
		function markcell(cell, id)
		{
			var sharedroot = m_pp.getAttribute("sharedroot");
			var mc = document.getElementById(id);

			var index = onlist(cell, m_marked);
			if ( index == -1 )
			{
				m_marked[m_marked.length] = cell;
				mc.src = sharedroot + "mark2.gif";
			}
			else
			{
				m_marked[index] = "";
				mc.src = sharedroot + "mark1.gif";
			}
		} 
		
		/*  sections
		*/
		
		var m_s;
		var m_ss;
		var m_sn;
		var m_sc;
		var m_sreq;
		
		function initss()
		{
		    var s;
		    
		    s = m_pp.getAttribute("s");
		    m_s = parselist(s);
		    s = m_pp.getAttribute("ss");
		    m_ss = parselist(s);
		    s = m_pp.getAttribute("sn");
		    m_sn = parselist(s);

		    m_sc = new Array();
		    for (var i=0; i < m_ss.length; i++)
		    {
		        var e = document.getElementById("sx_" + m_s[i] + "_0");
                if ( e != null )
                    m_sc[i] = e.innerHTML;
                else
		            m_sc[i] = null;
		    }
		}
		
		function ss(sec, add)
		{
		    var si = onlist(sec, m_s);
		    var sel = new Number(m_ss[si]);
		    var snew = new Number(m_sn[si]);
		    var son = new Array();
		    var soff = new Array();
		    
		    if ( sel == 0 )
		    {
		        sel = 1;
		        if ( add )
		            sel = 2;
		            
		        sss(sec, sel, snew);
		        m_ss[si] = sel;
		        son[son.length] = sec;
		        
		        if ( !add )
		        {
		            for (var s=0; s < m_ss.length; s++)
		            {
		                if ( m_s[s] != sec )
		                {
		                    if ( m_ss[s] == 1 )
		                    {
		                        m_ss[s] = 0;
		                        sss(m_s[s], 0, m_sn[s]);
		                        soff[soff.length] = m_s[s];
		                    }
		                }
		            }
		        }		        
		    } 
		    else if ( add )
		    {
		        if ( sel == 1 )
		            sel = 2;
		        else
		            sel = 0;
		            
		        sss(sec, sel, snew);
		        m_ss[si] = sel;		
		        
		        if ( sel == 0 )
		            soff[soff.length] = sec;
		        else
		            son[son.length] = sec;
		    }		
		    
		    for (var i=0; i < son.length; i++)
		        ssc(son[i], true);
		    for (var i=0; i < soff.length; i++)
		        ssc(soff[i], false);
		}
		
		function ssc(sec, show)
		{		
		    var e;
		    
		    var si = onlist(sec, m_s);

		    if ( show )
		    {
		        e = document.getElementById("sx_" + sec + "_0");		        
		        if ( e == null )
		        {
		            var h;
		            var hs = true;
		            		            
		            if ( m_sc[si] != null )
		            {
		                h = m_sc[si];
		            }
		            else
		            {		                
		                h = "<img src=\"/_shared/wait.gif\">";
		                hs = false;
		                m_sreq = sec;
				        
				        var p = m_pp.getAttribute("homeurl") + '/' + m_pp.getAttribute("user") + '/' + m_pp.getAttribute("page") + "?sx=" + sec;
				        gethtml("sectionget", p);
		            }
		            
		            e = document.getElementById("sx").insertRow(1);
		            e.id = "sx_" + sec + "_0" + "_r";
		            var x = e.insertCell(0);
		            x.id = "sx_" + sec + "_0";
		            x.innerHTML = h;
		            		            
		            if ( hs )
		                sstyle(x);
		        }
		    }
		    else
		    {
		        e = document.getElementById("sx_" + sec + "_0");
		        if ( e != null )
		        {
		            var i = e.parentNode.rowIndex;
		            document.getElementById("sx").deleteRow(i);
		        }
		    }
		    
		}
		
		function sstyle(s)
		{
	        s.style.backgroundColor = '#CBD3E0';
	        s.style.borderColor = 'White';
            s.style.borderWidth = '1px';
            s.style.borderStyle = 'solid';
		}
		
		function sectiongetresp(html)
		{		    		 		
		    if ( m_sreq != null )
		    {
		        var si = onlist(m_sreq, m_s);
		        
		        var sx = "sx_" + m_sreq + "_0";
		        e = document.getElementById(sx);
		        sstyle(e);

                var i = html.indexOf("<!-- " + sx + " -->");
                var j = html.indexOf("<!-- /" + sx + " -->");
                                
                if ( i != -1 && j != -1 )
                {
                    var h = html.substring(i,j);
                    m_sc[si] = h;
                            
                    e.innerHTML = h;
                }
                
		        m_sreq = null;
		    }
		}
		
		function sss(sec, sel, snew)
		{
		    var e;
		    
	        var br;
	        if ( snew == 1 )
	            br = "/_shared/bnr.gif";
	        else
	            br = null;
		    
		    if ( sel != 0 )
		    {
		        
		        e = document.getElementById(sec + "__lt");
		        e.src = "/_shared/lts.gif";
		        e = document.getElementById(sec + "__bt");
		        e.style.color = 'White';
		        e.style.backgroundImage = 'url(/_shared/bts.gif)';
                e = document.getElementById(sec + "__rt");
		        e.src = "/_shared/rts.gif";
		        
		        if ( sel == 2 )
		        {
		            e = document.getElementById(sec + "__bb");
		            e.style.backgroundImage = 'url(/_shared/bbs.gif)';
		            
		            e = document.getElementById(sec + "__bl");
		            e.src = "/_shared/bs.gif";
		            e = document.getElementById(sec + "__br");
		            if ( br == null )
		                br = "/_shared/bs.gif";
		            e.src = br;
		        }
		    }
		    else
		    {
		        e = document.getElementById(sec + "__lt");
		        e.src = "/_shared/ltu.gif";
		        e = document.getElementById(sec + "__bt");
		        e.style.backgroundImage = 'url(/_shared/btu.gif)';
		        e.style.color = '#4A4949';
                e = document.getElementById(sec + "__rt");
		        e.src = "/_shared/rtu.gif";
		        e = document.getElementById(sec + "__bb");
		        e.style.backgroundImage = 'url(/_shared/bbu.gif)';
		        e = document.getElementById(sec + "__bl");
		        e.src = "/_shared/bu.gif";
		        e = document.getElementById(sec + "__br");
	            if ( br == null )
	                br = "/_shared/bu.gif";
		        e.src = br;
		    }
		}
		
		/*  grouping
		*/
		function mitem(op, id, parent, level, group)
		{		
		    this.op = op;
		    this.id = id;
		    this.parent = parent;
		    this.level = level;
		    this.group = group;
		}
		
		function onmitems(item)
		{
		    var m;
		    for (m=0; m < m_mitems.length; m++)
		        if ( item.op == m_mitems[m].op && item.id == m_mitems[m].id && item.parent == m_mitems[m].parent && item.level == m_mitems[m].level && item.group == m_mitems[m].group )
                    return m;
            
            return -1;
		}
		
		function getmitems(op)
		{
		    var ml = new Array();
		    
		    var m;
		    for (m=0; m < m_mitems.length; m++)
		        if ( m_mitems[m].op == op )
                     ml[ml.length] = m_mitems[m];
            
            return ml;
		}
				
		function markitem(op, id, parent, level, group)
		{		    				    
		    var item = new mitem(op, id, parent, level, group);
		    		    
		    var mindex = onmitems(item);
		    if ( mindex == -1 )
		        m_mitems[m_mitems.length] = item;
		    else
		        m_mitems[mindex].op = "x";
		   		   
		    var u;
		    if ( op == "s" )
		        u = "m";
		    else if ( op == "m" )
		        u = "s";
		        
	        var xitem = new mitem(u, id, parent, level, group);
	        var xindex = onmitems(xitem);
	        if ( xindex != -1 )
            {
	            m_mitems[xindex].op = "x";
                var xid = "i" + u + "-" + id + "-" + parent + "-" + level + "-" + group;
	            var mcheck = document.getElementById(xid);
	            if ( mcheck != null )
		            mcheck.checked = false;
            }
		}
		
		function mitem2strlist(mlist)
		{
		    var ml = new Array();
		    
		    var m;
		    for (m=0; m < mlist.length; m++)
		    {
		        ml[ml.length] = mlist[m].id;
		        ml[ml.length] = mlist[m].parent;
		        ml[ml.length] = mlist[m].level;
		        ml[ml.length] = mlist[m].group;
		    }
            
            return makelist(ml);
		}
		
		function dogroupop(op, user, page)
		{
		   var d = "<x><op>" + op + "p" + "</op><user>" + user + "</user><page>" + page + "</page>";
		   
		   switch(op)
		   {
		        case "group":
		        {
		            var m = getmitems("m");
		            var s = getmitems("s");
		            
		            if ( s.length == 0 )
		            {
		                alert("There are no selected products.");
		                return;
		            }
		            if ( s.length > 1 )
		            {
		                alert("Only 1 product can be selected.");
		                return;
		            }
		            if ( m.length == 0 )
		            {
		                alert("There are no marked products.");
		                return;
		            }

                    var mstr = mitem2strlist(m);
                    var sstr = mitem2strlist(s);
                    d += ("<s>" + sstr + "</s><m>" + mstr + "</m></x>");

		            break;
		        }
		        
		        case "ungroup":
		        {
		            var m = getmitems("m");

		            if ( m.length == 0 )
		            {
		                alert("There are no marked products.");
		                return;
		            }
		            
		            var mstr = mitem2strlist(m);
                    d += ("<m>" + mstr + "</m></x>");
                    
		            break;
		        }
		        
		        case "delete":
		        {		            
		            var s = getmitems("s");

		            if ( s.length == 0 )
		            {
		                alert("There are no selected products.");
		                return;
		            }
		            
		            if ( !confirm("Are you sure you want to delete all selected products?") )
		                return;

                    var sstr = mitem2strlist(s);
                    d += ("<s>" + sstr + "</s></x>");

		            break;
		        }
		   } 
		   		   
		   var url = "/w2pagev/page.pf?user=" + user + "&page=" + page + "&direct=" + d;
		   location.href = url; 
		}
				
		function shareop(op, userid, sid, tzoffset)
		{									
			var theme = m_pp.getAttribute("theme");
			
			var url = "/w2pagev/accept.pf?theme=" + theme + "&userid=" + userid + "&sid=" + sid + "&tzoffset=" + tzoffset;
			var features = "dialogHeight:296px;dialogWidth:510px;scroll:no;status:no;unadorned:yes;help:no";
			var result = window.showModalDialog(url, "", features);
			
			setform();
			document.Form1.submit(); 
		}	
		
		function okdialog(question)
		{
			var theme = m_pp.getAttribute("theme");
			
			var url = "/w2pagev/ok.pf?theme=" + theme + "&question=" + question;			
			var features = "dialogHeight:100px;dialogWidth:350px;scroll:no;status:no;unadorned:yes;help:no";
			var result = window.showModalDialog(url, "", features);
			return result;
		}
		
		function clickpost(p)
		{
		    var op = "p\\";
		    op += p;
		       		       
			setform();
			document.Form1.__w2OP.value = op;	
			document.Form1.submit(); 
		}
		
		/* cellspaces
		*/
		
		var m_colorset;
		var m_colorintervalset;
		var m_cellspacebasetime;
		var m_ccellobjs;
		var m_pcellobjs;
		var m_pcellobjsthumbs;
		var m_pcellthumbids;
		var m_cvisitgif;
		var m_cchangegif;
		var m_pvisitgif;
		var m_pcells;
		var m_ccells;
	
		var m_pupdatemax;
		var m_pupdatelastindex;
		var m_cupdatemax;
		var m_cupdatelastindex;
		var m_pthumbmax;
		
		
		function setupcellspaces()
		{
            var i;
			var t = 0;
			
            m_ccells = parselist(m_pp.getAttribute("ccells"));            
            m_ccellobjs = new Array();
            for (i=0; i < m_ccells.length; i++)
				m_ccellobjs[i] = document.getElementById("C/" + m_ccells[i]);
				
            m_pcells = parselist(m_pp.getAttribute("pcells"));            
            m_pcellobjs = new Array();
            m_pcellobjsthumbs = new Array();
            m_pcellthumbids = new Array();
            
            for (i=0; i < m_pcells.length; i++)
			{
				m_pcellobjs[i] = document.getElementById("C/" + m_pcells[i]);
				
				if ( m_pcellobjs[i] != null )
				{
					var tlist = m_pcellobjs[i].getAttribute("thumblist");
					if ( tlist != null && tlist != "" )
					{
						m_pcellobjsthumbs[t] = m_pcellobjs[i];
						m_pcellthumbids[t] = m_pcells[i];
						t++;
					}
				}
			}
			
			m_cellspacebasetime = new Date(m_pp.getAttribute("cellspacebasetime") + " UTC");
			
			var sharedroot = m_pp.getAttribute("sharedroot");
			m_cvisitgif = sharedroot + "csvisitnow.gif";
			m_cchangegif = sharedroot + "cschangenow.gif";

			m_pupdatemax = 50;
			m_pupdatelastindex = 0;
			m_cupdatemax = 50;
			m_cupdatelastindex = 0;
			
			m_pthumbmax = 20;
			if ( m_pthumbmax > m_pcellobjsthumbs.length )
				m_pthumbmax = m_pcellobjsthumbs.length;
						
			window.setTimeout("cellspaceupdate()", 3000);
		}
				
		function cellspaceupdate()
		{		
			// *** ***
			var ind = new Date();		
			// *** ***
			
			var i;
			var now = new Date();
			var start;
			var end;
			
			/*	fade pages
			*/
			
			if ( m_pcellobjs.length > 0 )
			{
				start = m_pupdatelastindex;
				end = m_pupdatelastindex + m_pupdatemax;
				m_pupdatelastindex = end + 1;
				if ( end > m_pcellobjs.length - 1 )
				{	
					end = m_pcellobjs.length - 1;
					m_pupdatelastindex = 0;
				}
											
				for (i=start; i <= end; i++)
				{
					if ( m_pcellobjs[i] != null )
					{
						var mre = m_pcellobjs[i].getAttribute("mre");
										
						if ( mre.length != 0 )
						{
							var bcolor = getcellcolor(new Date(mre + " UTC"), now);
							m_pcellobjs[i].style.backgroundColor = bcolor;
						}					
					}
				}
			}
			
			/*	fade cells
			*/
			
			if ( m_ccellobjs.length > 0 )
			{
				start = m_cupdatelastindex;
				end = m_cupdatelastindex + m_cupdatemax;
				m_cupdatelastindex = end + 1;
				if ( end > m_ccellobjs.length - 1 )
				{	
					end = m_ccellobjs.length - 1;
					m_cupdatelastindex = 0;
				}

				for (i=start; i <= end; i++)
				{
					if ( m_ccellobjs[i] != null )
					{
						var mre = m_ccellobjs[i].getAttribute("mre");
						
						if ( mre.length != 0 )
						{
							var bcolor = getcellcolor(new Date(mre + " UTC"), now);
							m_ccellobjs[i].style.backgroundColor = bcolor;
						}
					}
				}
			}
			
			/*	rotate cells
			*/
			
			var index;
			var lo = 0;
			var hi;
			
			for (i=0; i < m_pthumbmax; i++)
			{
				hi = m_pcellobjsthumbs.length - 1;
				index = parseInt((hi-lo+1)*Math.random()+lo);
								
				var tlist = m_pcellobjsthumbs[index].getAttribute("thumblist");
				var tlistarray = parselist(tlist);
					
				var telem = document.getElementById("T/" + m_pcellthumbids[index]);
						
				hi = tlistarray.length - 1;
				var tindex = parseInt((hi-lo+1)*Math.random()+lo);
						
				telem.src = tlistarray[tindex];
			}
			
					
			// *** ***
			var outd = new Date();		
			var diff = outd.getTime() - ind.getTime();                   
			//alert("cellspaceupdate in/out: " + diff + " ms");
			// *** ***
												
			window.setTimeout("cellspaceupdate()", 3000);			
		}
		
		function getcellcolor(eventtime, basetime)
		{
			var delta = ( basetime - eventtime ) / 1000;
			
			for (var i=0; i < m_colorintervalset.length; i++)
			{
				if  ( delta <= m_colorintervalset[i] )
					return m_colorset[i];
			}
			
			return m_colorset[m_colorset.length-1];
		}
		
		function processcellspacedata(dataindex, datanode)
		{
			var key, cell;
			var eid, eeid, ecsid, ecssid, etype, etime, eispage, esource;
			
			try
			{
				key = m_datakeys[dataindex];
				cell = m_datacells[dataindex];
									
				var n;
				for (n=0; n < datanode.childNodes.length; n++)
				{
					var cnode = datanode.childNodes.item(n);
					
					//alert("processcellspacedata: @ key: " + key + " @ cell: " + cell + " data: " + cnode.text);
										
					if ( cnode.text.length > 0 )
					{		
						var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
						xmldoc.loadXML(cnode.text);
						var root = xmldoc.documentElement;
						
						var eventnodes = root.selectNodes("/root/e");
						if ( eventnodes != null )
						{
							for (var e=0; e < eventnodes.length; e++)
							{
								var enode = eventnodes.item(e);
								
								eid = enode.selectSingleNode("i").text;
								eeid = enode.selectSingleNode("q").text;
								ecsid = enode.selectSingleNode("s").text;
								ecssid = enode.selectSingleNode("c").text;
								etype = enode.selectSingleNode("t").text;
								etime = enode.selectSingleNode("d").text;
								eispage = enode.selectSingleNode("p").text;		// "t" if page
								esource = enode.selectSingleNode("r").text;
								
								var euser = "";
								euser = enode.selectSingleNode("u");
								if ( euser != null )
									euser = euser.text;
								 
								var eventtype = new Number(etype);
								
								// page cellspace; if change in different session, reload
								if ( cell == "page" )
								{									
									if ( eventtype == 2 )					// 2 = change
									{
										if ( esource.length > 0 )			// empty = event sourced outside of a browser session
										{
											if ( esource != m_session )		// if this session caused event, ignore
											{						
												m_reload = true;
												return;
											}
										}
									}									
								}
								else
								{
									//alert("type: " + etype + " id: " + eid + " etime: " + etime + " euser: " + euser + " eispage: " + eispage);
									
									// 1 = add; 2 = change; 4 = delete; 8 = visit 
									if ( eventtype == 1 || eventtype == 4 )
									{
										m_reload = true;
										return;
									}
									
									var datapoint;		
									var suffix2 = "/" + ecsid + "/" + ecssid;
									var suffix = suffix2 + "/" + eid;

									datapoint = document.getElementById("C" + suffix);
									var mre = datapoint.getAttribute("mre");
									var celll = datapoint.getAttribute("celll");
									datapoint.setAttribute("mre", etime);

									var evttime = new Date(etime + " UTC");
									datapoint.style.backgroundColor = getcellcolor(evttime, m_cellspacebasetime);
									
									if ( eventtype == 8 )
									{
										datapoint = document.getElementById("V" + suffix);
										if ( datapoint != null )
										{
											var cvisit = new Number(datapoint.innerHTML);
											cvisit += 1;
											datapoint.innerHTML = cvisit;
											datapoint.title = "" + cvisit + " visits";
										}
										
										datapoint = document.getElementById("H" + suffix);
										datapoint.src = m_cvisitgif;
										
										updatecellspacesummary("VF", ecsid, ecssid, eispage, "visit", celll, evttime, euser);
									}
									else if ( eventtype == 2 )
									{										
										datapoint = document.getElementById("D" + suffix);
										datapoint.src = m_cchangegif;		
										
										updatecellspacesummary("CF", ecsid, ecssid, eispage, "change", celll, evttime, euser);
									}
								} // cell == "page"														
							}						
						} // eventnodes != null
					} // cnode.text.length > 0
				} // for
														
			}
			catch(e)
			{
				var a = "processcellspacedata: @ key: " + key + " @ cell: " + cell + " data: " + cnode.text;
				alert("processcellspacedata error: " + a);
			}
			
		}
		
		function updatecellspacesummary(idstem, ecsid, ecssid, eispage, operation, celll, evttime, euser)
		{
			var idsuffix = "/" + ecsid + "/" + ecssid;

			try
			{
				var vpoint;
				
				vpoint = document.getElementById(idstem + "1" + idsuffix);
				if ( vpoint == null )
				{
					idsuffix = "/" + ecsid + "/0";		// grouped
					vpoint = document.getElementById(idstem + "1" + idsuffix);
				}
				
				if ( eispage == "t" )
					vpoint.innerHTML = "Most recent page " + operation + " is ";
				else
					vpoint.innerHTML = "Most recent webcell " + operation + " is ";
				
				vpoint = document.getElementById(idstem + "2" + idsuffix);
				vpoint.innerHTML = celll;
				
				vpoint = document.getElementById(idstem + "3" + idsuffix);
				vpoint.innerHTML = "&nbsp;at&nbsp;";
				
				vpoint = document.getElementById(idstem + "4" + idsuffix);
				vpoint.innerHTML = formatdate(evttime);
				
				if ( euser != "" )
				{
					vpoint = document.getElementById(idstem + "5" + idsuffix);
					vpoint.innerHTML = "&nbsp;by&nbsp;";
				
					vpoint = document.getElementById(idstem + "6" + idsuffix);
					vpoint.innerHTML = euser;
				}
				
				vpoint = document.getElementById(idstem + "7" + idsuffix);
				updatetimebase(vpoint, evttime)

				if ( operation != "visit" )
				{
					vpoint = document.getElementById(idstem + "8" + idsuffix);
					vpoint.innerHTML = "<br>";
				}
			}
			catch(e)
			{
			}
		}
		
		function formatdate(dt)
		{
			var month = dt.getMonth() + 1;
			var mins = new String(dt.getMinutes());
			if ( mins.length == 1 )
				mins = "0" + mins;
			var secs = new String(dt.getSeconds());
			if ( secs.length == 1 )
				secs = "0" + secs;
						
			var am = "AM";
			var hours = dt.getHours();
			if ( hours > 12 )
			{
				hours -= 12;
				am = "PM";
			}
			
			return month + "/" + dt.getDate() + "/" + dt.getFullYear() + " " + hours + ":" + mins + ":" + secs + " " + am;
		}
		
		/*	alerts
		*/
		var m_alertshown;
		var m_alertposted;
		var m_alertq;
		var m_alertmax;
		var m_cookieexp;

		function initalerts()
		{
			m_alertshown = -1;
			m_alertq = new Array();
			m_alertmax = new Number(getcookie("_w2_alertid"));
			
			m_cookieexp = new Date();
			m_cookieexp.setFullYear(m_cookieexp.getFullYear()+1);
				
			processalertq();	
		}

		function togglealert(iState)
		{
			var width = 160; 
			var left = document.body.clientWidth - (width+7);
			var top = 5;
			
			document.getElementById("alert_table").width = width;

			if (document.layers) //NN4+
			{
				document.layers["alert"].visibility = iState ? "show" : "hide";
				document.layers["alert"].left = left;
				document.layers["alert"].top = top;
			}
			else if (document.getElementById) //gecko(NN6) + IE 5+
			{
				var obj = document.getElementById("alert");
				obj.style.visibility = iState ? "visible" : "hidden";
				obj.style.left = left;
				obj.style.top = top;
			}
			else if (document.all) // IE 4
			{
				document.all["alert"].style.visibility = iState ? "visible" : "hidden";
				document.layers["alert"].style.left = left;
				document.layers["alert"].style.top = top;
			}
			
			if ( iState == 0 )
				m_alertshown = -1;
			else
				window.setTimeout("fadealert()", 3000);	
		}
		
		function closealert()
		{
			togglealert(0);
		}
		
		function showalert(id, title, desc, link, linktext, iconurl, posted)
		{				
			setcookie("_w2_alertid", id, m_cookieexp, "/");
			m_alertmax = id;

			m_alertshown = id;
			m_alertposted = new Date();
			
			document.getElementById("alert_table").style.backgroundColor = m_colorset[0];
				
			document.getElementById("alert_title").innerText = title;
			document.getElementById("alert_desc").innerText = desc;
			document.getElementById("alert_icon").src = iconurl;
			document.getElementById("alert_posted").innerText = formatdate(posted);
			
			var obj = document.getElementById("alert_link");
			obj.href = link;
			obj.innerText = linktext;

			togglealert(1);
		}		
		
		function fadealert()
		{
			var bcolor = getalertcolor(m_alertposted, new Date());
			
			if ( bcolor == -1 )
			{
				closealert();
			}
			else
			{
				var at = document.getElementById("alert_table");
				at.style.backgroundColor = bcolor;
				
				window.setTimeout("fadealert()", 3000);
			}			
		}
		
		function getalertcolor(eventtime, basetime)
		{
			var delta = ( basetime - eventtime ) / 1000;
			
			for (var i=0; i < m_colorintervalset.length; i++)
			{
				if  ( delta <= (m_colorintervalset[i] / 100) )
					return m_colorset[i];
			}
			
			return -1;
		}
		
		function processalertq()
		{			
		    //***A use new soap calls

			if ( m_alertshown == -1 )
			{
				if ( m_alertq.length > 0 )
				{
					var id = m_alertq.pop();
					
					m_alertshown = -2;
					m_w2callID = w2api.w2api.callService("getalert", m_w2token, m_luser, id);
				}
			}
						
			window.setTimeout("processalertq()", 60000);		
		}

		function onw2apiresult()
		{				
		    //***A use new soap calls
		    				
			m_alertshown = -1;
			            
			if( (event.result.error) && ( m_w2callID == event.result.id) )
			{
				var xfaultcode   = event.result.errorDetail.code;
				var xfaultstring = event.result.errorDetail.string;
				var xfaultsoap   = event.result.errorDetail.raw;				
			}
			else if((!event.result.error) && ( m_w2callID == event.result.id))
			{						
			    if ( m_w2callpending == "getalert" )
			    {
				    var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
				    xmldoc.loadXML(event.result.value);
				    var root = xmldoc.documentElement;
				    if ( root == null )
					    return;
    								
				    var node, id, title, desc, url, urltext, posted, icon;

				    node = root.selectSingleNode("id");
				    id = new Number(node.text);
				    node = root.selectSingleNode("posted");
				    posted = new Date(node.text + " UTC");
				    node = root.selectSingleNode("title");
				    title = node.text;
				    node = root.selectSingleNode("desc");
				    desc = node.text;
				    node = root.selectSingleNode("url");
				    url = node.text;
				    node = root.selectSingleNode("urltext");
				    urltext = node.text;
				    node = root.selectSingleNode("icon");
				    icon = node.text;
    				
				    showalert(id, title, desc, url, urltext, icon, posted);			    
				}
			}			
		}
		
		function processalertdata(dataindex, datanode)
		{			
			node = datanode.selectSingleNode("ids");
			if ( node == null )
				return;
			
			var ids = parselist(node.text);
			ids = ids.reverse();
			for (i=0; i < ids.length; i++)
			{
				if ( onlist(ids[i], m_alertq) == -1 && ids[i] > m_alertmax )
					m_alertq.push(ids[i]);
			}		
		}					
		
		function checkenter(e)
		{			    	    
            var cc;

            if (e && e.which)
            {
                e = e;
                cc = e.which;
            }
            else
            {
                e = event;
                cc = e.keyCode;
            }

            if (cc == 13)
            { 
                var s = document.getElementById("searchbox");
                
                setform();	
			    document.Form1.__w2OP.value = "search1/" + s.value;
			    document.Form1.submit();
                return false; 
            }
            else
            {
                return true;
            }
        }
