function ImagesPanel(){this.mContainer=null;this.mPanel=null;this.mTab=null;this.mContent=null;this.mOperationsContainer=null;this.mImagesContainer=null;this.mGroupsList=null;this.mGroupInstructions=null;this.mMediaSearchInstructions=null;this.mMediaSearchInput=null;this.mMediaSearchButton=null;this.mHelpButton=null;this.mCloseButton=null;this.mLoadingContainer=null;this.mDragPlaceHolder=null;this.mGlassPlate=null;this.mMediaInfos=null;this.mManager=null;this.mFunctionRequestMediaGroupImages=null;this.mFunctionRequestSearchImages=null;this.mHidden=null;this.mLoading=null;this.mDimensions=null;this.mAnimate=true;this.CLASSNAME="imagesPanel";this.TAB_CLASSNAME="tab";this.CONTENT_CLASSNAME="content";this.IMAGES_CONTAINER_CLASSNAME="imagesContainer";this.OPERATIONS_CONTAINER_CLASSNAME="operationsContainer";this.LOADING_CONTAINER_CLASSNAME="loadingContainer";this.MEDIA_ITEM_CLASSNAME="mediaItem";this.HELP_BUTTON_CLASSNAME="helpButton";this.CLOSE_BUTTON_CLASSNAME="closeButton";this.DROPZONE_CLASSNAME="dropzone";this.PLACE_HOLDER="placeHolder";this.TAB_INSTRCUTIONS="Click to open/close the panel.";this.GROUP_SELECT_INSTRCUTIONS="Media Groups:";this.MEDIA_SEARCH_INSTRCUTIONS="Image Search:";this.HELP_INSTRCUTIONS="Opens the help page.";this.CLOSE_INSTRCUTIONS="Close the panel.";this.INITIAL_MEDIA_GROUP_OPTION="Select a Media Group...";this.MEDIA_SEARCH_BUTTON_TEXT="Search";this.TAB_HEIGHT=22;this.MAX_OPEN_DISTANCE=11;this.MARGIN=9;this.MAX_LOADING_TIME=46000;this.MIN_LOADING_TIME=800;this.init=function(){this.mPanel=$(document.createElement("div"));this.mDragPlaceHolder=$(document.createElement("div"));this.mTab=$(document.createElement("div"));this.mContent=$(document.createElement("div"));this.mOperationsContainer=$(document.createElement("div"));this.mImagesContainer=$(document.createElement("div"));this.mLoadingContainer=$(document.createElement("div"));this.mGroupsList=$(document.createElement("select"));this.mGroupInstructions=$(document.createElement("p"));this.mMediaSearchInstructions=$(document.createElement("p"));this.mMediaSearchInput=$(document.createElement("input"));this.mMediaSearchButton=$(document.createElement("a"));this.mHelpButton=$(document.createElement("a"));this.mCloseButton=$(document.createElement("a"));this.mGlassPlate=$(document.createElement("div"));this.mOperationsContainer.appendChild(this.mGroupInstructions);this.mOperationsContainer.appendChild(this.mGroupsList);this.mOperationsContainer.appendChild(this.mMediaSearchInstructions);this.mOperationsContainer.appendChild(this.mMediaSearchInput);this.mOperationsContainer.appendChild(this.mMediaSearchButton);this.mOperationsContainer.appendChild(this.mHelpButton);this.mOperationsContainer.appendChild(this.mCloseButton);this.mContent.appendChild(this.mOperationsContainer);this.mContent.appendChild(this.mImagesContainer);this.mPanel.appendChild(this.mContent);this.mPanel.appendChild(this.mTab);this.mPanel.appendChild(this.mLoadingContainer);this.mContainer.appendChild(this.mGlassPlate);this.mContainer.appendChild(this.mPanel);this.mPanel.addClassName(this.CLASSNAME);this.mTab.addClassName(this.TAB_CLASSNAME);this.mContent.addClassName(this.CONTENT_CLASSNAME);this.mOperationsContainer.addClassName(this.OPERATIONS_CONTAINER_CLASSNAME);this.mHelpButton.addClassName(this.HELP_BUTTON_CLASSNAME);this.mCloseButton.addClassName(this.CLOSE_BUTTON_CLASSNAME);this.mImagesContainer.addClassName(this.IMAGES_CONTAINER_CLASSNAME);this.mLoadingContainer.addClassName(this.LOADING_CONTAINER_CLASSNAME);this.mDragPlaceHolder.addClassName(this.PLACE_HOLDER);this.mGlassPlate.addClassName("glassPlate");this.mTab.title=this.TAB_INSTRCUTIONS;this.mGroupInstructions.update(this.GROUP_SELECT_INSTRCUTIONS);this.mMediaSearchInstructions.update(this.MEDIA_SEARCH_INSTRCUTIONS);this.mMediaSearchButton.update(this.MEDIA_SEARCH_BUTTON_TEXT);this.mMediaSearchInput.type="text";this.mMediaSearchButton.href="javascript:var mediaSearchButton;";this.mHelpButton.href="javascript: var helpButton;";this.mHelpButton.title=this.HELP_INSTRCUTIONS;this.mCloseButton.href="javascript: var closeButton;";this.mCloseButton.title=this.CLOSE_INSTRCUTIONS;this.mDragPlaceHolder.imagesPanel=this;var D=this;this.mTab.onclick=function(){D.toggle()};this.mGroupsList.onchange=function(){var E=D.getCurrentMediaGroup();if(E&&E.id){D.requestImages(E.id)}};this.mMediaSearchButton.onclick=function(){D.mMediaSearchButton.blur();D.requestImages(null,D.mMediaSearchInput.value)};this.mMediaSearchInput.onkeydown=function(E){E=jshGetEvent(E);if(E.keyCode==13){D.requestImages(null,D.mMediaSearchInput.value)}return true};this.mMediaSearchInput.onfocus=function(){D.mMediaSearchInput.select()};this.mHelpButton.onclick=function(){D.mHelpButton.blur();if(D.mManager){D.mManager.showHelpPage()}};this.mCloseButton.onclick=function(){D.mCloseButton.blur();D.toggle()};this.mPanel.style.position="absolute";this.mPanel.style.overflow="hidden";this.mPanel.style.zIndex=9888;var B=10;var C=this.mContainer.viewportOffset();var A=jshGetWindowSize();this.mGlassPlate.hide();this.mGlassPlate.style.position="absolute";this.mGlassPlate.style.left=(C[0]+B)+"px";this.mGlassPlate.style.top=(C[1]+B)+"px";this.mGlassPlate.style.width=(A[0]-(2*B))+"px";this.mGlassPlate.style.height=(A[1]-(2*B))+"px";this.mGlassPlate.style.zIndex=99999;this.mGlassPlate.style.backgroundColor="red";jshSetOpacity(this.mGlassPlate,0.01);this.mTab.style.position="absolute";this.mTab.style.right=0+"px";this.mTab.style.top=1+"px";this.mContent.style.position="absolute";this.mContent.style.left=0+"px";this.mContent.style.top=this.TAB_HEIGHT+"px";this.mHelpButton.style.position="absolute";this.mHelpButton.style.right=23+"px";this.mHelpButton.style.top=7+"px";this.mCloseButton.style.position="absolute";this.mCloseButton.style.right=5+"px";this.mCloseButton.style.top=7+"px";this.mImagesContainer.style.overflow="auto";this.mGroupInstructions.style.display="inline";this.mMediaSearchInstructions.style.display="inline";this.mMediaSearchInstructions.style.top=10+"px";this.mMediaSearchInstructions.style.position="absolute";this.mMediaSearchInstructions.style.right=293+"px";this.mMediaSearchButton.style.position="absolute";this.mMediaSearchButton.style.right=53+"px";this.mMediaSearchButton.style.top=7+"px";this.mMediaSearchInput.style.position="absolute";this.mMediaSearchInput.style.right=100+"px";this.mMediaSearchInput.style.top=7+"px";this.mDragPlaceHolder.style.backgroundColor="transparent";this.mDragPlaceHolder.style.display="block";this.mDragPlaceHolder.style.border="0 solid white";this.mLoadingContainer.hide();this.mLoadingContainer.style.position="absolute";this.mLoadingContainer.style.left=1+"px";this.mLoadingContainer.style.top=(this.TAB_HEIGHT+1)+"px";this.mLoadingContainer.style.width=150+"px";this.mLoadingContainer.style.height=500+"px";this.mLoadingContainer.style.zIndex=99999;jshSetOpacity(this.mLoadingContainer,0.75);this.reposition();this.moveTo(this.MARGIN,(this.TAB_HEIGHT-this.mPanel.getHeight()));this.close()};this.render=function(A){if(A){this.mContainer=A;this.init()}};this.moveTo=function(A,B){if((A!=NaN)&&(B!=NaN)){this.mPanel.style.right=A+"px";this.mPanel.style.bottom=B+"px"}};this.reposition=function(){var A=jshGetWindowSize();this.mDimensions=[(A[0]-20),185];this.resize(this.mDimensions[0],this.mDimensions[1])};this.resize=function(C,A){if(C&&A){this.mPanel.style.width=C+"px";this.mPanel.style.height=A+"px";this.mTab.style.width=(C)+"px";this.mTab.style.height=(this.TAB_HEIGHT)+"px";var B=jshBorderOffset(this.mContent,[0,0]);this.mContent.style.width=(C-B[0])+"px";this.mContent.style.height=(A-this.TAB_HEIGHT-B[1])+"px";this.mImagesContainer.style.width=(C-B[0])+"px";this.mImagesContainer.style.height=(this.mContent.getHeight()-B[1]-this.mOperationsContainer.getHeight()>0)?(this.mContent.getHeight()-B[1]-this.mOperationsContainer.getHeight())+"px":"128px"}};this.open=function(){var A=[this.MARGIN,this.MAX_OPEN_DISTANCE];this.mIsClosed=false;jshSetOpacity(this.mTab,1);if(this.mAnimate==true){ElementEffects.animateElementPosition(this.mPanel,A,55,0.4)}else{this.moveTo(A[0],A[1])}};this.close=function(){var B=[this.MARGIN,(this.TAB_HEIGHT-this.mPanel.getHeight())];this.mIsClosed=true;if(this.mAnimate==true){var C=this;var A=function(){jshSetOpacity(C.mTab,0.6)};ElementEffects.animateElementPosition(this.mPanel,B,55,0.45,A)}else{this.moveTo(B[0],B[1]);jshSetOpacity(this.mTab,0.6)}};this.toggle=function(){if(this.mIsClosed==true){this.open()}else{this.close()}};this.hide=function(){this.mPanel.hide()};this.show=function(){this.mPanel.show()};this.getCurrentMediaGroup=function(){var A=null;if((this.mGroupsList.selectedIndex>=0)&&(this.mGroupsList.selectedIndex<this.mGroupsList.options.length)){A=this.mGroupsList.options[this.mGroupsList.selectedIndex].mediaGroupInfo}return A};this.setAnimate=function(A){this.mAnimate=A};this.setManager=function(A){this.mManager=A};this.setRequestMediaGroupImagesFunction=function(A){this.mFunctionRequestMediaGroupImages=A};this.setRequestSearchImagesFunction=function(A){this.mFunctionRequestSearchImages=A};this.requestImages=function(C,B){if(C&&(C!=NaN)&&(C>=0)){this.startLoadingState();this.mFunctionRequestMediaGroupImages(C);this.mMediaSearchInput.value="";var A=this.getCurrentMediaGroup();if((!A)||(C!=A.id)){jshSetOptionSelected(this.mGroupsList,C)}}else{if(B){this.startLoadingState();this.mFunctionRequestSearchImages(B);this.mMediaSearchInput.value=B;jshSetOptionSelected(this.mGroupsList,-1)}}};this.setMediaGroups=function(B){this.mGroupsList.options.length=0;this.mGroupsList.options[this.mGroupsList.options.length]=new Option(this.INITIAL_MEDIA_GROUP_OPTION,"-1");var C;for(var A=0;A<B.length;A++){C=new Option(B[A].displayName.unescapeHTML(),B[A].id);C.mediaGroupInfo=B[A];this.mGroupsList.options[this.mGroupsList.options.length]=C}};this.setMediaInfos=function(A){this.mMediaInfos=A;this.endLoadingState();this.updateImages()};this.updateImages=function(){this.mImagesContainer.update("");if(this.mMediaInfos){var C;var D;var A;for(var B=0;B<this.mMediaInfos.length;B++){C=this.mMediaInfos[B];if(C){A=document.createElement("div");A=$(A);A.addClassName(this.MEDIA_ITEM_CLASSNAME);A.style.backgroundImage="url("+C.urlSize0+")";A.style.backgroundRepeat="no-repeat";A.style.cssFloat="left";A.style.styleFloat="left";A.title=C.displayName;A.imagesPanel=this;A.mediaInfo=C;A.onmousedown=Static_ImagesPanel_StartDrag;A.onmousemove=Static_ImagesPanel_Drag;A.onmouseup=Static_ImagesPanel_EndDrag;A.ondblclick=Static_ImagesPanel_AddToWorkspace;this.mImagesContainer.appendChild(A);A.style.cursor="move"}}}};this.endCurrentAction=function(A){var B=new Object();B.imagesPanel=this;if(this.mDragInProgress==true){Static_ImagesPanel_EndDrag(jshConstructMockEvent(B),A)}};this.addImageToWorkspace=function(C,A,D){if(C){if(this.mManager){var B=this.getCurrentMediaGroup();if(B){requestImage(C.id,A,D,B.id)}else{requestImage(C.id,A,D)}}}};this.startLoadingState=function(){if(this.mLoading!=true){this.mLoading=true;this.mLoadingStartTime=new Date();this.mLoadingContainer.style.width=(this.mContent.getWidth()-2>0)?(this.mContent.getWidth()-2)+"px":"0px";this.mLoadingContainer.style.height=(this.mContent.getHeight()-2>0)?(this.mContent.getHeight()-2)+"px":"0px";this.mLoadingContainer.show();var A=this;setTimeout(function(){A.endLoadingState(true)},this.MAX_LOADING_TIME)}};this.endLoadingState=function(C){if((C==true)||((this.mLoadingStartTime-new Date())>this.MIN_LOADING_TIME)){if(this.mLoading!=null){this.mLoading=null;this.mLoadingStartTime=null;this.mLoadingContainer.hide()}}else{var B=this.MIN_LOADING_TIME-(this.mLoadingStartTime-new Date());B=Math.min(B,this.MIN_LOADING_TIME);var A=this;setTimeout(function(){A.endLoadingState(true)},B)}}}function Static_ImagesPanel_EndDrag(E,B){E=jshGetEvent(E);var C=jshGetSourceElement(E);if(C&&(!C.imagesPanel)){C=C.up()}if(E&&C&&C.imagesPanel){var D=C.imagesPanel;if(D.mDragInProgress==true){D.mDragInProgress=null;D.mDragStartingX=null;D.mDragStartingY=null;D.mContainer.imagesPanel=null;D.mGlassPlate.hide();D.mGlassPlate.imagesPanel=null;D.mGlassPlate.onmouseup=null;D.mGlassPlate.onmousemove=null;D.mGlassPlate.onmousedown=null;D.mGlassPlate.onmouseout=null;D.mContainer.onmousemove=null;D.mContainer.onmouseup=null;D.mImagesContainer.onmousemove=null;D.mImagesContainer.onmouseup=null;if((B!=true)){var A=Math.round(Event.pointerX(E)-(D.mOgSource.getWidth()/2));var F=Math.round(Event.pointerY(E)-(D.mOgSource.getHeight()/2));if((!PPosition.within(D.mPanel,A,F))&&PPosition.within(D.mContainer,A,F)){D.addImageToWorkspace(D.mOgSource.mediaInfo,A,F)}}D.mDragPlaceHolder.newIndex=null;D.mContainer.removeClassName(D.DROPZONE_CLASSNAME);D.mContainer.removeChild(D.mDragObject);D.mDragObject=null;D.mOgSource.style.display="";D.mOgSource.style.visibility=""}}}function Static_ImagesPanel_StartDrag(C){C=jshGetEvent(C);var A=jshGetSourceElement(C);if(A&&(!A.imagesPanel)){A=A.up()}if(C&&A&&A.imagesPanel){var B=A.imagesPanel;if(B.mDragInProgress!=true){B.mDragInProgress=true;B.mOgSource=A;B.mDragObject=A.cloneNode(true);B.mDragObject.imagesPanel=B;B.mContainer.appendChild(B.mDragObject);B.mDragObject.hide();B.mContainer.imagesPanel=B;B.mContainer.onmousemove=Static_ImagesPanel_Drag;B.mContainer.onmouseup=Static_ImagesPanel_EndDrag;B.mImagesContainer.onmousemove=Static_ImagesPanel_Drag;B.mImagesContainer.onmouseup=Static_ImagesPanel_EndDrag;B.mGlassPlate.show();B.mGlassPlate.imagesPanel=B;B.mGlassPlate.onmousemove=Static_ImagesPanel_Drag;B.mGlassPlate.onmouseup=Static_ImagesPanel_EndDrag;B.mGlassPlate.onmouseout=Static_ImagesPanel_EndDrag}}}function Static_ImagesPanel_Drag(D){D=jshGetEvent(D);var B=jshGetSourceElement(D);if(B&&(!B.imagesPanel)){B=B.up()}if(D&&B&&B.imagesPanel){var C=B.imagesPanel;if(C.mDragInProgress==true){C.mDragObject.show();C.mOgSource.style.visibility="hidden";C.mDragObject.style.position="absolute";C.mDragObject.style.zIndex=9999;var A=Event.pointerX(D);var E=Event.pointerY(D);if((PPosition.within(C.mContainer,A,E))&&(!PPosition.within(C.mPanel,A,E))){if(!C.mContainer.hasClassName(C.DROPZONE_CLASSNAME)){C.mContainer.addClassName(C.DROPZONE_CLASSNAME)}}else{C.mContainer.removeClassName(C.DROPZONE_CLASSNAME)}C.mDragObject.style.left=A-(C.mDragObject.getWidth()/2)+"px";C.mDragObject.style.top=E-(C.mDragObject.getHeight()/2)+"px"}}}function Static_ImagesPanel_AddToWorkspace(D){D=jshGetEvent(D);var B=jshGetSourceElement(D);if(B&&(!B.imagesPanel)){B=B.up()}if(D&&B&&B.imagesPanel){var C=B.imagesPanel;if(B.mediaInfo){var A=null;var E=null;if(B.startingPosition){A=B.startingPosition[0];E=B.startingPosition[1]}C.addImageToWorkspace(B.mediaInfo,A,E)}}};
