// Link用テキストファイル読み込み
var pausecontent = new Array();
var httpObj = jQuery.get("/link.txt", null, function(){
	var idx = 0;
	var htmlText = "";
	// テキストファイルを行で分割
	var result = httpObj.responseText.split("\n");
	for (var i = 0; i < result.length ; i++){
		// 1行をカンマで分割
		// 配列番号0：URL
		// 配列番号1：Imageファイルのパス
		var row = result[i].split(",");
		if (row.length == 2){
			pausecontent[idx] = '<a href="' + row[0] + '"><img src="' + row[1] + '" width="170px" border="0" /></a>';
			idx++;
		}
	}
	new pausescroller(pausecontent, "pscroller", "someclass", 3000);
});

function pausescroller(content, divId, divClass, delay){
	this.content = content;
	this.tickerid = divId;
	this.delay = delay;

	var htmlText = "";
	var idx2 = "";
	this.conlen = this.content.length;
	if (this.conlen > 5) this.conlen = 5;

	this.hiddendivpointer = new Array(this.conlen);
	this.tickerdiv = new Array(this.conlen);
	this.visiblediv = new Array(this.conlen);
	this.hiddendiv = new Array(this.conlen);
	this.visibledivtop = new Array(this.conlen);

	for (var idx = 0; idx < this.conlen; idx++) {
		idx2 = idx + 1;
		if (this.content.length == idx2) idx2 = 0;
		this.hiddendivpointer[idx] = idx2;

		htmlText += '<div id="'+divId+idx+'" class="'+divClass+'" style="position: relative; overflow: hidden">';
		htmlText += '<div class="innerDiv" style="position: absolute; width: 100%" id="'+divId+idx+'1">'+content[idx]+'</div>';
		htmlText += '<div class="innerDiv" style="position: absolute; width: 100%; visibility: hidden" id="'+divId+idx+'2">'+content[idx2]+'</div>';
		htmlText += '</div>';
	}
	jQuery("#LinkArea").html(htmlText);

	var scrollerinstance=this;

	if (window.addEventListener) { //run onload in DOM2 browsers
		window.addEventListener("load", function(){scrollerinstance.initialize();}, false);
	//} else if (window.attachEvent) { //run onload in IE5.5+　IE8で動かない事があるのでコメントアウト
	//	window.attachEvent("onload", function(){scrollerinstance.initialize();});
	} else if (document.getElementById) { //if legacy DOM browsers, just start scroller after 1 sec
		setTimeout(function(){scrollerinstance.initialize();}, 1000);
	}
}

pausescroller.prototype.initialize = function(){
	for (var idx = 0; idx < this.conlen; idx++) {
		this.tickerdiv[idx] = document.getElementById(this.tickerid+idx);
		this.visiblediv[idx] = document.getElementById(this.tickerid+idx+"1");
		this.hiddendiv[idx] = document.getElementById(this.tickerid+idx+"2");
		this.visibledivtop[idx] = parseInt(pausescroller.getCSSpadding(this.tickerdiv[idx]));
		//set width of inner DIVs to outer DIV's width minus padding (padding assumed to be top padding x 2)
		this.visiblediv[idx].style.width = this.hiddendiv[idx].style.width = this.tickerdiv[idx].offsetWidth-(this.visibledivtop[idx]*2)+"px";
		this.getinline(this.visiblediv[idx], this.hiddendiv[idx], idx);
		this.hiddendiv[idx].style.visibility = "visible";
	}

	var scrollerinstance = this;
	if (window.attachEvent) { //Clean up loose references in IE
		window.attachEvent("onunload", function(){scrollerinstance.tickerdiv.onmouseover=scrollerinstance.tickerdiv.onmouseout=null});
	}
	setTimeout(function(){scrollerinstance.animateup()}, this.delay);
}

pausescroller.prototype.animateup = function(){
	var scrollerinstance = this;

	var flg = false;
	if (parseInt(this.hiddendiv[0].style.top)>(this.visibledivtop[0]+5)) {
		flg = true;
	}

	for (var idx = 0; idx < this.conlen; idx++) {
		if (flg == true) {
			this.visiblediv[idx].style.top = parseInt(this.visiblediv[idx].style.top)-5+"px";
			this.hiddendiv[idx].style.top = parseInt(this.hiddendiv[idx].style.top)-5+"px";
		} else {
			this.getinline(this.hiddendiv[idx], this.visiblediv[idx], idx);
			this.swapdivs(idx);
		}
	}

	if (flg == true) {
		setTimeout(function(){scrollerinstance.animateup()}, 50);
	} else {
		setTimeout(function(){scrollerinstance.setmessage()}, this.delay);
	}
}

pausescroller.prototype.swapdivs = function(idx){
	var tempcontainer = this.visiblediv[idx];
	this.visiblediv[idx] = this.hiddendiv[idx];
	this.hiddendiv[idx] = tempcontainer;
}

pausescroller.prototype.getinline = function(div1, div2, idx){
	div1.style.top = this.visibledivtop[idx]+"px";
	div2.style.top = Math.max(div1.parentNode.offsetHeight, div1.offsetHeight)+"px";
}

pausescroller.prototype.setmessage = function(){
	var scrollerinstance = this;

	var ceiling = this.content.length;
	for (var idx = 0; idx < this.conlen; idx++) {
		var i = this.hiddendivpointer[idx];
		this.hiddendivpointer[idx] = (i+1>ceiling-1)? 0 : i+1;
		this.hiddendiv[idx].innerHTML = this.content[this.hiddendivpointer[idx]];
	}
	this.animateup();
}

pausescroller.getCSSpadding = function(tickerobj){ //get CSS padding value, if any
	if (tickerobj.currentStyle) {
		return tickerobj.currentStyle["paddingTop"];
	} else if (window.getComputedStyle) { //if DOM2
		return window.getComputedStyle(tickerobj, "").getPropertyValue("padding-top");
	} else {
		return 0;
	}
}

