// ================================================================

function raster_demo_onload () {
	window.setTimeout( demo_raster, 1000 );
    load_flickr_list();
}

// ================================================================

function logmess (mess) {
    var tnode = document.createTextNode(mess);
    var pretag = document.createElement("pre");
    pretag.appendChild( tnode );
    document.body.appendChild( pretag );
}

// ================================================================

function remove_children ( elem ) {
	if ( ! elem.childNodes ) return;
    for( var i=elem.childNodes.length-1; i>=0; i-- ) {
        elem.removeChild( elem.childNodes[i] );
    }
}

// ================================================================

var ras0;
function demo_raster () {
	var url = 'http://www.kawa.net/xp/images/mixi-3.jpg';
    if ( ras0 ) ras0.finish();
    var canvas = document.getElementById( 'demo_raster_here' );
	remove_children( canvas );
    ras0 = new Animation.Raster( canvas );
    ras0.downSeconds = 2.0;
    ras0.fadeSeconds = 8.0;
    ras0.lineHeight  = 1;
    ras0.waveSpeed   = 0.5;
    ras0.waveHeight  = 0.5;
    ras0.clip        = true;
//  ras0.background  = "#000000";
    ras0.scroll();
}

// ================================================================

var ras1;
function try_raster ( f ) {
	var url = f.url.value;
    if ( ! url ) return;
	if ( ! f.line.value-0 ) f.line.value = 4;
	var line = Math.floor(f.line.value-0);
    if ( ras1 ) ras1.finish();
    var canvas = document.getElementById( 'try_raster' );
	remove_children( canvas );
    ras1 = new Animation.Raster( canvas, url );
    ras1.downSeconds = 2.0;
    ras1.fadeSeconds = 6.0;
    ras1.lineHeight  = line;
    ras1.waveSpeed   = 0.5;
    ras1.waveHeight  = 0.5;
    ras1.clip        = true;
//  ras1.background  = "#000000";
    ras1.scroll();
}

// ================================================================

var ras3;
function flickr_raster (url) {
    if ( ! url ) return;
    if ( ras3 ) ras3.finish();
    var canvas = document.getElementById( 'flickr_raster' );
    if ( canvas.childNodes ) {
        for( var i=canvas.childNodes.length-1; i>=0; i-- ) {
            canvas.removeChild( canvas.childNodes[i] );
        }
    }
    ras3 = new Animation.Raster( canvas, url );
    ras3.downSeconds = 1.0;
    ras3.fadeSeconds = 4.0;
    ras3.lineHeight  = 4;
    ras3.waveSpeed   = 0.5;
    ras3.waveHeight  = 0.5;
    ras3.clip        = true;
    ras3.background  = "#000000";
    ras3.scroll();
}

// ================================================================

var ras2;
function cal_raster () {
    ras2 = new Animation.Raster( "cal_raster_here" );
    ras2.lineHeight  = 4;
    ras2.clip        = true;
    ras2.background  = null;
    ras2.downSeconds = 2.0;
    ras2.fadeSeconds = 8.0;
    ras2.waveHeight  = 0.25;
    ras2.waveSpeed   = 0.25;
    ras2.scroll();
}

// ================================================================

var FLICKR_RSS = 'http://www.kawa.net/rss/recent-flickr.rss';
// FLICKR_RSS = 'recent-flickr.xml';

// ================================================================

function load_flickr_list () {
    var func = function(tree) {
        if ( ! tree ) return;
        if ( ! tree.rss.channel.item ) return;
        var items = tree.rss.channel.item;
        var flist = [];
        var flickr = document.getElementById("flickr_thumb");
        for( var i=0; i<items.length; i++ ) {
            var url = items[i]["media:content"]["-url"];
            if ( ! url ) url = items[i]["media:content"]["-media:url"];
            if ( ! url ) continue;
            flist[flist.length] = url;
            var thumb = items[i]["media:thumbnail"]["-url"];
            if ( ! thumb ) thumb = items[i]["media:thumbnail"]["-media:url"];
            if ( ! thumb ) continue;
            var imgtag = document.createElement( "img" );
            imgtag.style.margin = "2px 4px 2px 0px";
            imgtag.src = thumb;
            flickr.appendChild( imgtag );
            flickr_append_onclick( imgtag, url );       // onClick event
        }
    };
    var xotree = new XML.ObjTree();
    xotree.parseHTTP( FLICKR_RSS, {}, func );
}

// ================================================================

function flickr_append_onclick ( imgtag, url ) {
    var func = function () {
        flickr_raster( url );
    };
    if ( imgtag.addEventListener ) {
        imgtag.addEventListener( "click", func, false );
    } else if ( imgtag.attachEvent ) {
        imgtag.attachEvent( "onclick", func );
    }
}

// ================================================================

