
function ModalDialog(){}
ModalDialog.isRendered=false;ModalDialog.parent=null;ModalDialog.classPageMask="modalDialogPageMask";ModalDialog.classContentMask="modalDialogContentMask";ModalDialog.classDialog="modalDialog";ModalDialog.classTitleBar="modalDialogTitleBar";ModalDialog.classTitleBarText="modalDialogTitleBarText";ModalDialog.classTitleBarControls="modalDialogTitleBarControls";ModalDialog.classNonSelectableText="nonSelectableText";ModalDialog.okButtonText="OK";ModalDialog.cancelButtonText="Cancel"
ModalDialog.promptTitleText="Prompt";ModalDialog.oldOnMouseUp=document.onmouseup;ModalDialog.oldOnMouseMove=document.onmousemove;ModalDialog.okButton=null;ModalDialog.cancelButton=null;ModalDialog.render=function(){if(ModalDialog.parent==null)
ModalDialog.parent=document.body;var divPageMask=document.createElement("div");divPageMask.className=ModalDialog.classPageMask;addEvent(divPageMask,"contextmenu",cancelEvent);setOpacity(divPageMask,4);ModalDialog.parent.appendChild(divPageMask);var divDialog=document.createElement("div");divDialog.className=ModalDialog.classDialog;var divTitleBar=document.createElement("div");divTitleBar.className=ModalDialog.classTitleBar;divTitleBar.style.padding="3px";divTitleBar.style.cursor="default";addEvent(divTitleBar,"mousedown",ModalDialog.onMoveStart);addEvent(divTitleBar,"contextmenu",cancelEvent);addEvent(divTitleBar,"selectstart",cancelEvent);var divTitle=document.createElement("div");var textNode=document.createTextNode("\u00a0");divTitle.appendChild(textNode);divTitle.className=ModalDialog.classTitleBarText;var divControls=document.createElement("div");divControls.className=ModalDialog.classTitleBarControls;var imgClose=new Image();imgClose.src=ModalDialog.iconClose;imgClose.style.width="15px";imgClose.style.height="15px";addEvent(imgClose,"click",ModalDialog.close);divControls.appendChild(imgClose);divTitleBar.appendChild(divTitle);divTitleBar.appendChild(divControls);divDialog.appendChild(divTitleBar);var divContent=document.createElement("div");divDialog.appendChild(divContent);var divContentMask=document.createElement("div");divContentMask.className=ModalDialog.classContentMask;setOpacity(divContentMask,4);divDialog.appendChild(divContentMask);ModalDialog.parent.appendChild(divDialog);divDialog.style.left="-1000px";divDialog.style.top="-1000px";divDialog.style.display="block";divControls.style.height=divTitle.offsetHeight+"px";imgClose.style.marginTop=(divTitle.offsetHeight-imgClose.height)/2+"px";divTitleBar.style.height=divTitle.offsetHeight+"px";ModalDialog.divPageMask=divPageMask;ModalDialog.divDialog=divDialog;ModalDialog.divTitleBar=divTitleBar;ModalDialog.textTitle=textNode;ModalDialog.divContent=divContent;ModalDialog.divContentMask=divContentMask;ModalDialog.isRendered=true;}
ModalDialog.show=function(url,width,height,titleText){if(!ModalDialog.isRendered)
ModalDialog.render();var frameContent=document.createElement("iframe");frameContent.style.backgroundColor="transparent";frameContent.allowTransparency="true";frameContent.scrolling="no";frameContent.frameBorder="0";ModalDialog.divContent.appendChild(frameContent);ModalDialog.frameContent=frameContent;ModalDialog.setTitle(titleText);ModalDialog.onParentResize();ModalDialog.divPageMask.style.display="block";ModalDialog.divDialog.style.display="block";ModalDialog.width=width;ModalDialog.height=height;ModalDialog.resize(width,height);ModalDialog.center();addEvent(window,"resize",ModalDialog.onParentResize);ModalDialog.frameContent.src=url;}
ModalDialog.prompt=function(message,defaultInput,returnFunction,validateFunction){if(!ModalDialog.isRendered)
ModalDialog.render();var table=document.createElement("table");table.border=0;table.cellPadding=8;table.cellSpacing=0;table.style.width="100%";table.style.height="100%";table.style.fontSize="1em";addEvent(table,"contextmenu",cancelEventExceptForTextInput);addEvent(table,"selectstart",cancelEventExceptForTextInput);addEvent(table,"dragstart",cancelEventExceptForTextInput);var tbody=document.createElement("tbody");var row1=document.createElement("tr");row1.className=ModalDialog.classNonSelectableText;var cell1=document.createElement("td");var image1=new Image();image1.border=0;image1.width=32;image1.height=32;image1.src=ModalDialog.iconPrompt;cell1.appendChild(image1);row1.appendChild(cell1);var cell2=document.createElement("td");var text1=document.createTextNode(message);cell2.appendChild(text1);row1.appendChild(cell2);var row2=document.createElement("tr");var cell3=document.createElement("td");row2.appendChild(cell3);var cell4=document.createElement("td");var input1=document.createElement('input');input1.type="text";input1.style.width="300px";input1.value=defaultInput;cell4.appendChild(input1);row2.appendChild(cell4);var row3=document.createElement("tr");row3.className=ModalDialog.classNonSelectableText;var cell5=document.createElement("td");cell5.colSpan=2;cell5.align="center";var button1=document.createElement('input');button1.type="button";button1.value=ModalDialog.okButtonText;button1.style.width="82px";button1.style.height="26px";addEvent(button1,"click",function(e){var input=input1.value;if(validateFunction(input)){ModalDialog.close();returnFunction(input);}
else{if(input1.value=="")input1.value=defaultInput;input1.select();}});cell5.appendChild(button1);var text2=document.createTextNode("\u00a0\u00a0");cell5.appendChild(text2);var button2=document.createElement('input');button2.type="button";button2.value=ModalDialog.cancelButtonText;button2.style.width="82px";button2.style.height="26px";addEvent(button2,"click",function(e){ModalDialog.close();returnFunction(null);});cell5.appendChild(button2);row3.appendChild(cell5);tbody.appendChild(row1);tbody.appendChild(row2);tbody.appendChild(row3);table.appendChild(tbody);ModalDialog.divContent.appendChild(table);ModalDialog.setTitle(ModalDialog.promptTitleText);ModalDialog.onParentResize();ModalDialog.divPageMask.style.display="block";ModalDialog.divDialog.style.display="block";ModalDialog.resize(375,135);ModalDialog.center();input1.select();addEvent(window,"resize",ModalDialog.onParentResize);ModalDialog.okButton=button1;ModalDialog.cancelButton=button2;addEvent(ModalDialog.parent,"keydown",ModalDialog.onKeyDown);}
ModalDialog.onKeyDown=function(e){if(!e)var e=window.event;switch(e.keyCode){case 13:ModalDialog.okButton.click();return false;break;case 27:ModalDialog.cancelButton.click();return false;break;}}
ModalDialog.resize=function(width,height){ModalDialog.divTitleBar.style.width=width+"px";ModalDialog.divContent.style.width=width+"px";ModalDialog.divContent.style.height=height+"px";if(ModalDialog.frameContent){ModalDialog.frameContent.style.width=width+"px";ModalDialog.frameContent.style.height=height+"px";}
ModalDialog.divContentMask.style.left=ModalDialog.divContent.offsetLeft+"px";ModalDialog.divContentMask.style.top=ModalDialog.divContent.offsetTop+"px";ModalDialog.divContentMask.style.width=width+"px";ModalDialog.divContentMask.style.height=height+"px";}
ModalDialog.center=function(){var dialogWidth=ModalDialog.divDialog.offsetWidth;var dialogHeight=ModalDialog.divDialog.offsetHeight;var parentPosition=findPosition(ModalDialog.parent);ModalDialog.divDialog.style.left=parentPosition[0]+(ModalDialog.getParentWidth()-dialogWidth)/2+"px";ModalDialog.divDialog.style.top=parentPosition[1]+(ModalDialog.getParentHeight()-dialogHeight)/2+"px";}
ModalDialog.getParentWidth=function(){if(ModalDialog.parent==document.body)
return Viewport.getWidth();else
return ModalDialog.parent.offsetWidth;}
ModalDialog.getParentHeight=function(){if(ModalDialog.parent==document.body)
return Viewport.getHeight();else
return ModalDialog.parent.offsetHeight;}
ModalDialog.close=function(){ModalDialog.divPageMask.style.display="none";ModalDialog.divDialog.style.display="none";while(ModalDialog.divContent.hasChildNodes())
ModalDialog.divContent.removeChild(ModalDialog.divContent.firstChild);removeEvent(window,"resize",ModalDialog.onParentResize);removeEvent(ModalDialog.parent,"keydown",ModalDialog.onKeyDown);}
ModalDialog.setTitle=function(titleText){ModalDialog.textTitle.nodeValue=titleText?titleText:"\u00a0";}
ModalDialog.fitToContent=function(doc){var w,h;if(doc.documentElement&&(doc.documentElement.scrollWidth||doc.documentElement.scrollHeight)){w=doc.documentElement.scrollWidth;h=doc.documentElement.scrollHeight;}else if(document.body){w=doc.body.scrollWidth;h=doc.body.scrollHeight;}
if(w>ModalDialog.width||h>ModalDialog.height){ModalDialog.resize(w,h);ModalDialog.center();}}
ModalDialog.onMoveStart=function(e){if(!e)var e=window.event;ModalDialog.onMoveStop(e);var leftButton=(e.which)?(e.which==1):(e.button==1);if(!leftButton)return;var mouseX=(e.pageX)?e.pageX:e.clientX+document.body.scrollLeft;var mouseY=(e.pageY)?e.pageY:e.clientY+document.body.scrollTop;ModalDialog.relativeMouseX=mouseX-ModalDialog.divDialog.offsetLeft;ModalDialog.relativeMouseY=mouseY-ModalDialog.divDialog.offsetTop;addEvent(ModalDialog.parent,"mouseup",ModalDialog.onMoveStop);addEvent(ModalDialog.parent,"mousemove",ModalDialog.onMove);ModalDialog.divContentMask.style.display="block";}
ModalDialog.onMoveStop=function(e){removeEvent(ModalDialog.parent,"mouseup",ModalDialog.onMoveStop);removeEvent(ModalDialog.parent,"mousemove",ModalDialog.onMove);ModalDialog.divContentMask.style.display="none";}
ModalDialog.onMove=function(e){if(!e)var e=window.event;var leftButton=(e.which)?(e.which==1):(e.button==1);if(!leftButton)
ModalDialog.onMoveStop(e);var mouseX=(e.pageX)?e.pageX:e.clientX+document.body.scrollLeft;var mouseY=(e.pageY)?e.pageY:e.clientY+document.body.scrollTop;ModalDialog.divDialog.style.left=mouseX-ModalDialog.relativeMouseX+"px";ModalDialog.divDialog.style.top=mouseY-ModalDialog.relativeMouseY+"px";}
ModalDialog.onParentResize=function(e){var parentPosition=findPosition(ModalDialog.parent);ModalDialog.divPageMask.style.left=parentPosition[0]+"px";ModalDialog.divPageMask.style.top=parentPosition[1]+"px";ModalDialog.divPageMask.style.width=ModalDialog.getParentWidth()+"px";ModalDialog.divPageMask.style.height=ModalDialog.getParentHeight()+"px";}