///////////////////////////////////////////////////////////////////// //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; var is_on=0; var lastid=''; var lastcontent=''; function vote(series){ if(navigator.appName == "Microsoft Internet Explorer") { http = new ActiveXObject("Microsoft.XMLHTTP"); } else { http = new XMLHttpRequest(); } http.onreadystatechange = function() { if (http.readyState == 4) { self.document.getElementById('current-rating-result').innerHTML=http.responseText; } } http.open('GET', '/animeDownload/vote.php?f='+series+'&s='+self.document.getElementById('stars').value, true); http.send(null); return; } function ktip(tipid){ is_on=1; tooltip('
','','width:200,backcolor:#FFFFFF,bordercolor:#0080FF'); if(tipid==lastid){ if(lastcontent.search('was not found on this server.')==-1) tooltip(lastcontent,'','width:500,backcolor:#FFFFFF'); else tooltip('
Information not updated.
','','width:400,backcolor:#FFFFFF'); }else{ if(navigator.appName == "Microsoft Internet Explorer") { http = new ActiveXObject("Microsoft.XMLHTTP"); } else { http = new XMLHttpRequest(); } http.onreadystatechange = function() { if (http.readyState == 4) { if(is_on==1){ lastcontent='
'+http.responseText.replace(/\n/g,"
")+'
'; lastcontent=lastcontent.replace("’","'"); lastcontent=lastcontent.replace("“",'"'); lastcontent=lastcontent.replace("”",'"'); lastcontent=lastcontent.replace("`","'"); lastid=tipid; if(http.responseText.search('was not found on this server.')==-1) tooltip(lastcontent,'','width:500,backcolor:#FFFFFF'); else tooltip('
Information not updated.
','','width:400,backcolor:#FFFFFF'); } } } http.open('GET', '/animeDownload/data/anime/'+tipid+'.html', true); http.send(null); return; } } function tooltip(displaytext, title, commands) { //function tooltip(txt) { //displaytext='
'; //commands='width:200'; //title=''; //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 = '#FFFFCC'; v_bordercolor = '#FFCC66'; 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() { is_on=0; 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 = '
'; if (title!=null && title.length>0) { txt += '
' + title + '
'; } txt += '
' + text + '
'; txt += '
'; 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 += '
' + input + '
'; 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 ''; } //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; }