
var dom = new Object();
dom.event = new Object();
dom.field = new Object();
var Ps_change_panel_size = new Object();

var myAgent = navigator.userAgent;

var Ps_targetElm_place_top = new Array();
var Ps_targetElm_place_left = new Array();
var Ps_targetElm_place_flag_top = new Array();
var Ps_targetElm_place_flag_left = new Array();

var Ps_targetElm_resize_width = new Array();
var Ps_targetElm_resize_height = new Array();
var Ps_targetElm_resize_flag_width = new Array();
var Ps_targetElm_resize_flag_height = new Array();

var Ps_control_panel_size_getCookie = new Array();
var Ps_panel_resize_getCookie = new Array();

var Ps_ctrl_panel_node = new Array();
var Ps_change_size_btn = new Array();
var Ps_help_btn = new Array();
var Ps_grab_area_node = new Array();
var Ps_handler = new Array();
var Ps_handler_index_now;
Ps_handler[0] = 'Ps_control_panel';
Ps_handler[1] = 'Ps_preview_seal';
Ps_handler[2] = 'Ps_memo_pad';

// addEventListener
//====================================================
dom.event.addEventListener = function ( elm, type, func, useCapture ) {
	if ( ! elm ) { return false; }
	if ( ! useCapture ) {
		useCapture = false;
	}
	if ( elm.attachEvent ) {
		//IE
		elm.attachEvent ( 'on' + type, func );
	} else if ( elm.addEventListener ) {
		//others
		elm.addEventListener ( type, func, false );
	} else {
		return false;
	}
	return true;
}

// removeEventListener
//====================================================
dom.event.removeEventListener = function ( elm, type, func, useCapture ) {
	if ( ! elm ) { return false; }
	if ( ! useCapture ) {
		useCapture = false;
	}
	if ( elm.detachEvent ) {
		//IE
		elm.detachEvent ( 'on' + type, func );
	} else if ( elm.removeEventListener ) {
		//others
		elm.removeEventListener ( type, func, false );
	} else {
		return false;
	}
	return true;
}

// event stopPropagation
//====================================================
dom.event.stopPropagation = function ( evt ) {
	if ( window.event ) {
		//IE
		window.event.cancelBubble = true;
	} else if ( evt && evt.stopPropagation ) {
		//others
		evt.stopPropagation();
	}
}

// event preventDefault
//====================================================
dom.event.preventDefault = function ( evt ) {
	if ( window.event ) {
		//IE
		window.event.returnValue = false;
	} else if ( evt && evt.preventDefault ) {
		//others
		evt.preventDefault();
	}
}

// event target 
//====================================================
dom.event.target = function ( evt ) {
	if ( window.event && window.event.srcElement ) {
		//IE
		return window.event.srcElement;
	} else if ( evt && evt.target ) {
		//others
		return evt.target;
	} else {
		return null;
	}
}

// field getWindowSize  ウィンドウサイズを取得。
//====================================================
dom.field.getWindowSize = function () {
	var obj = new Object();
	if ( document.documentElement.clientWidth ) {
		//IE & Firefox 
		obj.width = document.documentElement.clientWidth;
		obj.height = document.documentElement.clientHeight;
	} else if ( window.innerWidth ) {
		//others
		obj.width = window.innerWidth;
		obj.height = window.innerHeight;
	}
	return obj;
}

// field getScrollWidth  スクロールバーで隠れている領域を含むブラウザ表示領域のサイズを取得。
//====================================================
dom.field.getScrollWindowSize = function () {
	var scroll_obj = new Object();
	if ( document.documentElement.scrollWidth  ) {
		//IE & Firefox 
		scroll_obj.width = document.documentElement.scrollWidth;
		scroll_obj.height = document.documentElement.scrollHeight;
	} else if ( document.body.scrollWidth ) {
		//others
		scroll_obj.width = document.body.scrollWidth;
		scroll_obj.height = document.body.scrollHeight;
	}
	return scroll_obj;
}


// event drag 
//====================================================
//targetElm:移動させたい対象要素、dragableElm:対象要素内のドラッグ可能領域（指定しなければtargetElm全体）
dom.event.drag = function ( targetElm, dragableElm ) {
	var index = Ps_get_handler_index( targetElm );
	Ps_targetElm_place_flag_top[index] = Ps_getCookie( 'Ps_targetElm_place_top_' + Ps_handler[index] ) ;
	Ps_targetElm_place_flag_left[index] = Ps_getCookie( 'Ps_targetElm_place_left_' + Ps_handler[index] ) ;
	if ( ! targetElm ) { return; }
	if ( ! dragableElm ) { 
		dragableElm = targetElm ;
	}

	//move boxのcookie用フラグ
	if ( Ps_targetElm_place_flag_top[index] && Ps_targetElm_place_flag_top[index] != undefined && Ps_targetElm_place_flag_top[index] >= 0 && Ps_targetElm_place_flag_left[index] && Ps_targetElm_place_flag_left[index] != undefined && Ps_targetElm_place_flag_left[index] >= 0 ) {
		targetElm.style.top = Ps_targetElm_place_flag_top[index] + 'px';
		targetElm.style.left = Ps_targetElm_place_flag_left[index] + 'px';
	}

	if ( myAgent.match ( /MSIE/ ) ) {
		if ( ! targetElm.style.top ) { targetElm.style.top = '0px'; }
		targetElm.style.top = ( parseInt(targetElm.style.top) + 1 ) + 'px';
		targetElm.style.top = ( parseInt(targetElm.style.top) - 1 ) + 'px';
	}

	targetElm.style.display = "block";

	if ( ! myAgent.match ( /MSIE 6/ ) ) {
		document.getElementById( Ps_handler[index] + '_grab_area' ).style.cursor = 'url(/WebPlatform_libs/common_images/cursor_images/hand_a_01.cur), auto';  
	}

	var mouseX, mouseY, targetX, targetY, disX, disY;

	//ドラッグ終了
	var dragEnd = function ( evt ) {
		var t_left = parseInt( targetElm.style.left );
		var t_top = parseInt( targetElm.style.top );
		var t_right = t_left + parseInt( targetElm.offsetWidth );
		var t_bottom = t_top + parseInt( targetElm.offsetHeight );
		var t_width = t_right - t_left;
		var t_height = t_bottom - t_top;
		var snum = 0;

		var scroll_window_size = dom.field.getScrollWindowSize();
		var window_size = dom.field.getWindowSize();


	//ウィンドウスナップ機能
	if ( targetElm.style.left ) {
		if  (  t_left <= snum ){
			targetElm.style.left = ( t_left - t_left ) + 'px';
			if ( t_top <= snum ) {
				targetElm.style.top = ( t_top - t_top ) + 'px';
			} else{
				targetElm.style.top = t_top + 'px';
			}
		} else if ( ( t_right >= ( window_size.width - snum ) ) && ( t_right <= ( window_size.width ) )) {
			targetElm.style.left = ( window_size.width - t_width )+ 'px';
			if ( t_top <= snum ) {
				targetElm.style.top = ( t_top - t_top ) + 'px';
			} else{
				targetElm.style.top = t_top + 'px';
			}
		} else {
			targetElm.style.left = t_left + 'px';
			if ( t_top <= snum ) {
				targetElm.style.top = ( t_top - t_top ) + 'px';
			} else{
				targetElm.style.top = t_top + 'px';
			}
		}
	}
		//ウィンドウスナップ機能（ここまで）

		dom.event.removeEventListener ( document, 'mousemove', dragMove, false );
		dom.event.removeEventListener ( document, 'mouseup', dragEnd, false );

		dom.event.stopPropagation( evt );
		dom.event.preventDefault( evt );

		Ps_targetElm_place_left[index] = parseInt( targetElm.style.left ) ;
		Ps_targetElm_place_top[index] = parseInt( targetElm.style.top ) ;


		//expiresのセット
		var index_now = Ps_handler_index_now;
		var Ps_expires = new Date();
		Ps_expires.setTime( Ps_expires.getTime() + 30*24*60*60*1000 );
		var Ps_expires_str = Ps_expires.toGMTString();

		//Cookieのセット
		Ps_setCookie( 'Ps_targetElm_place_top_' + Ps_handler[index_now], Ps_targetElm_place_top[index_now], Ps_expires_str );
		Ps_setCookie( 'Ps_targetElm_place_left_' + Ps_handler[index_now], Ps_targetElm_place_left[index_now], Ps_expires_str );
		if ( ! myAgent.match ( /MSIE 6/ ) ) {
			document.getElementById( Ps_handler[index] + '_grab_area' ).style.cursor = 'url(/WebPlatform_libs/common_images/cursor_images/hand_a_01.cur), auto';  
			document.getElementsByTagName( 'body' ).item(0).style.cursor = 'auto';  
		}
		
	}

	//ドラッグ中
	var dragMove = function ( evt ) {
		var scroll_window_size = dom.field.getScrollWindowSize();
		var window_size = dom.field.getWindowSize();

		var scroll_width = scroll_window_size.width - window_size.width;
		var scroll_height = scroll_window_size.height - window_size.height;

		var left = evt.clientX + document.documentElement.scrollLeft - disX;
		var top = evt.clientY + document.documentElement.scrollTop - disY;
		var right = left + targetElm.offsetWidth;
		var bottom = top + targetElm.offsetHeight;

		targetElm.style.left = left + 'px';
		targetElm.style.top = top + 'px';

		dom.event.stopPropagation( evt );
		dom.event.preventDefault( evt );
	}	

	//ドラッグ開始
	var dragStart = function ( evt ) {
		Ps_handler_index_now = index;

		var scroll_window_size = dom.field.getScrollWindowSize();
		var window_size = dom.field.getWindowSize();
		var scroll_width = scroll_window_size.width - window_size.width;
		var scroll_height = scroll_window_size.height - window_size.height;
		mouseX = evt.clientX;
		mouseY = evt.clientY;

		targetX = targetElm.offsetLeft;
		targetY = targetElm.offsetTop;
		disX = document.documentElement.scrollLeft + evt.clientX - targetX;
		disY = document.documentElement.scrollTop + evt.clientY - targetY;
		dom.event.addEventListener ( document, 'mousemove', dragMove, false );
		dom.event.addEventListener ( document, 'mouseup', dragEnd, false );
		dom.event.stopPropagation( evt );
		dom.event.preventDefault( evt );

		//カーソルアイコンの表示
		if ( ! myAgent.match ( /MSIE 6/ ) ) {
			document.getElementById( Ps_handler[index] + '_grab_area' ).style.cursor = 'url(/WebPlatform_libs/common_images/cursor_images/hand_b_01.cur), auto';  
			document.getElementsByTagName( 'body' ).item(0).style.cursor = 'url(/WebPlatform_libs/common_images/cursor_images/hand_b_01.cur), auto';  
		}
	}

	dom.event.addEventListener ( dragableElm, 'mousedown', dragStart, false );
}


// resize_window
//====================================================
//targetElm:移動させたい対象要素、dragableElm:対象要素内のドラッグ可能領域（指定しなければtargetElm全体）
dom.event.resize_window = function ( targetElm, dragableElm ) {
	var index = Ps_get_handler_index( targetElm );
//alert( targetElm.id );
	//初期化
	var grab_area = document.getElementById( Ps_handler[index] + '_grab_area');

	if ( myAgent.match ( /MSIE/ ) ) {
		var grab_area_ie_top = document.getElementById( Ps_handler[index] + '_cover_ie_top');
		var grab_area_ie_bottom = document.getElementById( Ps_handler[index] + '_cover_ie_bottom');
	} else if ( ! myAgent.match ( /MSIE/ ) ) {
		var grab_area_mozilla_top = document.getElementById( Ps_handler[index] + '_cover_mozilla_top');
		var grab_area_mozilla_bottom = document.getElementById( Ps_handler[index] + '_cover_mozilla_bottom');
	}
	var status_bar = document.getElementById( Ps_handler[index] + '_status_bar');
	var text_area = document.getElementById( Ps_handler[index] + '_textarea_wrapper');
	var wnum = 200;
	var hnum = 200;
	var ghnum = 30;
	var shnum = 20;
	var zeronum = 0;
	var pct = 0.98;

	//textarea_size
	var textarea_form = document.getElementById( Ps_handler[index] +'_textarea' );
	var textarea_write_enable = document.getElementById( Ps_handler[index] +'_textarea_write_enable' );

	targetElm.style.width = wnum + 'px';
	targetElm.style.height = hnum + 'px';

	grab_area.style.height = ghnum +'px';
	if ( myAgent.match ( /MSIE/ ) ) {
		grab_area_ie_top.style.height = ghnum + 'px';
		grab_area_ie_bottom.height = zeronum +'px';

	} else if ( ! myAgent.match ( /MSIE/ ) ) {
		grab_area_mozilla_top.style.height = ghnum +'px';
		grab_area_mozilla_bottom.height = zeronum +'px';
	}

	status_bar.style.height = shnum + 'px';
	text_area.style.height = ( parseInt( targetElm.style.height ) - parseInt( grab_area.style.height ) - parseInt ( status_bar.style.height ) ) + 'px';
	textarea_form.style.height = textarea_write_enable.style.height = ( parseInt( text_area.style.height ) * pct ) +'px';

	grab_area.style.width = parseInt( targetElm.style.width ) + 'px';

	if ( myAgent.match ( /MSIE/ ) ) {
		grab_area_ie_top.style.width = parseInt( targetElm.style.width ) + 'px';
		grab_area_ie_bottom.style.width = parseInt( targetElm.style.width ) + 'px';
	} else if ( ! myAgent.match ( /MSIE/ ) ) {
		grab_area_mozilla_top.style.width = parseInt( targetElm.style.width ) + 'px';
		grab_area_mozilla_bottom.style.width = parseInt( targetElm.style.width ) + 'px';
	}

	status_bar.style.width = parseInt( targetElm.style.width ) + 'px';
	text_area.style.width = parseInt( targetElm.style.width ) + 'px';

	//getcookie
	Ps_targetElm_resize_flag_width[index] = Ps_getCookie( 'Ps_targetElm_resize_width_' + Ps_handler[index] ) ;
	Ps_targetElm_resize_flag_height[index] = Ps_getCookie( 'Ps_targetElm_resize_height_' + Ps_handler[index] ) ;

	if ( ! targetElm ) { return; }
	if ( ! dragableElm ) { 
		dragableElm = targetElm ;
	}


	//cookieの値がある場合に、取得した値をwidth、heightに代入
	if ( Ps_targetElm_resize_flag_width[index] && Ps_targetElm_resize_flag_height[index] ) {

		targetElm.style.width = Ps_targetElm_resize_flag_width[index] + 'px';
		targetElm.style.height = Ps_targetElm_resize_flag_height[index] + 'px';

		text_area.style.height = ( parseInt( targetElm.style.height ) - parseInt( grab_area.style.height ) - parseInt ( status_bar.style.height ) ) + 'px';
		textarea_form.style.height = textarea_write_enable.style.height = ( parseInt( text_area.style.height ) * pct ) +'px';
		grab_area.style.width = parseInt( targetElm.style.width ) + 'px';
		if ( myAgent.match ( /MSIE/ ) ) {
			grab_area_ie_top.style.width = parseInt( targetElm.style.width ) + 'px';
			grab_area_ie_bottom.style.width = parseInt( targetElm.style.width ) + 'px';
		} else if ( ! myAgent.match ( /MSIE/ ) ) {
			grab_area_mozilla_top.style.width = parseInt( targetElm.style.width ) + 'px';
			grab_area_mozilla_bottom.style.width = parseInt( targetElm.style.width ) + 'px';
		}
		status_bar.style.width = parseInt( targetElm.style.width ) + 'px';
		text_area.style.width = parseInt( targetElm.style.width ) + 'px';
	}

	var mouseX, mouseY, targetX, targetY, disX, disY;

	//ドラッグ終了
	var dragEnd = function ( evt ) {

		dom.event.removeEventListener ( document, 'mousemove', dragMove, false );
		dom.event.removeEventListener ( document, 'mouseup', dragEnd, false );

		dom.event.stopPropagation( evt );
		dom.event.preventDefault( evt );

		Ps_targetElm_resize_width[index] = parseInt( targetElm.style.width ) ;
		Ps_targetElm_resize_height[index] = parseInt( targetElm.style.height ) ;

		
		//cookieのセット
		var index_now = Ps_handler_index_now;
		var Ps_expires = new Date();
		Ps_expires.setTime( Ps_expires.getTime() + 30*24*60*60*1000 );
		var Ps_expires_str = Ps_expires.toGMTString();

		Ps_setCookie( 'Ps_targetElm_resize_width_' + Ps_handler[index_now], Ps_targetElm_resize_width[index_now], Ps_expires_str );
		Ps_setCookie( 'Ps_targetElm_resize_height_' + Ps_handler[index_now], Ps_targetElm_resize_height[index_now], Ps_expires_str );
	}

	//ドラッグ中
	var dragMove = function ( evt ) {

		var width = document.documentElement.scrollLeft + evt.clientX - targetX;
		var height = document.documentElement.scrollTop + evt.clientY - targetY;

		if ( width >= wnum/2 ){
			targetElm.style.width = width + 'px';
		} else if ( width < wnum/2 ){ 
			targetElm.style.width = wnum/2 + 'px';
		}
		if ( height >= wnum/2 ){
			targetElm.style.height = height + 'px';
		} else if ( width < hnum/2 ){ 
			targetElm.style.height = hnum/2 + 'px';
		}

		document.getElementById( Ps_handler[index] + '_resize_mark' ).style.cursor = "se-resize";  
		grab_area.style.height = ghnum + 'px';
		status_bar.style.height = shnum + 'px';
		text_area.style.height = ( parseInt( targetElm.style.height ) - parseInt( grab_area.style.height ) - parseInt ( status_bar.style.height ) ) + 'px';
		textarea_form.style.height = textarea_write_enable.style.height = ( parseInt( text_area.style.height ) * pct ) +'px';

		grab_area.style.width = parseInt( targetElm.style.width ) + 'px';
		status_bar.style.width = parseInt( targetElm.style.width ) + 'px';
		text_area.style.width = parseInt( targetElm.style.width ) + 'px';

		if ( myAgent.match ( /MSIE/ ) ) {
			grab_area_ie_top.style.width = parseInt( targetElm.style.width ) + 'px';
			grab_area_ie_bottom.style.width = parseInt( targetElm.style.width ) + 'px';
		} else if ( ! myAgent.match ( /MSIE/ ) ) {
			grab_area_mozilla_top.style.width = parseInt( targetElm.style.width ) + 'px';
			grab_area_mozilla_bottom.style.width = parseInt( targetElm.style.width ) + 'px';
		}

		dom.event.addEventListener ( document, 'mouseup', dragEnd, false );
		dom.event.stopPropagation( evt );
		dom.event.preventDefault( evt );
	}	

	//ドラッグ開始
	var dragStart = function ( evt ) {
		Ps_handler_index_now = index;

		mouseX = evt.clientX;
		mouseY = evt.clientY;

		targetX = targetElm.offsetLeft;
		targetY = targetElm.offsetTop;

		disX = document.documentElement.scrollLeft + evt.clientX - targetX;
		disY = document.documentElement.scrollTop + evt.clientY - targetY;

		dom.event.addEventListener ( document, 'mousemove', dragMove, false );
		dom.event.addEventListener ( document, 'mouseup', dragEnd, false );
		dom.event.stopPropagation( evt );
		dom.event.preventDefault( evt );
	}

	dom.event.addEventListener ( dragableElm, 'mousedown', dragStart, false );

}


// change_area_type
//====================================================
//targetElm:変更させたい対象要素、areatype:対象要素内のtype変更可能領域
dom.event.change_area_type = function ( targetElm, areaTypeWrapper ) {
	var index = Ps_get_handler_index( targetElm );

	var paragraph = document.getElementById( Ps_handler[index] + '_paragraph' );
	var areatype = document.getElementById( Ps_handler[index] + '_textarea_wrapper' );
	var textarea = document.getElementById( Ps_handler[index] + '_textarea_write_enable' );
	
	if ( areatype.className == ( Ps_handler[index] + '_paragraph') ) {
		paragraph.style.display = '';
		textarea.style.display = 'none';
	} else if  ( areatype.className == ( Ps_handler[index] + '_textarea') ){
		paragraph.style.display = 'none';
		textarea.style.display = '';
	}
	var changeType = function ( evt ) {
		var data;

		paragraph = document.getElementById( Ps_handler[index] + '_paragraph' );

		if ( areatype.className == ( Ps_handler[index] + '_paragraph') ) {
			areatype.className = ( Ps_handler[index] + '_textarea');
			paragraph.style.display = 'none';
			textarea.style.display = '';
			document.Ps_memo_pad_textarea_form.write_enable.focus();
		} else if  ( areatype.className == ( Ps_handler[index] + '_textarea') ){
			areatype.className = ( Ps_handler[index] + '_paragraph');
			paragraph.style.display = '';
			textarea.style.display = 'none';

			if( myAgent.match( /MSIE/ ) ) {
				data = textarea.innerHTML;
				paragraph.outerHTML = '<pre id="' + Ps_handler[index] + '_paragraph">' + data + '</pre>';
			} else {
				data = textarea.value;
				paragraph.innerHTML = data;
			}

			var tmp = new Date();
			tmp.getTime();
			data = 'MEMO=' + encodeURIComponent( data ) + '&id=' + encodeURIComponent( Ps_this_id ); 
			Ps_ajax_get_file ( 'POST', '/ajax.txt?' + ( tmp * 1 ), data );
			document.getElementById( Ps_handler[index] + '_status_bar_paragraph' ).childNodes.item(0).nodeValue = 'Now updating.';
		}

	}

	dom.event.addEventListener ( areaTypeWrapper, 'dblclick', changeType, false );

}


//数秒後にレスポンスデータが戻ってきた時に割り込み処理で呼び出されるコールバック関数
function getResponse( Ps_ajax_request ) {
	if( Ps_ajax_request.readyState == 4 ) {
		document.getElementById( 'Ps_memo_pad_status_bar_paragraph' ).childNodes.item(0).nodeValue = 'Success.';
		setTimeout( memo_pad_status_start, 1000 );
	}
}

function memo_pad_status_start( ) {
		document.getElementById( 'Ps_memo_pad_status_bar_paragraph' ).childNodes.item(0).nodeValue = '';
		clearTimeout();			
}


//######################################
// individual process
//######################################

// change paragraph to textarea
//====================================================

dom.event.addEventListener ( window, 'load', init_change_paragraph_to_textarea );

function init_change_paragraph_to_textarea() {
	var Ps_target_textarea = new Array();
	var Ps_textarea_wrapper = new Array();
	var Ps_textarea = new Array();

	for ( var i = 0; i < Ps_handler.length; i++ ) {
		if ( document.getElementById( Ps_handler[i] + '_textarea_wrapper' ) ) {
			Ps_target_textarea[i] = document.getElementById( Ps_handler[i] );
			Ps_textarea_wrapper[i] = document.getElementById( Ps_handler[i] + '_textarea_wrapper' );
		}
	}
	for ( var i = 0; i < Ps_target_textarea.length; i++ ) {
		if ( Ps_textarea_wrapper[i] ) {
			var index = i;
			dom.event.change_area_type ( Ps_target_textarea[i], Ps_textarea_wrapper[i] );
		}
	}
}



// resize_memo_pad
//====================================================
dom.event.addEventListener ( window, 'load', init_resize_memo_pad );

function init_resize_memo_pad ( evt ) { 
	var resize_cover_node_mozilla = new Array();
	var resize_cover_node_ie = new Array();

	for ( var i=0; i < Ps_handler.length; i++ ){
		resize_cover_node_mozilla[i] = document.getElementById( Ps_handler[i] + '_resize_mark_mozilla' );
		resize_cover_node_ie[i] = document.getElementById( Ps_handler[i] + '_resize_mark_ie' );

		if ( myAgent.match ( /MSIE/ ) && resize_cover_node_mozilla[i] ) {
			resize_cover_node_mozilla[i].parentNode.removeChild( resize_cover_node_mozilla[i] );
		} else {
			if ( resize_cover_node_ie[i] ) {
				resize_cover_node_ie[i].parentNode.removeChild( resize_cover_node_ie[i] );
			}
		}
	}

	//リサイズされるエリア
	var Ps_resize_target = new Array();
	//ドラッガブルエリア
	var Ps_resize_mark = new Array();

	for ( var i = 0; i < Ps_handler.length; i++ ) {
		if ( document.getElementById( Ps_handler[i] + '_resize_mark' ) ) {
			Ps_resize_target[i] = document.getElementById( Ps_handler[i] );
			Ps_resize_mark[i] = document.getElementById( Ps_handler[i] + '_resize_mark' );
		}
	}
	for ( var i=0; i<Ps_resize_target.length; i++ ) {
//	alert (Ps_resize_target.length);
		if ( Ps_resize_mark[i] ) {
				var index = i;
				dom.event.resize_window ( Ps_resize_target[i], Ps_resize_mark[i] );
		}
	}
}




// change control panel size
//====================================================

dom.event.addEventListener ( window, 'load', init_change_control_panel_size );

function init_change_control_panel_size() {
	for ( var i=0; i < Ps_handler.length; i++ ) {
		Ps_ctrl_panel_node[i] =  document.getElementById( Ps_handler[i] );
		if ( ! Ps_ctrl_panel_node[i] ) {
			continue;
		}
		if ( Ps_handler[i] + '_size_btn' ) {
			Ps_control_panel_size_getCookie[i] = Ps_getCookie( 'Ps_ctrl_panel_size_flag_' + Ps_handler[i] );
			Ps_change_size_btn[i] = document.getElementById( Ps_handler[i] + '_size_btn' );
			if ( Ps_control_panel_size_getCookie[i] == 'small' ) {
				Ps_ctrl_panel_node[i].className = Ps_handler[i] + '_view_small';
			} else if ( Ps_control_panel_size_getCookie[i] == 'large' )  {
				Ps_ctrl_panel_node[i].className = Ps_handler[i] + '_view_large';
			}
			Ps_change_panel_size ( Ps_change_size_btn[i] );

			Ps_help_btn[i] = document.getElementById( Ps_handler[i] + '_help_btn' );
			dom.event.addEventListener ( Ps_help_btn[i], 'mousedown', Ps_cancelBubble );
		}
	}
}


function Ps_cancelBubble( evt ) {
	//バブリング抑止
	dom.event.stopPropagation( evt );
}

Ps_change_panel_size = function ( targetBtn ){
	var index = Ps_get_handler_index ( targetBtn );
	var size_flag='';

	//mousedown時の処理
	var Ps_change_panel_size_mousedown = function( evt ){
		dom.event.addEventListener ( targetBtn, 'mouseup', Ps_change_panel_size_mouseup_event, false );
		//バブリング抑止
		dom.event.stopPropagation( evt );
	}
	
	//mouseup時の処理
	var Ps_change_panel_size_mouseup_event = function( evt ) {

		//cookieのセット
		var Ps_expires = new Date();
		Ps_expires.setTime( Ps_expires.getTime() + 30*24*60*60*1000 );
		var Ps_expires_str = Ps_expires.toGMTString();

		if ( Ps_ctrl_panel_node[index].className == Ps_handler[index] + '_view_large' ) {
			Ps_ctrl_panel_node[index].className = Ps_handler[index] + '_view_small';
			size_flag = 'small';
		} else if ( Ps_ctrl_panel_node[index].className == Ps_handler[index] + '_view_small' ) {
			Ps_ctrl_panel_node[index].className = Ps_handler[index] + '_view_large';
			size_flag = 'large';
		}
		Ps_setCookie( 'Ps_ctrl_panel_size_flag_' + Ps_handler[index],  size_flag, Ps_expires_str);

		//パネル名Ps_control_panel、ブラウザIE6使用時の不具合につき個別対応
		if ( myAgent.match ( /MSIE 6/ ) ) {
				document.getElementById( Ps_handler[index] ).style.display = 'none';
				setTimeout( 'Ps_ie_test( "' + Ps_handler[index] +'" )' , 50 );
		}
		//mouseupイベント終了
		dom.event.removeEventListener ( targetBtn, 'mouseup', Ps_change_panel_size_mouseup_event, false );
		//バブリング抑止
		dom.event.stopPropagation( evt );
	}
	dom.event.addEventListener ( targetBtn, 'mousedown', Ps_change_panel_size_mousedown );
}

//パネル再描画（IE6用）
function Ps_ie_test( id ) {
	document.getElementById( id ).style.display = 'block';
}

// move box
//====================================================
dom.event.addEventListener ( window, 'load', init_move_box_Document );

function init_move_box_Document( evt ) {
	var cover_node_mozilla_top = new Array();
	var cover_node_mozilla_bottom = new Array();
	var cover_node_ie_top = new Array();
	var cover_node_ie_bottom = new Array();

	for ( var i=0; i < Ps_handler.length; i++ ){
		cover_node_mozilla_top[i] = document.getElementById( Ps_handler[i] + '_cover_mozilla_top' );
		cover_node_mozilla_bottom[i] = document.getElementById( Ps_handler[i] + '_cover_mozilla_bottom' );
		cover_node_ie_top[i] = document.getElementById( Ps_handler[i] + '_cover_ie_top' );
		cover_node_ie_bottom[i] = document.getElementById( Ps_handler[i] + '_cover_ie_bottom' );

		if ( myAgent.match ( /MSIE/ ) && cover_node_mozilla_top[i] && cover_node_mozilla_bottom[i] ) {
			cover_node_mozilla_top[i].parentNode.removeChild( cover_node_mozilla_top[i] );
			cover_node_mozilla_bottom[i].parentNode.removeChild( cover_node_mozilla_bottom[i] );

		} else {
			if ( cover_node_ie_top[i] && cover_node_ie_bottom[i] ) {
				cover_node_ie_top[i].parentNode.removeChild( cover_node_ie_top[i] );
				cover_node_ie_bottom[i].parentNode.removeChild( cover_node_ie_bottom[i] );
			}
		}
	}

	var Ps_movebox = new Array();
	var Ps_grab_area = new Array();

	for ( var i = 0; i < Ps_handler.length; i++ ) {
		Ps_movebox[i] = document.getElementById( Ps_handler[i] );
		Ps_grab_area_node[i] = document.getElementById( Ps_handler[i] + '_grab_area' );
	}

	for ( var i=0; i<Ps_movebox.length; i++ ) {
		if ( ! Ps_movebox == false && ( cover_node_ie_top[i] || cover_node_mozilla_top[i] ) ) {
			var index = i;
			dom.event.drag ( Ps_movebox[i], Ps_grab_area_node[i] );
		}
	}
}

function Ps_display_none( id ) {
	document.getElementById( id ).style.display = 'none';
}



// cookie
//====================================================

function Ps_setCookie( name, value, expires ) {
	document.cookie = name + "=" + encodeURIComponent( value ) + "; expires=" + expires + '; path=/';
}

function Ps_getCookie( name ) {
	var cookies;
	//セミコロンの後に半角スペース
	cookies = document.cookie.split( "; " );
	for ( var i=0; i < cookies.length; i++ ){
		var value = new Array();
		value = cookies[i].split( "=" );

		if ( value[0] == name ){
			return decodeURIComponent( value[1] );
		}
	}
	return null;
}

function Ps_get_handler_index ( obj ) {
	if ( ! obj ) {
		return;
	}
	var id = obj.id;

	for ( var i = 0; i < Ps_handler.length; i++ ) {
		if ( Ps_handler[i] == id ) {
			return i;
		}

		if ( Ps_handler[i] + '_grab_area'  == id ){
			return i;
		}
		if ( Ps_handler[i] + '_size_btn'  == id ){
			return i;
		}
	}
	return false;
}







// popue //
//====================================================

function MM_swapImgRestore() { //v3.0

  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}



function MM_preloadImages() { //v3.0

  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}



function MM_findObj(n, d) { //v4.0

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

  if(!x && document.getElementById) x=document.getElementById(n); return x;

}



function MM_swapImage() { //v3.0

  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}

function MM_openBrWindow(theURL,winName,features) { //v2.0

  var New_Window = window.open(theURL,winName,features);

  New_Window.focus();

}
