﻿/* *******************************************************
J  a  v  a  c  a  t  z
Filename:   jardine.js
Purpose:    This file is created to hold common functions
            that are used in Jardine only.
            Please do not put other codes in this file.
Created by: KY 2008.09.30
******************************************************* */

/* Print bar + Adjust fontsize */
var smallerFontSizePc = 100;	// in %
var biggerFontSizePc = 120;	// in %
addthis_pub  = 'javacatz';
/* full printBar */
var printBar = "<a href='javascript:printPage2();' title='Print this page'><img src='img/ico_print.gif' alt='Print' /></a> &nbsp;<img src='img/printbar_vline.gif' alt='|' />&nbsp; Text: <a href='javascript:adjustFontsizePc(" + smallerFontSizePc + ");' title='Smaller Text'><img src='img/ico_smallersize.gif' alt='' /></a> <a href='javascript:adjustFontsizePc(" + biggerFontSizePc + ");' title='Bigger Text'><img src='img/ico_biggersize.gif' alt='' /></a>";
var printBar2 = "Text: <a href='javascript:adjustFontsizePc(" + smallerFontSizePc + ");' title='Smaller Text'><img src='img/ico_smallersize.gif' alt='' /></a> <a href='javascript:adjustFontsizePc(" + biggerFontSizePc + ");' title='Bigger Text'><img src='img/ico_biggersize.gif' alt='' /></a>";

function printbar_init() {
	/* show print bar */
	var tags = $$('.printBar');
	if(tags!=null && tags!="" && tags.length>0) {
		tags.each( function(node) { $(node).innerHTML = printBar; } );
	}
	tags = $$('.printBar2');
	if(tags!=null && tags!="" && tags.length>0) {
		tags.each( function(node) { $(node).innerHTML = printBar2; } );
	}
}
function adjustFontsizePc(sizechangePc) {
	if( sizechangePc == 'small' ) fontsizePc = smallerFontSizePc;	// same as font-size in body
	else if( sizechangePc == 'large') fontsizePc = biggerFontSizePc;
	else if( !isNaN(sizechangePc) ) fontsizePc = sizechangePc;
	$$('.fontSize').each( function(node) { $(node).style.fontSize = fontsizePc + "%"; } );
}



/* KY put back to top 2008.12.16 */
var backTopHTML = "<a href='#top' onclick='window.scrollTo(0,0);return false;' title='返回頂部'><img src='img/ico_backTop.gif' alt='[^]' /> 返回頂部</a>";
var const__ky_backTop;
function ky_backTop_init(interval) {
	if(interval==null) interval = 500;
	const__ky_backTop = $$('.backTop');
	if(const__ky_backTop.length>0) {
		setInterval('ky_backTop()',interval);
	}
}
function ky_backTop() {
	const__ky_backTop.each( function(node) {
		if(findPos(node)[1] > document.viewport.getHeight() + 100) {
			if($(node).innerHTML.indexOf("#top") == -1) {	// use meaningful substring in your backTopHTML for indexOf
				$(node).innerHTML = backTopHTML;
			}
		} else {
			if($(node).innerHTML.trim()!="") $(node).innerHTML = "";
		}
	} );
}



function tableAltRow(id) {
	if(id) {
		var boolDark = false;
		$$('#'+id+' tr').each( function(node) { if(boolDark) $(node).addClassName("tr_even"); else $(node).addClassName("tr_odd"); boolDark = !boolDark; } );
	} else {
		$$('table.tableAltRow').each( function(tableNode) {
			var boolDark = false;
			var temp_tr = $(tableNode).getElementsByTagName('tr');
			for(var i=0; i<temp_tr.length; i++) {
				if(boolDark) $(temp_tr[i]).addClassName("tr_even");
				else $(temp_tr[i]).addClassName("tr_odd");
				boolDark = !boolDark;
			}
		} );
	}
}


/* ****************************** */
/* *** Header Image Slideshow *** */
/* *** without thumbnail area *** */
/* ****************************** */
var current_headerImage_photoIndex = 0;
var next_headerImage_photoIndex = 0;
var headerImage_slideInterval;
var headerImage_slideIntervalSecond = 6.0;
var headerImage_fadedurationSecond = 2;
var headerImage_fading = false;

function headerImage_init() {
    if (headerImageList.length <= 0) {
        alert("Warning: No banner is available in the News Spotlight area.");
    } else {
        /*
        for (var i = 1; i <= headerImageList.length; i++) {
        $('header_banner_control').innerHTML += '<a href="#" onclick="headerImage_goto(' + (i - 1) + ')">' + i + '</a>';
        }
        $('header_banner_control').select('a').first().addClassName('current');
        */
        new Effect.Fade($('header_banner_next'), { duration: 0 });

        headerImage_slideInterval = setTimeout('headerImage_preview_next()', headerImage_slideIntervalSecond * 1000);
    }
}
var headerImage_next_image;
var headerImage_next_image_timer;
function preview_headerImage(photoIndex) {
    if (photoIndex == null) photoIndex = next_headerImage_photoIndex;
    var titleText = headerImageList[photoIndex][1];
    clearTimeout(headerImage_next_image_timer);
    headerImage_next_image = new Image();
    headerImage_next_image.src = headerImageList[photoIndex][0];
    preview_headerImage2(photoIndex, headerImage_next_image.src, titleText);
}
function preview_headerImage2(photoIndex, photoPath, titleText) {
    if (!headerImage_next_image.complete) {
        headerImage_next_image_timer = setTimeout("preview_headerImage2(" + photoIndex + ", '" + photoPath + "', '" + titleText + "');", 500)
    } else {
        headerImage_fading = true;
        if ($('header_banner_current').style.display == 'none') {
            //$('header_banner_current').style.backgroundImage = 'url("' + photoPath + '")';
            $('header_banner_current').innerHTML = '<a href="' + titleText + '"><img src="' + photoPath + '" alt="" /></a>';
            new Effect.Appear($('header_banner_current'), { duration: headerImage_fadedurationSecond, afterFinish: function() { headerImage_fading = false; } });
            new Effect.Fade($('header_banner_next'), { duration: headerImage_fadedurationSecond, afterFinish: function() { headerImage_fading = false; } });
        } else {
            //$('header_banner_next').style.backgroundImage = 'url("' + photoPath + '")';
            $('header_banner_next').innerHTML = '<a href="' + titleText + '"><img src="' + photoPath + '" alt="" /></a>';
            new Effect.Appear($('header_banner_next'), { duration: headerImage_fadedurationSecond, afterFinish: function() { headerImage_fading = false; } });
            new Effect.Fade($('header_banner_current'), { duration: headerImage_fadedurationSecond, afterFinish: function() { headerImage_fading = false; } });
        }
        //$('header_banner_control').select('a')[current_headerImage_photoIndex].removeClassName('current');
        //$('header_banner_control').select('a')[photoIndex].addClassName('current');
        current_headerImage_photoIndex = photoIndex;
        clearTimeout(headerImage_slideInterval);
        headerImage_slideInterval = setTimeout('headerImage_preview_next()', headerImage_slideIntervalSecond * 1000);
    }
}

function headerImage_preview_next() {
    next_headerImage_photoIndex++;
    if (next_headerImage_photoIndex >= headerImageList.length) {
        next_headerImage_photoIndex = 0;
    }
    preview_headerImage(next_headerImage_photoIndex);
}

function headerImage_goto(photoIndex) {
    if (!headerImage_fading && photoIndex != current_headerImage_photoIndex) {
        clearTimeout(headerImage_slideInterval);
        next_headerImage_photoIndex = photoIndex;
        preview_headerImage(photoIndex);
    }
}
/* ************************************** */
/* *** End of Header Image Slideshow *** */
/* ************************************** */

