home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2004 November
/
Chip_2004-11_cd1.bin
/
zkuste
/
jalbum
/
ukazka
/
res
/
js
/
shadow.js
< prev
next >
Wrap
Text File
|
2003-12-01
|
3KB
|
118 lines
function initPageShadow()
{
var bg_color = "#FFFFFF";
var page_bottom_elem;
if (document.getElementById) // IE5+ & Gecko
{
var elem = document.getElementById("body");
if (elem.currentStyle)
bg_color = elem.currentStyle["backgroundColor"];
else if (window.getComputedStyle)
bg_color = window.getComputedStyle(elem, "").getPropertyValue("background-color");
page_bottom_elem = document.getElementById("page_bottom_shadow");
}
page_bottom_elem.innerHTML = providePageBottomShadow(bg_color.toString());
}
function providePageBottomShadow(bg_color)
{
var shadow_code = "<TABLE WIDTH=\"100%\" BORDER=0 CELLSPACING=0 CELLPADDING=0>";
var gradient_colors = extractGradientColors(bg_color);
for( var i=0; i<gradient_colors.length; i++ )
{
shadow_code += "<TR>";
shadow_code += "<TD WIDTH=\"100%\" HEIGHT=1 BGCOLOR=\"#"+gradient_colors[i]+"\"><IMG SRC=\""+emptyIconUrl+"\" ALT=\"\"/></TD>";
shadow_code += "</TR>";
}
shadow_code += "</TABLE>";
return shadow_code;
}
// The color format is "rgb(rrr, ggg, bbb)" or "#rrggbb"
function extractRGB(color)
{
var rgb = new stringArray(3, 0);
if( color.charAt(0)=='#' )
{
rgb[0] = parseInt(color.substring(1, 3), 16);
rgb[1] = parseInt(color.substring(3, 5), 16);
rgb[2] = parseInt(color.substring(5, 7), 16);
}
else
{
var first_comma = color.indexOf(",");
var second_comma = color.substring(first_comma+1).indexOf(",") + first_comma + 1;
rgb[0] = parseInt(color.substring(4, first_comma));
rgb[1] = parseInt(color.substring(first_comma+1, second_comma));
rgb[2] = parseInt(color.substring(second_comma+1, color.indexOf(")")));
}
return rgb;
}
function extractGradientColors(color)
{
var gradient_colors = new stringArray(7, '000000');
var rgb = extractRGB(color);
var max_red = rgb[0];
var max_green = rgb[1];
var max_blue = rgb[2];
var red = 0;
var green = 0;
var blue = 0;
red += max_red / 2;
green += max_green / 2;
blue += max_blue / 2;
gradient_colors[1] = toHex(red) + toHex(green) + toHex(blue);
red += max_red / 8;
green += max_green / 8;
blue += max_blue / 8;
gradient_colors[2] = toHex(red) + toHex(green) + toHex(blue);
red += max_red / 8;
green += max_green / 8;
blue += max_blue / 8;
gradient_colors[3] = toHex(red) + toHex(green) + toHex(blue);
red += max_red / 10;
green += max_green / 10;
blue += max_blue / 10;
gradient_colors[4] = toHex(red) + toHex(green) + toHex(blue);
red += max_red / 13;
green += max_green / 13;
blue += max_blue / 13;
gradient_colors[5] = toHex(red) + toHex(green) + toHex(blue);
red += max_red / 19;
green += max_green / 19;
blue += max_blue / 19;
gradient_colors[6] = toHex(red) + toHex(green) + toHex(blue);
return gradient_colors;
}
function stringArray(n, init)
{
this.length = n;
for( var i=0; i<n; i++ )
this[i] = init;
return this;
}
var hexchars = '0123456789ABCDEF';
function toHex(num)
{
return hexchars.charAt(num >> 4) + hexchars.charAt(num & 0xF);
}