// domain.name
var domain = 'www.holeinthewall.jp';
var cookie;
var page_id;
//
var dialog_id;

var draggable_id = 'draggable';
var draggable_st;
var draggable_x;
var draggable_y;
var cookie;

window.onload=initPage;
function initPage(){
	cookie = new CookieManager();
	setDraggableItem(draggable_id);
	return false;
}

// set cookie
function toggleContainerDisplay(id){
	var c = id + '_content';
	var f = id + '_footer';
	var v = id + '_bent';
	if( $(c).style.display == 'none'){
		$(c).style.display= 'block';
		$(f).style.display= 'block';
		$(v).style.backgroundImage= 'url(./css/images/btn_close.gif)';
		cookie.clearCookie(id);
	}
	else{
		$(c).style.display= 'none';
		$(f).style.display= 'none';
		$(v).style.backgroundImage= 'url(./css/images/btn_open.gif)';
		cookie.setCookie(id, 'none');
	}
}
function bookshelfTabs(c){
	cookie.clearCookie('bookshelf_tab');
	var tabs = document.getElementsByClassName("bookshelf_tabs","bookshelf_tabs_list");
	for(var i=0; i<tabs.length; i++){
		var e = tabs[i];
		if(e.id == c ) continue;
		$(e.id).className='bookshelf_tabs bookshelf_tab_unselected';
		$(e.id +'_body').style.display='none';
		$(e.id +'_body').parentNode.style.display='none';
	}
	cookie.setCookie('bookshelf_tab', c);
	$(c).className='bookshelf_tabs bookshelf_tab_selected';
	$(c +'_body').parentNode.style.display='block';
	$(c +'_body').style.display='block';

	if(c=='bookshelf_tab1'){ //本棚を眺める
		var key = 'bookshelf_stat';
		var stat = cookie.getCookie(key);

		if(stat == 'amazon_search' || stat == 'book_card' || stat == 'bookshelf_edit' ){
			cookie.clearCookie(key);
			location.replace("bookshelf.pl");
		}
	}
}
// ajax request
function getDataInsertHTML( uri, cssid, p, m, n, o ){

	uri = 'js_' + uri + '.pl';

	p = '?p=' + p;
	if( p && m ){
		p = p + '&m=' + m;
	}
	if( p && n ){
		p = p + '&n=' + n;
	}
	if( p && o ){
		p = p + '&o=' + o;
	}

	var msec = (new Date()).getTime();
	var param = p + '&cache='+msec;
//alert(param);
	if(cssid == 'draggable'){
		$(cssid+'_content').innerHTML = '<p class="now_loading">Now Loading...</p>';
	}
	else{
		$(cssid).innerHTML = '<p class="now_loading">Now Loading...</p>';
	}
	new Ajax.Request(
		uri,
		{
			method: 'get',
			parameters: param,
			onComplete : function(req){ insertData(req, cssid); },
			onFailure  : function(req){ dispError(cssid); }
		}
	);
}

function postDataInsertHTML( uri, form_id, cssid  ){

	uri = 'js_'+ uri + '.pl';
	var param = Form.serialize(form_id);

	if( cssid == 'draggable'){
		$(cssid+'_content').innerHTML = '<p class="now_loading">Now Loading...</p>';
	}
	else{
		$(cssid).style.display='<p class="now_loading">Now Loading...</p>';
	}
	new Ajax.Request(
		uri,
		{
			method: 'post',
			parameters : param,
			onComplete : function(req){ insertData(req, cssid ); },
			onFailure  : function(req){ dispError(cssid); }
		}
	);

}
function insertData(req,id){
	if(id == 'draggable' ){
		$(id+'_handle').innerHTML = '◆ ここをつかんでドラッグできます ◆';
		id = id + '_content';
	}
	$(id).innerHTML = req.responseText;
	return;
}
function dispError(id){
	if(id == 'draggable' ) id = id + '_content';
	$(id).innerHTML = '<div class="js_err_msg">---&nbsp;Not&nbsp;Found&nbsp;---</div>';
	return false;
}

function cumulativeOffset(element) {
	var element = (typeof element == 'string') ? document.getElementById(element) : element;
	var valueT = 0, valueL = 0;
	do {
		valueT += element.offsetTop || 0;
		valueL += element.offsetLeft || 0;
		element = element.offsetParent;
	} while (element);
		return {left:valueL, top:valueT};
}

function dialogDisp(id, no, name){
	var c = 'dialog'+id+'_'+no;
	if( name =='name1' ){
		c = c+'a';
	}
	else if( name=='name2'){
		c= c+'b';
	}
	var dialog = document.getElementsByClassName("dialog");
	for(var i=0; i<dialog.length; i++){
		var e = dialog[i];
		if(e.id == c || e.id == 'dialog000') continue;
		if( $(e.id).style.display != 'none' ){
			$(e.id).style.display = 'none';
		}
	}

	if(document.all){ // for ie
		var pos=cumulativeOffset( c );
		c = 'dialog000';
		if( $(c).style.display == 'none'){
			$(c).style.display = 'block';
			$(c).style.left = pos.left;
			var y = pos.top + 16 //
			$(c).style.top = y;
			$(c).style.zIndex = 999;
		}
		else{
			$(c).style.display='none';
			return false;
		}
	}
	else{
		if( $(c).style.display == 'none'){
			$(c).style.display= 'block';
			$(c).style.zIndex= 999;
		}
		else{
			$(c).style.display= 'none';
			return false;
		}
	}
	if(name == 'friend'){
		getDataInsertHTML('checkfriend', c, id, no);
	}
	else if(name == 'book'){
		getDataInsertHTML('bookin', c, id, no);
	}
	else{
		getDataInsertHTML('dialog', c, id, no, name);
	}
	return;
}

var dragdrop;
function setDraggableItem(id){
	var handle = id + '_handle';
	dragdrop = new Draggable(id, {
			handle: handle,
			revert:false,
			snap:function(x,y){ draggable_x =x; draggable_y = y; return [x,y];}
		});
	// global var draggable_x draggable_y に 座標をセット
}


function draggableDisp(event, id, cssid, p, m, n, o){
	if(document.all){
		var ifr = document.createElement('IFRAME');
		ifr.style.cssText="display:none";
		document.body.appendChild(ifr);
		var iframe = frames[frames.length -1].document;
		iframe.open();
		iframe.close();
		iframe.location.hash="#books";
	}
	else{
		window.location.hash="#books";
	}

	var mouseX = Event.pointerX(event);
	var mouseY = Event.pointerY(event);
	var conW   = 500; // about main container width
	var x = mouseX;
	var y = mouseY;
	if(x + conW > 640){
		x = x - ( (x + conW) -640);
	}
	y = mouseY - 30;
	if( y < 0 ){
		y=30;
	}
	if( draggable_st ){
		$(draggable_id).style.display = 'none';
	}
	$(draggable_id).style.display = 'block';

	// 一度開いてある draggable に innerText する場合は、位置を動かさない
	if( m == 'draggable' ){
		$(draggable_id).style.left = draggable_x + 'px';
		$(draggable_id).style.top  = draggable_y + 'px';
	}
	else{
		$(draggable_id).style.left = x + 'px';
		$(draggable_id).style.top = y + 'px';
	}
	// global val
	draggable_st = true;
	draggable_x  = x;
	draggable_y  = mouseY;

	getDataInsertHTML( id, cssid, p, m, n, o );
}

function aboutThisPage(id, cssid, p){
	if( $(cssid).style.display == 'none' ){ $(cssid).style.display = 'block'; }
	else{ $(cssid).style.display = 'none'; return false;}
	getDataInsertHTML( id, cssid, p );
}

function dispToggle(id, cn){
	if( cn ){
		var c = document.getElementsByClassName(cn);
		for(var i=0; i<c.length; i++){
			var e = c[i];
			if(e.id == id ) continue;
			$(e.id).style.display='none';
		}
	}
	if( $(id).style.display != 'none' ){
		$(id).style.display = 'none';
	}
	else{
		$(id).style.display = 'block';
	}
}
function dispChange(a,b,c,flag){
	if($(a).style.display != 'none'){
		$(a).style.display = 'none';
		if(c !=''){
			$(a).parentNode.style.display = 'none';
		}
	}
	if($(b).style.display != 'block'){
		$(b).style.display = 'block';
		if(c !=''){
			$(b).parentNode.style.display = 'block';
		}
	}
	if( c=='bookshelf_ym0' || c=='bookshelf_ym1'){
		if( b=='bookshelf_year_list'){
			cookie.clearCookie(c);
		}else{
			cookie.setCookie(c, b);	
		}
	}
}
function netabareToggle(id){
	var m = 'memo' + id;
	var n = 'memo_netabare' + id;
	$(m).style.display='block';
	$(n).style.display='none';
}
function clearTabs(id, p){
	var c ={0:['bookshelf_tab','bookshelf_ym0'], 1:['bookshelf_ym1']};
	for(i=0; i<c[p].length; i++){
		cookie.clearCookie(c[p][i]);
	}
	location.replace("bookshelf.pl");
	//location.reload();
}
function allCheckbox(fname, stat){
	var fname = document.forms[fname];
	for(var i=0; i<fname.elements.length; i++){
		fname.elements[i].checked=stat;
	}
}


// ajax request
function bookMeToo( p, m, n ){

	uri = 'js_bookin.pl';

	var param = '?p=' + p;
	if( p && m ){
		param = param + '&m=' + m;
	}
	if( p && n ){
		param = param + '&n=' + n;
	}
	var msec = (new Date()).getTime();
	param = param + '&cache='+msec;
	$('dialog'+p+'_'+m).innerHTML = '<p class="now_loading">Now Loading...</p>';
	new Ajax.Request(
		uri,
		{
			method: 'get',
			parameters: param,
			onComplete : function(req){ dispBookin(req, p+'_'+m); },
			onFailure  : function(req){ dispError('dialog'+p+'_'+m); }
		}
	);
}
function dispBookin(req,id){
	var con;
	if(document.all){ // for ie
		con = 'dialog000';
	}
	else{
		con = 'dialog'+id;
	}
	var a = 'a'+id;
	var s = 's'+id;
	var t = 't'+id;
	$(a).className="icon_area icon_nikukyu2 readed";
	$(t).className="title samebook";
	$(con).innerHTML = req.responseText;
	$(s).innerHTML='';
	return;
}

// ajax request
function deleteFriend( p, m, n ){

	uri = 'js_checkfriend.pl';

	var param = '?p=' + p;
	if( p && m ){
		param = param + '&m=' + m;
	}
	if( p && n ){
		param = param + '&n=' + n;
	}
	var msec = (new Date()).getTime();
	param = param + '&cache='+msec;
	$('dialog'+p+'_'+m).innerHTML = '<p class="now_loading">Now Loading...</p>';
	new Ajax.Request(
		uri,
		{
			method: 'get',
			parameters: param,
			onComplete : function(req){ dispDeleteFriend(req, p+'_'+m); },
			onFailure  : function(req){ dispError('dialog'+p+'_'+m); }
		}
	);
}
function dispDeleteFriend(req,id){
	var con;
	if(document.all){ // for ie
		con = 'dialog000';
	}
	else{
		con = 'dialog'+id;
	}
	var a = 'a'+id;
	var t = 't'+id;
	$(t).className="friend_info bg_nega_color";
	$(con).innerHTML = req.responseText;
	$(a).innerHTML = '';
	return;
}
