                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=__MT;window.__noTrace=false;}


if(!vp.dialogs)
{
vp.dialogs=function dialogs(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}};
}

if(!vp.dialogs.proxybase)
{
vp.dialogs.proxybase=function dialogs_proxybase(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}};
}



vp.dialogs.proxybase.proxies=[];






vp.dialogs.proxybase.getProxy=function dialogs_proxybase_getProxy(sName)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}




return vp.dialogs.proxybase.proxies[sName];
};


vp.dialogs.proxybase.Proxy=function dialogs_proxybase_Proxy(sName)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


var me=this;


var sActiveDialogName;


var navHistory=[];


var bInitialized=false;




this.flowMapping=[];




this.flowKeys=[];




this.buttons=[];




this.dialogReplacableContentNode;




this.modalDialogName;




this.myName=sName;




this.constructorList=[];




this.dialogConstructors=[];




this.dialogPointers=[];




this.data;




this.callback;




this.parameters=[];


this.sLogUrl;




this.cancelled=true;






var log=function pv_log(oUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

oUrl.setItem("ts",new Date().valueOf());

var fnLog=function pv_fnLog()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

vp.http.ping(this.url);

}.getClosure({url:oUrl.toString()});


setTimeout(fnLog,0);
};





this.goBack=function pb_this_goBack(sTarget)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(sTarget)
{
if(!me.flowMapping[sTarget])

{
throw"Could not find previous target!";
}
me.navHistory.push(sActiveDialogName);
goToTarget(me.flowMapping[sTarget]);
}
else
{
var navDest;
if(me.navHistory.length<1)
{
throw"Could not go back, no previous history elements found";
}

navDest=navHistory.pop();
goToTarget(navDest);
}

};





this.goNext=function pb_this_goNext(sTarget)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!sTarget)
{
sTarget=getActiveDialogPointer().nextTarget;
}
if(!me.flowMapping[sTarget])
{
throw"Could not find next target!";
}

navHistory.push(sTarget);
goToTarget(sTarget);
};




var getActiveDialogPointer=function pv_getActiveDialogPointer()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!sActiveDialogName)
{
throw"Unable to get active dialog pointer";
}

var activeDialogPointer=me.dialogPointers[sActiveDialogName];

if(!activeDialogPointer)
{
throw"Unable to get active dialog pointer";
}
};




this.hasNext=function pb_this_hasNext()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


if(me.flowMapping[sActiveDialogName])
{
return true;
}

return false;

};




this.hasPrevious=function pb_this_hasPrevious()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


if(navHistory.length>0)
{
return true;
}

return false;
};











this.launchDialog=function pb_this_launchDialog(top,left)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(!me.bInitialized)
{
initialize();
me.bInitialized=true;
}

var oDialog=vp.dialog.get(me.modalDialogName);
oDialog.options.contentLeftMargin="1";
oDialog.options.contentRightMargin="0";


oDialog.onclose.removeAll();

oDialog.onclose.addHandler(finish);


if(!sActiveDialogName)
{
sActiveDialogName=getFirstDialogInFlow();
}

vp.ui.get(sActiveDialogName+'-'+sName).style.display="block";

if(me.hasNext())
{

}
else
{

}

if(me.hasPrevious())
{

}
else
{

}


vp.ui.get(me.dialogReplacableContentNode).style.display="block";

me.dialogPointers[sActiveDialogName].onbeforeload.fire();


if(typeof(top)=="number"&&typeof(left)=="number")
{



oDialog.rect.top=top;
oDialog.rect.left=left;
}
oDialog.open();


me.dialogPointers[sActiveDialogName].onload.fire();

if(me.sLogUrl)
{
var oLogUrl=new vp.web.URL(me.sLogUrl);
oLogUrl.setItem("logtype","open");
oLogUrl.setItem("dialog_name",me.modalDialogName);
oLogUrl.setItem("dialog_tab_name",sActiveDialogName);
log(oLogUrl);
}

};





var displayDialog=function pv_displayDialog(sDialogToDisplay)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.dialogPointers[sDialogToDisplay].onbeforeload.fire();

vp.ui.get(sDialogToDisplay+'-'+sName).style.display="block";

me.dialogPointers[sDialogToDisplay].onload.fire();

if(me.sLogUrl)
{
var oLogUrl=new vp.web.URL(me.sLogUrl);
oLogUrl.setItem("logtype","opentab");
oLogUrl.setItem("dialog_name",me.modalDialogName);
oLogUrl.setItem("dialog_tab_name",sDialogToDisplay);
log(oLogUrl);
}

};





var hideDialog=function pv_hideDialog(sDialogToHide)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.dialogPointers[sDialogToHide].onbeforeunload.fire();

vp.ui.get(sDialogToHide+'-'+sName).style.display="none";

me.dialogPointers[sDialogToHide].onunload.fire();
};




var getFirstDialogInFlow=function pv_getFirstDialogInFlow()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.flowKeys.length<1)
{
throw"Nothing to display!";
}

return me.flowMapping[me.flowKeys[0]];
};





var goToTarget=function pv_goToTarget(sTarget)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
hideDialog(sActiveDialogName);

sActiveDialogName=sTarget;

displayDialog(sActiveDialogName);
};




this.createDialogs=function pb_this_createDialogs()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var func;
for(var i=0;i<me.constructorList.length;i++)
{
func=eval("func = ("+me.constructorList[i]+");");
me.dialogConstructors.push(func);
}

configureDialog();
};





this.registerDialogPointer=function pb_this_registerDialogPointer(oDialogPointer)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.dialogPointers[oDialogPointer.contentNodeName]=oDialogPointer;
};






this.registerButton=function pb_this_registerButton(sButton)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.buttons.contains[sButton])
{
throw"Cannot add duplicate button ("+sButton+") to the button collection";
}

me.buttons.push(sButton);
};





var configureDialog=function pv_configureDialog()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oDialog=vp.dialog.get(me.modalDialogName);

oDialog.replaceContentNode(vp.ui.get(me.dialogReplacableContentNode));
};




var initialize=function pv_initialize()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
for(var i=0;i<me.dialogConstructors.length;i++)
{
me.dialogConstructors[i](me);
}
};




var finish=function pv_finish()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.dialogPointers[sActiveDialogName].onbeforeunload.fire();

if(!me.cancelled&&me.callback)

{
me.cancelled=true;

me.callback(me.data);
}

me.dialogPointers[sActiveDialogName].onunload.fire();

if(me.sLogUrl)
{
var oLogUrl=new vp.web.URL(me.sLogUrl);
oLogUrl.setItem("dialog_name",me.modalDialogName);
if(me.bCancelled)
{
oLogUrl.setItem("logtype","cancel");
}else
{
oLogUrl.setItem("logtype","close");
}
oLogUrl.setItem("dialog_active_tab_name",sActiveDialogName);
log(oLogUrl);
}
};


vp.dialogs.proxybase.proxies[me.myName]=this;
};
