var ASINs = new Array("B00008DZ2L", "B002LZTX0U","B001XCW5JI","B000FNQXEO","B0018PFFU6","B003N3FB5K","B002BH3GKG");
var amaTexts = new Array(
	"沙羅曼蛇アーケードサウンドトラック [Soundtrack] ￥2,421",
	"PlayStation 3(120GB) チャコール・ブラック(CECH-2000A) [ゲーム] ￥ 28,481",
	"機動戦士ガンダム戦記( 初回生産分:「機動戦士ガンダム戦記 アバンタイトル」視聴用コード同梱) [ゲーム] ￥ 6,703",
	"ファイナルファンタジーXIII [ゲーム] ￥ 7,484",
	"リアルアーケードPro.3(Amazon.co.jpオリジナルカラー：「ホワイト」) [ゲーム] ￥ 8,379",
	"猫びより 2010年 07月号 [雑誌] ￥ 950 ",
	"アイマスディアスタ「ViDaVo!“ビダヴォ!”」(ヴァイシュヴァアイマスPRカ「876プロ」封入)付き [ゲーム] ￥5,023"
);
var r;
var tickp, tickc1, tickc2, btnSDown;
var CYCLES = 40; // cycles of one move set
var INTERVAL = 5000; // 
var panelflag = true;
var tmrMaster; // timer counter
var cntScroll = 0; // scroll counter
var hover = false; // mouse hover
var ofh; // offset height
var bScrolling = false;
var bDownClicked = false;

    function init() {
    	// initializatione
		tickp = document.getElementById( 'tickp' );
		tickc1 = document.getElementById( 'tickc1' );
		tickc2 = document.getElementById( 'tickc2' );
    	btnSDown = document.getElementById( 'scrolldown' );
    	
    	// add mouse hover checker
		if (tickp.addEventListener) {
			tickp.addEventListener('mouseover', function(){ hover=true }, false);
			tickp.addEventListener('mouseout', function(){ hover=false }, false);
		} else {
			tickp.attachEvent('onmouseover', function(){ hover=true });
			tickp.attachEvent('onmouseout', function(){ hover=false });
		}
		
		// down button events
		if (btnSDown.addEventListener) {
			btnSDown.addEventListener('mouseup', 
				function() {
					btnSDown.style.backgroundPosition = '0px -17px';
					if (bScrolling) {
						bDownClicked = true;
					} else {
						start();
					}
				}, false);
			btnSDown.addEventListener('mouseover', function() { btnSDown.style.backgroundPosition = '0px -17px'; }, false);
			btnSDown.addEventListener('mouseout',  function() { btnSDown.style.backgroundPosition = '0px -34px'; }, false);
			btnSDown.addEventListener('mousedown', function() { btnSDown.style.backgroundPosition = '0px   0px'; }, false);
		} else {
			btnSDown.attachEvent('onmouseup', 
				function() {
					btnSDown.style.backgroundPosition = '0px -17px';
					if (bScrolling) {
						bDownClicked = true;
					} else {
						start();
					}
				} );
			btnSDown.attachEvent('onmouseover', function() { btnSDown.style.backgroundPosition = '0px -17px'; } );
			btnSDown.attachEvent('onmouseout',  function() { btnSDown.style.backgroundPosition = '0px -34px'; } );
			btnSDown.attachEvent('onmousedown', function() { btnSDown.style.backgroundPosition = '0px   0px'; } );
		}

    	//
		clearInterval( tmrMaster );
	    ofh = tickc1.offsetHeight;
		cntScroll = 0;
		r = Math.floor(Math.random()*ASINs.length);
		 
		start();
	}
	
	function start() {
		
		clearInterval( tmrMaster );

		if (!bScrolling && hover) {
			tmrMaster = setInterval( function(){ start() }, 1000 );
			return;
		}
		
		//
    	if (panelflag) {
    		t1 = tickc1; t2 = tickc2; 
    		ama=document.getElementById("ama2");
    		amam=document.getElementById("amaanchor2");
    	} else {
    		t1 = tickc2; t2 = tickc1;
    		ama=document.getElementById("ama1");
    		amam=document.getElementById("amaanchor1");
    	}
    	
		
		ama.firstChild.deleteData( 0, ama.firstChild.length );
		ama.firstChild.appendData( amaTexts[r] );
		amam.href = "http://www.amazon.co.jp/exec/obidos/ASIN/"+ASINs[r]+"/mamee2j-22";
		r = ++r % ASINs.length;
    	panelflag = ! panelflag;
    	tmrMaster = setInterval( function(){ scroll( t1, t2 ) }, 10 );
	}
	
	
	function scroll(c, c2) {
		
		var faction = cntScroll / CYCLES;
		var p =  ofh * (1-faction) * (1-faction);
		
		bScrolling = true;
		
		c2.style.top = -p + 'px';
  		c2.style.opacity = 1;
		c.style.top = ofh - p + 'px';
		c.style.opacity = ( 0.7 - 2*cntScroll/CYCLES) ;
		
		if ( ++cntScroll >= CYCLES) {
			clearInterval( tmrMaster );
			c2.style.top = 0 + 'px';
			c.style.top = ofh + 'px';
			
			bScrolling = false;
			cntScroll = 0;
			
			if (bDownClicked) {
				bDownClicked = false;
				tmrMaster = setInterval( function() { start() }, 0 );
			
			} else {
				tmrMaster = setInterval( function() { start() }, INTERVAL );
			}
		}
	}
