var LEFT = 0;
var RIGHT = 1;

var openTags = false;
var openFavi = false;
var p_hx = 0;
var p_hy = 0;



function addBookmarkMain( event, id, lang ){
	p_hx = getPosition( X, event );
	p_hy = getPosition( Y, event );

	var data = new Array();
	data.push( 'id' );
	data.push( id );
	data.push( 'lang' );
	data.push( lang );
	req_judgeAddBookmark( data, res_judgeAddBookmark );
}
function res_judgeAddBookmark(){
	if (httpJudgeAddBookmark.readyState == 4 && httpJudgeAddBookmark.status == 200){
		var resText = httpJudgeAddBookmark.responseText;
		var data = eval( '[' + resText + ']' );
		var result = data[0]['result'];
		if ( result == RES_OK ){
			document.getElementById("LOAD_FIELD").style.display = "block";
			var dab = document.getElementById( "DLG_ADD_BOOKMARK" );
			dab.style.top = p_hy;
			dab.style.left = p_hx;
			dab.style.display = "block";
			document.getElementById("editTagText").focus();
		} else if ( result == RES_EXISTED ){
			alert( WORD_VIEW_VEWS_001[disp_lang] );
		} else {
		}
	}
}

function regBookmark( id ){
	var tags = document.getElementById("editTagText").value;
	if ( ! judgeSpace( tags ) ){
		alert( WORD_VIEW_VEWS_002[disp_lang] );
		return;
	}
	if ( ! checkIllegalChars( tags ) ){
		alert( WORD_BKMK_BKML_005[disp_lang] );
		return;
	}
	var lang = document.getElementById( 'inputLang' ).value;
	var comment = document.getElementById( 'editTagComment-' + id ).value;
	
	var data = new Array();
	data.push( 'original_id' );
	data.push( id );
	data.push( 'lang' );
	data.push( lang );
	data.push( 'tags' );
	data.push( tags );
	data.push( 'comment' );
	data.push( comment );
	
	req_addBookmarkTags( data, res_regBookmark );
}

//------------------------------------------------
// 関数名：res_regBookmark
// 概要  ：ブックマーク取得結果
//------------------------------------------------
function res_regBookmark(){
	if (httpAddBookmarkTags.readyState == 4 && httpAddBookmarkTags.status == 200){
		var resText = httpAddBookmarkTags.responseText;
		var data = eval( '[' + resText + ']' );
		var result = data[0]['result'];
		if ( result == RES_OK ){
			document.getElementById('DLG_ADD_BOOKMARK').style.display = "none";
			var dfab = document.getElementById('DLG_FINISH_ADD_BOOKMARK');
			dfab.style.display = "block";
			dfab.style.top = p_hy;
			dfab.style.left = p_hx;
		} else {
		}
	}
}


function showDLGSelectLang( event ){
	document.getElementById("LOAD_FIELD").style.display = "none";
	var dsl = document.getElementById("DLG_SELECT_LANG");
	dsl.style.display = "none";
	dsl.style.top = getPosition( Y, event );
	dsl.style.left = getPosition( X, event );
	// 多言語化で削除予定
	openEditor();
	// 多言語化で削除予定
}

function checkSelectLang(){
	var langL = document.getElementById( 'select-langL' );
	var langR = document.getElementById( 'select-langR' );
	if ( langL.value == langR.value ){
		document.getElementById( 'select-lang-attention' ).innerHTML = WORD_VIEW_VEWS_003[disp_lang];
		return false;
	} else {
		document.getElementById( 'select-lang-attention' ).innerHTML = "";
		return true;
	}
}
function openEditor(){
	document.getElementById("LOAD_FIELD").style.display = "none";
	document.getElementById("DLG_SELECT_LANG").style.display = "none";

	var id = document.getElementById( "id" ).value;
	var langL = document.getElementById( 'select-langL' ).value;
	var langR = document.getElementById( 'select-langR' ).value;
/*
	var url = "/editor/?id=" + id + "&langL=" + langL + "&langR=" + langR;
	if ( document.getElementById( 'view_non_edit' ).value == "ON" ){
		url += "&address=" + document.getElementById( 'view_url' ).value;
		url += "&init=BK";
	}
	var win = window.open( url, "QREditor", "scrollbars=1 resize=1" );
	win.fullscreen = 'yes';
*/
	var url = "/editor/makeFile.php?id=" + id + "&editlang=" + langL + "_" + langR;
	if ( document.getElementById( 'view_non_edit' ).value == "ON" ){
		url += "&address=" + document.getElementById( 'view_url' ).value;
		url += "&init=BK";
	} else {
		url += "&init=OFF";
	}
	locationHref(url);
}



function onMouseOverFavi(){
	if ( openFavi ){
		document.favi_btn.src = '/lib/cmn/img/ja/addBookmark_on.gif';
	} else {
		document.favi_btn.src = '/lib/cmn/img/ja/addBookmark_over.gif';
	}
}

function onMouseOutFavi(){
	if ( openFavi ){
		document.favi_btn.src = '/lib/cmn/img/ja/addBookmark_on.gif';
	} else {
		document.favi_btn.src = '/lib/cmn/img/ja/addBookmark_out.gif';
	}
}


//------------------------------------------------
// 関数名：disableDLG
// 概要  ：ダイアログ消去
// 引数  ：
//------------------------------------------------
function disableDLG() {
	document.getElementById('LOAD_FIELD').style.display = "none";
	document.getElementById('DLG_ADD_BOOKMARK').style.display = "none";
	document.getElementById('DLG_FINISH_ADD_BOOKMARK').style.display = "none";
	document.getElementById('DLG_SELECT_LANG').style.display = "none";
	document.getElementById('DLG_EDIT_HIST').style.display = "none";
}


/* hist */

function showEditHist( event ){
	document.getElementById('LOAD_FIELD').style.display = "block";
	setDialogPosToWindowCenter( 'DLG_EDIT_HIST' );
	var deh = document.getElementById('DLG_EDIT_HIST');
	deh.style.display = "block";
}

function diffHist(){
	var textOld = document.getElementById('textOld').value;
	var textNew = document.getElementById('textNew').value;
	
	dmp.Diff_Timeout = 10;
	dmp.Diff_EditCost = 4;
	var ms_start	= (new Date()).getTime();
	var d			= dmp.diff_main(textOld, textNew);
	var ms_end		= (new Date()).getTime();
	var ds			= dmp.diff_prettyHtml(d);
	
	var i, j;
	var cnt = 0;
	var textold = '';
	var textnew = '';
	var id = 0;
	textold = '<div id="old-' + id + '" onmouseover="diffover(\'' + id + '\')" onmouseout="diffout(\'' + id + '\')">';
	textnew = '<div id="new-' + id + '" onmouseover="diffover(\'' + id + '\')" onmouseout="diffout(\'' + id + '\')">';
	id++;
	var buff = '';
	for ( i=0; i<d.length; i++ ){
		buff = d[i][1];
		if ( d[i][0] == 0 ){
			textold += buff;
			textnew += buff;
		} else if ( d[i][0] == -1 ){
			textold += '<span>' + allReplace(buff,'|n|','<br />') + '</span>';
			textnew += '<span class="del">' + allReplace(buff,'|n|','<br />') + '</span>';
		} else {
			textnew += '<span class="add">&nbsp;' + allReplace(buff,'|n|','<br />') + '</span>';
			cnt = getStrPatternNum( buff, '|n|' );
			for ( j=0; j<cnt; j++ ) textold += '<span style="background-color:#CCCCCC;">&nbsp;</span><br />';
		}

		if ( textold.length != 0 ){
			while (true) {
				dummyold = textold;
				dummynew = textnew;
				textold = dummyold.replace('|n|', '&nbsp;</div><div id="old-' + id + '" onmouseover="diffover(\'' + id + '\')" onmouseout="diffout(\'' + id + '\')">');
				textnew = dummynew.replace('|n|', '&nbsp;</div><div id="new-' + id + '" onmouseover="diffover(\'' + id + '\')" onmouseout="diffout(\'' + id + '\')">');
				id++;
				if (textold == dummyold) {
					break;
				}
			}
		}
	}
	textold += '</div>';
	textnew += '</div>';

	document.getElementById('old').innerHTML = changeHTMLTag(textold);
	document.getElementById('new').innerHTML = changeHTMLTag(textnew);
}

function diffover( i ){
	document.getElementById( 'old-' + i ).style.backgroundColor = '#FFFF99';
	document.getElementById( 'new-' + i ).style.backgroundColor = '#FFFF99';
}
function diffout( i ){
	document.getElementById( 'old-' + i ).style.backgroundColor = 'transparent';
	document.getElementById( 'new-' + i ).style.backgroundColor = 'transparent';
}

function checkTarget( target ){
	var tgt1 = document.hist_form.target1;
	var idx1 = getCheckedRadio( tgt1 );
	var tgtVal1 = tgt1[idx1].value;
	var tgt2 = document.hist_form.target2;
	var idx2 = getCheckedRadio( tgt2 );
	var tgtVal2 = tgt1[idx2].value;
	if ( tgtVal1 == tgtVal2 ){
		if ( target == 1 ){
			idx2 = idx2 == 0 ? 1 : idx2-1;
			tgt2[idx2].checked = true;
		} else {
			idx1 = idx1 == 0 ? 1 : idx1-1;
			tgt1[idx1].checked = true;
		}
	}
}

function openTransViewer(id, lang){
	var url = '/viewer/transviewer.html?id=' + id + '&lang=' + lang;
	var ua = navigator.userAgent.toLowerCase();
	var param = "scrollbars=1,resizable=1";
	if ( ua.indexOf('msie')!=-1 )
		param += ",fullscreen=1";
	else if ( ua.indexOf('safari')!=-1 )
		param += ",left=0,top=0,width="+window.screen.availWidth+",height="+window.screen.availHeight;
	var win = window.open( url, "TransViewer", param );
}