var httpObj;
var timerId;
var timeout_sec = 10;
var board_left_dif;
var board_top_dif;
var px=0;
var py=0;

function myWord(keyword, mode)
{
	today = new Date();
	var time = today.getTime();
        var target_url = 'http://guideme.jp/myword.php?mode=' + mode + '&keyword=' + keyword + '&time=' + time;
        var board = document.getElementById('board');

        board.style.visibility = 'visible';
        board.style.top = '100px';
        board.style.width = '400px';

        var content = document.getElementById('content');
        var funcRef = function(text_data){
                content.innerHTML = '<p>'+ text_data + '</p>';
        }
        httpRequest(target_url, funcRef);
}

function setImage(isdisp)
{
        var to_hide = document.getElementById('to_hide');
        var to_disp = document.getElementById('to_disp');
        if (isdisp){
                to_hide.style.display = "block";
                to_disp.style.display = "none";
        }
        else{
                to_hide.style.display = "none";
                to_disp.style.display = "block";
        }
        for(i=0; i<20; i++){
                var key = "kwdimg" + i;
                var kwdimg = document.getElementById(key);
                if (kwdimg){
                        if (isdisp){
                                kwdimg.style.display = "block";
                                //kwdimg.style.visibility = 'visible';
                        }
                        else{
                                kwdimg.style.display = "none";
                                //kwdimg.style.visibility = 'hidden';
                        }
                }
        }
}

function getBrowserName()
{
    var aName  = navigator.appName.toUpperCase();
    var uName = navigator.userAgent.toUpperCase();
    if (uName.indexOf("SAFARI") >= 0)  return "Safari";
    if (uName.indexOf("OPERA") >= 0)  return "Opera";
    if (uName.indexOf("FIREFOX") >= 0)  return "Firefox";
    if (aName.indexOf("NETSCAPE") >= 0)  return "Netscape";
    if (aName.indexOf("MICROSOFT") >= 0) return "Explorer";
    return "";
}


function getCookie(item) {
    var i, index, arr;
    arr = document.cookie.split(";");
    for(i = 0; i < arr.length; i++) {
        index = arr[i].indexOf("=");
        if(arr[i].substring(0, index) == item || 
                arr[i].substring(0, index) == " " + item)
            return arr[i].substring(index + 1);
    }
    return "";
}

function setCookie(item, value, expday) {
    d = new Date();
    previsit = d.toGMTString();
    d.setTime(d.getTime() + 24*60*60*1000 * expday); 
    expire = d.toGMTString();
//    document.cookie = item + "=" + value + ";expires=" + expire;
    document.cookie =  item + "=" + value + "; domain=guideme.jp; path=/; expires=" + expire;
}

/*
function closeChildWindow()
{
	var board = document.getElementById('board');
	board.style.visibility = 'hidden';
}
*/

function getLoop() {
        if (getCookie('LP') == 2){
                return true;
        }
        return false;
}

function setLoop() {
        $loop = getLoop();
        if ($loop){
                setCookie('LP', '1', 1);
        }
        else{
                setCookie('LP', '2', 1);
        }
}

function dispTube(kwid, tid, title)
{
	dispTube2(kwid, tid, title);
}

function dispTube2(kwid, tid, title, time, a)
{
	target_url = '/watchtube.php?kwid='+kwid+'&tubeid='+tid;
        var httpObj = createXmlHttp();
        if (!httpObj){
                httpObjGenerateFail();
        }
        timerId = setInterval('timeoutCheck()', 1000);
        httpObj.open("GET", target_url, true);
        httpObj.onreadystatechange = function(){
                if (httpObj.readyState == 4){
                        clearInterval(timerId);
                }
        }
        httpObj.send('');
        size = getCookie("WS");
        resizeTube(kwid, tid, title, time, size);
}

function resizeTube2(kwid, tid, title, time, size)
{
	resizeTube(kwid, tid, title, time, size);
}

function resizeTube(kwid, tid, title, time, size)
{
	var width =360;
	var height=270;
	var top = 100;
	var left = 200;
	if (!time){
		time = 0;
	}

	if (!size){
		size = getCookie("WS");
	}

	if (size=="m"){
		width =425;
		height=350;
		var top = 100;
		var left = 200;
	}
	else if (size=="l"){
		width =600;
		height=450;
		var top = 80;
		var left = 200;
	}
	else{
		size = "s"
	}
	setCookie("WS", size, 1);

        var board = document.getElementById('board');
        board.style.visibility = 'visible';
        board.style.top   = top + 'px';
        board.style.left  = left + 'px';
	board.style.zindex = 200;

        var favlink = "";
/*
        if (kwid){
                favlink = '<img src="/img/bkmk.gif"><a href="http://a.guideme.jp/add_tube.php?kwid='+kwid+'&tubeid='+tid+'">お気に入り</a>';
        }
*/
        if (time){
		var title2 = title.replace('#', '');
                favlink = '<img src="/img/choice-yes.gif"><a href="http://a.guideme.jp/tubelist.php?action=add&tubeid='+tid+'&time='+time+'&title='+encodeURI(title2)+'">Myリスト</a><img src="/img/new.gif">';
        }

        var loop= '';
        var loop_check= '';
        if (getLoop()){
                loop_check= 'checked';
                loop= '&loop=1';
        }

        var htmldata  = '<br><table bgcolor="#ccccff" width="100%" style="font-size:12px;"><tr><td></td></tr><tr><td align=center><embed src="http://www.youtube.com/v/'+tid+'&autoplay=1'+loop+'" width="'+width+'" height="'+height+'" type="application/x-shockwave-flash" wmode="transparent"></embed></td></tr><tr><td>'+ title+'</td></tr><tr><td align=right>'+ favlink +'&nbsp;画面：<a href="#" onclick="resizeTube(\''+kwid+'\',\''+tid+'\',\''+title+'\',\''+time+'\',\'s\');">小</a>：<a href="#" onclick="resizeTube(\''+kwid+'\',\''+tid+'\',\''+title+'\',\''+time+'\',\'m\');">中</a>：<a href="#" onclick="resizeTube(\''+kwid+'\',\''+tid+'\',\''+title+'\',\''+time+'\',\'l\');">大</a>&nbsp;&nbsp;<input type=checkbox name=loop value=1 onclick="setLoop(); "'+loop_check+'>ループ&nbsp;&nbsp;<a href="javascript:void(0);" onclick="closeTube();">[x]閉じる</a></td></tr>';
	
        var content = document.getElementById('content');

	closehtml = '</table>';

//related
        target_url = '/tracetube.php?tubeid=' + tid + '&time=' + new Date().getTime();
        var httpObj = createXmlHttp();
        if (!httpObj){
                httpObjGenerateFail();
		content.innerHTML = htmldata + closehtml;
		return;
        }
//alert(target_url);
        timerId = setInterval('timeoutCheck()', 1000);
        httpObj.open("GET", target_url, true);
        httpObj.onreadystatechange = function(){
                if (httpObj.readyState == 4){
                        resdata = httpObj.responseText;
                        clearInterval(timerId);
                        if (resdata){
                                var arr = resdata.split(",");
                                htmldata += '<tr><td align=left>こんなのも見てる↓</td></tr>';
                                htmldata += '<tr><td><table  style="font-size:10px;"><tr>';
                                for(i = 0; i < arr.length; i++) {
                                        tmps = arr[i].split(":");
                                        tubeid = tmps[0];
                                        kwid = tmps[1];
                                        keyword = UnescapeEUCJP(tmps[2]);

                                        htmldata += '<td><a href="#" onclick="javascript:resizeTube(\''+kwid+'\',\''+tubeid+'\',\''+keyword+'\',\''+time+'\',\''+size+'\');"><img src="http://img.youtube.com/vi/'+tubeid+'/default.jpg" alt="'+keyword+'" width="65" height="48"><br>'+keyword+'</a></td>';
					if (i == 5){
						htmldata += '</tr><tr>';
					}
                                }
                                htmldata += '</tr></table></td></tr>';
                        }
			content.innerHTML = htmldata + closehtml;
                }
        }
        httpObj.send('');
}

function closeTube()
{
        var content = document.getElementById('content');
	content.innerHTML = '';
        var board = document.getElementById('board');
        board.style.visibility = 'hidden';
}

function dragStart(e)
{
	var board = document.getElementById('board');
	board_left_dif =  e.clientX - parseInt(board.style.left);
	board_top_dif =  e.clientY - parseInt(board.style.top);
	 
	var bar = document.getElementById('bar'); 
	addListener(bar, 'mousemove', moveChildWindow, false);
	addListener(bar, 'mouseup',   dragEnd, false);
	addListener(bar, 'mouseout',  dragEnd, false);
}

function dragEnd(e)
{
	var bar = document.getElementById('bar');
	removeListener(bar, 'mousemove', moveChildWindow, false);
	removeListener(bar, 'mouseup',   dragEnd, false);
	removeListener(bar, 'mouseout',  dragEnd, false);
}

function moveChildWindow(e)
{
	var board = document.getElementById('board');
	board.style.left =  (e.clientX - board_left_dif) + 'px';
	board.style.top  =  (e.clientY - board_top_dif) + 'px';
}

function openChildWindow(e, query_string)
{
	var board = document.getElementById('board');

	board.style.visibility = 'visible';
/*
	var brws = getBrowserName();
	board.style.top = '100px';
	if (brws == "Explorer"){
       		board.style.top  = document.body.scrollTop + e.clientY - 150 + 'px';
	}
	else{
       		board.style.top  = document.body.scrollTop + 'px';
	}
*/
        board.style.top   = py -150 + 'px';
//        board.style.left  = px + 60 + 'px';
        board.style.left  = '150px';

	var target_url = "/watchimgx.php?" + query_string;
	var funcRef = function(text_data){
		var content = document.getElementById('content');
		content.innerHTML = text_data;
	}
	httpRequest(target_url, funcRef);
}

function closeChildWindow(e)
{
	var board = document.getElementById('board');
	board.style.visibility = 'hidden';
}

function createXmlHttp(){
    if (window.XMLHttpRequest) {             // Mozilla, Firefox, Safari, IE7
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {       // IE5, IE6
        try {
            return new ActiveXObject("Msxml2.XMLHTTP");    // MSXML3
        } catch(e) {
            return new ActiveXObject("Microsoft.XMLHTTP"); // MSXML2
        }
    } else {
        return null;
    }
}

function httpRequest(target_url, functionReference)
{
/*
	try{
		if (window.XMLHttpRequest){
			httpObj = new XMLHttpRequest();
		}
		else if (window.ActiveXObject){
			httpObj = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else{
			httpObj = false;
		}
	} catch(e){
		httpObj = false;
	}
*/
	var httpObj = createXmlHttp();

	if (!httpObj){
		httpObjGenerateFail();
	}
	timerId = setInterval('timeoutCheck()', 1000);

	httpObj.open("GET", target_url, true);
	httpObj.onreadystatechange = function(){
		if (httpObj.readyState == 4){
			clearInterval(timerId);
			if (httpObj.status == 200){
				functionReference(httpObj.responseText);
			}
			else{
				//alert(httpObj.status + ':' + httpObj.statusText);
				return false;
			}		
		}	
	}
	httpObj.send('');
}

function httpObjGenerateFail()
{

	alert('ご利用のブラウザではご利用頂けません');
//	alert('BROWSER ERROR');
	return false;
}

function timeoutCheck()
{
	timeout_sec--;
	if (timeout_sec <= 0){
		clearInterval(timerId);
/*
		httpObj.abort();
		alert('タイムアウトです');
*/
//		alert('TIMEOUT ERROR');
		return false;
	}
}

function removeListeners(elem, eventType, func, cap)
{
	if (elem.removeEventListener){
		elem.removeEventListener(eventType, func, cap);
	}
	else if (elem.detachEvent){
		elem.detachEvent('on' + eventType, func);
	}
}

function setListeners(e)
{
	var close = document.getElementById('close');
	addListener(close, 'click', closeChildWindow, false);
/*
	var bar = document.getElementById('bar');
	addListener(bar, 'mousedown', dragStart, false);
*/
/*
	addListener(bar, 'click', closeChildWindow, false);
*/
/*
	addListener(bar, 'mouseup', dragEnd, false);
*/
}

function addListener(elem, eventType, func, cap)
{
        if (!elem){
                return;
        }
	if (elem.addEventListener){
		elem.addEventListener(eventType, func, cap);
	}
	else if (elem.attachEvent){
		elem.attachEvent('on' + eventType, func, cap);
	}
	else{
/*
		alert('ご利用のブラウザではご利用頂けません');
*/
		alert('Browser Error 2');
		return false;
	}	
}

window.document.onmousemove = getMouseXY;
function getMouseXY(evt)
{
        if (window.createPopup){
		var scrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
		var scrollTop  = document.body.scrollTop  || document.documentElement.scrollTop;
                px = event.x + scrollLeft;
                py = event.y + scrollTop;
        }
        else{
                px = evt.pageX;
                py = evt.pageY;
        }
}
addListener(window, 'load', setListeners, false);
