ElEditors, Interface administrators, Administrators
85,546
edits
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
var usesClass = (function () { | var usesClass = (function() { | ||
var reCache = {}; | |||
return function(element, className) { | |||
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); | |||
}; | |||
})(); | |||
/* | /* | ||
addOnloadHook(function(){ | addOnloadHook(function(){ | ||
Line 20: | Line 20: | ||
addOnloadHook(function($) { | addOnloadHook(function($) { | ||
return function() { | |||
$('.tabdiv > div').hide(); | |||
$('.tabdiv').each(function() { | |||
$(this).find('> ul li').addClass('inactive'); | |||
$(this).find('> ul li:first').removeClass('inactive'); | |||
$(this).find('> ul li:first').addClass('active'); | |||
$(this).find('> div:first').show(); | |||
}); | |||
$('.tabdiv > ul li').each(function() { | |||
var a = $(this).find('a:first'); | |||
var target = a.attr('href'); | |||
$(a).attr('href', ''); // Opera hates real hrefs | |||
$(this).click(function() { | |||
$(this).parent().find('> li').removeClass('active'); | |||
$(this).parent().find('> li').addClass('inactive'); | |||
$(this).addClass('active'); | |||
$(this).removeClass('inactive'); | |||
$(this).parent().parent().find('> div').hide(); | |||
$(target).show(); | |||
return false; | |||
}); | |||
}); | |||
} | |||
}(jQuery)); | }(jQuery)); | ||
Line 52: | Line 52: | ||
/* Add a hook to make buttons, where need be, on every pageload */ | /* Add a hook to make buttons, where need be, on every pageload */ | ||
addOnloadHook( createTableButtons ); | addOnloadHook(createTableButtons); | ||
/* Define global variables: | /* Define global variables: | ||
Line 64: | Line 64: | ||
/* Define functions that do-the-work */ | /* Define functions that do-the-work */ | ||
/* Function toggleTableView() toggles a specified table's view from minimized to maximized, or vice versa */ | /* Function toggleTableView() toggles a specified table's view from minimized to maximized, or vice versa */ | ||
function toggleTableView( tableIndex, tableShrink ) | function toggleTableView(tableIndex, tableShrink) { | ||
{ | var Table = document.getElementById("collapsibleTable" + tableIndex); | ||
var Table = document.getElementById( "collapsibleTable" + tableIndex ); | |||
/* If there is no collapsible tables on the page, no need to do any shrinking */ | /* If there is no collapsible tables on the page, no need to do any shrinking */ | ||
if (!Table) { | if (!Table) { | ||
return false; | |||
} | } | ||
var Button = document.getElementById( "collapseButton" + tableIndex ); | var Button = document.getElementById("collapseButton" + tableIndex); | ||
/* If no collapsible buttons, no need to do any shrinking */ | /* If no collapsible buttons, no need to do any shrinking */ | ||
if (!Button ) { | if (!Button) { | ||
return false; | return false; | ||
} | } | ||
/* Grab the rows of the specified table */ | /* Grab the rows of the specified table */ | ||
var Rows = Table.getElementsByTagName( "tr" ); | var Rows = Table.getElementsByTagName("tr"); | ||
/* Do the hiding/unhiding */ | /* Do the hiding/unhiding */ | ||
if ( Button.firstChild.data == minimizeSymbol || tableShrink == 1 ) { | if (Button.firstChild.data == minimizeSymbol || tableShrink == 1) { | ||
/* if the button is set to minimize its contents, | /* if the button is set to minimize its contents, | ||
* then loop through the rows and mark them hidden */ | * then loop through the rows and mark them hidden */ | ||
var count = 1; | var count = 1; | ||
while (Rows.length > count) { | while (Rows.length > count) { | ||
if (Rows[count].parentNode.parentNode.id == ("collapsibleTable" + tableIndex)) { | |||
Rows[count].style.display = "none"; | |||
} | |||
count++; | |||
} | } | ||
/* After marking, change the table to show the maximize symbol */ | /* After marking, change the table to show the maximize symbol */ | ||
Line 98: | Line 96: | ||
} else { | } else { | ||
/* if the button is set to maximize its contents, | /* if the button is set to maximize its contents, | ||
* then loop through the rows and mark them visible */ | * then loop through the rows and mark them visible */ | ||
var count = 1; | var count = 1; | ||
while (Rows.length > count) { | while (Rows.length > count) { | ||
if (Rows[count].parentNode.parentNode.id == ("collapsibleTable" + tableIndex)) { | |||
Rows[count].style.display = Rows[0].style.display; | |||
} | |||
count++; | |||
} | } | ||
/* After marking, change the table to show the minimize symbol */ | /* After marking, change the table to show the minimize symbol */ | ||
Line 114: | Line 111: | ||
/* Funtion createTableButtons() creates the plus or minus symbol and alignment text | /* Funtion createTableButtons() creates the plus or minus symbol and alignment text | ||
* to be applied on collapsible tables */ | * to be applied on collapsible tables */ | ||
function createTableButtons() | function createTableButtons() { | ||
{ | |||
/* Define local variables */ | /* Define local variables */ | ||
var tableIndex = 0; | var tableIndex = 0; | ||
var NavBoxes = new Object(); | var NavBoxes = new Object(); | ||
var Tables = document.getElementsByTagName( "table" ); | var Tables = document.getElementsByTagName("table"); | ||
/* Use two count variables to handle cases where continue is used */ | /* Use two count variables to handle cases where continue is used */ | ||
var loopcount = 0; | var loopcount = 0; | ||
var count = 0; | var count = 0; | ||
while (Tables.length > loopcount) { | while (Tables.length > loopcount) { | ||
/* For all collapsible table on the page, this code goes through | /* For all collapsible table on the page, this code goes through | ||
Line 129: | Line 125: | ||
count = loopcount; | count = loopcount; | ||
loopcount++; | loopcount++; | ||
if ( usesClass( Tables[count], "collapsible" ) ) { | if (usesClass(Tables[count], "collapsible")) { | ||
/* Proceed only if a header row and header exist */ | /* Proceed only if a header row and header exist */ | ||
var HeaderRow = Tables[count].getElementsByTagName( "tr" )[0]; | var HeaderRow = Tables[count].getElementsByTagName("tr")[0]; | ||
if (!HeaderRow) continue; | if (!HeaderRow) continue; | ||
var Header = HeaderRow.getElementsByTagName( "th" )[0]; | var Header = HeaderRow.getElementsByTagName("th")[0]; | ||
if (!Header) continue; | if (!Header) continue; | ||
/* Log where you are in the looping */ | /* Log where you are in the looping */ | ||
NavBoxes[ tableIndex ] = Tables[count]; | NavBoxes[tableIndex] = Tables[count]; | ||
/* Set the identifier of the table being edited in this iteration */ | /* Set the identifier of the table being edited in this iteration */ | ||
Tables[count].setAttribute( "id", "collapsibleTable" + tableIndex ); | Tables[count].setAttribute("id", "collapsibleTable" + tableIndex); | ||
/* Create the button assuming it is a minimized table | /* Create the button assuming it is a minimized table | ||
* to do the initial creation. */ | * to do the initial creation. */ | ||
var Button = document.createElement( "span" ); | var Button = document.createElement("span"); | ||
var ButtonLink = document.createElement( "a" ); | var ButtonLink = document.createElement("a"); | ||
var ButtonText = document.createTextNode( maximizeSymbol ); | var ButtonText = document.createTextNode(maximizeSymbol); | ||
/* Define where the button floats and its font and size. | /* Define where the button floats and its font and size. | ||
Line 158: | Line 154: | ||
Button.style.textAlign = "right"; | Button.style.textAlign = "right"; | ||
Button.style.width = "5em"; | Button.style.width = "5em"; | ||
Button.style.color = "white"; | Button.style.color = "white"; | ||
/* Set the link color and identifier */ | /* Set the link color and identifier */ | ||
ButtonLink.style.color = Header.style.color; | ButtonLink.style.color = Header.style.color; | ||
ButtonLink.style.color = "white"; | ButtonLink.style.color = "white"; | ||
ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); | ButtonLink.setAttribute("id", "collapseButton" + tableIndex); | ||
/* Set the destination of the button */ | /* Set the destination of the button */ | ||
ButtonLink.setAttribute( "href", "javascript:toggleTableView(" + tableIndex + ");" ); | ButtonLink.setAttribute("href", "javascript:toggleTableView(" + tableIndex + ");"); | ||
ButtonLink.appendChild( ButtonText ); | ButtonLink.appendChild(ButtonText); | ||
Button.appendChild( document.createTextNode( "[" ) ); | Button.appendChild(document.createTextNode("[")); | ||
Button.appendChild( ButtonLink ); | Button.appendChild(ButtonLink); | ||
Button.appendChild( document.createTextNode( "]" ) ); | Button.appendChild(document.createTextNode("]")); | ||
/* Load the next header and table for the next iteration */ | /* Load the next header and table for the next iteration */ | ||
Header.insertBefore( Button, Header.childNodes[0] ); | Header.insertBefore(Button, Header.childNodes[0]); | ||
tableIndex++; | tableIndex++; | ||
} | } | ||
Line 186: | Line 182: | ||
while (tableIndex > loopcount) { | while (tableIndex > loopcount) { | ||
/* If autocollapse or collapse is not invalid, maximize; otherwise, minimize */ | /* If autocollapse or collapse is not invalid, maximize; otherwise, minimize */ | ||
if (((autoShrink > tableIndex) && usesClass( NavBoxes[loopcount], "autocollapse" )) || !usesClass( NavBoxes[loopcount], "collapsed" ) ) { | if (((autoShrink > tableIndex) && usesClass(NavBoxes[loopcount], "autocollapse")) || !usesClass(NavBoxes[loopcount], "collapsed")) { | ||
toggleTableView(loopcount, 0); | |||
} | } else { | ||
toggleTableView(loopcount, 1); | |||
} | } | ||
loopcount++; | loopcount++; | ||
Line 199: | Line 194: | ||
Source: http://webdesign.html.it/articoli/leggi/528/more-nifty-corners */ | Source: http://webdesign.html.it/articoli/leggi/528/more-nifty-corners */ | ||
function NiftyCheck(){ | function NiftyCheck() { | ||
if(!document.getElementById || !document.createElement) | if (!document.getElementById || !document.createElement) | ||
return (false); | |||
isXHTML=/html\:/.test(document.getElementsByTagName('body')[0].nodeName); | isXHTML = /html\:/.test(document.getElementsByTagName('body')[0].nodeName); | ||
if(Array.prototype.push==null){Array.prototype.push=function(){ | if (Array.prototype.push == null) { | ||
Array.prototype.push = function() { | |||
return(true); | this[this.length] = arguments[0]; | ||
return (this.length); | |||
} | |||
} | |||
return (true); | |||
} | } | ||
function Rounded(selector,wich,bk,color,opt){ | function Rounded(selector, wich, bk, color, opt) { | ||
var i,prefixt,prefixb,cn="r",ecolor="",edges=false,eclass="",b=false,t=false; | var i, prefixt, prefixb, cn = "r", | ||
ecolor = "", | |||
edges = false, | |||
eclass = "", | |||
b = false, | |||
t = false; | |||
if(color=="transparent"){ | if (color == "transparent") { | ||
cn = cn + "x"; | |||
ecolor = bk; | |||
bk = "transparent"; | |||
} | } else if (opt && opt.indexOf("border") >= 0) { | ||
else if(opt && opt.indexOf("border")>=0){ | var optar = opt.split(" "); | ||
for (i = 0; i < optar.length; i++) | |||
if (optar[i].indexOf("#") >= 0) ecolor = optar[i]; | |||
if (ecolor == "") ecolor = "#666"; | |||
cn += "e"; | |||
edges = true; | |||
} else if (opt && opt.indexOf("smooth") >= 0) { | |||
} | cn += "a"; | ||
else if(opt && opt.indexOf("smooth")>=0){ | ecolor = Mix(bk, color); | ||
} | } | ||
else if(wich.indexOf("tr")>=0){ | if (opt && opt.indexOf("small") >= 0) cn += "s"; | ||
prefixt = cn; | |||
prefixb = cn; | |||
if (wich.indexOf("all") >= 0) { | |||
t = true; | |||
b = true | |||
} else if (wich.indexOf("top") >= 0) t = "true"; | |||
else if (wich.indexOf("tl") >= 0) { | |||
t = "true"; | |||
if (wich.indexOf("tr") < 0) prefixt += "l"; | |||
} else if (wich.indexOf("tr") >= 0) { | |||
t = "true"; | |||
prefixt += "r"; | |||
} | } | ||
if(wich.indexOf("bottom")>=0) b=true; | if (wich.indexOf("bottom") >= 0) b = true; | ||
else if(wich.indexOf("bl")>=0){ | else if (wich.indexOf("bl") >= 0) { | ||
b = "true"; | |||
if (wich.indexOf("br") < 0) prefixb += "l"; | |||
} else if (wich.indexOf("br") >= 0) { | |||
b = "true"; | |||
prefixb += "r"; | |||
} | } | ||
var v = getElementsBySelector(selector); | |||
var l = v.length; | |||
for (i = 0; i < l; i++) { | |||
if (edges) AddBorder(v[i], ecolor); | |||
var v=getElementsBySelector(selector); | if (t) AddTop(v[i], bk, color, ecolor, prefixt); | ||
var l=v.length; | if (b) AddBottom(v[i], bk, color, ecolor, prefixb); | ||
for(i=0;i<l;i++){ | |||
} | } | ||
} | } | ||
function AddBorder(el,bc){ | function AddBorder(el, bc) { | ||
var i; | var i; | ||
if(!el.passed){ | if (!el.passed) { | ||
if (el.childNodes.length == 1 && el.childNodes[0].nodeType == 3) { | |||
var t = el.firstChild.nodeValue; | |||
el.removeChild(el.lastChild); | |||
var d = CreateEl("span"); | |||
d.style.display = "block"; | |||
d.appendChild(document.createTextNode(t)); | |||
el.appendChild(d); | |||
} | } | ||
for (i = 0; i < el.childNodes.length; i++) { | |||
if (el.childNodes[i].nodeType == 1) { | |||
el.childNodes[i].style.borderLeft = "1px solid " + bc; | |||
el.childNodes[i].style.borderRight = "1px solid " + bc; | |||
} | } | ||
} | } | ||
} | } | ||
el.passed=true; | el.passed = true; | ||
} | } | ||
if(cn.indexOf("s")>=0) lim=2; | function AddTop(el, bk, color, bc, cn) { | ||
if(bc) d.className="artop"; | var i, lim = 4, | ||
else d.className="rtop"; | d = CreateEl("b"); | ||
d.style.backgroundColor=bk; | |||
for(i=1;i<=lim;i++){ | if (cn.indexOf("s") >= 0) lim = 2; | ||
if (bc) d.className = "artop"; | |||
else d.className = "rtop"; | |||
d.style.backgroundColor = bk; | |||
for (i = 1; i <= lim; i++) { | |||
var x = CreateEl("b"); | |||
x.className = cn + i; | |||
x.style.backgroundColor = color; | |||
if (bc) x.style.borderColor = bc; | |||
d.appendChild(x); | |||
} | } | ||
el.style.paddingTop=0; | el.style.paddingTop = 0; | ||
el.insertBefore(d,el.firstChild); | el.insertBefore(d, el.firstChild); | ||
} | } | ||
function AddBottom(el,bk,color,bc,cn){ | function AddBottom(el, bk, color, bc, cn) { | ||
var i,lim=4,d=CreateEl("b"); | var i, lim = 4, | ||
d = CreateEl("b"); | |||
if(cn.indexOf("s")>=0) lim=2; | if (cn.indexOf("s") >= 0) lim = 2; | ||
if(bc) d.className="artop"; | if (bc) d.className = "artop"; | ||
else d.className="rtop"; | else d.className = "rtop"; | ||
d.style.backgroundColor=bk; | d.style.backgroundColor = bk; | ||
for(i=lim;i>0;i--){ | for (i = lim; i > 0; i--) { | ||
var x = CreateEl("b"); | |||
x.className = cn + i; | |||
x.style.backgroundColor = color; | |||
if (bc) x.style.borderColor = bc; | |||
d.appendChild(x); | |||
} | } | ||
el.style.paddingBottom=0; | el.style.paddingBottom = 0; | ||
el.appendChild(d); | el.appendChild(d); | ||
} | } | ||
function CreateEl(x){ | function CreateEl(x) { | ||
if(isXHTML) return(document.createElementNS('http://www.w3.org/1999/xhtml',x)); | if (isXHTML) return (document.createElementNS('http://www.w3.org/1999/xhtml', x)); | ||
else return(document.createElement(x)); | else return (document.createElement(x)); | ||
} | } | ||
function getElementsBySelector(selector){ | function getElementsBySelector(selector) { | ||
var i,selid="",selclass="",tag=selector,f,s=[],objlist=[]; | var i, selid = "", | ||
selclass = "", | |||
tag = selector, | |||
f, s = [], | |||
objlist = []; | |||
if(selector.indexOf(" ")>0){ | if (selector.indexOf(" ") > 0) { //descendant selector like "tag#id tag" | ||
s = selector.split(" "); | |||
var fs = s[0].split("#"); | |||
if (fs.length == 1) return (objlist); | |||
f = document.getElementById(fs[1]); | |||
if (f) return (f.getElementsByTagName(s[1])); | |||
return (objlist); | |||
} | } | ||
if(selector.indexOf("#")>0){ //id selector like "tag#id" | if (selector.indexOf("#") > 0) { //id selector like "tag#id" | ||
s = selector.split("#"); | |||
tag = s[0]; | |||
selid = s[1]; | |||
} | } | ||
if(selid!=""){ | if (selid != "") { | ||
f = document.getElementById(selid); | |||
if (f) objlist.push(f); | |||
return (objlist); | |||
} | } | ||
if(selector.indexOf(".")>0){ | if (selector.indexOf(".") > 0) { //class selector like "tag.class" | ||
s = selector.split("."); | |||
tag = s[0]; | |||
selclass = s[1]; | |||
} | } | ||
var v=document.getElementsByTagName(tag); | var v = document.getElementsByTagName(tag); // tag selector like "tag" | ||
if(selclass=="") | if (selclass == "") | ||
return (v); | |||
for(i=0;i<v.length;i++){ | for (i = 0; i < v.length; i++) { | ||
if (v[i].className.indexOf(selclass) >= 0) { | |||
objlist.push(v[i]); | |||
} | } | ||
} | } | ||
return(objlist); | return (objlist); | ||
} | } | ||
function Mix(c1,c2){ | function Mix(c1, c2) { | ||
var i,step1,step2,x,y,r=new Array(3); | var i, step1, step2, x, y, r = new Array(3); | ||
if(c1.length==4)step1=1; | if (c1.length == 4) step1 = 1; | ||
else step1=2; | else step1 = 2; | ||
if(c2.length==4) step2=1; | if (c2.length == 4) step2 = 1; | ||
else step2=2; | else step2 = 2; | ||
for(i=0;i<3;i++){ | for (i = 0; i < 3; i++) { | ||
x = parseInt(c1.substr(1 + step1 * i, step1), 16); | |||
if (step1 == 1) x = 16 * x + x; | |||
y = parseInt(c2.substr(1 + step2 * i, step2), 16); | |||
if (step2 == 1) y = 16 * y + y; | |||
r[i] = Math.floor((x * 50 + y * 50) / 100); | |||
} | } | ||
return("#"+r[0].toString(16)+r[1].toString(16)+r[2].toString(16)); | return ("#" + r[0].toString(16) + r[1].toString(16) + r[2].toString(16)); | ||
} | } | ||
function doRoundEdges(){ | function doRoundEdges() { | ||
if (!NiftyCheck()) | |||
return; | |||
Rounded("div#nifty", "all", "#FFF", "#D4DDFF", "smooth"); | |||
} | } | ||
addOnloadHook( doRoundEdges ); | addOnloadHook(doRoundEdges); | ||
Line 408: | Line 416: | ||
// | // | ||
function setStyleById(i, p, v) { | function setStyleById(i, p, v) { | ||
var n = document.getElementById(i); | |||
n.style[p] = v; | |||
} | } | ||
/* Add a hook to perform code on every pageload */ | /* Add a hook to perform code on every pageload */ | ||
addOnloadHook( performIE ); | addOnloadHook(performIE); | ||
function performIE() | |||
{ | function performIE() { | ||
if ( -1 != navigator.userAgent.indexOf ("MSIE") ) { | if (-1 != navigator.userAgent.indexOf("MSIE")) { | ||
/* perform Microsoft Internet Explorer-specific subs */ | /* perform Microsoft Internet Explorer-specific subs */ | ||
var Divs = document.getElementsByTagName( "div" ); | var Divs = document.getElementsByTagName("div"); | ||
var divCnt = 0; | var divCnt = 0; | ||
var divID = ""; | var divID = ""; | ||
Line 424: | Line 432: | ||
var CurrDiv = Divs[0]; | var CurrDiv = Divs[0]; | ||
var s = ""; | var s = ""; | ||
while (Divs.length > divCnt) { | while (Divs.length > divCnt) { | ||
s = eval("CurrDiv.style.ietop"); | s = eval("CurrDiv.style.ietop"); | ||
if ((s != "") && (s != null)) { | if ((s != "") && (s != null)) { | ||
divID = "mapDiv" + divCnt; | divID = "mapDiv" + divCnt; | ||
CurrDiv.setAttribute( "id", divID ); | CurrDiv.setAttribute("id", divID); | ||
setStyleById(divID, "top", CurrDiv.style.ietop); | setStyleById(divID, "top", CurrDiv.style.ietop); | ||
} | } | ||
Line 436: | Line 444: | ||
} | } | ||
} | } | ||
} | } | ||
//Get Ad Dart Number | //Get Ad Dart Number | ||
var randDARTNumber=0; | var randDARTNumber = 0; | ||
function genSetRandDARTNumber() | |||
{ | function genSetRandDARTNumber() { | ||
randDARTNumber = Math.round(Math.random() * 1000000000000); | |||
} | } | ||
genSetRandDARTNumber(); | genSetRandDARTNumber(); | ||
Line 460: | Line 468: | ||
/****************************** Common Gradient ******************************/ | /****************************** Common Gradient ******************************/ | ||
$(function(){ | $(function() { | ||
var rainbowList = $('table > tbody > tr[style*=rainbow]'); | var rainbowList = $('table > tbody > tr[style*=rainbow]'); | ||
var headerList = $('table > tbody > tr').has('> th').filter(function(){ | var headerList = $('table > tbody > tr').has('> th').filter(function() { | ||
return $(this).children('td').length == 0; | return $(this).children('td').length == 0; | ||
}).filter(function(){ | }).filter(function() { | ||
return $.inArray(this, rainbowList) == -1; | return $.inArray(this, rainbowList) == -1; | ||
}).children('th'); | }).children('th'); | ||
headerList.each(function(){ | headerList.each(function() { | ||
var bgc = $(this).css('background-color'); | var bgc = $(this).css('background-color'); | ||
if(bgc != 'rgba(0, 0, 0, 0)' && bgc != 'transparent'){ /* Chrome & FF transparent hack */ | if (bgc != 'rgba(0, 0, 0, 0)' && bgc != 'transparent') { /* Chrome & FF transparent hack */ | ||
$(this).css('background-image', 'linear-gradient(to bottom, #eee, ' + bgc + ')'); | $(this).css('background-image', 'linear-gradient(to bottom, #eee, ' + bgc + ')'); | ||
} | } | ||
Line 476: | Line 484: | ||
'backgroundColor': 'orange' | 'backgroundColor': 'orange' | ||
}); | }); | ||
/* | /* | ||
$('table.odd-stripe > tbody > tr:has(td):').css('background-color', function(){ | |||
return $(this).parent().parent().css('background-color'); | |||
}); | |||
$('table.odd-strip').css('background-color', 'transparent'); | |||
*/ | */ | ||
}); | }); | ||
/**** Persist Header H2 ****/ | /**** Persist Header H2 ****/ |