JAL-2375 JAL-2376 First commit of implementation for Phyre2 result browsing, template...
[jalview.git] / examples / testdata / phyre2results / 56da5616b4559c93 / css / skinnytip.js
diff --git a/examples/testdata/phyre2results/56da5616b4559c93/css/skinnytip.js b/examples/testdata/phyre2results/56da5616b4559c93/css/skinnytip.js
new file mode 100644 (file)
index 0000000..a865217
--- /dev/null
@@ -0,0 +1,268 @@
+/////////////////////////////////////////////////////////////////////
+//SkinnyTip 2.00 - Elliott Brueggeman - April 19, 2007
+//JavaScript Popup Tooltip Library 
+//Project Homepage: http://www.ebrueggeman.com/skinnytip
+//Documentation available on project homepage
+////////////////////////////////////////////////////////////////////
+//Rights: Free for personal use and corporate use if sites
+//include a link to the project homepage
+//////////////////////////////////////////////////////////////////////
+
+
+//Call mouse capture handler function on page load
+captureMouse();
+
+//CUSTOM VARS - Initialized below
+var v_divname;
+var v_text;
+var v_title;
+var v_xoffset;
+var v_yoffset;
+var v_backcolor;
+var v_bordercolor;
+var v_textcolor;
+var v_titletextcolor;
+var v_width;
+var v_border;
+var v_title_padding;
+var v_content_padding;
+var v_fontface;
+var v_fontsize;
+var v_titlefontsize;
+
+//INTERNAL VARIABLES
+var v_xcoordinate = 0;
+var v_ycoordinate = 0;
+var v_visible = 0;
+var v_havemouse = 0;
+var v_layer = null;
+
+function tooltip(displaytext, title, commands) {
+       //Reset variables for this tool tip
+       init_tooltip();
+       
+       //Title and Text
+       v_title=title;
+       v_text=displaytext;
+       
+       //Parse commands if any
+       parseCommands(commands);
+       
+       
+       if (v_layer) { 
+               v_layer=getLayer(v_divname); 
+       }
+       
+       if (!(v_layer=createDivContainer())) { 
+               return false;
+       }
+
+       mainMethod();
+}
+
+function init_tooltip() {
+       
+       v_divname = 'tiplayer';
+       v_text = 'Default Text';
+       v_title = '';
+       
+       //UI Variables
+       v_xoffset = 15;
+       v_yoffset = 15;
+       v_backcolor = '#f6f5ee';
+       v_bordercolor = '#88344b';
+       v_textcolor = '#000000';
+       v_titletextcolor = '#000000';
+       v_width = 300;
+       
+       v_border = 2;
+       v_title_padding = '1px';
+       v_content_padding = '1px 3px';
+       
+       v_fontface = 'Arial, Helvetica, Sans-Serif';
+       v_fontsize = 14;
+       v_titlefontsize = 14;
+       
+       //SYSTEM VARIABLES
+       v_visible = 0;
+       v_layer = null;
+}
+
+function parseCommands(commands) {
+       if (commands != null) {
+               var comArray = commands.split(',');
+               for (var i = 0; i < comArray.length; i++) {
+                       var args = comArray[i].split(':');
+                       eval('v_' + trimWhitespace(args[0]) + '="' + trimWhitespace(args[1]) + '"');
+               }
+       }
+}
+
+// Clears popups if appropriate
+function hideTip() {
+       if (v_visible == 1) {
+               if (v_layer != null) {
+                       v_layer.style.visibility = 'hidden';
+                       v_visible = 0;
+               }
+       }
+       return true;
+}
+
+function mainMethod() {        
+       v_visible = 0;
+       
+       var html = makeHTML(v_text, v_title);   
+       createPopup(html);
+       
+       //if we have mouse coordinates, position layer and make visible
+       if (v_havemouse == 1) { 
+               positionLayer();
+               v_visible = 1;
+               v_layer.style.visibility = 'visible';
+       }
+}
+
+function makeHTML(text, title) {
+       
+       var container_style = 'width:' + v_width + 'px;';
+       container_style += 'border:' + v_border + 'px solid ' + v_bordercolor + ';';
+       container_style += 'background-color:' + v_backcolor + ';';
+       container_style += 'font-family:' + v_fontface + ';';
+       container_style += 'font-size:' + v_fontsize + 'px;';
+       
+       var title_style = 'background-color:' + v_bordercolor + ';';
+       title_style += 'padding:' + v_title_padding + ';';
+       title_style += 'color:' + v_titletextcolor + ';';
+       
+       var content_style = 'padding:' + v_content_padding + ';';
+       content_style += 'color:' + v_textcolor + ';';
+       
+       var txt = '<div id="skinnytip_container" style="' + container_style + '">';
+       if (title!=null && title.length>0) {
+               txt += '<div id="skinnytip_title" style="' + title_style + '">' + title + '</div>';
+       }
+       txt += '<div id="skinnytip_content" style="' + content_style + '">' + text + '</div>';
+       txt += '</div>';
+       
+       return txt;
+}
+
+//Positions popup according to mouse input
+function positionLayer() {
+       
+       var placeX = 300;
+       var placeY = 300;
+       
+       //get final placement
+       placeX = horizontalPlacement();
+       placeY = verticalPlacement();
+       
+       //Move the object
+       v_layer.style.left = placeX + 'px';
+       v_layer.style.top = placeY + 'px';
+}
+
+//called when the mouse moves
+//sets mouse related variables
+function mouseMoveHandler(e) {
+       if (!e) {
+               e = event;
+       }
+       if (e.clientX) {
+        //if there is an x pos property
+        //GET MOUSE LOCATION
+               v_xcoordinate = mouseX(e);
+               v_ycoordinate = mouseY(e);      
+               v_havemouse = 1;
+       }
+       if (v_visible == 1) { 
+               positionLayer();        
+       }
+}
+
+//get mouse x coordinate
+function mouseX(evt) {
+       if (evt.pageX) return evt.pageX;
+       else if (evt.clientX) {
+          return evt.clientX + (document.documentElement.scrollLeft ?
+          document.documentElement.scrollLeft :
+          document.body.scrollLeft);
+       }
+       else {
+               return null;
+       }
+}
+
+//get mouse y coordinate
+function mouseY(evt) {
+       if (evt.pageY) { 
+               return evt.pageY; 
+       }
+       else if (evt.clientY) {
+          return evt.clientY + (document.documentElement.scrollTop ?
+          document.documentElement.scrollTop :
+          document.body.scrollTop);
+       }
+       else { 
+               return null;
+       }
+}
+
+//Set mouse handler
+function captureMouse() {
+       document.onmousemove = mouseMoveHandler;
+}
+
+//Creates the popup
+function createPopup(input) {
+
+       var popupwidth = v_width;
+       var text;
+       var zindex;
+       
+       text =  createBackLayer(popupwidth,zindex++);
+       text += '<div style="position: absolute; top: 0; left: 0; width: ' + popupwidth + 'px; z-index: ' + zindex + ';">' + input + '</div>';
+       
+       if (typeof v_layer.innerHTML != 'undefined') {
+               v_layer.innerHTML = text;
+       } 
+       
+       //After writing html measure height of backlayer to set height of iframe
+       var backlayer=self.document.getElementById("backdrop");
+       var container=self.document.getElementById("skinnytip_container");
+       backlayer.height = container.offsetHeight;
+}
+
+//Back layer prevents forms from showing through popups
+function createBackLayer(width, Z) {
+       //Create backdrop with 0 height
+       return '<iframe id="backdrop" frameborder="0" scrolling="no" width="' + width + '" height="0" style="z-index: ' + Z + '; filter: Beta(Style=0,Opacity=0);"><p></iframe>';
+}
+
+//get horizontal box placement
+function horizontalPlacement() {
+       placeX = v_xcoordinate + v_xoffset;
+       return placeX;
+}
+
+//get vertical box placement
+function verticalPlacement() {
+       return v_ycoordinate + v_yoffset;
+}
+
+// create the div container for popup content if it doesn't exist
+function createDivContainer() {
+       var divContainer = self.document.getElementById(v_divname);
+       return divContainer;
+}
+
+function trimWhitespace(str) {  
+       while(str.charAt(0) == (" ") ) {  
+               str = str.substring(1);
+       }
+       while(str.charAt(str.length-1) == " " ) {  
+               str = str.substring(0,str.length-1);
+       }
+       return str;
+}