var activityTypes = new Array(
"AjaxRequest","AjaxResponse","CloudDelay","CloudHttpReceive","CloudHttpSend","CloudServiceBusSend","CloudXPathRead","CloudXPathUpdate","CodeActivity","EventDrivenActivity","GetTraffic","IfElseActivity","IfElseBranchActivity","ListenActivity","SendMailActivity","SendSMSActivity","SequenceActivity","SuspendActivity","TerminateActivity","WhileActivity"
)

var cssFiles = new Array()
cssFiles[0]="CloudDelay.css";
 cssFiles[1]="CloudHttpReceive.css";
 cssFiles[2]="CloudHttpSend.css";
 cssFiles[3]="CloudSequentialWorkflow.css";
 cssFiles[4]="CloudServiceBusSend.css";
 cssFiles[5]="CloudXPathRead.css";
 cssFiles[6]="CloudXPathUpdate.css";
 cssFiles[7]="GetTraffic.css";
 cssFiles[8]="PingActivity.css";
 cssFiles[9]="SendMailActivity.css";
 cssFiles[10]="SendSMSActivity.css";
 

function AddScript(url)
{
    var e = document.createElement("script");
    e.src = url;
    e.type = "text/javascript";
    document.getElementsByTagName("head")[0].appendChild(e);
}

function AddCSS(url)
{
    var e = document.createElement("link");
    e.href = url;
    e.rel="stylesheet";
    e.type = "text/css";
    document.getElementsByTagName("head")[0].appendChild(e);
}

function WorkflowDesigner()
{
    
}

WorkflowDesigner.prototype = 
{
    Initialize : function(element){       
       this.wfelement = element;
    },
    Open : function(username,workflowname){       
        this.UserName = username;
        this.WorkflowName = workflowname;
        WorkflowDesigner.static_instance = this;
        this.LoadScripts();
        },
    CreateElements : function(){
               
        this.wfelement.className="workflowView";
	    
	    var designer = document.createElement("DIV");
        designer.id="designerdiv";
        designer.className = "designer";
        var map = document.createElement("DIV");
        map.id="mapdiv";
        map.className = "map";
        map.onmousedown=sldMouseDown;
        map.onmouseup=sldMouseUp;
        var workflowElement = document.createElement("DIV");
        workflowElement.id="WorkflowElement";
        workflowElement.className = "workflow";
        map.appendChild(workflowElement);
        designer.appendChild(map);
        
        var scrolldownarrow = document.createElement("DIV");
        scrolldownarrow.id="scrolldownarrow";
        scrolldownarrow.className = "scrolldown";
        scrolldownarrow.onmouseenter=startScrollDown;
        scrolldownarrow.onmouseleave=stopScrollDown;
        scrolldownarrow.innerHTML = "<img src=\"http://netfxlive.com/images/scrolldown.GIF\"/>";
        designer.appendChild(scrolldownarrow);
        
        var scrolluparrow = document.createElement("DIV");
        scrolluparrow.id="scrolluparrow";
        scrolluparrow.className = "scrollup";
        scrolluparrow.onmouseenter=startScrollUp;
        scrolluparrow.onmouseleave=stopScrollUp;
        scrolluparrow.innerHTML = "<img src=\"http://netfxlive.com/images/scrollup.GIF\"/>";
        designer.appendChild(scrolluparrow);
        
        var scrollleftarrow = document.createElement("DIV");
        scrollleftarrow.id="scrollleftarrow";
        scrollleftarrow.className = "scrollleft";
        scrollleftarrow.onmouseenter=startScrollLeft;
        scrollleftarrow.onmouseleave=stopScrollLeft;
        scrollleftarrow.innerHTML = "<img src=\"http://netfxlive.com/images/scrollleft.GIF\"/>";
        designer.appendChild(scrollleftarrow);
        
        var scrollrightarrow = document.createElement("DIV");
        scrollrightarrow.id="scrollrightarrow";
        scrollrightarrow.className = "scrollright";
        scrollrightarrow.onmouseenter=startScrollRight;
        scrollrightarrow.onmouseleave=stopScrollRight;
        scrollrightarrow.innerHTML = "<img src=\"http://netfxlive.com/images/scrollright.GIF\"/>";
        designer.appendChild(scrollrightarrow);
        
        this.wfelement.appendChild(designer);

        var sourcecodediv = document.createElement("DIV");
        sourcecodediv.id="sourcecodediv";
        sourcecodediv.className = "sourcecode";
        this.wfelement.appendChild(sourcecodediv);
        
        var rulesdiv = document.createElement("DIV");
        rulesdiv.id="rulesdiv";
        rulesdiv.className = "rules";
        this.wfelement.appendChild(rulesdiv);
        
        var codediv = document.createElement("DIV");
        codediv.id="codediv";
        codediv.className = "code";
        this.wfelement.appendChild(codediv);        
    
        var designertabdiv = document.createElement("DIV");
        designertabdiv.id="designertabdiv";
        designertabdiv.className = "designertab";
        designertabdiv.onclick=ShowDesigner;
        designertabdiv.innerText="Design";
        this.wfelement.appendChild(designertabdiv);                 
 
        var sourcecodetabdiv = document.createElement("DIV");
        sourcecodetabdiv.id="sourcecodetabdiv";
        sourcecodetabdiv.className = "sourcecodetab";
        sourcecodetabdiv.onclick=ShowSourceCode;
        sourcecodetabdiv.innerText="Xoml";
        this.wfelement.appendChild(sourcecodetabdiv);     
        
        var rulestabdiv = document.createElement("DIV");
        rulestabdiv.id="rulestabdiv";
        rulestabdiv.className = "rulestab";
        rulestabdiv.onclick=ShowRules;
        rulestabdiv.innerText="Rules";
        this.wfelement.appendChild(rulestabdiv);     
        
        var codetabdiv = document.createElement("DIV");
        codetabdiv.id="codetabdiv";
        codetabdiv.className = "codetab";
        codetabdiv.onclick=ShowCode;
        codetabdiv.innerText="Code";
        this.wfelement.appendChild(codetabdiv);     
        workflowView = this.wfelement;               
        OpenMyWorkflow(this.UserName,this.WorkflowName);
    },
    LoadScripts : function(){
    

        AddCSS("http://netfxlive.com/MyWorkflow.css");
        AddCSS("http://netfxlive.com/Activities.css");

        AddCSS("http://netfxlive.com/css/CloudDelay.css");  
AddCSS("http://netfxlive.com/css/CloudHttpReceive.css");  
AddCSS("http://netfxlive.com/css/CloudHttpSend.css");  
AddCSS("http://netfxlive.com/css/CloudSequentialWorkflow.css");  
AddCSS("http://netfxlive.com/css/CloudServiceBusSend.css");  
AddCSS("http://netfxlive.com/css/CloudXPathRead.css");  
AddCSS("http://netfxlive.com/css/CloudXPathUpdate.css");  
AddCSS("http://netfxlive.com/css/GetTraffic.css");  
AddCSS("http://netfxlive.com/css/PingActivity.css");  
AddCSS("http://netfxlive.com/css/SendMailActivity.css");  
AddCSS("http://netfxlive.com/css/SendSMSActivity.css");  

        
        AddScript("http://netfxlive.com/Scripts/MyWorkflow.js");
        AddScript("http://netfxlive.com/Scripts/Xoml.js");
        AddScript("http://netfxlive.com/Scripts/Panning.js");       
        AddScript("http://netfxlive.com/Scripts/ActivityBind.js");
        AddScript("http://netfxlive.com/Activities/AjaxRequest.js");  
AddScript("http://netfxlive.com/Activities/AjaxResponse.js");  
AddScript("http://netfxlive.com/Activities/CloudDelay.js");  
AddScript("http://netfxlive.com/Activities/CloudHttpReceive.js");  
AddScript("http://netfxlive.com/Activities/CloudHttpSend.js");  
AddScript("http://netfxlive.com/Activities/CloudServiceBusSend.js");  
AddScript("http://netfxlive.com/Activities/CloudXPathRead.js");  
AddScript("http://netfxlive.com/Activities/CloudXPathUpdate.js");  
AddScript("http://netfxlive.com/Activities/CodeActivity.js");  
AddScript("http://netfxlive.com/Activities/EventDrivenActivity.js");  
AddScript("http://netfxlive.com/Activities/GetTraffic.js");  
AddScript("http://netfxlive.com/Activities/IfElseActivity.js");  
AddScript("http://netfxlive.com/Activities/IfElseBranchActivity.js");  
AddScript("http://netfxlive.com/Activities/ListenActivity.js");  
AddScript("http://netfxlive.com/Activities/SendMailActivity.js");  
AddScript("http://netfxlive.com/Activities/SendSMSActivity.js");  
AddScript("http://netfxlive.com/Activities/SequenceActivity.js");  
AddScript("http://netfxlive.com/Activities/SequentialWorkflowActivity.js");  
AddScript("http://netfxlive.com/Activities/SuspendActivity.js");  
AddScript("http://netfxlive.com/Activities/TerminateActivity.js");  
AddScript("http://netfxlive.com/Activities/UnknownActivity.js");  
AddScript("http://netfxlive.com/Activities/WhileActivity.js");  
 
        AddScript("http://netfxlive.com/includecallback.ashx");   
    },
    static_instance : null,
    wfelement : null,    
    UserName : null,
    WorkflowName : null
}
