                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

if(typeof vp=="undefined"){var vp={};}
vp.ui=function(){};vp.ui.addClass=function(vElement,sClass){vElement=vp.core.getElement(vElement,"addClass");if(!vp.ui.hasClass(vElement,sClass)){var aClasses=vElement.className.split(/\s+/g);aClasses[aClasses.length]=sClass;vElement.className=aClasses.join(" ");}};vp.ui.collapse=function(vElement){vElement=vp.core.getElement(vElement,"vp.ui.collapse");vElement.style.display="none";};vp.ui.expand=function(vElement){vElement=vp.core.getElement(vElement,"vp.ui.expand");vElement.style.display="";};vp.ui.expandToBlock=function(vElement){vElement=vp.core.getElement(vElement,"vp.ui.expandToBlock");vElement.style.display="block";};vp.ui.toggleDisplay=function(vElement,bDisplayBlock)
{var objElem=vp.core.getElement(vElement,"vp.ui.toggleDisplay");if(objElem)
{if(objElem.style.display=="none")
{if(bDisplayBlock)
{objElem.style.display="block";}
else
{objElem.style.display="";}}
else
{objElem.style.display="none";}}};vp.ui.clearContainerChildren=function(oContainer)
{if(oContainer&&oContainer.hasChildNodes())
{while(oContainer.childNodes.length>=1)
{oContainer.removeChild(oContainer.firstChild);}}};vp.ui.expandAndCollapse=function(vElementToExpand,vElementToCollapse)
{vp.ui.collapse(vElementToCollapse);vp.ui.expand(vElementToExpand);};vp.ui.expandToBlockAndCollapse=function(vElementToExpand,vElementToCollapse)
{vp.ui.collapse(vElementToCollapse);vp.ui.expandToBlock(vElementToExpand);};vp.ui.get=function(sId)
{if(typeof sId!="string")
{throw new Error("Call to vp.ui.get() with a non-string identifier.");}
return(document.getElementById?document.getElementById(sId):document.all[sId]);};vp.ui.setStyleValue=function(vElement,sProperty,sValue)
{vElement=vp.core.getElement(vElement,"vp.ui.setStyleValue");switch(sProperty.toLowerCase())
{case"float":case"cssfloat":case"stylefloat":vElement.style.cssFloat=sValue;vElement.style.styleFloat=sValue;break;case"opacity":vp.ui.setOpacity(vElement,sValue);break;case"cursor":var sParsedValue=sValue.toLowerCase();if(sParsedValue=="pointer"||sParsedValue=="hand")
{vElement.style.cursor=document.all?"hand":"pointer";}
else
{vElement.style.cursor=sValue;}
break;default:vElement.style[sProperty]=sValue;break;}};vp.ui.removeStyle=function(oNode,sStyle)
{var oCss=new vp.web.CssString(oNode.style.cssText);var sCssStyle=vp.ui.convertCssPropertyToStringFormat(sStyle);oCss.removeItem(sCssStyle);oCss.removeItem(sCssStyle.toUpperCase());var sVal=oCss.toString();if(sVal.length===0)
{oNode.removeAttribute("style");}
else
{oNode.style.cssText=oCss.toString();}};vp.ui.removeStyleRecursive=function(oNode,sStyle)
{if(oNode.nodeType==1)
{vp.ui.removeStyle(oNode,sStyle);var oChildren=oNode.childNodes;var iLen=oChildren.length;for(var i=0;i<iLen;i++)
{vp.ui.removeStyleRecursive(oChildren[i],sStyle);}}};vp.ui.getCurrentStyle=function(vElement,sProperty)
{vElement=vp.core.getElement(vElement,"vp.ui.getCurrentStyle");var oDocument=vElement.ownerDocument;var value=null;var dv=oDocument.defaultView;if(document.all&&sProperty=="opacity"&&vElement.filters)
{value=1;try
{value=vElement.filters.item("DXImageTransform.Microsoft.Alpha").opacity/100;}
catch(e)
{try
{value=vElement.filters.item("alpha").opacity/100;}
catch(e){}}}
else if(vElement.style[sProperty])
{value=vElement.style[sProperty];}
else if(vElement.currentStyle&&vElement.currentStyle[sProperty])
{value=vElement.currentStyle[sProperty];}
else if(dv&&dv.getComputedStyle)
{var oComputedStyle=dv.getComputedStyle(vElement,"");if(oComputedStyle)
{value=oComputedStyle.getPropertyValue(vp.ui.convertCssPropertyToStringFormat(sProperty))||null;}
if(sProperty=="fontWeight")
{if(value==400)
{value="normal";}
else if(value==700)
{value="bold";}}}
if(!document.all&&sProperty=="textAlign")
{value=value.replace("-moz-","");}
return value;};vp.ui._styleObjToCSSMap={};vp.ui.convertCssPropertyToStringFormat=function(sProperty)
{if(!vp.ui._styleObjToCSSMap[sProperty])
{var sOut="";for(var i=0,len=sProperty.length;i<len;++i)
{if(sProperty.charAt(i)==sProperty.charAt(i).toUpperCase())
{sOut=sOut+'-'+sProperty.charAt(i).toLowerCase();}
else
{sOut=sOut+sProperty.charAt(i);}}
vp.ui._styleObjToCSSMap[sProperty]=sOut;}
return vp.ui._styleObjToCSSMap[sProperty];};vp.ui._styleCSSToObjMap={};vp.ui.convertCssPropertyToCssFormat=function(sProperty)
{if(!vp.ui._styleCSSToObjMap[sProperty])
{var aOut=[];for(var i=0,len=sProperty.length;i<len;++i)
{var sChar=sProperty.charAt(i);if(sChar=="-")
{i++;sChar=sProperty.charAt(i).toUpperCase();aOut.push(sChar);}
else
{aOut.push(sChar);}}
vp.ui._styleCSSToObjMap[sProperty]=aOut.join("");}
return vp.ui._styleCSSToObjMap[sProperty];};vp.ui.getCssRule=function(sSelectorText,oDocument)
{if(!oDocument)
{oDocument=document;}
if(!oDocument.styleSheets)
{return null;}
sSelectorText=sSelectorText.toLowerCase();for(var i=0;i<oDocument.styleSheets.length;i++)
{var aRules=document.all?oDocument.styleSheets[i].rules:oDocument.styleSheets[i].cssRules;for(var j=0;j<aRules.length;j++)
{if(aRules[j].selectorText.toLowerCase()==sSelectorText)
{return aRules[j];}}}
return null;};vp.ui.getClientHeight=function(){if(typeof window.innerHeight!="undefined"){return window.innerHeight;}else if(document.documentElement&&typeof document.documentElement.clientHeight!="undefined"&&document.documentElement.clientHeight>0){return document.documentElement.clientHeight;}else if(document.body&&typeof document.body.clientHeight!="undefined"){return document.body.clientHeight;}else{return-1;}};vp.ui.getClientWidth=function(){if(typeof window.innerWidth!="undefined"){return window.innerWidth;}else if(document.documentElement&&typeof document.documentElement.clientWidth!="undefined"&&document.documentElement.clientWidth!==0){return document.documentElement.clientWidth;}else if(document.body&&typeof document.body.clientWidth!="undefined"){return document.body.clientWidth;}else{return-1;}};vp.ui.getRect=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.getRect");if(vElement.nodeType!=1)
{throw new Error("vp.ui.getRect doesn't support nodes with type "+vElement.nodeType);}
var oDocument=vElement.ownerDocument;var oRect={};oRect.top=0;oRect.left=0;oRect.bottom=0;oRect.right=0;var oBox;if(vElement.getBoundingClientRect)
{try
{oBox=vElement.getBoundingClientRect();}
catch(ex)
{if(ex.number==-2147467259)
{throw new Error("vp.ui.getRect cannot get a rectangle for the specified element because it has not been rendered.");}
throw ex;}
var iScrollTop=Math.max(oDocument.documentElement.scrollTop,oDocument.body.scrollTop);var iScrollLeft=Math.max(oDocument.documentElement.scrollLeft,oDocument.body.scrollLeft);var iIEHack=document.all?2:0;oRect.top=(oBox.top+iScrollTop)-iIEHack;oRect.left=(oBox.left+iScrollLeft)-iIEHack;oRect.bottom=oRect.top-(oBox.top-oBox.bottom);oRect.right=oRect.left+(oBox.right-oBox.left);}
else if(oDocument.getBoxObjectFor)
{oBox=oDocument.getBoxObjectFor(vElement);var iBorderLeft=parseInt(vp.ui.getCurrentStyle(vElement,'borderLeftWidth'));var iBorderTop=parseInt(vp.ui.getCurrentStyle(vElement,'borderTopWidth'));oRect.left=oBox.x-iBorderLeft;oRect.top=oBox.y-iBorderTop;var oParent=vElement.offsetParent;while(oParent&&oParent.tagName!="BODY")
{var sOverflowY=vp.ui.getCurrentStyle(oParent,"overflowY");if(sOverflowY=="auto"||sOverflowY=="scroll")
{oRect.top-=oParent.scrollTop;}
var sOverflowX=vp.ui.getCurrentStyle(oParent,"overflowX");if(sOverflowX=="auto"||sOverflowX=="scroll")
{oRect.left-=oParent.scrollLeft;}
oParent=oParent.parentNode;}
oRect.bottom=oRect.top+oBox.height;oRect.right=oRect.left+oBox.width;}
else
{var oTemp=vElement;var fZoom;while(oTemp!==null)
{fZoom=vp.ui._getZoom(oTemp);oRect.top*=fZoom;oRect.left*=fZoom;oRect.top+=oTemp.offsetTop;oRect.left+=oTemp.offsetLeft;if(oTemp.tagName!="BODY"&&oTemp!=vElement)
{oRect.top-=oTemp.scrollTop;oRect.left-=oTemp.scrollLeft;}
oTemp=oTemp.offsetParent;}
fZoom=vp.ui._getZoom(vElement);oRect.right=Math.round(vElement.offsetWidth*fZoom)+oRect.left;oRect.bottom=Math.round(vElement.offsetHeight*fZoom)+oRect.top;}
oRect.width=oRect.right-oRect.left;oRect.height=oRect.bottom-oRect.top;return oRect;};vp.ui._getZoom=function(oObj)
{var val=parseFloat(oObj.style.zoom);return isNaN(val)?1:val;};vp.ui.getTop=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.getTop");return vp.ui.getRect(vElement).top;};vp.ui.getLeft=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.getLeft");return vp.ui.getRect(vElement).left;};vp.ui.getHeight=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.getHeight");return vElement.offsetHeight;};vp.ui.getWidth=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.getWidth");return vElement.offsetWidth;};vp.ui.getScrollRect=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.getScrollRect");var oRet=vp.ui.getRect(vElement);var oScrollOffset=vp.ui.getScrollOffset();oRet.width+=oScrollOffset.width;oRet.height+=oScrollOffset.height;return oRet;};vp.ui.hasClass=function(vElement,sClass){vElement=vp.core.getElement(vElement,"vp.ui.hasClass");if(!vElement.className)
{return false;}
var aClasses=vElement.className.split(/\s+/g);;var iLen=aClasses.length;for(var i=0;i<iLen;i++)
{if(aClasses[i]==sClass){return true;}}
return false;};vp.ui.hide=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.hide");vElement.style.visibility="hidden";};vp.ui.ifExists=function(vElement,fnAction)
{try
{vElement=vp.core.getElement(vElement,"vp.ui.ifExists");fnAction(vElement);}
catch(ex)
{}};vp.ui.isPointInRect=function(iX,iY,oRect)
{if(typeof iX!="number")
{throw new Error("vp.ui.isPointInRect(): The x-coordinate must be a number.");}
else if(typeof iY!="number")
{throw new Error("vp.ui.isPointInRect(): The y-coordinate must be a number.");}
else if(!oRect||typeof oRect.left!="number"||typeof oRect.top!="number")
{throw new Error("vp.ui.isPointInRect(): Invalid rectangle passed in.");}
return((iX>=oRect.left)&&(iX<=oRect.left+oRect.width)&&(iY>=oRect.top)&&(iY<=oRect.top+oRect.height));};vp.ui.expandRect=function(oRect,iExpandBy)
{var oNewRect={left:oRect.left-iExpandBy,top:oRect.top-iExpandBy,width:oRect.width+(iExpandBy*2),height:oRect.height+(iExpandBy*2)};oNewRect.right=oNewRect.left+oNewRect.width;oNewRect.bottom=oNewRect.top+oNewRect.height;return oNewRect;};vp.ui.isVisible=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.isVisible");return vp.ui.getCurrentStyle(vElement,"visibility")!="hidden";};vp.ui.isCollapsed=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.isCollapsed");return vp.ui.getCurrentStyle(vElement,"display")=="none";};vp.ui.moveTo=function(vElement,iLeft,iTop)
{vElement=vp.core.getElement(vElement,"vp.ui.moveTo");if(typeof iLeft!="number")
{throw new Error("Call to vp.ui.moveTo() with an invalid X coordinate.");}
else if(typeof iTop!="number")
{throw new Error("Call to vp.ui.moveTo() with an invalid Y coordinate.");}
if(vp.ui.getCurrentStyle(vElement,"position")!="absolute"){throw new Error("vp.ui.moveTo(): Can't move an element that isn't absolutely positioned.");}
vElement.style.top=iTop+"px";vElement.style.left=iLeft+"px";};vp.ui.removeClass=function(vElement,sClass)
{vElement=vp.core.getElement(vElement,"vp.ui.removeClass");var aClasses=vElement.className.split(/\s+/g);;var iLen=aClasses.length;for(var i=0;i<iLen;i++)
{if(aClasses[i]==sClass)
{aClasses[i]="";}}
vElement.className=aClasses.join(" ");};vp.ui.resizeTo=function(vElement,iWidth,iHeight)
{vElement=vp.core.getElement(vElement,"vp.ui.resizeTo");if(typeof iWidth!="number")
{throw new Error("Call to vp.ui.resizeTo() with an invalid width.");}
else if(typeof iHeight!="number")
{throw new Error("Call to vp.ui.resizeTo() with an invalid height/");}
vElement.style.width=iWidth+"px";vElement.style.height=iHeight+"px";};vp.ui.setHeight=function(vElement,iHeight)
{vElement=vp.core.getElement(vElement,"vp.ui.setHeight");if(typeof iHeight!="number")
{throw new Error("Call to vp.ui.setHeight() with an invalid height parameter.");}
vElement.style.height=iHeight+"px";};vp.ui.setStyle=function(vElement,sCssText)
{vElement=vp.core.getElement(vElement,"vp.ui.setStyle");vElement.style.cssText=sCssText;};vp.ui.setWidth=function(vElement,iWidth)
{vElement=vp.core.getElement(vElement,"setWidth");if(typeof iWidth!="number")
{throw new Error("Call to vp.ui.setWidth() with an invalid width parameter.");}
vElement.style.width=iWidth+"px";};vp.ui.show=function(vElement)
{vElement=vp.core.getElement(vElement,"show");vElement.style.visibility="visible";vElement.style.display="";};vp.ui.insertFirstElement=function(oTarget,oElement)
{var oFirstElement=oTarget.childNodes.length>=1?oTarget.childNodes[0]:null;oTarget.insertBefore(oElement,oFirstElement);};vp.ui.insertAfter=function(oNode,oTarget)
{if(oTarget.nextSibling)
{oTarget.parentNode.insertBefore(oNode,oTarget.nextSibling);}
else
{oTarget.parentNode.appendChild(oNode);}};vp.ui.moveToRoot=function(vElement,bAddToDocumentStart)
{vElement=vp.core.getElement(vElement,"vp.ui.moveToRoot");if(vElement.parentNode!=document.body)
{var oParent=vElement.parentNode;oParent.removeChild(vElement);if(bAddToDocumentStart)
{vp.ui.insertFirstElement(top.document.body,vElement);}
else
{document.body.appendChild(vElement);}}};vp.ui.scrollTo=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.scrollTo");var oRec=vp.ui.getRect(vElement);var iTopDif=oRec.top-document.body.scrollTop;if(iTopDif<0)
{if(window.scrollBy)
{window.scrollBy(0,iTopDif);}
else
{vElement.scrollIntoView();}}
var iBottomDif=oRec.bottom-(document.body.scrollTop+vp.ui.getClientHeight());if(iBottomDif>0)
{if(window.scrollBy)
{window.scrollBy(0,iBottomDif);}
else
{vElement.scrollIntoView();}}};vp.ui.scrollToCenterElement=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.scrollToCenterElement");var oRect=vp.ui.getRect(vElement);var viewport=vp.ui.getViewportSize();var scroll=vp.ui.getScrollOffset();var dy=oRect.top+((oRect.height-viewport.height)/2)-scroll.top;var dx=oRect.left+((oRect.width-viewport.width)/2)-scroll.left;window.scrollBy(dx,dy);};vp.ui.setCoord=function(oObj,sCoord,iValue)
{oObj=oObj.style?oObj.style:oObj;if(sCoord=="top"||sCoord=="left"||sCoord=="width"||sCoord=="height")
{oObj[sCoord]=iValue;}
else if(sCoord=="right")
{oObj.left=oObj.left+oObj.width+iValue;}
else if(sCoord=="bottom")
{oObj.top=oObj.top+oObj.height+iValue;}};vp.ui.getCoord=function(oObj,sCoord)
{oObj=oObj.style?oObj.style:oObj;if(sCoord=="top"||sCoord=="left")
{return parseInt(oObj[sCoord]);}
else if(sCoord=="right")
{return parseInt(oObj.left)+parseInt(oObj.width);}
else if(sCoord=="bottom")
{return parseInt(oObj.top)+parseInt(oObj.height);}};vp.ui.getLocalRect=function(oObj)
{var oRect={};vp.ui.applyPosition(oObj,oRect);oRect.right=oRect.left+oRect.width;oRect.bottom=oRect.top+oRect.height;return oRect;};vp.ui.applyPosition=function(oObj1,oObj2)
{oObj1=oObj1.style?oObj1.style:oObj1;oObj2=oObj2.style?oObj2.style:oObj2;oObj2.top=parseInt(oObj1.top);oObj2.left=parseInt(oObj1.left);oObj2.width=parseInt(oObj1.width);oObj2.height=parseInt(oObj1.height);};vp.ui._getImageButtonATag=function(oButton)
{if(oButton.tagName=="A"&&oButton.childNodes[0]&&oButton.childNodes[0].tagName=="IMG")
{return oButton;}
else if(oButton.tagName=="IMG"&&oButton.parentNode&&oButton.parentNode.tagName=="A")
{return oButton.parentNode;}
throw Error("The image selected to disable is not contained in an A tag");};vp.ui.disableImageButton=function(oImage)
{var oATag=vp.ui._getImageButtonATag(oImage);if(!oATag._onclickdisabled)
{oATag._onclickdisabled=oATag.onclick;oATag.onclick=vp.events.cancel;}
oATag.style.cursor="default";oATag.hideFocus=true;vp.ui.setOpacity(oATag.childNodes[0],0.5);};vp.ui.enableImageButton=function(oImage)
{var oATag=vp.ui._getImageButtonATag(oImage);if(oATag._onclickdisabled)
{oATag.onclick=oATag._onclickdisabled;oATag._onclickdisabled=null;}
vp.ui.setStyleValue(oATag,"cursor","pointer");oATag.hideFocus=false;vp.ui.setOpacity(oATag.childNodes[0],1);};vp.ui.setOpacity=function(oObj,fOpacity)
{if(typeof oObj.style.opacity!="undefined")
{if(fOpacity==1)
{oObj.style.opacity="";return;}
oObj.style.opacity=fOpacity;}
else
{var oFilter=new vp.ui._IEFilterString(oObj.style.filter);if(fOpacity==1)
{oFilter.removeItem("Alpha");}
else
{try
{if(!oObj.currentStyle.hasLayout)
{if(!oObj.style.zoom)
{oObj.style.zoom=1;}}}catch(e){}
var iOpacity=fOpacity*100;oFilter.setItem("Alpha",{enabled:1,opacity:iOpacity});}
oObj.style.filter=oFilter.toString();}};vp.ui._IEFilterString=function(sFilters)
{var _oFilters={};var init=function()
{sFilters=sFilters.replace(/\s/gi,"");var aFilters=sFilters.split("progid:DXImageTransform.Microsoft.");for(var i=0;i<aFilters.length;i++)
{if(aFilters[i].length>1)
{var iParamListStart=aFilters[i].indexOf("(");var sFilterName=aFilters[i].substring(0,iParamListStart);var sSubParams=aFilters[i].substring(iParamListStart+1,aFilters[i].indexOf(")"));var aSubParams=sSubParams.split(",");var oFilterObj={};for(var j=0;j<aSubParams.length;j++)
{var aPair=aSubParams[j].split("=");oFilterObj[aPair[0]]=aPair[1];}
_oFilters[sFilterName]=oFilterObj;}}};this.setItem=function(sFilterName,oParams)
{_oFilters[sFilterName]=oParams;};this.removeItem=function(sFilterName)
{if(_oFilters[sFilterName])
{delete _oFilters[sFilterName];}};this.toString=function()
{var aOut=[];var sSpace="";for(var sProp in _oFilters)
{aOut.add(sSpace+"progid:DXImageTransform.Microsoft."+sProp);aOut.add("(");var sComma="";for(var sSubProp in _oFilters[sProp])
{aOut.add(sComma+sSubProp+"="+_oFilters[sProp][sSubProp]);sComma=",";}
aOut.add(")");sSpace=" ";}
return aOut.join("");};init();};vp.ui.reactivateClickableButton=function(sElementNamespaceId){vp.ui.expandAndCollapse('imgEnabledButton'+sElementNamespaceId,'imgDisabledButton'+sElementNamespaceId);};vp.ui.getViewportSize=function(oWindow)
{var oSize={};oWindow=oWindow||window;if(self.innerHeight)
{oSize.width=oWindow.innerWidth;oSize.height=oWindow.innerHeight;}
else if(oWindow.document.documentElement&&oWindow.document.documentElement.clientHeight)
{oSize.width=oWindow.document.documentElement.clientWidth;oSize.height=oWindow.document.documentElement.clientHeight;}
else
{oSize.width=oWindow.document.body.clientWidth;oSize.height=oWindow.document.body.clientHeight;}
return oSize;};vp.ui.getScrollOffset=function(oWindow)
{var oPos={};oWindow=oWindow||window;if(oWindow.pageYOffset)
{oPos.left=oWindow.pageXOffset;oPos.top=oWindow.pageYOffset;}
else if(oWindow.document.documentElement&&oWindow.document.documentElement.scrollTop)
{oPos.left=oWindow.document.documentElement.scrollLeft;oPos.top=oWindow.document.documentElement.scrollTop;}
else
{oPos.left=oWindow.document.body.scrollLeft;oPos.top=oWindow.document.body.scrollTop;}
return oPos;};vp.ui.getPageSize=function(oWindow)
{oWindow=oWindow||window;var oRootElement=vp.ui.getRootElement(oWindow.document);if(!oRootElement||oRootElement.scrollHeight<oWindow.document.body.scrollHeight)
{oRootElement=oWindow.document.body;}
var oRet={width:oRootElement.scrollWidth,height:oRootElement.scrollHeight};if(oRootElement.clientWidth>oRootElement.scrollWidth)
{oRet.width=oRootElement.clientWidth;}
if(oRootElement.clientHeight>oRootElement.scrollHeight)
{oRet.height=oRootElement.clientHeight;}
return oRet;};vp.ui.centerElement=function(vElement)
{vElement=vp.core.getElement(vElement,"vp.ui.centerElement");var viewport=vp.ui.getViewportSize();var scroll=vp.ui.getScrollOffset();vp.ui.moveTo(vElement,(viewport.width-vp.ui.getWidth(vElement))/2+scroll.left,(viewport.height-vp.ui.getHeight(vElement))/2+scroll.top);};vp.ui.preloadImages=function(aImages)
{try
{var iLen=aImages.length;for(var i=0;i<iLen;i++)
{var oImg=document.createElement("IMG");if(window.isDebug)
{var sSrc=aImages[i];oImg.onerror=function(){throw new Error("Debug only error: An attempt to preload "+sSrc+" was made, but the image couldn't be found.");};}
oImg.src=aImages[i];}}
catch(ex)
{if(window.isDebug)
{throw ex;}}};vp.ui.preloadImageAndGetSize=function(sImageSrc,fnCallback,fnErrorHandler)
{var oImg=document.createElement("IMG");oImg.style.visibility="hidden";oImg.style.zIndex=-1;document.body.appendChild(oImg);vp.ui._traceImageSrc(sImageSrc,"vp.ui.preloadImageAndGetSize");var fnPreloadHandler=function(e)
{var fnWrapper=function()
{var oSize={width:oImg.offsetWidth,height:oImg.offsetHeight};vp.events.remove(oImg,"load",fnPreloadHandler);document.body.removeChild(oImg);oImg=null;fnCallback(oSize);};window.setTimeout(fnWrapper,0);};vp.events.add(oImg,"load",fnPreloadHandler);if(fnErrorHandler)
{vp.events.add(oImg,"error",function(e){fnErrorHandler(e,sImageSrc);});}
oImg.src=sImageSrc;};vp.ui.showAnimated=function(oElement,iStartWidth,iStartHeight,iEndWidth,iEndHeight,bIgnoreOverflow,bBottomUp)
{if(oElement._isBeingAnimated)
{return;}
oElement._isBeingAnimated=true;var sInitialWidthStyle=oElement.style.width;var sInitialHeightStyle=oElement.style.height;oElement.style.width=iStartWidth;oElement.style.height=iStartHeight;oElement.style.visibility="visible";if(!bIgnoreOverflow)
{var sOldOverflow=oElement.style.overflow;oElement.style.overflow="hidden";}
var dPercent=0;var iMaxPercent=100;var iDelay=10;if(!vp.browser.isIE)
{iDelay=20;}
var iDuration=80;var dStep=iMaxPercent*iDelay/iDuration;var initialTop=parseInt(oElement.style.top);var fnShowAni=function()
{var newHeight=iStartHeight+(iEndHeight-iStartHeight)*dPercent/iMaxPercent;var newWidth=iStartWidth+(iEndWidth-iStartWidth)*dPercent/iMaxPercent;if(dPercent<=iMaxPercent)
{oElement.style.height=newHeight+"px";oElement.style.width=newWidth+"px";if(bBottomUp)
{oElement.style.top=(initialTop+iEndHeight-newHeight)+"px";}
dPercent+=dStep;setTimeout(fnShowAni,iDelay);}
else
{oElement.style.height=iEndHeight+"px";oElement.style.width=iEndWidth+"px";if(!bIgnoreOverflow)
{oElement.style.overflow=sOldOverflow;}
oElement.style.width=sInitialWidthStyle;oElement.style.height=sInitialHeightStyle;oElement._isBeingAnimated=false;}};fnShowAni();};vp.ui.getRootElement=function(oDoc)
{if(!oDoc)
{oDoc=document;}
return oDoc.documentElement?oDoc.documentElement:oDoc.body;};vp.ui.getAllChildren=function(oElement)
{if(!oElement)
{return[];}
return oElement.all?oElement.all:oElement.getElementsByTagName('*');};vp.ui.getBySelector=function(sSelector)
{if(document.querySelectorAll)
{return document.querySelectorAll(sSelector);}
if(!document.getElementsByTagName)
{return[];}
var aFound=[];var iFoundCount=0;var aTokens=sSelector.split(' ');var aCurrentContext=new Array(document);var iCurrentContextIndex=0;for(var i=0;i<aTokens.length;i++)
{var oToken=aTokens[i].replace(/^\s+/,'').replace(/\s+$/,'');;if(oToken.indexOf('#')>-1)
{var aIdBits=oToken.split('#');var sTagName=aIdBits[0];var sId=aIdBits[1];var oElement=vp.ui.get(sId);if(sTagName&&oElement.nodeName.toLowerCase()!=sTagName)
{return[];}
aCurrentContext=new Array(oElement);continue;}
if(oToken.indexOf('.')>-1)
{var aClassBits=oToken.split('.');var sClassTagName=aClassBits[0];var sClassName=aClassBits[1];if(!sClassTagName)
{sClassTagName='*';}
aFound=[];iFoundCount=0;for(var h=0;h<aCurrentContext.length;h++)
{var aTagElements;if(sClassTagName=='*')
{aTagElements=vp.ui.getAllChildren(aCurrentContext[h]);}
else
{aTagElements=aCurrentContext[h].getElementsByTagName(sClassTagName);}
for(var j=0;j<aTagElements.length;j++)
{aFound[iFoundCount]=aTagElements[j];iFoundCount++;}}
aCurrentContext=[];iCurrentContextIndex=0;for(var k=0;k<aFound.length;k++)
{if(aFound[k].className&&aFound[k].className.match(new RegExp('\\b'+sClassName+'\\b')))
{aCurrentContext[iCurrentContextIndex]=aFound[k];iCurrentContextIndex++;}}
continue;}
if(oToken.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/))
{var sAttrSelectorTagName=RegExp.$1;var sAttrName=RegExp.$2;var sAttrOperator=RegExp.$3;var sAttrValue=RegExp.$4;if(!sAttrSelectorTagName)
{sAttrSelectorTagName='*';}
aFound=[];iFoundCount=0;for(var q=0;q<aCurrentContext.length;q++)
{var aElements;if(sAttrSelectorTagName=='*')
{aElements=vp.ui.getAllChildren(aCurrentContext[q]);}
else
{aElements=aCurrentContext[q].getElementsByTagName(sAttrSelectorTagName);}
for(var p=0;p<aElements.length;p++)
{aFound[iFoundCount]=aElements[p];iFoundCount++;}}
aCurrentContext=[];iCurrentContextIndex=0;var fCheckFunction;switch(sAttrOperator)
{case'=':fCheckFunction=function(e){return(e.getAttribute(sAttrName)==sAttrValue);};break;case'~':fCheckFunction=function(e){return(e.getAttribute(sAttrName).match(new RegExp('\\b'+sAttrValue+'\\b')));};break;case'|':fCheckFunction=function(e){return(e.getAttribute(sAttrName).match(new RegExp('^'+sAttrValue+'-?')));};break;case'^':fCheckFunction=function(e){return(e.getAttribute(sAttrName).indexOf(sAttrValue)===0);};break;case'$':fCheckFunction=function(e){return(e.getAttribute(sAttrName).lastIndexOf(sAttrValue)===e.getAttribute(sAttrName).length-sAttrValue.length);};break;case'*':fCheckFunction=function(e){return(e.getAttribute(sAttrName).indexOf(sAttrValue)>-1);};break;default:fCheckFunction=function(e){return e.getAttribute(sAttrName);};break;}
aCurrentContext=[];iCurrentContextIndex=0;for(var l=0;l<aFound.length;l++)
{if(fCheckFunction(aFound[l]))
{aCurrentContext[iCurrentContextIndex]=aFound[l];iCurrentContextIndex++;}}
continue;}
if(!aCurrentContext[0])
{return[];}
sTagName=oToken;aFound=[];iFoundCount=0;for(var m=0;m<aCurrentContext.length;m++)
{var aTagOnlyElements=aCurrentContext[m].getElementsByTagName(sTagName);for(var n=0;n<aTagOnlyElements.length;n++)
{aFound[iFoundCount]=aTagOnlyElements[n];iFoundCount++;}}
aCurrentContext=aFound;}
return aCurrentContext;};vp.ui.isScrollBarClickEvent=function(e)
{e=vp.events.getEvent(e);if(e.target&&(e.target.tagName.toLowerCase()=="body"||e.target.tagName.toLowerCase()=="html"))
{var oViewRect=vp.ui.getViewportSize();var oScrollRect=vp.ui.getPageSize();if(oScrollRect.height>oViewRect.height)
{if(e.pageX+20>oViewRect.width)
{return true;}}
if(oScrollRect.width>oViewRect.width)
{if(e.pageY+20>oViewRect.height)
{return true;}}}
return false;};vp.ui.getMaxProperty=function(objs,propertyString)
{var propertyArray=propertyString.split('.');var maxValue=0;for(var i=0;i<objs.length;i++)
{var iArray=0;var value=objs[i];while(value&&propertyArray[iArray])
{value=value[propertyArray[iArray]];iArray=iArray+1;}
value=parseInt(value);if(value>maxValue)
{maxValue=value;}}
return maxValue;};vp.ui._mouseTrackingHandler=function(e)
{e=vp.events.getEvent(e);window.__mouseTrackingTarget=e.target;};vp.ui.startTrackMouseTarget=function(oWindow)
{if(!oWindow)
{oWindow=window;}
vp.events.add(vp.ui.getRootElement(oWindow.document),"mouseover",vp.ui._mouseTrackingHandler);for(var i=0;i<oWindow.frames.length;i++)
{vp.ui.startTrackMouseTarget(oWindow.frames[i]);}};vp.ui.stopTrackMouseTarget=function(oWindow)
{if(!oWindow)
{oWindow=window;}
vp.events.remove(vp.ui.getRootElement(oWindow.document),"mouseover",vp.ui._mouseTrackingHandler);for(var i=0;i<oWindow.frames.length;i++)
{vp.ui.stopTrackMouseTarget(oWindow.frames[i]);}};vp.ui.getMouseTarget=function()
{return window.__mouseTrackingTarget?window.__mouseTrackingTarget:null;};vp.ui.makeUnselectable=function(vElement)
{var oElement=vp.core.getElement(vElement);if(oElement.nodeType==1)
{oElement.setAttribute("unselectable","on");vp.ui.preventDragging(oElement);for(var i=0;i<oElement.childNodes.length;i++)
{vp.ui.makeUnselectable(oElement.childNodes[i]);}}};vp.ui.preventDragging=function(oNode,bRecurse)
{if(oNode.nodeType==1)
{if(oNode.tagName=="IMG")
{if(document.all)
{vp.events.add(oNode,"drag",vp.events.cancelEvent);}
else
{vp.events.add(oNode,"mousedown",vp.events.cancelEvent);}}
if(bRecurse)
{for(var i=0;i<oNode.childNodes.length;i++)
{vp.ui.preventDragging(oNode.childNodes[i],bRecurse);}}}};vp.ui.browserSupportsPNG=function()
{return!vp.browser.isIE||vp.browser.ver>=7;};var VP_UI_BLANK_IMAGE="/vp/JS-Lib/common/spacer.gif";vp.ui.setSrcPNG=function(oImg,sSrc,fnCallback)
{if(vp.core.getBoolean(vp.web.getQueryString("admin")))
{var oAdminURL=new vp.web.URL(sSrc,"vp.ui.setSrcPNG");oAdminURL.setItem("admin",1);sSrc=oAdminURL.toString();}
vp.ui._traceImageSrc(sSrc);if(!vp.ui.browserSupportsPNG())
{var oLoader=vp.core.getObjectReference(oImg,"PNGloader");if(!oLoader)
{oLoader=document.createElement("IMG");oLoader.id=oImg.id+"_PNGLoader";oLoader.style.visibility="hidden";oLoader.style.display="none";oLoader.style.position="absolute";oLoader.style.top=0;oLoader.style.left=0;vp.core.setObjectReference(oImg,oLoader,"PNGloader");var fnOnLoadTempImg=function(e)
{if(this.img.src.indexOf(VP_UI_BLANK_IMAGE)==-1)
{this.img.src=VP_UI_BLANK_IMAGE;}
this.img.style.width="";this.img.style.height="";this.loader.style.display="block";this.img.width=this.loader.width;this.img.height=this.loader.height;this.loader.style.display="none";this.img.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+vp.web.urlEncode(this.loader.newSrc)+"',sizingMethod='scale')";if(this.callback)
{this.callback(e);}}.getClosure({img:oImg,loader:oLoader,callback:fnCallback});var fnTimerWrapper=function()
{window.setTimeout(this.innerFunction,10);}.getClosure({innerFunction:fnOnLoadTempImg});vp.events.add(oLoader,"load",fnTimerWrapper);var fnLoadLoader=function()
{document.body.appendChild(oLoader);};if(document.readyState!="complete")
{vp.events.add(window,"load",fnLoadLoader);}
else
{fnLoadLoader();}}
oLoader.removeAttribute("width");oLoader.removeAttribute("height");oLoader.style.width="";oLoader.style.height="";var sRelativePath=vp.ui.getRelativeURL(sSrc);oLoader.newSrc=sRelativePath;oLoader.src=sRelativePath;oImg.pngSrc=sSrc;}
else
{var fnOnLoadHandler=function()
{oImg.removeAttribute("width");oImg.removeAttribute("height");oImg.style.width="";oImg.style.height="";if(fnCallback)
{window.setTimeout(fnCallback,0);}
vp.events.remove(oImg,"load",fnOnLoadHandler);};if(vp.browser.isWebKit)
{var fnSafariHack=function(e)
{vp.events.remove(oImg,"load",fnSafariHack);var fnInnerHack=function()
{vp.events.add(oImg,"load",fnOnLoadHandler);oImg.removeAttribute("width");oImg.removeAttribute("height");oImg.style.width="";oImg.style.height="";oImg.src="";oImg.src=sSrc;oImg.pngSrc=sSrc;};window.setTimeout(fnInnerHack,10);};vp.events.add(oImg,"load",fnSafariHack);oImg.src=VP_UI_BLANK_IMAGE;}
else
{vp.events.add(oImg,"load",fnOnLoadHandler);oImg.src=sSrc;oImg.pngSrc=sSrc;}}};vp.ui.setSrcPNGSimple=function(oImg,sSrc)
{vp.ui._traceImageSrc(sSrc,"vp.ui.setSrcPNGSimple");if(vp.ui.browserSupportsPNG())
{oImg.src=sSrc;}
else
{oImg.src=VP_UI_BLANK_IMAGE;oImg.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+vp.web.urlEncode(vp.ui.getRelativeURL(sSrc))+"',sizingMethod='scale')";oImg.pngSrc=sSrc;}};vp.ui._traceImageSrc=function(sSrc,sMessage)
{if(vp.core.getBoolean(vp.web.getQueryString("debugimg")))
{if(sMessage)
{sMessage="<font color=red>"+sMessage+"</font>: ";}
var oDebugURL=new vp.web.URL(sSrc);oDebugURL.setItem("showerr",1);var sDebugSrc=oDebugURL.toString();vp.debug.trace("<a href=\""+vp.web.htmlAttributeEncode(sDebugSrc)+"\" target='png_preview'><IMG border=0 src=\""+vp.web.htmlAttributeEncode(sSrc)+"\"></a>");sMessage=sMessage||"";vp.debug.trace(sMessage+sSrc);vp.debug.trace("");}};vp.ui.pngHackTrackMouseEvents=function()
{if(!vp.ui.browserSupportsPNG()&&!document._pngHackMouseEventsAdded)
{vp.events.add(document.body,"mousemove",vp.ui._pngHackMouseMoveHandler);document._pngHackMouseEventsAdded=true;}};vp.ui._pngHackMouseMoveHandler=function(e)
{var oElem=document.elementFromPoint(e.clientX,e.clientY);if(document._pngHackCurrentMouseOverElement&&oElem!=document._pngHackCurrentMouseOverElement)
{try
{vp.events.fireEvent(document._pngHackCurrentMouseOverElement,"mouseout");}
catch(ex){}}
if(oElem&&oElem.pngSrc&&oElem!=document._pngHackCurrentMouseOverElement)
{try
{vp.events.fireEvent(oElem,"mouseover");}
catch(ex){}
vp.events.add(oElem,"mouseout",vp.ui._pngHackMouseOutHandler);document._pngHackCurrentMouseOverElement=oElem;}};vp.ui._pngHackMouseOutHandler=function(e)
{if(e.srcElement==document._pngHackCurrentMouseOverElement)
{vp.events.remove(document._pngHackCurrentMouseOverElement,"mouseout",vp.ui._pngHackMouseOutHandler);document._pngHackCurrentMouseOverElement=null;}};vp.ui.getRelativeURL=function(sURL)
{if(sURL.indexOf("http://")===0||sURL.indexOf("https://")===0)
{sURL=sURL.substr(8);sURL=sURL.substr(sURL.indexOf("/"));}
if(sURL.substr(0,1)!="/")
{return sURL;}
var sCurrentURL=document.location.pathname;var aCurrent=sCurrentURL.substr(1).split("/");var aTarget=sURL.substr(1).split("/");var aNew=[];while(aCurrent.length>0&&aTarget.length>0)
{if(aCurrent[0].toLowerCase()==aTarget[0].toLowerCase())
{aCurrent.remove(0);aTarget.remove(0);}
else
{break;}}
for(var i=0;i<aCurrent.length-1;i++)
{aNew.add("..");}
for(i=0;i<aTarget.length;i++)
{aNew.add(aTarget[i]);}
return aNew.join("/");};vp.ui.isElementInDOM=function(oElement)
{return oElement.parentNode&&oElement.parentNode!=oElement.ownerDocument&&oElement.parentNode.nodeType==1;};vp.ui.removeFromDOM=function(oElement)
{oElement.parentNode.removeChild(oElement);};vp.ui.replaceNodeWithContents=function(oNode)
{var oParent=oNode.parentNode;var iLen=oNode.childNodes.length;for(var i=0;i<iLen;i++)
{var oChild=oNode.childNodes[i];oChild.parentNode.removeChild(oChild);oParent.insertBefore(oChild,oNode);}
oParent.removeChild(oNode);oParent.normalize();};vp.ui.getFirstElementChild=function(oElement)
{for(var i=0;i<oElement.childNodes.length;i++)
{if(oElement.childNodes[i].nodeType==1)
{return oElement.childNodes[i];}}
return null;};vp.ui.isChildOf=function(oChild,oParent)
{var oTemp;if(typeof(oChild.parentNode)!="undefined")
{oTemp=oChild.parentNode;}
else if(oChild.parentElement)
{oTemp=oChild.parentElement();}
else if(oChild.length)
{oTemp=oChild[0];}
while(oTemp)
{if(oTemp==oParent)
{return true;}
if(oTemp.tagName&&oTemp.tagName.toLowerCase()=="body")
{return false;}
oTemp=oTemp.parentNode;}
return false;};vp.ui.getRectWithAspectRatio=function(oContainerRect,fAspectRatio)
{var oRect={top:0,left:0,width:oContainerRect.width,height:oContainerRect.height};var fContainerAspectRatio=oContainerRect.width/oContainerRect.height;if(fContainerAspectRatio<fAspectRatio)
{oRect.height=Math.round(oRect.width/fAspectRatio);}
else
{oRect.width=Math.round(oRect.height*fAspectRatio);}
oRect.left=(oContainerRect.width-oRect.width)/2;oRect.top=(oContainerRect.height-oRect.height)/2;return oRect;};vp.ui.getIFrameForDocument=function(oIFrameDocument)
{var oWin=oIFrameDocument.defaultView?oIFrameDocument.defaultView:oIFrameDocument.parentWindow;if(oWin&&oWin.frameElement)
{return oWin.frameElement;}
return null;};vp.ui.getSpecifiedAttributes=function(oNode)
{var aAttributes=[];for(var i=0;i<oNode.attributes.length;i++)
{if(oNode.attributes[i].specified)
{aAttributes.add(oNode.attributes[i]);}}
return aAttributes;};vp.ui.doRectsIntersect=function(oRect1,oRect2)
{return!(oRect1.left>(oRect2.left+oRect2.width)||(oRect1.left+oRect1.width)<oRect2.left||oRect1.top>(oRect2.top+oRect2.height)||(oRect1.top+oRect1.height)<oRect2.top);};vp.ui.isPointInsideRect=function(oPoint,oRect)
{if(oPoint.top>=oRect.top&&oPoint.top<=oRect.top+oRect.height)
{if(oPoint.left>=oRect.left&&oPoint.left<=oRect.left+oRect.width)
{return true;}}
return false;};vp.ui.getDistance=function(oPoint1,oPoint2)
{return Math.sqrt(Math.pow(oPoint1.top-oPoint2.top,2)+Math.pow(oPoint1.left-oPoint2.left,2));};vp.ui.makeElementOpaqueInIE6=function(oElement,bEnable,oTarget)
{if(vp.browser.isIE&&vp.browser.ver<7)
{var sID=oElement.id+"_iframe_block";var oIFrameLayer=oElement.ownerDocument.getElementById(sID);if(!oIFrameLayer)
{oIFrameLayer=oElement.ownerDocument.createElement("IFRAME");oIFrameLayer.style.position="absolute";if(!oTarget)
{oElement.appendChild(oIFrameLayer);}
else
{oTarget.appendChild(oIFrameLayer);oIFrameLayer.style.left=0;oIFrameLayer.style.top=0;}}
oIFrameLayer.style.width="100%";oIFrameLayer.style.height="100%";oIFrameLayer.style.display=bEnable?"block":"none";oIFrameLayer.style.filter="mask()";}};vp.ui.dummyIFrames={};vp.ui.showIE6IFrame=function(oElement,bShow)
{if(!vp.browser.isIE||vp.browser.ver>=7)
{return;}
var dummyIFrame=vp.ui.dummyIFrames[oElement.id];if(!dummyIFrame)
{dummyIFrame=document.createElement("IFRAME");dummyIFrame.setAttribute("src","");vp.ui.dummyIFrames[oElement.id]=dummyIFrame;}
if(!bShow)
{try
{oElement.parentElement.removeChild(dummyIFrame);}
catch(e){}
return;}
dummyIFrame.style.zIndex=oElement.style.zIndex;oElement.style.zIndex=oElement.style.zIndex+1;dummyIFrame.style.position="absolute";dummyIFrame.style.left=oElement.offsetLeft+"px";dummyIFrame.style.top=oElement.offsetTop+"px";dummyIFrame.style.width=oElement.offsetWidth+"px";dummyIFrame.style.height=oElement.offsetHeight+"px";oElement.parentElement.appendChild(dummyIFrame);};vp.ui.loadScriptAfterPageLoad=function(sUrl)
{var fnLoader=function()
{var oScript=document.createElement("SCRIPT");oScript.src=sUrl;document.body.appendChild(oScript);};vp.events.runAfterLoadComplete(fnLoader);};vp.ui.loadImageAfterPageLoad=function(sUrl)
{var fnLoader=function()
{var oImg=document.createElement("IMG");oImg.src=sUrl;document.body.appendChild(oImg);};vp.events.runAfterLoadComplete(fnLoader);};vp.ui.createElementFromHTML=function(sHTML)
{var oTemp=document.createElement("DIV");oTemp.innerHTML=sHTML;var oInner=oTemp.firstChild;vp.ui.removeFromDOM(oInner);return oInner;};vp.ui.getElementByAttribute=function(sAttribute,sValue,oRootNode)
{if(!oRootNode)
{oRootNode=vp.ui.getRootElement();}
if(oRootNode.nodeType==1)
{if(oRootNode.getAttribute(sAttribute)==sValue)
{return oRootNode;}
for(var i=0;i<oRootNode.childNodes.length;i++)
{var oRet=vp.ui.getElementByAttribute(sAttribute,sValue,oRootNode.childNodes[i]);if(oRet)
{return oRet;}}}
return null;};vp.ui.collectElementsByAttribute=function(oRootElement,sAttribute)
{var oCollection={};var fnRecurse=function(oElement)
{if(oElement.nodeType==1)
{var sAttrVal=oElement.getAttribute(sAttribute);if(sAttrVal)
{oCollection[sAttrVal]=oElement;}
for(var i=0;i<oElement.childNodes.length;i++)
{fnRecurse(oElement.childNodes[i]);}}};fnRecurse(oRootElement);return oCollection;};vp.ui.isQuirksMode=function()
{if(!document.all)
{return false;}
return document.compatMode!="CSS1Compat";};vp.ui.includeCssQuirksMode=function(sPath)
{if(vp.ui.isQuirksMode())
{if(!window._quirksModeCssFiles)
{window._quirksModeCssFiles={};}
if(!window._quirksModeCssFiles[sPath])
{vp.events.runAfterDOMLoadComplete(function()
{var oLink=document.createElement("LINK");oLink.href=sPath;oLink.rel="stylesheet";oLink.type="text/css";document.body.appendChild(oLink);});}
window._quirksModeCssFiles[sPath]=true;}};vp.ui.applyStyle=function(object,properties)
{for(var property in properties)
{object.style[property]=properties[property];}};
