<toasteritem locale="english" version="1">
    <app>
        <id>
        aol.activeupdate
        </id>
        <desc>
        %s
        </desc>
    </app>
    <group>
        <id>
        %s
        </id>
        <desc>
        %s
        </desc>    
    </group>
    <subcategory>
        <id>
        %s
        </id>
        <desc>
        %s
        </desc>        
    </subcategory>
    <toasterid>
    %u%s
    </toasterid>
    <packageid version="%s">
    ee://aol/softwareUpdate/ActiveUpdate.zip
    </packageid>
    <type>
    %s
    </type>
    <expiretime>
    %s
    </expiretime>
    <flags>
    %s
    </flags>        
    <listicon>
    </listicon>
    <brandingicon>
    </brandingicon>    
    <brandingtext>
    %s
    </brandingtext>
    <itemdescshort>
    %s
    </itemdescshort>
    <contentwidth>
    %u
    </contentwidth>
    <contentheight>
    %u
    </contentheight>    
    <itemcontent contenttype="html">
        <![CDATA[
            <html>
            <head>
            <link rel="stylesheet" type="text/css" href="user_style.css">
            </head>
            <title></title>
            <body>
                <table border=0 width=100%s>
                %s
                %s
                %s
                %s
                </table>            
                <SCRIPT LANGUAGE="JavaScript">    
                
                    var sm              = toaster.serviceManager;
                    var kSTICMoniker    = "ee://aol/softwareUpdate/controller";
                    var kToasterMoniker = "ee://aol/toaster/controller";
                    var emptyString = "";
                    var enumXbuttonType = 3;
                    var updateListStr   = "-UpdateList";
                    
                    function ProcessAction(buttonType)
                    {
                        this.onClick    = null;
                        var params      = toaster.toasterParams;
                        var toastType   = sm.selectNode(params, "/params/Toastertype").getValue();
                        var sticToastId = sm.selectNode(params, "/params/toastID").getValue();
                        
                        try
                        {
						    var obj = sm.createInstance (kSTICMoniker);
                            obj.onUpdateAction(toastType, buttonType, sticToastId);
                            
                            /* We need not destroy this toast if user clicked 'X' button, or toast expired on its own */
                            var thisToasterId = toaster.toasterId;
                            var curToaster    = sm.createInstance (kToasterMoniker);
                            /* We need to pass the sticToastId given by STIC instead of toaster.toasterId */
                            /* We need to do this in order to delete common details toast (for both medium and low priority toasts) */
                            var tempStr       = thisToasterId.split("-");
                            var detailsToasterId = tempStr[0] + updateListStr;
                            
                            if (buttonType <= enumXbuttonType)
                            {
	                            if (curToaster)
                            	{
                                    curToaster.destroyToast(emptyString, thisToasterId);
                           	    } 
                            }
                            /* We need to delete the details toaster as well, except for Reboot, Updates Recovery toasts */
                            if ( (curToaster) && (sticToastId > 0) ) 
                            {
                                curToaster.destroyToast(emptyString, detailsToasterId);
                            }         
                        }
                        catch ( e )
                        {
                            alert ( e.message );
                        }
                    }
                    
                    function onToasterClosing (cause) 
                    {
                        if (cause == "Dismissed")
                        {
                            %s
                        }
                        else 
                        {
                            %s
                        }
                    }
                    
                    function onDetailsLink ()
                    {
                        try 
                        {
                            var myToaster    = sm.createInstance (kToasterMoniker);            
                            var streamObject = sm.basics.fileStream;
                        
                            streamObject.openForRead("%s");
                            var streamReader= sm.basics.rawStreamReader;
                            streamReader.stream = streamObject;
                            
                            var appDesc             = "%s";
                            var groupID             = "%d";
                            var groupDesc           = "%s";
                            var subCategoryID       = "%d";
                            var subCategoryDesc     = "%s";
                            var toastID             = "%s";
                            var activeUpdateID      = "%s";
                            var detailsTitle        = "%s";
                            var shortDesc           = "%s";
                            var toastWidth          = "%u";
                            var toastHeight         = "%u";
                            var toastHeader         = "%s";
                            var toastList           = "%s";
                            
                            var template = streamReader.readStringTillEndOfStream("utf-8");
                            var Detailstoast = template.replace(/fillAppDesc/, appDesc).
                                                        replace(/fillGroupID/, groupID).
                                                        replace(/fillGroupDesc/, groupDesc).
                                                        replace(/fillSubCategoryID/, subCategoryID).
                                                        replace(/fillSubCategoryDesc/, subCategoryDesc).
                                                        replace(/fillToastID/, toastID).
                                                        replace(/fillActiveUpdateID/, activeUpdateID).
                                                        replace(/fillDetailsTitle/, detailsTitle).
                                                        replace(/fillShortDesc/, shortDesc).
                                                        replace(/fillWidth/, toastWidth).
                                                        replace(/fillHeight/, toastHeight).
                                                        replace(/fillHeader/, toastHeader).
                                                        replace(/fillDetails/, toastList);
                                                        
                            myToaster.createToastFromXML("", Detailstoast, "");
                            streamObject.Close();
                        }
                        catch ( e )
                        {
                            alert ( e.message );
                        }
                    }
                    
                </SCRIPT>
            </body>
            </html>
        ]]>
    </itemcontent>
</toasteritem>