var domArry = new Array(0);
domArry[0] = new Array("http://www.vjcatkick.com/headpic/",					43, "V.J.Catkick@",			"http://www.vjcatkick.com/" );
domArry[1] = new Array("http://my.reset.jp/~gds/nat/headpics/",				77, "Take5Blog - N@",			"http://t5blog.typepad.jp" );
domArry[2] = new Array("http://homepage1.nifty.com/mmiyata/backimages/",		25, "7thHeaven's Homepage",		"http://momo.cocolog-nifty.com/momo/" );
domArry[3] = new Array("http://alfabeat.ciao.jp/image-share/",				57, "alfabeat",				"http://alfabeat.ciao.jp/" );
domArry[4] = new Array("http://herethere.cressel.com/share_pic/",				22, "Hiro's Weblog",			"http://herethere.cressel.com/Photo/Gallery/TogaQ/togaq.htm" );
domArry[5] = new Array("http://my.reset.jp/~gds/nat/headpic/mi/",				13, "TogaQ - MUSIC DEVICE",		"http://t5blog.typepad.jp/weblog/2005/10/post_84f8.html" );
domArry[6] = new Array("http://my.reset.jp/~gds/nat/headpic/mi/",				13, "TogaQ - MUSIC DEVICE",		"http://t5blog.typepad.jp/weblog/2005/10/post_84f8.html" );
domArry[7] = new Array("http://www.kamishiro.net/share/",					10, "kamishiro.net",			"http://www.kamishiro.net/" );
domArry[8] = new Array("http://my.reset.jp/~gds/nat/togaq/honma/",			10, "NORACLA Studio",			"http://www.kanshin.com/index.php3?mode=top" );
domArry[9] = new Array("http://my.reset.jp/~gds/nat/headpic/mi/",				13, "TogaQ - MUSIC DEVICE",		"http://t5blog.typepad.jp/weblog/2005/10/post_84f8.html" );
domArry[10] = new Array("http://www.aimdesign.net/img/header/",				51, "-Aimdesign-",				"http://www.aimdesign.net/dear/" );
domArry[11] = new Array("http://www.aa.alles.or.jp/~inox7/banner/",			20, "BeboarLOG",				"http://www.goodidea.jp/blog/" );
domArry[12] = new Array("http://lala-shun.under.jp/top/",					28, "LaLaLa",					"http://lala-shun.under.jp/lalala/" );
domArry[13] = new Array("http://tgq.shingo-da.com/",						9, "ShinGo-Da!com",			"http://blog.shingo-da.com" );
domArry[14] = new Array("http://my.reset.jp/~gds/nat/headpic/mi/",			13, "TogaQ - MUSIC DEVICE",		"http://t5blog.typepad.jp/weblog/2005/10/post_84f8.html" );
domArry[15] = new Array("http://www.studiow4m.com/headpic/",					39, "StudioW4M",			"http://www.studiow4m.com" );
domArry[16] = new Array("http://my.reset.jp/~gds/nat/headpic/mi/",			13, "TogaQ - MUSIC DEVICE",		"http://t5blog.typepad.jp/weblog/2005/10/post_84f8.html" );
domArry[17] = new Array("http://www.hinocatv.ne.jp/~nagase/togaq/",			8, "Pega Weblog",			"http://pegablog.clavisnote.com/" );
domArry[18] = new Array("http://homepage.mac.com/shino/photo2/tgq/",			24, "shino@dodaira",		"" );
domArry[19] = new Array("http://www.eonet.ne.jp/~ramblefish/togaq/",			3, " Drop",				"http://www.eonet.ne.jp/~ramblefish/" );
domArry[20] = new Array("http://caramel-tea.com/top_image/",					50, "caramel*vanilla",		"http://caramel-tea.com" );
domArry[21] = new Array("http://galaxies.jp/togakyu/",						9, "Galaxies",			"http://galaxies.jp/" );
domArry[22] = new Array("http://my.reset.jp/~gds/nat/togaq/MFL/",				4, "MUSIX FOR LIFE",		"http://www.geocities.jp/musix_for_life/" );
domArry[23] = new Array("http://www.ric.hi-ho.ne.jp/thinktink/tq/",			23, "nkmd",				"http://machikoma.biz/mt/" );
domArry[24] = new Array("http://homepage.mac.com/yamamoto2000/togakyu/",		30, "atelier piano",		"http://piano.tc" );
domArry[25] = new Array("http://www.revyou.net/TOGAQ/",						13, "Rev You 10000rpm",		"http://www.revyou.net/" );
domArry[26] = new Array("http://magicwhite.jp/togaq/",						4, "Magic White",			"http://blog.magicwhite.jp/" );
domArry[27] = new Array("http://my.reset.jp/~gds/nat/headpic/thecars/",		63, "TogaQ - THE CARS",		"http://t5blog.typepad.jp/weblog/2006/01/the_cars__7d2c.html" );
domArry[28] = new Array("http://noha.piyo.to/material/image/togaq/",			51, "noha's Happy Kitchen",	"http://noha.piyo.to/mt/" );
domArry[29] = new Array("http://are.cocolog-nifty.com/kenbanmakase/togaq/",	15, "ARE@KenbanMakase",		"http://are.cocolog-nifty.com/kenbanmakase/" );
domArry[30] = new Array("http://mm-z.com/tq/",								7, "@jugem2",				"http://mm.mm-z.com" );
domArry[31] = new Array("http://my.reset.jp/~gds/nat/headpic/mi/",				13, "TogaQ - MUSIC DEVICE",		"http://t5blog.typepad.jp/weblog/2005/10/post_84f8.html" );
domArry[32] = new Array("http://hmstyle.info/togaq/",				15, "M*Style",				"http://needle.hmstyle.info/" );
domArry[33] = new Array("http://my.reset.jp/~gds/nat/headpic/mi/",			13, "TogaQ - MUSIC DEVICE",		"http://t5blog.typepad.jp/weblog/2005/10/post_84f8.html" );
domArry[34] = new Array("http://my.reset.jp/~gds/nat/headpic/thecars/",		63, "TogaQ - THE CARS",		"http://t5blog.typepad.jp/weblog/2006/01/the_cars__7d2c.html" );
domArry[35] = new Array("http://my.reset.jp/~gds/nat/headpic/thecars/",		63, "TogaQ - THE CARS",		"http://t5blog.typepad.jp/weblog/2006/01/the_cars__7d2c.html" );
domArry[36] = new Array("http://151e.jp/togaq/",							84, "151e.jp",			"http://151e.jp" );
domArry[37] = new Array("http://www.ashinari.com/togaq/",					99, "sozaiya ASHINARI",		"http://www.ashinari.com" );
domArry[38] = new Array("http://www.garaku.cc/cgi/togaq/",					17, "garaku",				"http://blog.garaku.cc" );
domArry[39] = new Array("http://mizu.littlestar.jp/togaQ-images/",					10, "Littlestar.Blog",				"http://mizu.littlestar.jp" );



//*****************************************************************
//*   Temporary Out Space
//*
//*  domArry[6] = new Array("http://gyuque.homeunix.net/sharebanner/",		8, "ANNEX-DK",			"http://gyuque.homeunix.net/" );
//*  domArry[14] = new Array("http://sai.boo.jp/blog/tp/",					20, "HANBlog",			"http://sai.boo.jp/blog/" );
//*  domArry[20] = new Array("http://caramel-tea.com/top_image/",				50, "caramel*vanilla",		"http://caramel-tea.com" );
//*  domArry[9] = new Array("http://my.reset.jp/~gds/nat/headpic/mi/",		13, "TogaQ - MUSIC DEVICE",	"http://t5blog.typepad.jp/weblog/2005/10/post_84f8.html" );
//*  domArry[33] = new Array("http://ahiru.fem.jp/tq/",							2, "jubako",				"http://ahiru.fem.jp/jubako/" );
//*****************************************************************













var modeRandomAll = 0;
var modeRandomTime = 1;
var modeDailySiteRandomFile = 2;
var modeHourlySiteRandomFile = 3;
var modeFixedSiteRandomFile = 4;
var modeFixedSiteHourlyRandomFile = 5;
var modeFixedSiteOrderedFile = 6;
var modeFixedSiteFixedFile = 7;
var modeFullOrdered = 8;
var modeWeeklyMonthlyFixedFile = 9;






//*****************************************************************
//*   low level function: _makeDomArray()
//*
//*   this function generates url and qty of files combination array.
//*
//*   return: array of urls
//*
//*****************************************************************
function _makeDomArray()
{

//	Mac IE cannot define "undefined function", so remove it.
//	if( !window._addDomArray1 ) _addDomArray1();
//	if( !window._addDomArray2 ) _addDomArray2();

	return( domArry );
};


//*****************************************************************
//*   low level function: _picIDtoFilename(arg)
//*
//*   this function generates file number to file name string w/ .jpg extention.
//*
//*   return: flie name string
//*
//*****************************************************************
function _picIDtoFilename(arg,arg2) {
  if(arg > 99) return(arg + arg2);
  else if(arg > 9) return("0" + arg + arg2);
  else return("00" + arg + arg2);
};


//*****************************************************************
//*   low level function: _getNumberOfSites()
//*
//*   this function returns number if sites.
//*
//*   return: number of site
//*
//*****************************************************************
function _getNumberOfSites()
{
 var domArry = _makeDomArray();

 return(domArry.length);
};

//*****************************************************************
//*   low level function: _getNumberOfImages(usrID)
//*
//*   this function returns number of images on specific site.
//*
//*   return: number of images
//*
//*****************************************************************
function _getNumberOfImages(usrID)
{
 var domArry = _makeDomArray();

 return( domArry[usrID][1] );
};

//*****************************************************************
//*   low level function: _getSpecificSiteURL(usrID)
//*
//*   this function returns number of images on specific site.
//*
//*   return: number of images
//*
//*****************************************************************
function _getSpecificSiteURL(usrID)
{
 var domArry = _makeDomArray();

 return( domArry[usrID][0] );
};

//*****************************************************************
//*   low level function: _countTotalImages()
//*
//*   this function returns sum of images.
//*
//*   return: number of images
//*
//*****************************************************************
function _countTotalImages()
{
  var totalImgs = 0;

  for( i = 0; i < _getNumberOfSites(); i++) {
    totalImgs = totalImgs + _getNumberOfImages(i);
  };

  return(totalImgs);
};

//*****************************************************************
//*   low level function: _doErrorPic()
//*
//*   this function returns error image.
//*
//*   return: error image url
//*
//*****************************************************************
function _doErrorPic()
{
 var domArry = _makeDomArray();

 return(domArry[0][0] + "error.jpg");
};

//********************************************************* v2.0 **
//*   low level function: _setToCurrentSiteData()
//*
//*   this function sets current site data to global.
//*
//*   return: none
//*
//*****************************************************************
var currentSiteURL;
var currentSiteName;

function _setToCurrentSiteData( domArryID )
{
	currentSiteName = domArryID[2] ? domArryID[2] : "";
	currentSiteURL = domArryID[3] ? domArryID[3] : "";
};





/********************************* toga-q 3.02 added **********************************/

function _getDayOfYear() {
	var dt =	[ 0,31,28,31,30,31,30,31,31,30,31,30,31 ];
	var d = new Date();
	var daysofyear = 0;

	if( (d.getYear() % 4) == 0 ) dt[ 2 ] = 29;		// leap year adjustment
	for( i = 1; i <= d.getMonth(); i++ ) daysofyear = daysofyear + dt[ i ];
	daysofyear = daysofyear + d.getDate();

	return( daysofyear );
};

/********************************* toga-q 3.0 staff **********************************/

function _getCookie(key,  tmp1, tmp2, xx1, xx2, xx3) {
    tmp1 = " " + document.cookie + ";";
    xx1 = xx2 = 0;
    len = tmp1.length;
    while (xx1 < len) {
        xx2 = tmp1.indexOf(";", xx1);
        tmp2 = tmp1.substring(xx1 + 1, xx2);
        xx3 = tmp2.indexOf("=");
        if (tmp2.substring(0, xx3) == key) {
            return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
        }
        xx1 = xx2 + 1;
    }
    return("");
};

function _setCookie(key, val, tmp) {
    tmp = key + "=" + escape(val) + "; ";
//  tmp += "path=" + location.pathname + "; ";
	tmp += "path=/; ";

    tmp += "expires=Tue, 31-Dec-2030 23:59:59; ";
    document.cookie = tmp;
};

function _removeCookie(key, val, tmp) {
    tmp = key + "=" + escape(val) + "; ";
	tmp += "path=/; ";
    tmp += "expires=Tue, 31-Dec-1999 23:59:59; ";
    document.cookie = tmp;
};

function _getDefRawTogaQSetting() {
	// 00: cid	num 0	// command id (func id)
	// 01: sid	num 1	// site id (user id)
	// 02: fid	num 0	// file id
	// 03: dur	num 1	// duration time
	// 04: dur	num 0	// duration trigger
	// 05: spd	num 0	// use special date specific image such as new year
	// 06: typ	num 0	// type of togaq 0:site 1:user driven
	// 07: wmm	num 0	// week/month mode
	return( "0/1/0/1/0/0/0/0" );
};

function _decodeTogaQSettingCookie( src ) {
	var retv = src.split( "/" );
	for( var i = 0; i < retv.length; i++ ) retv[i] = parseInt( retv[i] );

	return( retv );
};

function _encodeTogaQSettingCookie( src ) {
	var retv = "";
	for( var i = 0; i < src.length; i++ ) {
		retv = retv + src[i];
		if( i == (src.length - 1) ) break;
		retv = retv + "/";
	};

	return( retv );
};

function _writeTogaQSettings( mode, newValue ) {
	var tmpStr = _getCookie( "_TogaQSettings" );
	if( tmpStr == "" ) tmpStr = _getDefRawTogaQSetting();		// set default here
	var settings = _decodeTogaQSettingCookie( tmpStr );			// encode cookie data

	settings[mode] = newValue;
	var retv = _encodeTogaQSettingCookie( settings );

	_setCookie( "_TogaQSettings", retv );
};

function _readTogaQSettings( mode ) {
	var tmpStr = _getCookie( "_TogaQSettings" );
	if( tmpStr == "" ) tmpStr = _getDefRawTogaQSetting();		// set default here
	var settings = _decodeTogaQSettingCookie( tmpStr );			// encode cookie data

	return( settings[mode] );
};

function _removeTogaQCookies() {
	_removeCookie( "_TogaQSettings" );		// setting file
	_removeCookie( "_TogaQWMList" );		// week/moth list
	_removeCookie( "_TogaQLocalFile" );		// Local File
};

function _writeTogaQCookieIsSpclDt( isSpecialDate ) {
	_writeTogaQSettings( 5, isSpecialDate ? 1 : 0 );
};

function _readIsSpclDtFromTogaQCookie() {
	var retv = _readTogaQSettings( 5 )
	return( retv == 1 );
};

function _writeTogaQCookie( usrID, fileID ) {
	_writeTogaQCookieUserID( usrID );
	_writeTogaQCookieFileID( fileID );
};

function _writeTogaQCookieUserID( usrID ) {
	_writeTogaQSettings( 1, usrID );
};

// 3.03
function _readSiteIDFromTogaQCookie() {
	var domArry = _makeDomArray();
	var slength = domArry.length;
	var retv = _readTogaQSettings( 1 );
	if(retv >= slength) {			// 3.03 if range over, reset to 0
		_writeTogaQCookieUserID( 0 );
		return( 0 );
	};
	return( retv );
};

function _writeTogaQCookieFuncID( funcID ) {
	_writeTogaQSettings( 0, funcID );
};

function _readFuncIDFromTogaQCookie() {
	return( _readTogaQSettings( 0 ) );
};

function _writeTogaQCookieFileID( fileID ) {
	_writeTogaQSettings( 2, fileID );
};

function _readFileIDFromTogaQCookie() {
	return( _readTogaQSettings( 2 ) );
};

function _writeTogaQCookieSelTQType( tq_type ) {
	_writeTogaQSettings( 6, tq_type ? 1 : 0 );
};

function _readSelTQTypeFromTogaQCookie() {
	var retv = _readTogaQSettings( 6 )
	return( retv == 1 );
};

function _writeTogaQCookieDuration( newValue ) {
	_writeTogaQSettings( 3, newValue );
};

function _readDurationFromTogaQCookie() {
	return( _readTogaQSettings( 3 ) );
};

function _writeTogaQCookieDurFlag( newValue ) {
	_writeTogaQSettings( 4, newValue );
};

function _readDurFlagFromTogaQCookie() {
	var retv = _readTogaQSettings( 4 );
	if( retv == 0 ) return( -1 );

	return( retv );
};

function _writeTogaQCookieLocalFile( newFileLocation ) {
	_setCookie( "_TogaQLocalFile", newFileLocation );
};

function _readLocalFileFromTogaQCookie() {
	var tmpstr = _getCookie("_TogaQLocalFile");
	if( tmpstr == "" ) return( "" );

	return( tmpstr );
};

function _writeTogaQCookieWMMode( newValue ) {
	_writeTogaQSettings( 7, newValue );
};

function _readWMModeFromTogaQCookie() {
	return( _readTogaQSettings( 7 ) );
};

function _writeTogaQCookieWMList( newList ) {
	var listStr = "";
	for( i = 0; i < newList.length; i++ ) {
		listStr = listStr + newList[i][0] + ",";
		listStr = listStr + newList[i][1];
		if( i != (newList.length - 1) ) listStr = listStr + "/";
	};
	_setCookie( "_TogaQWMList", listStr );
};

function _readWMListFromTogaQCookie() {
	var retv = _getCookie("_TogaQWMList");

	return( _wmStrToArray( retv ) );
};

function _wmStrToArray( arg ) {
	var srcStr = arg;
	var f9Str = "01,00/01,00/01,00/01,00/01,00/01,00/01,00/01,00/01,00/01,00/01,00/01,00";		// init (sid,fid)
	if( !srcStr || srcStr == "" ) srcStr = f9Str;

	var retv = new Array();
	var ss = srcStr.split( "/" );
	for( i = 0; i < ss.length; i++ ) {
		retv[i] = ss[i].split( "," );
		retv[i][0] = parseInt( retv[i][0] );
		retv[i][1] = parseInt( retv[i][1] );
	};

	return( retv );
};

<!-- debug use only, but do not remove -->
function _readBSFromTogaQCookie() {
	var tmpstr = _getCookie("_debakside");
	if( tmpstr == "" ) return 0;
	var retv = parseInt(tmpstr);
	return( retv );
};
function _writeTogaQCookieBS( bsValue ) {
	_setCookie( "_debakside", bsValue );
};
function _debugSetNewDAFImg( fileID ) {
	var domArry = new Array(0);
	domArry[0] = new Array("http://www.vjcatkick.com/spt/headpic/",9,"V.J.Catkick@debug","http://www.vjcatkick.com/" );
	_setToCurrentSiteData( domArry[0] );
	return( domArry[0][0] + _picIDtoFilename(fileID,".jpg") );
};
<!-- debug use only, but do not remove -->


//********************************************************* v3.04 *
//*   api function: getCatCreaterList( uid )
//*
//*   this is special func to generate category archive link.
//*   with specific site id
//*
//*   important: base url is hard coded.
//*
//*   return: target url
//*
//*****************************************************************
function getCatCreaterList( uid ) {
	var domArry = _makeDomArray();
	var basestr = "http://www.togaq.com/archives/";

	var sitename = domArry[uid][2];

	if( sitename.indexOf( "Toga-Q" ) != (-1) ) {
		return( basestr );				// incase of lost ID
	};

	var n = sitename.indexOf( " " );
	while( n > -1 ) {					// convert white space
		var sfnt = sitename.substring( 0, n );
		var srer = sitename.substring( n + 1, sitename.length );
		if( n == 0 ) sitename = srer;
		else sitename = sfnt + "_" + srer;
		n = sitename.indexOf( " " );
	};
	sitename = sitename.toLowerCase();	// change char to lower case first

	// #### if special chars are not on this list, must add it.
	var removechars = [
		"@", "'", "-", ".", "!", "*"
	];
	for( var i = 0; i < removechars.length; i++ ) {
		n = sitename.indexOf( removechars[i] );
		while( n > -1 ) {
			var sfnt = sitename.substring( 0, n );
			var srer = sitename.substring( n + 1, sitename.length );
			sitename = sfnt + srer;
			n = sitename.indexOf( removechars[i] );
		};
	};

	if( uid < 10 ) basestr = basestr + "0";
	basestr = basestr + uid + "_";
	basestr = basestr + sitename + ".php";

	return( basestr );
};

//********************************************************* v3.04 *
//*   low level function: getHeaderPicSitID()
//*
//*   this function return current image' creater site name.
//*
//*   return: site name
//*
//*****************************************************************
function getHeaderPicSiteID() {
	var domArry = _makeDomArray();
	var sName = getHeaderPicSitName();
	var retv = -1;

	for( var i = 0; i < domArry.length; i++ ) {
		var srcstr = domArry[i][2];
		if( srcstr.indexOf( sName ) >= 0 ) {
			retv = i;
			break;
		};
	};

	return( retv );
};



//********************************************************** v3.0 *
//*   api function: getHeaderPicFileNameByOrder(arg1)
//*
//*   this function generates random domain+filename combination.
//*   with specific site id
//*
//*   return: target file url
//*
//*****************************************************************
function getHeaderPicFileNameByOrder(usrID) {
	var domArry = _makeDomArray();
	var fileID = _readFileIDFromTogaQCookie();

	if((usrID < 0) || (usrID >= domArry.length)) {
//		return( _doErrorPic() );  // arg error		// 3.03
		usrID = 0;									// 3.03
	};

	fileID = fileID + 1;
	if( fileID >= domArry[usrID][1] ) fileID = 0;

	_setToCurrentSiteData( domArry[usrID] );
	var retv = domArry[usrID][0] + _picIDtoFilename(fileID,".jpg");
	_writeTogaQCookie( usrID, fileID );

	return( retv );
};

//********************************************************** v3.0 *
//*   api function: getHeaderPicFileNameByOrderAll()
//*
//*   this function generates random domain+filename combination.
//*   with specific site id
//*
//*   return: target file url
//*
//*****************************************************************
function getHeaderPicFileNameByOrderAll() {
	var domArry = _makeDomArray();
	var fileID = _readFileIDFromTogaQCookie();
	var usrID = _readSiteIDFromTogaQCookie();

	fileID = fileID + 1;
	if( fileID >= domArry[usrID][1] ) {
		fileID = 0;
		usrID = usrID + 1;
		if( usrID >= _getNumberOfSites() ) usrID = 0;
	};

	_setToCurrentSiteData( domArry[usrID] );
	var retv = domArry[usrID][0] + _picIDtoFilename(fileID,".jpg");
	_writeTogaQCookie( usrID, fileID );

	return( retv );
};



//********************************************************** v3.0 *
//*   api function: getHeaderPicFileNameWithTimer()
//*
//*   this function generates random domain+filename combination.
//*
//*   return: target file url
//*
//*****************************************************************
function getHeaderPicFileNameWithTimer() {
	var domArry = _makeDomArray();
	var domName = 0;
	var domNameID = 0;
	var fileID = 0;

	var d = _readDurationFromTogaQCookie();
	var dd = new Date();
	var nextHour = _readDurFlagFromTogaQCookie();
	var h = dd.getHours();							// 0 - 23
	var isFileChg = false;

	h = h + d;
	if( h > 23 ) h = h - 24;
	if( h > nextHour || h < ( nextHour - d ) ) {
		var n = dd.getHours();
		n = n + d;
		dd.setHours( n );
		n = dd.getHours();
		_writeTogaQCookieDurFlag( n );
		isFileChg = true;
	};

	domNameID = _readSiteIDFromTogaQCookie();
	fileID = _readFileIDFromTogaQCookie();
	if( isFileChg ) {
		domNameID = Math.floor(Math.random() * domArry.length);
		fileID = Math.floor(Math.random() * domArry[domNameID][1]);
		_writeTogaQCookie( domNameID, fileID );
	};
	_setToCurrentSiteData( domArry[domNameID] );

	return( domArry[domNameID][0] + _picIDtoFilename(fileID,".jpg") );
};


//********************************************************** v3.0 *
//*   api function: getHeaderPicFileNameByDateTime2()
//*
//*   this function generates url: date=siteID, hour=picID.
//*
//*   return: target file url
//*
//*****************************************************************
function getHeaderPicFileNameByDateTime2() {
	var domArry = _makeDomArray();
	var domName = 0;
	var domNameID = 0;
	var fileID = 0;
	var dd = new Date();
	var d = _readDurationFromTogaQCookie();			// 1, 2, 3, 6, 12
	var nextHour = _readDurFlagFromTogaQCookie();
	var h = dd.getHours();							// 0 - 23
	var isSiteChg = false;

	h = h + d;
	if( h > 23 ) h = h - 24;
	if( h > nextHour || h < ( nextHour - d ) ) {
		var n = dd.getHours();
		n = n + d;
		dd.setHours( n );
		n = dd.getHours();
		_writeTogaQCookieDurFlag( n );
		isSiteChg = true;
	};

	domNameID = _readSiteIDFromTogaQCookie();
	if( isSiteChg ) {		// site change
		while( domNameID == _readSiteIDFromTogaQCookie() ) {
			domNameID = Math.floor(Math.random() * domArry.length);
		};
		_writeTogaQCookieUserID( domNameID );
	};
	fileID = Math.floor(Math.random() * domArry[domNameID][1]);
	_setToCurrentSiteData( domArry[domNameID] );

	return( domArry[domNameID][0] + _picIDtoFilename(fileID,".jpg") );
};





//********************************************************** v3.0 *
//*   api function: getHeaderPicFileNameByDateTimeFixedSite()
//*
//*   this function generates url: date=siteID, hour=picID.
//*
//*   return: target file url
//*
//*****************************************************************
function getHeaderPicFileNameByDateTimeFixedSite() {
	var domArry = _makeDomArray();
	var domName = 0;
	var domNameID = 0;
	var fileID = 0;

	var d = _readDurationFromTogaQCookie();
	var dd = new Date();
	var nextHour = _readDurFlagFromTogaQCookie();
	var h = dd.getHours();							// 0 - 23
	var isFileChg = false;

	h = h + d;
	if( h > 23 ) h = h - 24;
	if( h > nextHour || h < ( nextHour - d ) ) {
		var n = dd.getHours();
		n = n + d;
		dd.setHours( n );
		n = dd.getHours();
		_writeTogaQCookieDurFlag( n );
		isFileChg = true;
	};

	domNameID = _readSiteIDFromTogaQCookie();
	fileID = _readFileIDFromTogaQCookie();
	if( isFileChg ) {		// file change
		fileID = Math.floor(Math.random() * domArry[domNameID][1]);
		_writeTogaQCookie( domNameID, fileID );
	};
	_setToCurrentSiteData( domArry[domNameID] );

	return( domArry[domNameID][0] + _picIDtoFilename(fileID,".jpg") );
};

//********************************************************** v3.0 *
//*   api function: getHeaderPicFileNameWeekMonth()
//*
//*   this function generates url: date=siteID, hour=picID.
//*
//*   return: target file url
//*
//*****************************************************************
function getHeaderPicFileNameWeekMonth( defList, subMode ) {
	var domArry = _makeDomArray();
	var mode = _readWMModeFromTogaQCookie();		// 0:week, 1: month
	var theList = _readWMListFromTogaQCookie();
	var dd = new Date();

	var tqtype = _readSelTQTypeFromTogaQCookie();
	if( tqtype == 0 && !defList && defList.length == 12 ) {
		theList = defList;
		mode = ( !subMode ) ? subMode : 0;
	};

	var seed;
	if( mode == 0 ) { seed = dd.getDay(); }		// get week number
	else { seed = dd.getMonth(); };

	var usrID = theList[seed][0];	// sid
	var fileID = theList[seed][1];	// fid

	if( !usrID || !fileID ) return( _doErrorPic() );

	if((usrID < 0) || (usrID >= domArry.length)) return( _doErrorPic() );  // arg error
	if( fileID >= domArry[usrID][1] ) fileID = 0;

	_setToCurrentSiteData( domArry[usrID] );
	var retv = domArry[usrID][0] + _picIDtoFilename(fileID,".jpg");

	return( retv );
};






/********************************* user interfaces **********************************/



//*****************************************************************
//*   api function: getHeaderPicFileName()
//*
//*   this function generates random domain+filename combination.
//*
//*   return: target file url
//*
//*****************************************************************
function getHeaderPicFileName() {
 var domArry = _makeDomArray();
 var domName = 0;
 var domNameID = 0;
 var fileID = 0;

 domNameID = Math.floor(Math.random() * domArry.length);
 fileID = Math.floor(Math.random() * domArry[domNameID][1]);
 _setToCurrentSiteData( domArry[domNameID] );

 return( domArry[domNameID][0] + _picIDtoFilename(fileID,".jpg") );
};


//*****************************************************************
//*   api function: getHeaderPicFileNameByDate()
//*
//*   this function generates url: date=siteID, but random images.
//*
//*   return: target file url
//*
//*****************************************************************
function getHeaderPicFileNameByDate() {
 var domArry = _makeDomArray();
 var domName = 0;
 var domNameID = 0;
 var fileID = 0;
 var dd = new Date();

// domNameID = dd.getDate() % domArry.length;
 domNameID = _getDayOfYear() % domArry.length;			// 3.02

 fileID = Math.floor(Math.random() * domArry[domNameID][1]);
 _setToCurrentSiteData( domArry[domNameID] );

 return( domArry[domNameID][0] + _picIDtoFilename(fileID,".jpg") );
};


//*****************************************************************
//*   api function: getHeaderPicFileNameByDateTime()
//*
//*   this function generates url: date=siteID, hour=picID.
//*
//*   return: target file url
//*
//*****************************************************************
function getHeaderPicFileNameByDateTime() {
 var domArry = _makeDomArray();
 var domName = 0;
 var domNameID = 0;
 var fileID = 0;
 var dd = new Date();

// domNameID = dd.getDate() % domArry.length;
 domNameID = _getDayOfYear() % domArry.length;			// 3.02

 fileID = dd.getHours() % domArry[domNameID][1];
 _setToCurrentSiteData( domArry[domNameID] );

 return( domArry[domNameID][0] + _picIDtoFilename(fileID,".jpg") );
};

//********************************************************** 3.03 *
//*   api function: getHeaderPicFileNameButSite(arg1)
//*
//*   this function generates random domain+filename combination.
//*   with specific site id
//*
//*   return: target file url
//*
//*****************************************************************
function getHeaderPicFileNameButSite(usrID) {
	var domArry = _makeDomArray();
	var fileID = 0;

	if((usrID < 0) || (usrID >= domArry.length)) {		// 3.03
//		return( _doErrorPic() );  // arg error
		usrID = 0;			// added 3.03 / spec change
	};
	fileID = Math.floor(Math.random() * domArry[usrID][1]);
	_setToCurrentSiteData( domArry[usrID] );

	return( domArry[usrID][0] + _picIDtoFilename(fileID,".jpg") );
};

//*****************************************************************
//*   api function: getHeaderPicSpecificFileName(arg1, arg2)
//*
//*   this function generates random domain+filename combination.
//*
//*   return: specifig file url
//*
//*****************************************************************
function getHeaderPicSpecificFileName(usrID, fileID) {
 var domArry = _makeDomArray();

// if((usrID < 0) || (fileID < 0)) return( _doErrorPic() );  // arg error
// if((usrID >= domArry.length) || (fileID >= domArry[usrID][1])) return( _doErrorPic() );  // arg error

	if( (usrID < 0) || (usrID >= domArry.length) ) usrID = 0;			// 3.03 fix
	if( (fileID < 0) || (fileID >= domArry[usrID][1]) ) fileID = 0;		// 3.03 fix

 _setToCurrentSiteData( domArry[usrID] );

 return( domArry[usrID][0] + _picIDtoFilename(fileID,".jpg") );
};

//********************************************************* v2.0 **
//*   low level function: getHeaderPicSitAddress()
//*
//*   this function return current image' creater url.
//*
//*   return: site url
//*
//*****************************************************************
function getHeaderPicSitAddress() {
	return currentSiteURL;
};

//********************************************************* v2.0 **
//*   low level function: getHeaderPicSitName()
//*
//*   this function return current image' creater site name.
//*
//*   return: site name
//*
//*****************************************************************
function getHeaderPicSitName() {
	return currentSiteName;
};


//*****************************************************************
//*   api function: getHeaderPicLogoPos()
//*
//*   this function generates random position string for HTML tags.
//*
//*   return: tag string
//*
//*****************************************************************
function getHeaderPicLogoPos() {
  var posArry = new Array(
    'align="right" valign="bottom"',
    'align="left" valign="top"',
    'align="right" valign="top"',
    'align="left" valign="bottom"'
  );
  return(posArry[Math.floor(Math.random() * posArry.length)]);
};


//*****************************************************************
//*   api function: getHSPBanner(arg)
//*
//*   this function generates random hsp banner with link.
//*
//*   arg: TRUE: return with URL
//*   arg: FALSE: return without URL
//*
//*   return: target file url
//*
//*****************************************************************
function getHSPBanner(urlSW) {
 var hspURL = "http://www.vjcatkick.com/headpic/banner/";	// URL for banner
 var hspQTY = 3;						// number of banners
 var fileID = 0;

 fileID = Math.floor(Math.random() * hspQTY);
 if (urlSW) {
  return( '<a href="http://siesta.co.jp/nat/archives/cat_eaeaueii.html"><img src=' + hspURL + _picIDtoFilename(fileID,".gif") + ' border="0"></a>' );
 }else{
  return( hspURL + _picIDtoFilename(fileID,".gif") );
 };
};

/********************************* 2.0'til here **********************************/


//********************************************************* v3.06 *
//*   api function: callTogaQ( linkurl,blankgif,headtitle,headimg )
//*
//*   instant version.
//*   linkurl : url when user click title (opt)
//*   blankgif : pass to blank.gif (opt)
//*   headtitle : pass to site title image file (opt)
//*   headimg : return value of togaq() (req)
//*   
//*   CSS sample
//*   #tq_banner {
//*      margin: 0px;
//*      padding: 0px;
//*      width: 800px;
//*      height: 100px;
//*   }
//*   
//*   return: none
//*
//*****************************************************************
function callTogaQ( linkurl,blankgif,headtitle,headimg )
{
	document.write('<div id="tq_banner" style="background:url(');
	document.write( headimg );
	document.write(');"><a href=' + linkurl + ' target="_top">');

	if( headtitle && (headtitle.indexOf( ".png" ) >= 0 || headtitle.indexOf( ".gif" ) >= 0) ) {
		var d = document.createElement('div');
		if(d && d.runtimeStyle && blankgif) {
			document.write(	'<img src=' + blankgif + 
							' border="0" hspace="0" width="1" height="100"' + 
							' style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader( src=' + 
							headtitle + ',sizingmethod=image);" >');
		}else{
			document.write('<img src=' + headtitle + ' border="0" hspace="0" >');
		};
	}else if(headtitle && headtitle.length > 0) {
			document.write( '<div class="text_title" >' );
			document.write( headtitle );
			document.write( '</div>' );
	};

	document.write('</a></div>');
};





//********************************************************** v3.0 *
//*   api function: instant_togaq( togaqtype )
//*
//*   instant version.
//*   togaqtype : 0 / 1
//*    0 : non cookie version
//*    1 : cookie version
//*   sid : site id
//*   fid : file id
//*   cid : func id / type of function
//*
//*   return: none
//*
//*****************************************************************
function instant_togaq( togaqtype, cid, sid, fid, logo ) {
	var d = document;
	d.write('<table id="tq_banner" border="0" cellpadding="0" cellspacing="0" width="800" height="100" background=');
	if( togaqtype == 0 ) {
		d.write( togaqfunc( cid, sid, fid, null, null ) );
	}else{
		d.write( togaq() );
	};
	d.write('><tr><td align="left" valign="top">');
	if( logo && logo.length > 0 ) {
		d.write('<img src="' );
		d.write( logo );
		d.write( '">');
	};
	d.write('</td></tr></table>');
};

//********************************************************** v3.0 *
//*   api function: togaqfunc()
//*
//*   non cookie version.
//*   sid : site id
//*   fid : file id
//*   cid : func id / type of function
//*
//*   return: target file url
//*
//*****************************************************************
function togaqfunc( cid, sid, fid, defList, subMode ) {
	var retv;									// return value

	switch( cid ) {
		case 1:				// time order toga-q
			retv = getHeaderPicFileNameWithTimer();
			break;
		case 2:				// site change by date
			retv = getHeaderPicFileNameByDate();
			break;
		case 3:				// site change by time
			retv = getHeaderPicFileNameByDateTime2();
			break;
		case 4:				// fixed site, random file
			retv = getHeaderPicFileNameButSite( sid );
			break;
		case 5:				// fixed site, random file but time
			retv = getHeaderPicFileNameByDateTimeFixedSite();
			break;
		case 6:				// fixed site, order by file
			retv = getHeaderPicFileNameByOrder( sid );
			break;
		case 7:				// fixed site, fixed file
			retv = getHeaderPicSpecificFileName( sid, fid );
			break;
		case 8:				// order site, order file
			retv = getHeaderPicFileNameByOrderAll();
			break;
		case 9:				// weekly monthly toga-q
			retv = getHeaderPicFileNameWeekMonth( defList, subMode );
			break;
		case 10:			// debug
			break;

		default:			// default
		case 0:				// original toga-q
			retv = getHeaderPicFileName();
			break;
	};

	return( retv );
};


//********************************************************** v3.0 *
//*   api function: togaq()
//*
//*   cookie version.
//*   
//*
//*   return: target file url
//*
//*****************************************************************
function togaq( def_cid, def_sid, def_fid, defList, subMode ) {
	var ms = _readSelTQTypeFromTogaQCookie();	// read master switch
	var cid = ( !def_cid ) ? 0 : def_cid;
	var sid = ( !def_sid ) ? 0 : def_sid;
	var fid = ( !def_fid ) ? 0 : def_fid;
	var retv;									// return value

	if( ms == true ) {
		cid = _readFuncIDFromTogaQCookie();		// func id
		sid = _readSiteIDFromTogaQCookie();		// site id
		fid = _readFileIDFromTogaQCookie();		// file id
	};

	// for creator tools
	retv = _readLocalFileFromTogaQCookie();		// check local file first most
	if( retv != "" ) return( retv );

	// write special date time image func here to override existing images
//	if( _readBSFromTogaQCookie() == 1 ) {
//		retv = _debugSetNewDAFImg( _readFileIDFromTogaQCookie() );
//	}else{
		retv = togaqfunc( cid, sid, fid, defList, null );
//	};

	return( retv );
};


function getTogaQVerStr() {
	var verstr = "3.06";

	return( verstr );
};




// end of script file

//********************************************************** TogaQ Google Analytics *
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

try {
var pageTracker = _gat._getTracker("UA-7061788-1");
pageTracker._trackPageview();
} catch(err) {}
//
