lucene/site/skin/fontsize.js

167 lines
2.9 KiB
JavaScript
Raw Normal View History

/*
* Copyright 2002-2004 The Apache Software Foundation or its licensors,
* as applicable.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
function init()
{ //embedded in the doc
//ndeSetTextSize();
}
function checkBrowser(){
if (!document.getElementsByTagName){
return true;
}
else{
return false;
}
}
function ndeSetTextSize(chgsize,rs)
{
var startSize;
var newSize;
if (!checkBrowser)
{
return;
}
startSize = parseInt(ndeGetDocTextSize());
if (!startSize)
{
startSize = 16;
}
switch (chgsize)
{
case 'incr':
newSize = startSize + 2;
break;
case 'decr':
newSize = startSize - 2;
break;
case 'reset':
if (rs) {newSize = rs;} else {newSize = 16;}
break;
default:
try{
newSize = parseInt(ndeReadCookie("nde-textsize"));
}
catch(e){
alert(e);
}
if (!newSize || newSize == 'NaN')
{
newSize = startSize;
}
break;
}
if (newSize < 10)
{
newSize = 10;
}
newSize += 'px';
document.getElementsByTagName('html')[0].style.fontSize = newSize;
document.getElementsByTagName('body')[0].style.fontSize = newSize;
ndeCreateCookie("nde-textsize", newSize, 365);
}
function ndeGetDocTextSize()
{
if (!checkBrowser)
{
return 0;
}
var size = 0;
var body = document.getElementsByTagName('body')[0];
if (body.style && body.style.fontSize)
{
size = body.style.fontSize;
}
else if (typeof(getComputedStyle) != 'undefined')
{
size = getComputedStyle(body,'').getPropertyValue('font-size');
}
else if (body.currentStyle)
{
size = body.currentStyle.fontSize;
}
//fix IE bug
if( isNaN(size)){
if(size.substring(size.length-1)=="%"){
return
}
}
return size;
}
function ndeCreateCookie(name,value,days)
{
var cookie = name + "=" + value + ";";
if (days)
{
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
cookie += " expires=" + date.toGMTString() + ";";
}
cookie += " path=/";
document.cookie = cookie;
}
function ndeReadCookie(name)
{
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i = 0; i < ca.length; i++)
{
var c = ca[i];
while (c.charAt(0) == ' ')
{
c = c.substring(1, c.length);
}
ctest = c.substring(0,name.length);
if(ctest == name){
return c.substring(nameEQ.length,c.length);
}
}
return null;
}