I am trying to overlay/add flags to some of the origianal charting
components. What I am aiming at is something like what can be found on
google analytics (http://finance.google.com/finance?cid=4112)...

My hack attempt at doing so, was to redefine the plotrenderer....so
that it changed each of it's dataitems to a sprite and named it.
I would then be able to address each dataItem (by way of the
getChildByName-method) and populate it with data (when you press the
flag a datagrid pops out displaying relevant data).
I would then overlay a lineseries with an invisible plotseries. The
latter only containing datapoints where i wanted the tags.

But it really cannot be the way to do it,...besides i am having
trouble getting the graph to clean up the previous set flags when the
data changes. 

Does any one know a way to do this. Addressing each datapoint
specifically? I tried the datatoLocal but since I have to vertical
axii and my horizontal contains months i cannot address it like
(400,300). 

Enclosing the code:

#### the class
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
initialize="vv()" layout="absolute" backgroundColor="#FFFFFF"
backgroundAlpha="0.0">
<mx:Style>
        
.shd {
        dropShadow: false;
}       
        
</mx:Style>

<mx:Script>
                <![CDATA[
                        import Renderers.FlagRenderer;
                        import mx.charts.PlotChart;
                        import mx.charts.HitData;
                        import mx.graphics.IStroke;
                        import mx.core.*;
            
        import flash.text.*;
        import flash.net.URLRequest;
        import flash.net.URLLoader;
        import flash.events.*;
        import flash.text.TextField;
        import mx.charts.events.ChartItemEvent;
        import mx.charts.series.items.LineSeriesItem;
        import mx.charts.series.items.LineSeriesSegment;
        import mx.graphics.*;
        import Renderers.CycleColorRenderer;
        
        
        private var inhale:XML = new XML();
                        private var rq:URLRequest = new URLRequest();
                        private var ld:URLLoader = new URLLoader();
            [Bindable]
            private var goalArr:Array= new Array();
            [Bindable]
            private var annoArr:Array= new Array();
            [Bindable]
            private var dataP:Array= new Array();
            private var ff:Number=1;
            private var s:Stroke=new Stroke(0x000000, 11,1);
            public var gg:String="here";
            private var flagLine:Sprite;
            private var started:Sprite;
            private var changed:Sprite;
            private var ended:Sprite;
            private var opener:String="not";
            private var flagobj:Object; 
            private var linWidth:Number=929;
            private var dgWidth:Number=300;
            private var base:String;
            private var vvf:Number=0;
            [Bindable]
            private var cards:Array = [{label:"Clicks vs. Total
Conversions", where:"testgraph.xml"}, {label:"Clicks vs. Page Views",
where:"testgraph2.xml"}, {label:"Clicks vs. Conversion Rate",
where:"testgraph3.xml"},{label:"Clicks vs. Profit",
where:"testgraph4.xml"}];
     // private var base:String="flash";
      //Application.application.url;
      private var cards2:Array = [{label:"Clicks vs. total
conversions", where: base+"parameter1=clicks&parameter2=conversions"},
           {label:"Media spend vs. revenue",
where:base+"parameter1=cost&parameter2=revenue"},
           {label:"Media spend vs. profit",
where:base+"parameter1=cost&parameter2=profit"},
           {label:"New visitors vs. returning visitors",
where:base+"parameter1=newvisitors&parameter2=returningvisitors"},
           {label:"Unique clicks vs. conversion rate",
where:base+"parameter1=uniqueclicks&parameter2=conversionrate"},
           {label:"Unique clicks vs. average page views",
where:base+"parameter1=uniqueclicks&parameter2=averagepageviews"},
           {label:"Cost per action vs. average order value",
where:base+"parameter1=costperaction&parameter2=averageordervalue"},
           {label:"Cost per click vs. average click order value",
where:base+"parameter1=costperclick&parameter2=averageclickordervalue"},
          ]; 

public function vv():void{
var spr:Sprite=new Sprite();
//spr.graphics.beginFill(0xFF0000,1);
//spr.graphics.drawCircle(20,20,20);
//spr.name="ff";
//this.addChild(spr);
//delete parent.getChildByName("ff");
//trace(parent.getChildByName("ff"));
postFlux();
}
public function postFlux():void{        
        base=Application.application.url.toString();            
 if(Application.application.parameters.xml==null){
    rq.url="testgraph.xml";
 }
 else {
   rq.url=Application.application.parameters.xml;
 }
  ld.addEventListener(Event.COMPLETE, parX);
  ld.load(rq);
}
        
        public function parX(whatever:Event):void {             
                inhale = XML(ld.data);          
        var howmany:int=inhale.goalspan.child("*").length();
        var a:Array=new Array();
        annoArr.length=0;
                    for(var i:int=0;i<howmany;i++) {
                 goalArr[i] = {achieved:
[EMAIL PROTECTED]"achieved"],
                 goal: [EMAIL PROTECTED]"goal"], 
                 time: [EMAIL PROTECTED]"time"]}
                 
              var
attr:XMLList=inhale.goalspan.plot[i].child("flagtivities");

 if(attr.hasOwnProperty("flag")) {
  
flagobj=sortAnnotations(attr);


if(flagobj.length!=0){
annoArr.push({annotated: flagobj, goal:
[EMAIL PROTECTED]"goal"], time:
[EMAIL PROTECTED]"time"]});
//trace("Starts");
}
}
  else {
 flagobj=null;  
  }
                    }
                  
    dataG.visible=false;            
                }   
        public function sortAnnotations(attr:XMLList):Object{
                //hvor mange flag er der
                var viff:Number=attr.child("flag").length();
        var startarray:Array=new Array();
        var changearray:Array=new Array();
        var endarray:Array=new Array();
  for (var q:Number=0; q<viff; q++){
                                var typeflag:[EMAIL PROTECTED]"type"];

                  if (typeflag=="changed"){
                        //hvor mange aktiviteter har det enkelte flag
                        var 
antalaktiviteter:Number=attr.flag[q].child("*").length();
                //  trace("antal"+antalaktiviteter);
                  for(var r:Number=0; r<antalaktiviteter; r++){ 
                        var activity:Object=new Object();
                        var nm:[EMAIL PROTECTED]"name"];
                        var tp:[EMAIL PROTECTED]"type"];
                        var ch:[EMAIL PROTECTED]"change"];
                                activity={name: nm, type: tp, change: ch};
                          changearray.push(activity);
                          }
                        }
                        
                          if (typeflag=="started"){ 
                                //hvor mange aktiviteter har det enkelte flag
                                var 
antalaktiviteter:Number=attr.flag[q].child("*").length();
                         //     trace("antal"+antalaktiviteter);
                          for(var r:Number=0; r<antalaktiviteter; r++){ 
                                var activity:Object=new Object();
                                var nm:[EMAIL PROTECTED]"name"];
                                var tp:[EMAIL PROTECTED]"type"];
                                        activity={name: nm, type: tp};
                          startarray.push(activity);
                          }                        
                          }
                
                                if (typeflag=="ended"){
                        //hvor mange aktiviteter har det enkelte flag
                                var 
antalaktiviteter:Number=attr.flag[q].child("*").length();
                        //  trace("antal"+antalaktiviteter);
                          for(var r:Number=0; r<antalaktiviteter; r++){ 
                                var activity:Object=new Object();
                                var nm:[EMAIL PROTECTED]"name"];
                                var tp:[EMAIL PROTECTED]"type"];
                                        activity={name: nm, type: tp};
                   endarray.push(activity);
                   }
                                        }
                }
                var annotObj:Object=new Object();
                annotObj={starts: startarray, changes: changearray, ends: 
endarray};
                return annotObj;
                
                }

 public function not(clr1:uint,clr2:uint,clr3:uint):void {
        vvf+=1;
var hvormange:Number=annoArr.length;
var dia:Number=8;

for(var i:Number=0; i<hvormange; i++){
trace("ii2ii"+i);
        var v:Sprite=new Sprite();
        v.graphics.clear();
        v.name="starts";
        var s:Sprite=new Sprite();
    s.graphics.clear();
        s.name="changes";
        var t:Sprite=new Sprite();
        t.graphics.clear();
    t.name="ends";
    var up:Number=0; 
    var incr:Number=-10;    
    var floatabv:Number=3;

if(annoArr[i].annotated.starts.length!=0){
fyldOp(v,clr1,up,dia,floatabv);

up+=incr;       
}

if(annoArr[i].annotated.changes.length!=0){
        fyldOp(s,clr2,up,dia,floatabv);
up+=incr;
}

if(annoArr[i].annotated.ends.length!=0){
        fyldOp(t,clr3,up,dia,floatabv);
}

var comb:Sprite=plots.parent.getChildByName(i.toString()) as Sprite;
//i.toString()));
// as Sprite;
//trace("name::"+comb.name);
//trace(comb.numChildren);
//trace("code:"+plots.parent.getChildByName(i.toString()).name);

trace(comb);

comb.addChild(v);
comb.addChild(s);
comb.addChild(t);


v.buttonMode=true;
s.buttonMode=true;
t.buttonMode=true;
v.addEventListener("click",showActive);
s.addEventListener("click",showActive);
t.addEventListener("click",showActive);
}

//plots.parent.removeChildAt(4);
//plots.removeChild(plots.getChildByName("2"i.toString()));
//+"|"+memoryPlot+"|"+hvormange);
/*if(memoryPlot>hvormange){
        for(var i:Number=hvormange; i<memoryPlot; i++){
                trace("I trim it "+i+"ce");
//      plots.removeChild(plots.getChildByName(i.toString()));
        }
}

memoryPlot=hvormange;*/
 dataG.height=linechart.height-7;
 
 }
 
 public function showActive(e:Event):void{
        var n:Number=Number(e.currentTarget.parent.name);
        setDataProvider(dataP, annoArr,e.currentTarget.name.toString(),n);


 }

public function
setDataProvider(dataP:Array,sortSource:Array,a_type:String,index:Number):void{
var tst:String=a_type+index.toString();
if(tst==opener){
combo.x=linWidth-combo.width-10;        
opener="not";
linechart.width=linWidth;
dataG.visible=false;
}
else{
combo.x=linWidth-dgWidth-combo.width-10;        
opener=tst;
linechart.width=linWidth-dgWidth;
dataG.visible=true;
 dataG.x=linechart.width;
}
if(a_type=="starts"){
dataP.length=0;
for(var i:Number=0; i<sortSource[index].annotated.starts.length; i++){
datagridChange.visible=false;
dataP.push({name: sortSource[index].annotated.starts[i].name, type:
sortSource[index].annotated.starts[i].type});   
}
dataG.dataProvider=dataP;
}       
if(a_type=="changes"){  
dataP.length=0;
for(var i:Number=0; i<sortSource[index].annotated.changes.length; i++){
datagridChange.visible=true;
dataP.push({name: sortSource[index].annotated.changes[i].name, type:
sortSource[index].annotated.changes[i].type, change:
sortSource[index].annotated.changes[i].change});        
}
dataG.dataProvider=dataP;
}       
if(a_type=="ends"){
dataP.length=0;
for(var i:Number=0; i<sortSource[index].annotated.ends.length; i++){
datagridChange.visible=false;
dataP.push({name: sortSource[index].annotated.ends[i].name, type:
sortSource[index].annotated.ends[i].type});     
}
dataG.dataProvider=dataP;

}       

} 
 
 

public function
fyldOp(v:Sprite,clr:uint,incr:Number,dia:Number,floatabv:Number):void{
var x_r:Number=0;
var y_r:Number=-floatabv+incr;  
v.graphics.clear();
v.graphics.beginFill(clr,1);
v.graphics.lineStyle(0,0,0);
v.graphics.moveTo(x_r,y_r);
v.graphics.lineTo(x_r,y_r-dia);
v.graphics.lineTo(x_r+dia,y_r-dia*.5*vvf);
v.graphics.lineTo(x_r,y_r);
v.graphics.endFill();   
}

public function comboCha(ev:flash.events.Event):void{
   var toExt:Number=plots.parent.numChildren;

   for(var i:Number=0; i<toExt+1;i++){
    var nn:Sprite=Sprite(plots.parent.getChildByName(i.toString()));
trace("iiii"+i)
        if(nn!=null){
                 var vvvv:Sprite=Sprite(nn.getChildByName("starts"));
        
        if(vvvv!=null){
                vvvv.name="voided";
                delete nn.getChildByName("voided");
        }
        var ssss:Sprite=Sprite(nn.getChildByName("changes"));
        if(ssss!=null){
                        ssss.name="voided";
                delete nn.getChildByName("voided");
        }
        var tttt:Sprite=Sprite(nn.getChildByName("ends"));
        if(tttt!=null){                  
        tttt.name="voided";
                delete nn.getChildByName("voided");
        }
                nn.name="voided";
trace("voided"+plots.parent.getChildByName("voided"));
trace("voided"+plots.parent.getChildByName(i.toString()));
delete plots.parent.getChildByName("voided");
        //plots.parent.getChildByName(i.toString())!=null){


   

  //    plots.parent.removeChild(nn);
   //   plots.parent.removeChildAt(i);
   }
     }
     rq.url=ev.target.selectedItem.where;
     ld.load(rq);
    linechart.dataProvider=goalArr;
    axis.dataProvider=goalArr;
    plots.dataProvider=annoArr;
    dataG.dataProvider=dataP;
    var aa:Array=new Array(35,300);
  
 var pp:Point=linechart.dataToLocal("33",200);
    linechart.graphics.lineStyle(1,0xFF0000,0.2);
    linechart.graphics.moveTo(0,0);
    linechart.graphics.lineTo(100,pp.y);
    trace("point"+linechart.dataToLocal("33",200));
   
//    instanceIndices);
//not(0x87f326,0xf38726,0x000000);
     }        



 
 public function daTip(even:ChartItemEvent):String{
        
 var ret:String=even.hitData.item.achieved+"/"+even.hitData.item.goal;
 return ret;
 }
  //         curve, horizontal, vertical, segment, step, reverseStep
      ]]>
        </mx:Script>

           
                
        <mx:Fade id="wipeOut" alphaFrom=".6" alphaTo="1.0" duration="350" />
        <mx:Fade id="wipeDown" alphaFrom="1.0" alphaTo="0.0" duration="300"/>
        
        
 <mx:LineChart id="linechart" y="28" paddingLeft="5" height="190"
width="{linWidth}" paddingRight="5" dataProvider="{goalArr}"
secondDataProvider="{goalArr}" showDataTips="true"
dataTipFunction="daTip" styleName="shd">
           <mx:seriesFilters>
                         <mx:Array/>
                 </mx:seriesFilters>
          
                <mx:horizontalAxis>
                    <mx:CategoryAxis id="axis" categoryField="time"/>
                </mx:horizontalAxis>         
                <mx:series>
                        <mx:Array>   
              <!--itemRenderer="Renderers.CycleColorRenderer"-->
                                <mx:LineSeries name="gh" 
showDataEffect="{wipeOut}"
resizeEffect="{wipeOut}" creationCompleteEffect="{wipeOut}"
styleName="shd" id="linie1" xField="time" yField="achieved"
displayName="Achieved" 
lineSegmentRenderer="mx.charts.renderers.LineRenderer"><mx:lineStroke>
        <mx:Stroke color="#669933" weight="2"/>
</mx:lineStroke>
          
                    
                    </mx:LineSeries>
                        </mx:Array>
                </mx:series>
                <mx:secondSeries>       
                        <mx:Array>
                          
                                <mx:LineSeries showDataEffect="{wipeOut}"
resizeEffect="{wipeOut}" creationCompleteEffect="{wipeOut}"
id="linie2" xField="time" yField="goal" form="segment"
lineSegmentRenderer="mx.charts.renderers.LineRenderer"
displayName="Goal" styleName="shd"><mx:lineStroke>
        <mx:Stroke color="#63c007" weight="2"/>
</mx:lineStroke>
</mx:LineSeries>

                                                <mx:PlotSeries 
interactive="true"
creationComplete="not(0x870026,0x008726,0x268700);" id="plots"
name="changes" dataProvider="{annoArr}"
itemRenderer="Renderers.FlagRenderer" xField="time" yField="goal"/>
<!--creationComplete="not(0x87f326,0xf38726,0x2687f3);" -->
                        </mx:Array>
                </mx:secondSeries>           
              

                    
              
</mx:LineChart> 
 <mx:ComboBox id="combo" dataProvider="{cards}" width="200"
x="{linWidth-220}" change="comboCha(event);" />

 <mx:DataGrid id="dataG" showEffect="{wipeOut}"
hideEffect="{wipeDown}" dataProvider="{dataP}" width="{dgWidth}">
        <mx:columns>
            <mx:Array>
                <mx:DataGridColumn  dataField="name" headerText="Name"/>
                <mx:DataGridColumn  dataField="type" headerText="Type"/> 
                <mx:DataGridColumn  id="datagridChange"
dataField="change" headerText="Change"/>            
            </mx:Array>
        </mx:columns>
 </mx:DataGrid>
 <!--mx:Button click="changeArr()" label="change"/-->
        
 
</mx:Application>

#### the redefined renderer
package Renderers{ // Empty package.
    
    import mx.charts.series.items.PlotSeriesItem;
    import mx.charts.chartClasses.*;
    import mx.charts.PlotChart;
    import mx.skins.ProgrammaticSkin;
    import mx.core.IDataRenderer;
    import flash.display.Graphics;
    import flash.display.Sprite;
    
    public class FlagRenderer extends mx.skins.ProgrammaticSkin 
        implements IDataRenderer {
        
        private var colors:Array = [0xFF0000,0x00FF00,0x0000FF];
        private var _chartItem:PlotSeriesItem;
        public var flag:Sprite=new Sprite();
        public var communicate_out:String;
        
        public function FlagRenderer() {
            // Empty constructor.
        }
        
        public function get data():Object {
            return _chartItem;
        }

        public function set data(value:Object):void {
            _chartItem = value as PlotSeriesItem; 
            invalidateDisplayList();
        }


        override protected function
           
updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void {
                super.updateDisplayList(unscaledWidth, unscaledHeight);
                var g:Graphics = graphics;
                g.clear();  
                flag.x=_chartItem.x;
                flag.y=_chartItem.y;
                flag.name=_chartItem.index.toString();
//                _chartItem.element.name+_chartItem.index.toString();
                flag.graphics.clear();
               flag.graphics.beginFill(colors[(_chartItem == null)?
0:_chartItem.index]);
                flag.graphics.drawCircle(0,0,3);
                trace(_chartItem.x+" :x|y: "+_chartItem.y
+"||"+_chartItem.index);
                trace(flag.name);
               trace("name"+_chartItem.element.parent.name);
                          
               _chartItem.element.parent.addChild(flag);
                trace("sti"+_chartItem.element.name);  
               
//itemRenderer.parent.parent.parent.parent.parent.alpha=0.2;
               // communicate_out=_chartItem.x.toString();         
                //g.drawRect(0, 0, 1, 1);
                //g.endFill();
        }
    } // Close class.
} // Close package.

### the xml: testgraph.xml
<?xml version="1.0" encoding="utf-8" ?>
<goal type="conversion" typeabbr="con">
<goalspan type="Week">
<plot achieved="17.5" goal="115" time="34"/>
<plot achieved="17.5" goal="115" time="36">
 <flagtivities> 
  <flag type="started">
        <activity name="Skinner Campaign 3" type="PPC"/>
        <activity name="MSN 3" type="Banner"/>
        <activity name="Newsletter 3" type="Email"/>
        <activity name="Helix Hotel Dublin 3" type="PPC"/>
        <activity name="Hotel London 3" type="PPC"/>
        <activity name="CNN 3" type="Banner"/>
        <activity name="Travel.com 3" type="Affiliate"/>
        <activity name="Hotel New York 3" type="PPC"/>
        <activity name="Cnet 3" type="Banner"/>
        </flag> 
        <flag type="changed">
        <activity name="Campaign Summer" type="PPC" change="Cost"/>
        <activity name="MSN" type="Banner" change="Creative"/>
        <activity name="Newsletter" type="Email" change="Duration"/>
        <activity name="Hannah Hotel Dublin" type="PPC"
change="Keywords"/>
        <activity name="Hotel London" type="PPC" change="Cost"/>
        <activity name="CNN" type="Banner" change="Creative"/>
        <activity name="Travel.com" type="Affiliate" change="Duration"/>
        <activity name="Hotel New York" type="PPC" change="Keywords"/>
        <activity name="Cnet" type="Banner" change="Creative"/>
        </flag>
          <flag type="ended">
        <activity name="Twister Campaign 2" type="PPC"/>
        <activity name="MSN 2" type="Banner"/>
        <activity name="Newsletter 2" type="Email"/>
        <activity name="Hotel Dublin 2" type="PPC"/>
        <activity name="Hostile Hotel London 2" type="PPC"/>
        <activity name="CNN 2" type="Banner"/>
        <activity name="Travel.com 2" type="Affiliate"/>
        <activity name="Hotel New York 2" type="PPC"/>
        <activity name="Cnet 2" type="Banner"/>
        </flag> 
        <blag>djf</blag>
        </flagtivities>
        </plot>

<plot achieved="12.5" goal="105" time="37"/>
<plot achieved="10" goal="405" time="38"><flagtivities>
      <flag type="started">
        <activity name="Skinner Campaign 3" type="PPC"/>
        <activity name="MSN 3" type="Banner"/>
        <activity name="Newsletter 3" type="Email"/>
        <activity name="Huntel Dublin 3" type="PPC"/>
        <activity name="Hotel London 3" type="PPC"/>
        <activity name="CNN 3" type="Banner"/>
        <activity name="Travel.com 3" type="Affiliate"/>
        <activity name="Hotel New York 3" type="PPC"/>
        <activity name="Cnet 3" type="Banner"/>
        </flag></flagtivities></plot>
<plot achieved="12.5" goal="410" time="39"/>
<plot achieved="17.5" goal="310" time="40"> <flagtivities> 
  <flag type="started">
        <activity name="Skinner Campaign 3" type="PPC"/>
        <activity name="MSN 3" type="Banner"/>
        <activity name="Newsletter 3" type="Email"/>
        <activity name="Robotel Dublin 3" type="PPC"/>
        <activity name="Hotel London 3" type="PPC"/>
        <activity name="CNN 3" type="Banner"/>
        <activity name="Travel.com 3" type="Affiliate"/>
        <activity name="Hotel New York 3" type="PPC"/>
        <activity name="Cnet 3" type="Banner"/>
        </flag>
        <flag type="changed">
        <activity name="Political Campaign" type="PPC" change="Cost"/>
        <activity name="MSN" type="Banner" change="Creative"/>
        <activity name="Newsletter" type="Email" change="Duration"/>
        <activity name="Hottle Dublin" type="PPC" change="Keywords"/>
        <activity name="Hotel London" type="PPC" change="Cost"/>
        <activity name="CNN" type="Banner" change="Creative"/>
        <activity name="Travel.com" type="Affiliate" change="Duration"/>
        <activity name="Hotel New York" type="PPC" change="Keywords"/>
        <activity name="Cnet" type="Banner" change="Creative"/>
        </flag>
               <flag type="ended">
        <activity name="Twister Campaign 2" type="PPC"/>
        <activity name="MSN 2" type="Banner"/>
        <activity name="Newsletter 2" type="Email"/>
        <activity name="Hotel Dublin 2" type="PPC"/>
        <activity name="Hostile Hotel London 2" type="PPC"/>
        <activity name="CNN 2" type="Banner"/>
        <activity name="Travel.com 2" type="Affiliate"/>
        <activity name="Hotel New York 2" type="PPC"/>
        <activity name="Cnet 2" type="Banner"/>
        </flag> 
        </flagtivities>
        </plot>
<plot achieved="15" goal="-210" time="41"/>
<plot achieved="17.5" goal="-110" time="42"/>
<plot achieved="-15" goal="-100" time="43"/>
</goalspan>
</goal>


### the xml: testgraph2.xml
<?xml version="1.0" encoding="utf-8" ?>
<goal type="conversion" typeabbr="con">
<goalspan type="Week">
<plot achieved="900317.5" goal="90115" time="34"/>
<plot achieved="90217.5" goal="19015" time="36">
 <flagtivities> 
  <flag type="started">
        <activity name="Skinner Campaign 3" type="PPC"/>
        <activity name="MSN 3" type="Banner"/>
        <activity name="Newsletter 3" type="Email"/>
        <activity name="Helix Hotel Dublin 3" type="PPC"/>
        <activity name="Hotel London 3" type="PPC"/>
        <activity name="CNN 3" type="Banner"/>
        <activity name="Travel.com 3" type="Affiliate"/>
        <activity name="Hotel New York 3" type="PPC"/>
        <activity name="Cnet 3" type="Banner"/>
        </flag> 
        <flag type="changed">
        <activity name="Campaign Summer" type="PPC" change="Cost"/>
        <activity name="MSN" type="Banner" change="Creative"/>
        <activity name="Newsletter" type="Email" change="Duration"/>
        <activity name="Hannah Hotel Dublin" type="PPC"
change="Keywords"/>
        <activity name="Hotel London" type="PPC" change="Cost"/>
        <activity name="CNN" type="Banner" change="Creative"/>
        <activity name="Travel.com" type="Affiliate" change="Duration"/>
        <activity name="Hotel New York" type="PPC" change="Keywords"/>
        <activity name="Cnet" type="Banner" change="Creative"/>
        </flag>
          <flag type="ended">
        <activity name="Twister Campaign 2" type="PPC"/>
        <activity name="MSN 2" type="Banner"/>
        <activity name="Newsletter 2" type="Email"/>
        <activity name="Hotel Dublin 2" type="PPC"/>
        <activity name="Hostile Hotel London 2" type="PPC"/>
        <activity name="CNN 2" type="Banner"/>
        <activity name="Travel.com 2" type="Affiliate"/>
        <activity name="Hotel New York 2" type="PPC"/>
        <activity name="Cnet 2" type="Banner"/>
        </flag> 
        <blag>djf</blag>
        </flagtivities>
        </plot>

<plot achieved="10012.5" goal="10905" time="37"/>
<plot achieved="18830" goal="90405" time="38"><flagtivities>

      <flag type="started">
        <activity name="Skinner Campaign 3" type="PPC"/>
        <activity name="MSN 3" type="Banner"/>
        <activity name="Newsletter 3" type="Email"/>
        <activity name="Huntel Dublin 3" type="PPC"/>
        <activity name="Hotel London 3" type="PPC"/>
        <activity name="CNN 3" type="Banner"/>
        <activity name="Travel.com 3" type="Affiliate"/>
        <activity name="Hotel New York 3" type="PPC"/>
        <activity name="Cnet 3" type="Banner"/>
        </flag>
          <flag type="changed">
        <activity name="Political Campaign" type="PPC" change="Cost"/>
        <activity name="MSN" type="Banner" change="Creative"/>
        <activity name="Newsletter" type="Email" change="Duration"/>
        <activity name="Hottle Dublin" type="PPC" change="Keywords"/>
        <activity name="Hotel London" type="PPC" change="Cost"/>
        <activity name="CNN" type="Banner" change="Creative"/>
        <activity name="Travel.com" type="Affiliate" change="Duration"/>
        <activity name="Hotel New York" type="PPC" change="Keywords"/>
        <activity name="Cnet" type="Banner" change="Creative"/>
        </flag>
        </flagtivities></plot>
<plot achieved="212555.5" goal="41090" time="39"/>
<plot achieved="174441.5" goal="31900" time="40"> <flagtivities> 
  <flag type="started">
        <activity name="Skinner Campaign 3" type="PPC"/>
        <activity name="MSN 3" type="Banner"/>
        <activity name="Newsletter 3" type="Email"/>
        <activity name="Robotel Dublin 3" type="PPC"/>
        <activity name="Hotel London 3" type="PPC"/>
        <activity name="CNN 3" type="Banner"/>
        <activity name="Travel.com 3" type="Affiliate"/>
        <activity name="Hotel New York 3" type="PPC"/>
        <activity name="Cnet 3" type="Banner"/>
        </flag>
        </flagtivities>
        </plot>
<plot achieved="155553" goal="-21900" time="41"/>
<plot achieved="17333.25" goal="-19010" time="42"/>
<plot achieved="-114445" goal="-90100" time="43"/>
</goalspan>
</goal>

and so on.......






------------------------ Yahoo! Groups Sponsor --------------------~--> 
Home is just a click away.  Make Yahoo! your home page now.
http://us.click.yahoo.com/DHchtC/3FxNAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~-> 

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to