// (C) 2007-2012 Qualtrics, Inc.

window.Q_Window=Class.create();Q_Window._chopOffset=null;Q_Window.getChopOffset=function()
{if(parent)
{try
{return parent.Q_Window._chopOffset;}
catch(e)
{}}
return Q_Window._chopOffset;}
Q_Window.preparePos=function(pos)
{var offset=Q_Window.getChopOffset();if(offset&&pos&&pos.length==2)
{if(offset[0])pos[0]=pos[0]-offset[0];if(offset[1])pos[1]=pos[1]-offset[1];}
return pos;}
Q_Window.registry={};Q_Window.openedOrder=[];Q_Window.getWindowCount=function()
{var reg=Q_Window.getRegistry();var count=0;for(var id in reg)
{count++;}
return count;}
Q_Window.getInstance=function(id)
{var reg=Q_Window.getRegistry();if(id)
{if(reg[id])
return reg[id];var namedWindow=Q_Window.getInstanceByWindowName(id);if(namedWindow)return namedWindow;}
else
{for(var i=Q_Window.openedOrder.length-1;i>=0;--i)
{if(reg[Q_Window.openedOrder[i]])
{return reg[Q_Window.openedOrder[i]];}}
for(id in reg)
return reg[id];}
return null;}
Q_Window.getInstanceByWindowName=function(windowName)
{var reg=Q_Window.getRegistry();var foundInstances=[];for(id in reg)
{if(reg[id].windowName==windowName)
{foundInstances.push(reg[id]);}}
if(foundInstances.length==1)
{return foundInstances[0];}
else if(foundInstances.length>1)
{var highestZIndex=-1;var highestZIndexInstance=null;for(var i=0;i<foundInstances.length;i++)
{if(foundInstances[i].zIndex>highestZIndex)
{highestZIndex=foundInstances[i].zIndex;highestZIndexInstance=foundInstances[i];}}
return highestZIndexInstance;}
return false;}
Q_Window.getRegistry=function(id)
{var reg=Q_Window.registry;reg=Q_Window.registry;return reg;}
Q_Window.getRoot=function()
{var root=window;var last=window;try
{var limit=0;while(root.parent&&limit<10)
{root.name;if(root.parent==root)
break;last=root;root=root.parent;limit++;}}
catch(e)
{return last;}
return root;}
Q_Window.setRegistry=function(windowObj)
{Q_Window.registry[windowObj.id]=windowObj;Q_Window.openedOrder.push(windowObj.id);}
Q_Window.removeFromRegistry=function(id)
{delete Q_Window.registry[id];}
Q_Window.isRegistryEmpty=function()
{for(el in Q_Window.registry)
{return false;}
return true;}
Q_Window.getWindow=function(windowName)
{return Q_Window.getInstance(windowName);}
Q_Window.closeWindow=function(windowName)
{var inst=Q_Window.getInstance(windowName);if(inst)
inst.destroy();}
Q_Window.closeAllWindows=function(windowName)
{if(windowName)
{var inst=Q_Window.getInstanceByWindowName(windowName);while(inst)
{inst.destroy();inst=Q_Window.getInstanceByWindowName(windowName);}}
else
{while(Q_Window.getInstance())
Q_Window.getInstance().destroy();}}
Q_Window.addObserver=function(windowName)
{}
Q_Window.resizeWatcher=null;Q_Window.centerTimer=null;Q_Window.centerWindows=function()
{if(Q_Window.centerTimer)
{clearTimeout(Q_Window.centerTimer);Q_Window.centerTimer=null;}
Q_Window.centerTimer=setTimeout(function(){var reg=Q_Window.getRegistry();for(id in reg)
{if(reg[id].keepCentering)
{reg[id].center();}}},50);}
Q_Window.setChopOffset=function(v)
{Q_Window._chopOffset=v;}
Q_Window.currentZIndex=10001;Q_Window.getNextZIndex=function()
{Q_Window.currentZIndex+=100;return Q_Window.currentZIndex;}
Q_Window.setCurrentZIndex=function(z)
{Q_Window.currentZIndex=z;}
Q_Window.getCurrentZIndex=function()
{return Q_Window.currentZIndex;}
Q_Window.getInstanceOrCreate=function(windowName,options)
{var win=Q_Window.getInstanceByWindowName(windowName);if(win&&options&&options.buttons!==undefined)
{if(win.footerNode)
{deleteChildren(win.footerNode);if(options.buttons)
{win.footerNode.appendChild(win.buildButtons(options.buttons));}}}
if(!win)
{win=new Q_Window(windowName,options);}
return win;}
Q_Window.prototype={width:'600px',height:'auto',element:null,headerDom:null,innerElement:null,className:'',url:null,windowName:null,id:null,keepCentering:false,buttons:null,title:null,pctHeight:null,pctWidth:null,closeButton:false,fitContents:false,padding:null,zIndex:10000,autoWidth:false,autoHeight:true,buttonReg:{},initialize:function(windowName,options,var_args)
{this.initTime=new Date();this.id=QualtricsTools.createNewId('QW');if(arguments.length==1&&typeof windowName=='object')
{options=windowName;options.id=options.id||this.id;this.windowName=options.id;if(options.id)
{this.className=options.id;}}
else
{this.windowName=windowName;this.className=windowName;}
options=options||{};this.options=options;for(option in options)
{if(option!='id')
this[option]=options[option];}
Q_Window.setRegistry(this);var startZIndex=Q_Window.getCurrentZIndex();this.setSize(this.width,this.height,false);if(options&&options.zIndex)
{this.zIndex=options.zIndex;}
else
{this.zIndex=Q_Window.getNextZIndex();}
this.zDiff=this.zIndex-startZIndex;Q_Window.setCurrentZIndex(this.zIndex);if(!options.buttons&&options.closeButton===undefined)
{options.closeButton=true;}
this.render();this.disableScroll();this.focusInput();if(options.content)
{this.setContent(options.content);}},focusInput:function(opt_node)
{var inputs=(opt_node||this.innerElement).getElementsByTagName('INPUT');if(inputs)
{for(var i=0,len=inputs.length;i<len;++i)
{var type=inputs[i].getAttribute('type');if((type=='text')&&(!inputs[i].disabled))
{Form.Element.focus(inputs[i]);break;}}}},getFocusInputFunction:function(iframe)
{var that=this;return function()
{if(that.hasBeenFocused)
{return function(){};}
that.hasBeenFocused=true;try
{that.focusInput(iframe.contentDocument||iframe.contentWindow.document);}
catch(e)
{}};},build:function()
{this.innerElement=QBuilder('div',{id:this.id,className:'Q_Window PopUp'});if(this.options.id)
{this.innerElement.id=this.options.id;}
if(this.stylesheet)
{QModules.loadStylesheet(this.stylesheet);}
this.element=QBuilder('div',{className:'Q_WindowBorder '+this.className});if(this.title)
{this.headerDom=QBuilder('div',{className:'Q_WindowHeader'},[this.buildTitle(this.title,{closeButton:this.closeButton})]);this.element.appendChild(this.headerDom);}
else if(this.headerDom)
{this.element.appendChild(this.headerDom);}
this.element.appendChild(this.innerElement);if(this.options&&this.options.closeButton&&!this.title)
{this.element.appendChild(QBuilder('div',{clickcallback:'Q_Window.destroy',instanceid:this.id,className:'Q_WindowClose'}));}
if(this.url)
{var scrolling='no';if(this.options.iframescrolling)
{scrolling='auto';}
var iframe=QBuilder('iframe',{className:'Q_WindowFrame',frameBorder:'0',scrolling:scrolling,src:this.url});var waiter=QAjaxWaiter.showMediumRing();$(iframe).hide();this.innerElement.appendChild(waiter);this.innerElement.appendChild(iframe);var that=this;(function()
{iframe.src=that.url;Event.observe(iframe,'load',function(){$(iframe).show();$(waiter).hide();that.getFocusInputFunction(iframe);Q_Window.centerWindows();if(iframe.contentDocument&&iframe.contentDocument.body&&$(iframe.contentDocument.body).addClassName)
{$(iframe.contentDocument.body).addClassName('iframe');}});}).defer();var frameHeight='100%';var frameWidth='100%';if(this.options.frameHeight)
frameHeight=this.options.frameHeight;if(this.options.frameWidth)
frameWidth=this.options.frameWidth;$(iframe).setStyle({width:frameWidth,height:frameHeight,border:'none',marginBottom:'-3px'});this.iframe=iframe;this.setSize(this.width,this.height);}
if(this.ajaxUrl)
{new Ajax.Updater(this.innerElement,this.ajaxUrl);this.setSize(this.width,this.height);}
this.footerNode=QBuilder('div',{className:'Q_WindowFooterContainer'});this.element.appendChild(this.footerNode);if(this.buttons)
{this.footerNode.appendChild(this.buildButtons(this.buttons))}
if(this.padding!==null)
{this.innerElement.style.padding=this.padding+'px';}
if(this.zIndex!==null)
{$(this.element).setStyle({zIndex:this.zIndex});}
return this.element;},updateHeader:function(domNode)
{deleteChildren(this.headerDom)
this.headerDom.appendChild(domNode);},buildButtons:function(buttonsArray)
{var footer=QBuilder('div',{className:'Q_WindowFooter'});this.leftFooterArea=QBuilder('div',{className:'LeftButtons'});;this.rightFooterArea=QBuilder('div',{className:'RightButtons'});;for(var i=0,len=buttonsArray.length;i<len;++i)
{if(buttonsArray[i]&&buttonsArray[i].align&&buttonsArray[i].align=='left')
{this.leftFooterArea.appendChild(this.buildButton(buttonsArray[i]));}
else
{this.rightFooterArea.appendChild(this.buildButton(buttonsArray[i]));}}
footer.appendChild(this.leftFooterArea);footer.appendChild(this.rightFooterArea);return footer;},buildTitle:function(title,options)
{options=options||{};var h2=QBuilder('h2');var bundle=[h2];if(typeof title=='string')
{h2.innerHTML=title;bundle=[h2];}
else if(typeof title.push=='function')
{bundle=title;}
else
{h2=QBuilder('h2',null,[title]);bundle=[h2];}
var header=QBuilder('div',{},[QBuilder('div',{className:'Q_WindowHeaderInner'},bundle)]);if(options.closeButton&&(!this.options.buttons||(this.options.buttons&&this.options.buttons.length<2)))
{header.appendChild(QBuilder('div',{clickcallback:'Q_Window.closeWindow',p1:this.windowName,instanceId:this.id,className:'Q_WindowCloseSQ'}));}
return header;},buildIframeCover:function()
{this.iFrameCover=QBuilder('iframe',{className:'Q_WindowIframeCover',src:'blank.html'});var windowHeight=window.innerHeight;if(!windowHeight||windowHeight==0)
windowHeight=document.body.clientHeight;$(this.iFrameCover).setStyle({opacity:0,zIndex:this.zIndex-2,backgroundColor:'blue',position:'absolute',left:'1px',top:'0px',width:'100%',height:windowHeight+'px'});return this.iFrameCover;},disableScroll:function()
{if($('pageDiv'))
{if(!document.body.scrollDisabled)
{var scrollInfo=QualtricsTools.getScrollInfo();var xscroll=0-scrollInfo[0];var yscroll=0-scrollInfo[1];if(Qualtrics.Browser.Gecko&&Qualtrics.Browser.Version<3)
{Q_Window.setChopOffset([xscroll,yscroll]);$('pageDiv').setStyle({position:'relative',top:yscroll+'px'});$(document.body).setStyle({overflow:'hidden'});}
else if(Qualtrics.Browser.Gecko)
{$('pageDiv').setStyle({position:'relative'});$(document.body).setStyle({overflow:'hidden'});}
else
{$(document.body.parentNode).setStyle({overflow:'hidden'});}
if(document.body.parentNode.clientHeight<document.body.parentNode.scrollHeight||Qualtrics.Browser.IE)
{var scrollBarWidth='16px';if(Qualtrics.Browser.IE)scrollBarWidth='17px';$(document.body).setStyle({marginRight:scrollBarWidth});}
document.body.scrollDisabled=true;}}},enableScroll:function()
{if($('pageDiv'))
{var chopped=Q_Window.getChopOffset();var x=chopped&&chopped[0]||0;var y=chopped&&chopped[1]||0;if(Qualtrics.Browser.Gecko&&Qualtrics.Browser.Version<3)
{$(document.body).setStyle({overflow:''});}
else if(Qualtrics.Browser.Gecko)
{$('pageDiv').setStyle({position:''});$(document.body).setStyle({overflow:''});}
else
{$(document.body.parentNode).setStyle({overflow:''});}
$(document.body).setStyle({marginRight:'0px'});$('pageDiv').setStyle({position:'',top:'',left:''});if(y||x)
{var scrollY=0-(Number(y));var scrollX=0-(Number(x));if(scrollY||scrollX)
{window.scrollTo(scrollX,scrollY);}}
Q_Window.setChopOffset(null);document.body.scrollDisabled=false;document.body.scrollTop=document.body.scrollTop+1;document.body.scrollTop=document.body.scrollTop-1;}},render:function()
{if(Qualtrics.Browser.IE&&Qualtrics.Browser.Version<7)
{document.body.appendChild(this.buildIframeCover());}
var overlayOptions={zIndex:this.zIndex-1,id:this.windowName};if(this.options.overrideOverlayWidth)
{var scrollOffsets=document.viewport.getScrollOffsets();overlayOptions.dim={width:scrollOffsets[0]+document.body.scrollWidth+'px'};}
if(this.options.overlayOpacity!==undefined)
{overlayOptions.opacity=this.options.overlayOpacity;}
if(window.Q_Overlay)
{if(this.overlayClose)
{this.overlayObj=new Q_Overlay(Object.extend(overlayOptions,{onClick:this.getCloseFunction()}));}
else
{this.overlayObj=new Q_Overlay(overlayOptions);}}
document.body.appendChild(this.build());this.center();},getResizeOffset:function(axis)
{var defaultOffset=80;if(axis=='y')
{var offset=90;if(this.title)offset+=defaultOffset;return offset;}
return defaultOffset;},getForcedDimensionPreserveScroll:function(axis,max)
{var axisString='width';if(axis=='y')axisString='height';var offset=this.getResizeOffset(axis);var innerInnerDim={width:this.innerElement.scrollWidth,height:this.innerElement.scrollHeight};if(innerInnerDim[axisString]>max-offset)
{this.innerElement.style['position']='relative';this.innerElement.style['overflow'+axis.capitalize()]='auto';return max-offset+'px';}
return false;},resize:function()
{var newHeight,newWidth;if(window.QualtricsTools)
{var windowSize=QualtricsTools.getPageSize();if(this.pctHeight||this.pctWidth)
{if(this.pctHeight)
{newHeight=String(Math.round(this.pctHeight*windowSize[3]-80));}
if(this.pctWidth)
{newWidth=String(Math.round(this.pctWidth*windowSize[2]));}}
if(!this.pctHeight)
{if(this.autoHeight)
{$(this.innerElement).setStyle({height:'auto'});}
var forcedHeight=this.getForcedDimensionPreserveScroll('y',windowSize[3]);if(forcedHeight)
{newHeight=forcedHeight;}}
if(!this.pctWidth)
{if(this.autoWidth)
{$(this.innerElement).setStyle({width:'auto'});}
var forcedWidth=this.getForcedDimensionPreserveScroll('x',windowSize[2]);if(forcedWidth)
{newWidth=forcedWidth;}}
newHeight=newHeight||this.height;newWidth=newWidth||this.width;if(newHeight&&newHeight!='auto'&&newHeight.startsWith&&!newHeight.startsWith('-'))
{var h=newHeight;if(!String(h).endsWith('px'))
{h+='px';}
$(this.innerElement).setStyle({height:h});}
if(newWidth&&newWidth!='auto'&&newWidth.startsWith&&!newWidth.startsWith('-'))
{var w=newWidth;if(!String(w).endsWith('px'))
{w+='px';}
$(this.innerElement).setStyle({width:w});}
this.calculatedHeight=newHeight;this.calculatedWidth=newWidth;if(this.options.onResize)
this.options.onResize();}},setupEvents:function()
{Event.observe(document,'keypress',this.keyPress);},destroyEvents:function()
{Event.stopObserving(document,'keypress',this.keyPress);},keyPress:function(evt)
{if(evt.keyCode==Event.KEY_ESC)
{Q_Window.closeWindow();}},close:function()
{this.destroy();},destroy:function(opt_enableScroll)
{if(this.element)
{var currentZIndex=Q_Window.getCurrentZIndex();if(this.onClose)
{try
{if(this.onClose()===false)
{return false;}}
catch(e)
{console.log('Error in onclose event',e);}}
this.destroyEvents();Q_Window.removeFromRegistry(this.id);if(this.contentParent)
{this.contentParent.appendChild(this.content)}
this.content=null;removeElement(this.element);this.element=null;if(this.iFrameCover)
{removeElement(this.iFrameCover);this.iFrameCover=null;}
if(this.overlayObj)
{this.overlayObj.remove();}
if(Q_Window.isRegistryEmpty())
{if((opt_enableScroll||opt_enableScroll===undefined))
{this.enableScroll();}}
if(this.zDiff)
{Q_Window.setCurrentZIndex(currentZIndex-this.zDiff);}
if(this.keepingCentered)
{window.onresize=null;}
if(this.headerDom)
{this.headerDom=null;}
return true;}},transformIntoLoading:function()
{$(this.innerElement).setStyle({width:this.innerElement.offsetWidth+'px',height:this.innerElement.offsetHeight+'px',padding:0});this.showLoading();new Effect.Morph(this.innerElement,{transition:INQUAD,duration:0.3,style:{height:'60px',width:'350px'},afterUpdate:this.center.bind(this,null,false)});},showLoading:function()
{deleteChildren(this.innerElement);var loading=QBuilder('div',{className:'candyBarLoadingImage'});$(loading).setOpacity(0);this.innerElement.appendChild(loading);new Effect.Opacity(loading,{from:0.0,to:1.0,duration:0.5});},getCloseFunction:function()
{var that=this;return function()
{that.destroy();};},appendChild:function(node)
{this.innerElement.appendChild(node);},setContent:function(node)
{if(!node)return;if(typeof node=='string')
{node=QBuilder('div',null,[node]);}
this.content=node;if(node.parentNode)
{this.contentParent=node.parentNode;}
this.clear();this.appendChild(node);$(node).show();this.setSize(this.width,this.height,false);this.center();},morphContent:function(options)
{options=options||{};if(!options.content)options.content=options;if(options.content)
{deleteChildren(this.innerElement);this.setContent(options.content);this.center();}},getContent:function()
{return this.innerElement;},clear:function()
{deleteChildren(this.getContent());},center:function(el,opt_skipResize)
{if(this.beforeCenter)
{this.beforeCenter();}
if(opt_skipResize!==false)
{this.resize();}
if(!el)el=this.element;var dim=Element.getDimensions(el);var scrollInfo=QualtricsTools.getScrollInfo();var pageDim=QualtricsTools.getPageSize();var browserWidth=pageDim[2];var browserHeight=pageDim[3];if(window.alternateQWindowOverflow)
{scrollInfo=[window.alternateQWindowOverflow.scrollLeft,window.alternateQWindowOverflow.scrollTop];browserHeight=window.alternateQWindowOverflow.offsetHeight;}
var scrollBarOffset=0;var center=(browserWidth/2)-(dim.width/2)+scrollInfo[0]-scrollBarOffset;var middle=(browserHeight/2)-(dim.height/2)+scrollInfo[1];center=Math.round(center)+'px';middle=Math.round(middle)+'px';$(el).setStyle({left:center,top:middle});if(this.keepCentered)
{this.keepCentered();}},buildButton:function(buttonObj)
{if(buttonObj==undefined)
{return;}
if(typeof buttonObj=='string')
{var type=buttonObj,obj={},text=null,action=null;if(buttonObj.indexOf('|')!=-1){text=buttonObj.substring(buttonObj.indexOf('|')+1);type=buttonObj.substring(0,buttonObj.indexOf('|'));}
if(type.indexOf(':')!=-1){action=type.substring(buttonObj.indexOf(':')+1);type=type.substring(0,buttonObj.indexOf(':'));}
type=type.toLowerCase();switch(type)
{case'cancel':{obj.text=getMessage('SiteWide','Cancel');obj=Object.extend(obj,{id:this.windowName+'CancelButton',icon:'cancel',click:'Q_Window.closeWindow('+this.windowName+')',className:'negative'});break;}
case'closewithoutsaving':{obj.text=getMessage('EditSection','CloseWithoutSaving');obj=Object.extend(obj,{id:this.windowName+'CancelButton',icon:'cancel',click:'Q_Window.closeWindow('+this.windowName+')',className:'negative'});break;}
case'close':{obj.text=getMessage('SiteWide','Close');obj=Object.extend(obj,{id:this.windowName+'CancelButton',icon:'cancel',click:'Q_Window.closeWindow('+this.id+')',className:'negative'});break;}
case'save':{obj=Object.extend(obj,{id:this.windowName+'SaveButton',icon:'check',text:getMessage('SiteWide','Save'),className:'positive'});break;}
case'ok':{obj=Object.extend(obj,{id:this.windowName+'OKButton',icon:'check',text:getMessage('SiteWide','OK'),className:'positive'});break;}}
if(action)
{obj.click=action;if(type.indexOf('save')!=-1)
{obj.click='Q_Window.saveButtonHelper:'+this.windowName+'('+action+')';}
if(type=='ok')
{obj.click='Q_Window.okButtonHelper:'+this.windowName+'('+action+')';}}
if(text)
{obj.text=text;}
buttonObj=obj;}
var className='';if(buttonObj.className)
{className=' '+buttonObj.className;}
var style='';if(buttonObj.style)
{style=' '+buttonObj.style;}
var elementType='a';if(buttonObj['button'])
{elementType='button';}
if(buttonObj.domNode)
{var button=Qualtrics.Event.executeDotSyntax(buttonObj.domNode);}
else
{var button=QBuilder(elementType,{className:'qbutton'+className+style});}
if(elementType=='a')
{button.setAttribute('href','javascript:void(0)');}
if(buttonObj.icon)
{button.appendChild(QBuilder('span',{className:'icon '+buttonObj.icon}))}
if(buttonObj.text)
{button.appendChild(document.createTextNode(buttonObj.text));}
if(buttonObj.click)
{button.setAttribute('clickcallback',buttonObj.click);}
if(buttonObj.clickcallback)
{button.setAttribute('clickcallback',buttonObj.clickcallback);}
if(buttonObj.instanceid)
{button.setAttribute('instanceid',buttonObj.instanceid);}
var buttonIndex=1;while(buttonObj['p'+buttonIndex]!=undefined)
{button.setAttribute('p'+buttonIndex,buttonObj['p'+buttonIndex]);buttonIndex++;}
if(buttonObj.id)
{button.id=buttonObj.id;this.buttonReg[button.id]=button;}
if(buttonObj.type)
{button.type=buttonObj.type;}
return button;},getButton:function(id)
{return this.buttonReg[id];},isButtonDisabled:function(id)
{return $(this.getButton(id)).hasClassName('disabled');},busifyButton:function(id,message)
{var button=this.getButton(id);if(!button)
{button=this.getButton(this.windowName+id+'Button');}
button=$(button);$(button).addClassName('disabled');$(button).addClassName('Disabled');button.disabled=true;button.originalHTML=button.innerHTML;if(message)
button.innerHTML=message;if(button.hasAttribute('clickcallback'))
{button.setAttribute('pendingcallback',button.getAttribute('clickcallback'));button.removeAttribute('clickcallback');}},unbusifyButton:function(id)
{var button=$(this.getButton(id));if(button)
{$(button).removeClassName('disabled');$(button).removeClassName('Disabled');button.disabled=false;if(button.originalHTML)
button.innerHTML=button.originalHTML;}
if(button.hasAttribute('pendingcallback'))
{button.setAttribute('clickcallback',button.getAttribute('pendingcallback'));button.removeAttribute('pendingcallback');}},disableButton:function(id)
{$(this.getButton(id)).addClassName('disabled');},enableButton:function(id)
{$(this.getButton(id)).removeClassName('disabled');},reenableButton:function(buttonType)
{var id=this.windowName+buttonType+'Button';this.unbusifyButton(id);},saveButtonHelper:function(action)
{var button=$(this.windowName+'SaveButton');if(button&&!button.disabled)
{button.originalHTML=button.innerHTML;button.innerHTML=this.customSavingMessage||'Saving...';button.disabled=true;button.addClassName('Disabled');QualtricsCPTools.executeDotSyntax(action);}},okButtonHelper:function(action)
{this.destroy();QualtricsCPTools.executeDotSyntax(action);},keepCentered:function()
{this.keepCentering=true;if(!Q_Window.resizeWatcher)
{Q_Window.resizeWatcher=Event.observe(window,'resize',function(evt){Qualtrics.Cache.unset('PageSize');Q_Window.centerWindows();});}},showCenter:function()
{this.center();},getSize:function()
{return{width:this.width,height:this.height};},setSize:function(width,height,opt_resize)
{this.width=String(width);this.height=String(height);this.pctWidth=null;this.pctHeight=null;var that=this;['height','width'].map(function(s){if(String(that[s]).endsWith('%'))
{that['pct'+s.capitalize()]=parseInt(that[s].substr(0,that[s].indexOf('%')),10)/100;}
else if(that[s]!=='auto'&&!String(that[s]).endsWith('px'))
{}
that['auto'+s.capitalize()]=(that[s]=='auto');});if(opt_resize!==false)
this.resize();},getInnerDimensions:function()
{return $(this.innerElement).getDimensions();},setTitle:function(title)
{var closeButton=this.closeButton;this.updateHeader(this.buildTitle(title,{closeButton:closeButton}));}}
window.Q_Overlay=Class.create();Q_Overlay.reg=[];Q_Overlay.getInstance=QualtricsTools.getInstanceHelper(Q_Overlay.reg,'_id');Q_Overlay.removeAll=function()
{var i=Q_Overlay.reg.length;while(i--)
{Q_Overlay.reg[i].remove();}}
Q_Overlay.prototype={_id:null,overlayName:null,initialize:function(options)
{options=options||{}
this.options=options;Q_Overlay.reg.push(this);this._id=QualtricsTools.createNewId('QO');var opacity=0.6;if(options.opacity!==undefined){opacity=options.opacity;}
var overlayId="Overlay";if(options.id){overlayId=options.id;}
this.overlayName=overlayId;var objOverlay=QBuilder('div',{id:this._id,className:'Overlay Overlay_'+this.overlayName,style:"display:none"});if(options.onClick)
{objOverlay.onclick=options.onClick;}
if(options.keepMenuOpen)
{Event.observe(document.body,'mousedown',this.mouseDownHandler);}
if(options.onClose)
{this.onClose=options.onClose;}
if(options.parentId){options.append=options.parentId}
if(options.append){$(options.append).appendChild(objOverlay);}else{document.body.appendChild(objOverlay);}
if($('pageDiv'))
{$('pageDiv').addClassName('HideOnOverlay');}
var arrayPageSize=getPageSize();Element.setStyle(objOverlay,{height:arrayPageSize[1]+'px'});if(options.dim){if(options.dim.width){Element.setStyle($(objOverlay),{width:options.dim.width});}
if(options.dim.height){Element.setStyle(objOverlay,{height:options.dim.height});}
if(options.dim.x){Element.setStyle($(objOverlay),{left:options.dim.x+'px'});}
if(options.dim.y){Element.setStyle($(objOverlay),{top:options.dim.y+'px'});}}
if(options.zindex)options.zIndex=options.zindex;if(options.zIndex){Element.setStyle($(objOverlay),{zIndex:options.zIndex});}
if(options.color){Element.setStyle($(objOverlay),{backgroundColor:options.color});}
$(objOverlay).show();$(objOverlay).setStyle({opacity:opacity});objOverlay.style.opacity=opacity;this.domNode=objOverlay;objOverlay=null;this.manageMultipleOverlays();},manageMultipleOverlays:function()
{if(this.options.dontManageOverlays)
{return;}
if(Q_Overlay.reg.length)
{for(var i=0,len=Q_Overlay.reg.length;i<len;++i)
{if(i<len-1)
{Q_Overlay.reg[i].domNode&&$(Q_Overlay.reg[i].domNode).setStyle({backgroundColor:'transparent'});}
else
{Q_Overlay.reg[i].domNode&&$(Q_Overlay.reg[i].domNode).setStyle({backgroundColor:''});}}}},getPosition:function()
{for(var i=0,len=Q_Overlay.reg.length;i<len;++i)
{if(Q_Overlay.reg[i]._id==this._id)
return i;}},remove:function(options)
{Event.stopObserving(document.body,'mousedown',this.mouseDownHandler);if(this.onClose)
{this.onClose();}
if(this.domNode){removeElement(this.domNode);this.domNode=null;}
var pos=this.getPosition();Q_Overlay.reg.splice(pos,1);if(!Q_Overlay.reg.length)
{if($('pageDiv'))
$('pageDiv').removeClassName('HideOnOverlay');}
this.manageMultipleOverlays();},mouseDownHandler:function(evt)
{if(!evt)
evt=window.event;evt.cancelBubble=true;if(evt.stopPropagation)
evt.stopPropagation();}}
