/*@cc_on _d=document;eval('var document=_d');@*/

// Initialize
var isTop = false;
var tabMax = 5;
var tabDiv;
var tabEle;
var IE7 = (typeof document.documentElement.style.msInterpolationMode != "undefined") ? true : false;
var IE5 = (navigator.userAgent.indexOf('MSIE 5') != -1);
var IE6 = (!IE7 && !IE5 && window.ActiveXObject) ? true : false;
var FX = (navigator.userAgent.indexOf('Firefox') != -1);
var SF = (navigator.userAgent.indexOf('Safari') != -1);
var Mac = (navigator.userAgent.indexOf('Mac') != -1);
var infoNum = 3;
// CSSパッチ
var fontSize = 'x-small';
var letterSpacing = '1px';
if (FX || SF) fontSize = '10px';
if (IE5) fontSize = 'xx-small';
if (Mac) letterSpacing = '0';
document.write('<style type="text/css"> * {');
document.write('font-size: ' + fontSize + ';');
document.write('letter-spacing: ' + letterSpacing + ';');
document.write('}</style>');

// 対応ブラウザ以外は別へ飛ばす
/**
var version = navigator.userAgent;
if(!(
	(version.indexOf("MSIE 5.5")!=-1) ||
	(version.indexOf("MSIE 6")!=-1) ||
	(version.indexOf("MSIE 7")!=-1) ||
	(version.indexOf("Firefox")!=-1)
	)){
	location.href = '/about/sc/terms_of_use.html';
}
 */
 
//==========================================================
/** カラム番号. */
var column_id_no = new Array('A', 'B', 'C');

/**
 * 描画後の処理.
 */
$(function() {
	tabDiv = $('#tabs');
	tabEle = $('div', tabDiv);
	if (loginStatus) { // ログイン時はタブ表示
		tabDiv.css('display', 'block');
	}
	// visual set
	initVisual();
	// tab event set
	setTabEvents();
	// drag tab
	setDropTab();
	// load parts
	partsLoad();
});
/**********************************************************
 *
 *
 *
 *		ビジュアル
 *
 *
 *
 **********************************************************/
/**
 * init visual.
 */
function initVisual() {
	var obj = $('.visual');
	if (obj.css('background-image') && obj.css('background-image') != 'none' && 0 < obj.css('background-image').length) {
		$('body').addClass('onvisual');
	} else {
		$('body').removeClass('onvisual');
	}
	return false;
}
/**********************************************************
 *
 *
 *
 *		タブ関係
 *
 *
 *
 **********************************************************/
/**
 * tab event set.
 */
function setTabEvents() {
	if (0 < tabEle.length) {
		for (var i = 0; i < tabEle.length; i++) {
			$(tabEle[i]).hover(function(){
				$('.delete', $(this)).css('visibility', 'visible');
			}, function(){
				$('.delete', $(this)).css('visibility', 'hidden');
			});
		}
	}
	return false;
}
/**
 * タブ削除処理.
 */
function tabClose(o, e) {
	var n = $(o).parent().attr('number');
	if (0 < n) {
		var str = new Array();
		str.push('<a href="#" onClick="return tabDelete(\'' + $(o).parent().attr('seq') + '\')" class="link">削除する</a>');
		str.push('<a href="#" onClick="return selectTabCancel()" class="link">キャンセル</a>');
		createPopup('このタブを削除しますか？', str.join(''), e, true);
	}
	return false;
}
function tabDelete(seq) {
	var url = new Array(page_update_url);
	url.push('?mode=del');
	url.push('&seq=' + seq);
	return sendDataAPI(url.join(''), returnTop(), nullFnc, false);
}
/**
 * タブ選択時の処理.
 *
 * @param o 選択されたオブジェクト
 */
function tabSelect(o) {
	// トップ以外の場所で他のタブを押された場合はトップへ移動
	if (isTop) {
		// タブ選択orタブ追加
		if ($(o).parent().attr('class')) {
			var field = $('input', $(o).parent())[0];
			$(field).val(HTMLdecode($(o).html()));
			var ww = $(o).attr('width') - 15;
			var fw = (52 < ww) ? ww : 52;
			$(field).attr('width', ((IE5) ? fw + 4 : fw) + 'px');
			$(o).css('display', 'none');
			$(field).css('display', 'block');
			tabRedraw();
			$(field).focus();
			return false;
		}
	}
	var url = new Array(page_update_url);
	url.push('?mode=active');
	url.push('&seq=' + $(o).parent().attr('seq'));
	sendDataAPI(url.join(''), nullFnc, nullFnc, false);
	returnTop();
	return false;
}
/**
 * タブ追加処理.
 */
function tabAdd(o) {
	var url = new Array(page_update_url);
	url.push('?mode=add');
	sendDataAPI(url.join(''), nullFnc, nullFnc, false);
	returnTop();
	return false;
}
/**
 * タブ名変更処理.
 */
function tabRename(o) {
	var oa = $('.label', $(o).parent());
	var val = $(o).attr('value');
	// 文字数チェック
	if (val && 0 < val.length) {
		if (10 < val.length) {
			alert('タブの名称10文字までです。');
			val = val.subStr(0, 10);
		}
		oa.html(HTMLencode(val));
		var url = new Array(page_update_url);
		url.push('?mode=rename');
		url.push('&seq=' + $(o).parent().attr('seq'));
		url.push('&name=' + encodeURIComponent(val));
		sendDataAPI(url.join(''), nullFnc, nullFnc);
	}
	oa.css('display', 'block');
	$(o).css('display', 'none');
	return false;
}
/**
 * タブ再描画.
 */
function tabRedraw() {
	tabEle = $('div', tabDiv);
	$(tabEle[tabEle.length - 1]).css('display', (tabEle.length <= tabMax + 1) ? 'block' : 'none');
	if (SF) {
		tabDiv.css('display', 'none');
		setTimeout("tabDiv.css('display', 'block')", 1);
	}
}
/** ページ更新情報送信URL. */
var page_update_url = '/mypage/dc/page';
/**********************************************************
 *
 *
 *
 *		パーツ関係
 *
 *
 *
 **********************************************************/
/**
 * load parts contents.
 */
function partsLoad() {
	for (i = 3; 0 <= i; i--) {
		var col = $('#column' + i);
		$.each($('.parts', col), function(i) {
			setEventListener($(this));
			var pre = $(this).attr('id');
			var pid = $(this).attr('pid');
			loadingParts(pre, pid);
		});
	}
}
/**
 * イベントリスナー設定.
 *
 * @param obj object
 */
function setEventListener(obj) {
	if ('part000' != obj.attr('id')) {
		var b = $('a', obj);
		// b[0].onmousedown = function(e) { return false; }
		b[1].onmousedown = function(e) { return phOption(this, (e || event)); }
		b[2].onmousedown = function(e) { return phShut(this, (e || event)); }
		b[3].onmousedown = function(e) { return phClose(this, (e || event)); }
		// b[0].onclick = function(e) { return false; }
		b[1].onclick = function(e) { return false; }
		b[2].onclick = function(e) { return false; }
		b[3].onclick = function(e) { return false; }
	}
	if ('column3' != obj.parent().attr('id')) {
		if ('part000' == obj.attr('id')) {
			$('.head1', obj).css('cursor', 'auto');
		} else {
			var e = $('.head1', obj);
			e[0].onmousedown = function(e) {
				var ev = e || event;
				var target = ev.srcElement || ev.target;
				// Aタグ(RSS,編集,+,xはスルー)
				if(target && target.tagName.toUpperCase() != 'A'){
					phMD(this.parentNode.parentNode, e);
				}
			}
		}
	}
	return false;
}

/**
 * パーツの中身を読み込む.
 *
 * @param pre prefix
 * @param pid parts id
 */
function loadingParts(pre, pid) {
	var obj = $('#' + pre);
	// トップ以外では出さないパーツを消去
	if (!isTop) {
		var fg = false;
		// mypage_blogのseqは必要
		if (pid == 'mypage_blog') {
			$('body').append('<div id="dmy_mypage_blog" seq="' + obj.attr('seq') + '"></div>');
		}
		if (fg) {
			return false;
		}
	}
	obj.attr('pre', pre);
	// 特別パーツ読み込み
	loadParts(obj, pre, pid);
	return;
}
/**
 *
 */
function loadingPartsObj(obj) {
	var pre = $(obj).attr('pre');
	var pid = $(obj).attr('pid');
	loadParts($(obj), pre, pid);
}
/**
 * RSSボタンを押された時の処理.
 *
 * @param o object
 * @param e event
 */
function phRSS(o, e) {
	voidClickEvent(e);
	var obj = getParentObject(o);
	var rss = obj.attr('rss');
	if (rss && 0 < rss.length) {
		window.open(rss, '_blank');
	}
	return false;
}
/**
 * 編集ボタンを押された時の処理.
 *
 * @param o object
 * @param e event
 */
function phOption(o, e) {
	voidClickEvent(e);
	var obj = getParentObject(o);
	var opt = obj.attr('option');
	if (opt && 0 < opt.length) {
		eval(opt);
	}
	return false;
}
/**
 * 閉じるボタンを押された時の処理.
 *
 * @param o object
 * @param e event
 */
function phShut(o, e) {
	voidClickEvent(e);
	o.title = ($(o).parent().attr('class').match(/ shut/)) ? 'たたむ' : '開く';
	var obj = getParentObject(o);
	obj.toggleClass('shut');
	$('.partsCon', obj).toggle();
	var seq = $(obj).attr('seq');
	var shut = ($(obj).children('.partsCon').css('display') == 'none');
	var url = new Array(parts_config_update_url);
	url.push('?mode=shut');
	if($(obj).attr('id').indexOf('D') != 0){
		url.push('&pageseq=' + $('#tabs').attr('active'));
	}else{
		url.push('&pageseq=' + $('#column3').attr('seq'));
	}
	url.push('&partsseq=' + seq );
	url.push('&shut=' + shut  );
	return sendDataAPI(url.join(''), nullFnc, nullFnc);
}
/**
 * 消すボタンを押された時の処理.
 *
 * @param o object
 * @param e event
 */
function phClose(o, e) {
	voidClickEvent(e);
	var obj = getParentObject(o);
	var str = new Array();
	str.push('<a href="#" onClick="return partsDelete(\'' + obj.attr('id') + '\', \'' + obj.attr('seq') + '\')" class="link">削除する</a>');
	str.push('<a href="#" onClick="return selectTabCancel()" class="link">キャンセル</a>');
	createPopup('このパーツを削除しますか？', str.join(''), e, true);
	voidClickEvent(e);
}
function partsDelete(id, seq) {
	$('#' + id).remove();
	var arrParts = renameParts();
	var url = new Array(parts_update_url);
	url.push('?mode=del');
	url.push('&pageseq=' + $('#tabs').attr('active'));
	url.push('&partsseq=' + seq );
	url.push(arrParts.join(''));
	sendDataAPI(url.join(''), selectTabCancel, nullFnc, false);
	if (getPartsTotal() < 1) {
		returnTop();
	}
	return false;
}
/**
 * 条件に当てはまるParts Objectを取得する.
 */
function getParentObject(o) {
	var obj = $(o);
	if (obj.attr('class')) {
		if (-1 != obj.attr('class').indexOf('parts')) {
			return obj;
		}
	}
	return getParentObject(obj.parent());
}
/**
 * 条件に当てはまるParts Objectを取得する.
 */
function getPartsObject(pre) {
	var obj = null;
	$.each($('.parts'), function(i) {
		if (pre == $(this).attr('pre')) {
			obj = $(this);
			return;
		}
	});
	return obj;
}
/**
 * イベント伝達を停止する.
 *
 * @param e event
 */
function voidClickEvent(e) {
	if (e.target) {
		e.stopPropagation();
	} else {
		e.cancelBubble = true;
	}
}
/**
 * optionとcontentsを入れ替える.
 *
 * @param pre prefix
 */
function chgOption(pre) {
	var obj = $('#' + pre);
	$('.contents', obj).toggle();
	$('.option', obj).toggle();
	$('.button2', obj).css('display', $('.contents', obj).css('display'));
	return false;
}
/** パーツ変更情報送信URL. */
var parts_update_url = '/mypage/dc/parts';

/** パーツ設定変更送信URL. */
var parts_config_update_url = '/mypage/dc/partsconfig';

/**********************************************************
 *
 *
 *
 *		設定場面関係
 *
 *
 *
 **********************************************************/
/**
 * タブ選択ポップアップ作成.
 *
 * @param t title
 * @param s string
 * @param e event
 * @param f flag
 */
function createPopup(t, s, e, f) {
	if (!e) {
		e = window.event;
	}
	wheelLock(); // ホイールロック
	if (f) {
		partsHiddenFlash()
	} else {
		partsHidden(); // パーツ不可視
	}
	openDialog(t, s, e);
	return false;
}
/**
 * パーツ追加処理.
 *
 * @param obj object
 * @param e event
 * @param pid parts id
 */
function partsAdd(obj, e, pid) {
	var flg = $($('input', $(obj).parent().parent())[0]).attr('checked');
	if (isTabs()) {
		selectTabView(e, flg, pid);
	} else {
		partsAddPopup(e, flg, pid);
	}
	return false;
}
/**
 * パーツ追加確認文言.
 *
 * @param e event
 * @param flg true:small/false:large
 * @param pid parts id
 */
function partsAddPopup(e, flg, pid) {
	var seq = $(tabEle[0]).attr('seq');
	var ttl = 'パーツを追加しますか？';
	var str = new Array('選択されたコンテンツを');
	str.push('<a href="#"');
	str.push(' onclick="return partsAddAction(event, \'' + seq + '\', ' + flg + ', \'' + pid + '\')"');
	str.push(' class="link">追加する</a>');
	str.push('<a href="#"');
	str.push(' onclick="return selectTabCancel()"');
	str.push(' class="link">キャンセル</a>');
	createPopup(ttl, str.join(''), e);
	return false;
}
/**
 * 選択したパーツをどこのタブに設定するかのポップアップ.
 *
 * @param e event
 * @param flg true:small/false:large
 * @param pid parts id
 */
function selectTabView(e, flg, pid) {
	var str = new Array();
	$.each(tabEle, function(i) {
		if ($(this).attr('seq')) {
			var seq = $(this).attr('seq');
			str.push('<a href="#"');
			str.push(' onclick="return partsAddAction(event, '+ seq + ', ' + flg + ', \''+ pid +'\')"');
			str.push(' class="link">' + $($('.label', $(this))[0]).html() + '</a>');
		}
	});
	createPopup('どのタブに追加しますか？', str.join(''), e);
	return false;
}
/**
 * タブ選択ポップアップを閉じる.
 */
function selectTabCancel() {
	wheelClear(); // ホイールロック解除
	partsVisible(); // パーツ不可視解除
	closeDialog();
	return false;
}
/**
 * パーツ追加内部処理.
 *
 * @param e event
 * @param seq add tab sequence
 * @param flg true:small/false:large
 * @param pid parts id
 */
function partsAddAction(e, seq, flg, pid) {
	var fnc = function(res, sts) {
		var num = parseInt(res.responseText, 10);
		if (isNaN(num)) {
			selectTabCancel()
			return false;
		}
		return chkPartsSize(e, seq, flg, pid, num);
	};
	var url = new Array(parts_update_url);
	url.push('?mode=size');
	url.push('&pageseq=' + seq);
	return sendDataAPI(url.join(''), fnc, nullFnc, false);
}
function chkPartsSize(e, seq, flg, pid, num) {
	if (20 <= num) {
		var str = new Array();
		str.push('<font color="red">設定できるコンテンツは20個までです。<br />他を削除してから追加してください。</font>');
		str.push('<a href="#"');
		str.push(' onclick="return selectTabCancel()" class="link">戻る</a>');
		var obj = $('#dialog');
		$('h4', obj).html('パーツを追加できません。');
		$('p', obj).html(str.join(''));
		$('#pageShadow', obj.parent()).css('height', obj.height() + 'px');
		return false;
	}
	var pos = (flg) ? 'B' : 'A';
	url = new Array(parts_update_url);
	url.push('?mode=add');
	url.push('&id=' + pid);
	url.push('&pageseq=' + seq);
	url.push('&position=' + pos);
	return sendDataAPI(url.join(''), selectTabCancel, nullFnc);
}
/**
 * デザイン変更処理.
 *
 * @param e event
 * @param d design id
 * @param v visual id
 */
function designSelect(e, d, v) {
	var ttl = 'デザインテーマ変更';
	var str = new Array();
	if (isTabs()) {
		str.push('どのタブへ反映しますか？');
		$.each(tabEle, function(i) {
			if ($(this).attr('seq')) {
				var seq = $(this).attr('seq');
				str.push('<a href="#"');
				str.push(' onclick="return designChgAction('+ seq + ', \'' + d + '\', \''+ v +'\')"');
				str.push(' class="link">' + $($('.label', $(this))[0]).html() + '</a>');
			}
		});
	} else {
		str.push('選択のデザインテンプレートを設定します。');
		str.push('<a href="#"');
		str.push(' onclick="return designChgAction(\''+ $(tabEle[0]).attr('seq') + '\', \'' + d + '\', \''+ v +'\')"');
		str.push(' class="link">OK</a>');
	}
	createPopup(ttl, str.join(''), e);
	return false;
}
/**
 * デザイン変更内部処理.
 *
 * @param seq add Tab sequence
 * @param d design id
 * @param v visual id
 */
function designChgAction(seq, d, v) {
	// ActivePageの変更ならページも更新
	var dmy = '';
	$.each(tabEle, function(i) {
		if ($(this).attr('class') && -1 != $(this).attr('class').indexOf('on')) {
			dmy = $(this).attr('seq');
			return;
		}
	});
	if (seq == dmy) {
		$.getJSON('/mypage/dc/design-get?id=' + d, setDesign);
		if (0 < v.length) {
			$.getJSON('/mypage/dc/visual-get?id=' + v, setVisual);
		} else {
			setVisual('');
		}
	}
	// 更新データ送信
	var url = new Array(page_update_url);
	url.push('?mode=design');
	url.push('&seq=' + seq);
	url.push('&designid=' + d);
	url.push('&visualid=' + v);
	return sendDataAPI(url.join(''), selectTabCancel, nullFnc);
}
// デザイン反映
function setDesign(json) {
	$('#design-css').attr('href', json.data.value);
}
// ビジュアル反映
function setVisual(json) {
	if (json) {
		$('.visual').css('background-image', 'url("' + json.data.value + '")');
	} else {
		$('.visual').css('background-image', '');
	}
	initVisual();
}
/**
 * ビジュアル変更処理.
 *
 * @param e event
 * @param v visual id
 */
function visualSelect(e, v) {
	var ttl = 'メインビジュアル変更';
	var str = new Array();
	if (isTabs()){
		str.push('どのタブへ反映しますか？');
		$.each(tabEle, function(i) {
			if ($(this).attr('seq')) {
				var seq = $(this).attr('seq');
				str.push('<a href="#"');
				str.push(' onclick="return visualChgAction('+ seq + ', \''+ v +'\')"');
				str.push(' class="link">' + $($('.label', $(this))[0]).html() + '</a>');
			}
		});
	} else {
		str.push('選択のメインビジュアルを設定します。');
		str.push('<a href="#"');
		str.push(' onclick="return visualChgAction(\''+ $(tabEle[0]).attr('seq') + '\', \''+ v +'\')"');
		str.push(' class="link">OK</a>');
	}
	createPopup(ttl, str.join(''), e);
	return false;
}
/**
 * ビジュアル変更内部処理.
 *
 * @param seq add Tab sequence
 * @param v visual id
 */
function visualChgAction(seq, v) {
	// ActivePageの変更ならページも更新
	var dmy = '';
	$.each(tabEle, function(i) {
		if ($(this).attr('class') && -1 != $(this).attr('class').indexOf('on')) {
			dmy = $(this).attr('seq');
			return;
		}
	});
	if (seq == dmy) {
		if (0 < v.length && "no-image" != v) {
			$.getJSON('/mypage/dc/visual-get?id=' + v, setVisual);
		} else {
			setVisual('');
		}
	}
	// 更新データ送信
	var url = new Array(page_update_url);
	url.push('?mode=visual');
	url.push('&seq=' + seq);
	url.push('&visualid=' + v);
	return sendDataAPI(url.join(''), selectTabCancel, nullFnc);
}
/**
 * 複数タブが存在するかチェック.
 *
 * @return boolean
 */
function isTabs() {
	return (1 < tabEle.length);
}
/**
 * 設定選択時の処理.
 *
 * @param o object
 */
function chkRadio(o) {
	$('input', $(o)).attr('checked', 'checked');
}
/**
 * 設定保存時の処理.
 *
 * @param o object
 */
function phOptSet(o) {
	var obj = getParentObject(o);
	$('.contents', obj).toggle();
	$('.option', obj).toggle();
	$('.button2', obj).css('display', $('.contents', obj).css('display'));
	return false;
}
/**********************************************************
 *
 *
 *
 *		ブログパーツ関係
 *
 *
 *
 **********************************************************/
 /**
  * ブログパーツ詳細描画.
  */
function blogView(n) {
	wheelLock();
	var url = '/parts/dc/blogparts?data_type=xhtml&charset=utf-8&method=config&prefix=&pid='
	return sendDataAPI(url + n, dispBlogView, nullFnc);
}
/**
 * 詳細画面を表示する.
 *
 * @param res response
 * @param sts status
 */
function dispBlogView(res, sts) {
	var str = res.responseText;
	if (-1 != str.indexOf('ブログパーツエラー')) {
		return false;
	}
	$('#view').html(str);
	$('.blogOption').append($('#preview').html());
	$('.blogSource').css('visibility', '');
	var bw = $('#blogWindow');
	var bp = $('#blogPage001');
	var bs = $('#pageShadow');
	var ph = (window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight);
	var y = (window.pageYOffset || document.documentElement.scrollTop  || document.body.scrollTop);
	if (FX) {
		y = 0;
	}
	$('#overlay').css('height', $('#wrapper').height() + 'px');
	bs.css('height', '0px');
	$('#blogLayout').css('top', y + 20);
	$('#blogParts').empty();
	bp.css('height', '');
	dispPreview();
	bw.css('display', 'block');
	return false;
}
/**
 * プレビューを表示
 */
function dispPreview() {
	var str = createScript();
	var s = str.indexOf('src') + 5;
	var e = str.indexOf(' ', s) - 1;
	str = str.substring(s, e);
	str += '&data_type=xhtml';

	$('#blogParts').load(str, function(html, stts) {
		var obj = $('#blogPage001');
		if (obj.css('display') == 'none') {
			var h = obj.height();
			obj.css('height', h + 'px');
			$('#pageShadow').css('height', (h + 2) + 'px');
			obj.css('display', 'block');
		}
	});
	return false;
}
/**
 * 
 */
function makeblogSource() {
	var str = replaceAll(createScript(), '<', '&lt;');
	str = replaceAll(str, '>', '&gt;');
	$('#source').html(str);
	return false;
}
/**
 * ブログパーツ詳細閉じる処理.
 */
function blogClose() {
	$('#blogPage001').css('display', 'none');
	$('#blogWindow').css('display', 'none');
	selectTabCancel();
	return false;
}


function blogPreview(o) {
	dispPreview();
	return false;
}
function blogTabSource(o) {
	o.parentNode.parentNode.parentNode.parentNode.parentNode.className = 'viewSource';
	return false;
}
function blogTabMyPage(o) {
	o.parentNode.parentNode.parentNode.parentNode.parentNode.className = 'viewMyPage';
	return false;
}
function blogSource(o) {
	dispPreview();
	makeblogSource();
	o.parentNode.parentNode.parentNode.className = 'viewSource makeSource';
	return false;
}
function blogMyPage(e) {
	blogPreview(null);
	var ttl = '現在表示中のブログDECOを変更してもよろしいですか？';
	var str = new Array();
	str.push('<a href="#"');
	str.push(' onclick="return uploadMypageBlog()"');
	str.push(' class="link">変更する</a>');
	str.push('<a href="#"');
	str.push(' onclick="return selectTabCancel()"');
	str.push(' class="link">キャンセル</a>');
	createPopup(ttl, str.join(''), e);
	// 下のflashを出す為に消す
	$('#selectTabWindow').css('height', '0');
	return false;
}
/**
 * ブログパーツ情報を保存.
 */
function uploadMypageBlog() {
	var config = getConfig();
	var param = new Array();
	for(var name in config) {
		if (name == 'data_type') {
			param.push('&param=' + name + ',xhtml');
		} else {
			param.push('&param=' + name + ',' + config[name]);
		}
	}
	var url = new Array(parts_config_update_url);
	url.push('?mode=update');
	url.push('&pageseq=' + $('#column3').attr('seq'));
	url.push('&partsseq=' + $('#dmy_mypage_blog').attr('seq'));
	url.push('&isBlog=true');
	url.push(param.join(''));
	return sendDataAPI(url.join(''), blogClose, nullFnc);
}
/**********************************************************
 *
 *
 *
 *		その他
 *
 *
 *
 **********************************************************/
/**
 * ajax
 */
function sendDataAPI(url, callback, errorFnc, asc) {
	var flg = (typeof(asc) != 'undefined' && asc == false) ? false : true;
	$.ajax({
		url: url,
		complete: callback,
		error: errorFnc,
		timeout: 30 * 1000,
		async: flg,
		ifModified: true
	});
	return false;
}
/**
 * トップへ戻る.
 */
function returnTop() {
	setTimeout('location.href=\'./top\'', 1 * 1000);;
}
/**
 * パーツ位置情報書き換え.
 */
function renameParts() {
	var arrParts = new Array();
	var cnt = 0;
	for (var i = 0; i < 3; i++) {
		cnt = 0;
		var col = $('#column' + i);
		$.each($('.parts', col), function(k) {
			var id = column_id_no[i] + cnt;
			var seq = $(this).attr('seq');
			var pos = column_id_no[i] + '-' + (cnt+1);
			$(this).attr('id', id);
			arrParts.push('&param=' + encodeURIComponent(seq + "," + pos));
			cnt++;
		});
	}
	return arrParts;
}
function nullFnc() {
	return false;
}
/**
 * 右枠以外の総パーツ数を返す.
 *
 * @return int
 */
function getPartsTotal() {
	var ttl = 0;
	for (var i = 0; i < 3; i++) {
		if ($('.parts', $('#column' + i))) {
			ttl += $('.parts', $('#column' + i)).length;
		}
	}
	return ttl;
}
/**
 * 
 */
function replaceAll(str, repa, repb) {
	while(true) {
		if (-1 == str.indexOf(repa)) {
			break;
		}
		str = str.replace(repa, repb);
	}
	return str;
}
function replaceChar(val, repa, repb) {
	var str = new Array();
	for (var i = 0; i < val.length; i++) {
		str.push(val.substr(i, 1).replace(repa, repb));
	}
	return str.join('');
}
/**
 * HTML decode
 */
var HTMLrep1 = new Array('&gt;', '&lt;', '&nbsp;', '&amp;');
var HTMLrep2 = new Array('>', '<', ' ', '&');
function HTMLdecode(val) {
	for (var i = 0; i < HTMLrep1.length; i++) {
		val = replaceAll(val, HTMLrep1[i], HTMLrep2[i]);
	}
	return val;
}
function HTMLencode(val) {
	for (var i = HTMLrep1.length - 1; 0 < i; i--) {
		val = replaceChar(val, HTMLrep2[i], HTMLrep1[i]);
	}
	return val;
}
/**
 * マウスホイールをロックする.
 */
function wheelLock() {
	window.onmousewheel = document.onmousewheel = wheel;
}
/**
 * ホイールロックを解除.
 */
function wheelClear() {
	window.onmousewheel = document.onmousewheel = null;
}
/**
 * ホイールロック処理.
 */
function wheel(event) {
	if (!event) {
		event = window.event;
	}
	if (event.preventDefault) {
		event.preventDefault;
	}
	event.returnValue = false;
}
/**
 * パーツの中身を隠す.
 */
function partsHidden() {
	$.each($('.parts'), function(i) {
		$('.partsCon', $(this)).css('visibility', 'hidden');
	});
	return false;
}
function partsHiddenFlash() {
	$.each($('.parts'), function(i) {
		if (0 < $('object', $(this)).length) {
			$('.partsCon', $(this)).css('visibility', 'hidden');
		}
	});
	return false;
}
/**
 * 隠したパーツを出す.
 * part999の兼ね合いで'visible'にはしない
 */
function partsVisible() {
	$.each($('.parts'), function(i) {
		$('.partsCon', $(this)).css('visibility', '');
	});
	return false;
}
