///////////////////////////////////////////////////////////////////////////////
//
//
//
//
//
//
//
//
//
//
///////////////////////////////////////////////////////////////////////////////

//クラス生成
var ca = new cajax();

//=======================================================================
//
//
//
//
//
//=======================================================================
function CALIB()
{
	
	if (document.layers) 				N4 = 1;
	else if (document.all) 				IE = 1;
	else if (document.getElementById) 	GK = 1;
	
	return this;
}

/********************************************************/
//ウィンドウオープン
/********************************************************/
CALIB.prototype.openwnd = function(div_name)
{
	objDiv = div_get_object(div_name);	
	objDiv.style.display = "block";
}

/********************************************************/
//ウィンドウクローズ
/********************************************************/
CALIB.prototype.closewnd = function(div_name)
{
	objDiv = div_get_object(div_name);	
	objDiv.style.display = "none";
}

/********************************************************/
//ウィンドウオープン、クローズ
/********************************************************/
CALIB.prototype.open_closewnd = function(div_name)
{
	objDiv = div_get_object(div_name);

	if(objDiv.style.display)
	{
		if(objDiv.style.display == "none")
			{objDiv.style.display = "block";}
		else
			{objDiv.style.display = "none";}
	}
	else
	{
		if(objDiv.style.visibility == "hidden")
			{objDiv.style.visibility = "visible";}
		else
			{objDiv.style.visibility = "hidden";}
	}
}

/********************************************************/
//ウインドウ消去
/********************************************************/
CALIB.prototype.erase = function(div_name)
{
	if(div_name.length > 0)
	{
		objDiv = div_get_object(div_name);
		objDiv.innerHTML = '';
	}
}

/********************************************************/
//ログイン
/********************************************************/
CALIB.prototype.login = function(username,password)
{
	var rtn="";
	var dat = new Object(); // Objectの生成 
	if(username != null)	{dat["email"] = username;}
	if(password != null)	{dat["passwd"] = password;}

	rtn = ca.call('login','',dat);

	if(rtn)	
	{
		window.location.href = "http://willmart.jp";
		/*header = div_get_object('page_body_header');
		header.innerHTML = rtn["header"];
		menu = div_get_object('page_body_menu');
		menu.innerHTML = rtn["menu"];*/
	}
	else	{alert('ＩＤまたはパスワードが違います。');}
	
}

/********************************************************/
//ログアウト
/********************************************************/
CALIB.prototype.logout = function()
{
	var strmsg;
	
	strmsg  = "ログアウトします。\n";
	strmsg += "よろしいですか？";
		
	myRtn = confirm(strmsg);
	if(myRtn)
	{
		rtn = ca.call('logout');

		if(rtn)	
		{
			window.location.href = "http://willmart.jp";
		
			/*header = div_get_object('page_body_header');
			header.innerHTML = rtn["header"];
			menu = div_get_object('page_body_menu');
			menu.innerHTML = rtn["menu"];*/
		}
	}
	
}

/********************************************************/
//アンロード
/********************************************************/
CALIB.prototype.unload = function()
{
	rtn = ca.call('unload');
}

/********************************************************/
//ピックアップ
/********************************************************/
CALIB.prototype.pickup = function()
{
	rtn = ca.call('pickup');


	p_photo = div_get_object('pickup_photo');
	p_photo.innerHTML = rtn["photo"];

	p_catch = div_get_object('pickup_catch');
	p_catch.innerHTML = rtn["catch"];

	p_display_name = div_get_object('pickup_display_name');
	p_display_name.innerHTML = rtn["display_name"];

	p_manager_msg = div_get_object('pickup_manager_msg');
	p_manager_msg.innerHTML = rtn["manager_msg"];

	p_store_past = div_get_object('store_past');
	p_store_past.innerHTML = rtn["past"];


}

/********************************************************/
//テキスト一致検査
/********************************************************/
CALIB.prototype.text_comp = function(div_name,str1,str2,rtn_str)
{
	var err=false;
	
	if(str1 != str2)
	{
		err = true;
	}

	
	if(div_name)
	{
		objDiv = div_get_object(div_name);
		
		if(err)
		{
			if(rtn_str)	{objDiv.innerHTML = rtn_str;}
			else		{objDiv.innerHTML = "一致しません。";}
		}
		else
		{
			objDiv.innerHTML = "";
		}
	}
	
	if(err)	return false;
	else	return true;
}



/********************************************************/
//呼び出し
/********************************************************/
CALIB.prototype.call = function(div_name,str_action,str_exec,options)
{
	if(div_name.length > 0)
	{
		objDiv = div_get_object(div_name);
		objDiv.innerHTML = ca.call(str_action,str_exec,options);
	}
	else
	{
		ca.call(str_action,str_exec,options);
	}
}

/********************************************************/
//保存、削除
/********************************************************/
CALIB.prototype.save = function(div_name,str_action,str_exec,f_name,check_options)
{
	var dat = new Object(); // Objectの生成 
	var content="";
	var tmp="";
	var tmpObj = new Object();
	var k=0;
	var rtn="";
	var errflag=false;

	//データセット
	for(i=0;i<f_name.length;i++)
	{
		if(f_name[i].name == "fckeditor")
		{
			content = FCKeditorAPI.GetInstance('fckeditor').GetXHTML();
			dat[f_name[i].name] = content;
		}
		else
		{
			if(f_name[i].type == "select-multiple")
			{
				k = 0;
				for (j=0; j<f_name[i].options.length; j++) 
				{
			    	if (f_name[i].options[j].selected) 
			    	{
						tmpObj[k] = f_name[i].options[j].value;
						k++;
					}
            	}

				dat[f_name[i].name] = tmpObj;
			}
			else if(f_name[i].type == "checkbox")
			{
				if(!dat[f_name[i].name])
				{
					dat[f_name[i].name] = "";
					k=0;
					tmpObj = new Object();
				}
				
				if(f_name[i].checked)
				{
					tmpObj[k] = f_name[i].value;
					dat[f_name[i].name] = tmpObj;
					k++;
				}
					
			}
			else
			{
				dat[f_name[i].name] = f_name[i].value;
			}
		}
	}	
	
	//================	
	//check value
	//================	
	//注意：PEARライブラリ HTML_AJAXのバージョンが 0.5.0以外だとca.checkが
	//はじめに実行された後、このforループから抜けてしまう。もしくは非同期な為
	//結果を待たずしてforループから抜けてしまう。
	//ca.checkの実行のみ同期する処理を入れるかしなければならない。
	//値を配列で渡す
	//function check($strAction,$strField="",$strValue="",$options="")
	rtn = ca.check(str_action,dat,'',check_options);
	if(rtn.length > 0)	{alert(rtn);　errflag=true;}


	if(!errflag)
	{
		if(confirm('実行します。よろしいですか？'))
		{
			if(div_name.length > 0)
			{
				objDiv = div_get_object(div_name);
				objDiv.innerHTML = ca.call(str_action,str_exec,dat);
			}
			else
			{
				ca.call(str_action,str_exec,dat);
			}
		}
	}
}

/********************************************************/
//値の確認　admin,
/********************************************************/
CALIB.prototype.check = function(div_name,str_action,str_field,str_value,options)
{
	var rtn = "";

	rtn = ca.check(str_action,str_field,str_value,options);
	if(div_name.length > 0)
	{
		objDiv = div_get_object(div_name);
		objDiv.innerHTML = rtn;
	}
	else
	{	
		if(rtn.length > 0)	alert(rtn);
	}

}

/********************************************************/
//フォームデータ取得
/********************************************************/
CALIB.prototype.get_form_data = function(f_name)
{
	var dat = new Object(); // Objectの生成 
	var tmpObj = new Object();
	var k=0;
	var i=0;
	
	//データセット
	for(i=0;i<f_name.length;i++)
	{
		if(f_name[i].name == "fckeditor")
		{
			content = FCKeditorAPI.GetInstance('fckeditor').GetXHTML();
			dat[f_name[i].name] = content;
		}
		else
		{
			if(f_name[i].type == "select-multiple")
			{
				k = 0;
				for (j=0; j<f_name[i].options.length; j++) 
				{
			    	if (f_name[i].options[j].selected) 
			    	{
						tmpObj[k] = f_name[i].options[j].value;
						k++;
					}
            	}

				dat[f_name[i].name] = tmpObj;
			}
			else if(f_name[i].type == "checkbox")
			{
				if(!dat[f_name[i].name])
				{
					dat[f_name[i].name] = "";
					k=0;
					tmpObj = new Object();
				}
				
				if(f_name[i].checked)
				{
					tmpObj[k] = f_name[i].value;
					dat[f_name[i].name] = tmpObj;
					k++;
				}
					
			}
			else
			{
				dat[f_name[i].name] = f_name[i].value;
			}
		}
	}	

	return dat;
}


/********************************************************/
//DIVの切り替え
/********************************************************/
CALIB.prototype.change_div = function(div_name,flag,width,height)
{
	objDiv = div_get_object(div_name);
	div_visible(objDiv,flag);

	if(flag == true)
	{
		if(width != "")		objDiv.style.width = width + 'px';
		if(height != "")	objDiv.style.height = height + 'px';
	}
	else
	{
		objDiv.style.width = '1px';
		objDiv.style.height = '1px';
	}


}

//=======================================================================
//DIV領域の大きさの初期化
//
//
//
//
//
//
//
//=======================================================================
function div_init(div)
{
	if(document.layers) return;
	
	if(typeof div.style.width!="undefined"&& typeof div.style.width=="string")
	{
		div.style.width =div.offsetWidth +'px';
		div.style.height=div.offsetHeight+'px';
	}
	else if(typeof div.style.pixelWidth!="undefined")
	{ 
		div.style.pixelWidth =div.offsetWidth;
		div.style.pixelHeight=div.offsetHeight;
	}
}

//=======================================================================
//DIVの高さの取得
//
//
//
//
//
//
//
//=======================================================================
function div_get_height(div)
{
	return document.layers?div.clip.height:(div.offsetHeight||div.style.pixelHeight||0);
}
//=======================================================================
//DIVの幅の取得
//
//
//
//
//
//
//
//=======================================================================
function div_get_width(div)
{
	return document.layers?div.clip.width:(div.offsetWidth || div.style.pixelWidth || 0);
}
//=======================================================================
//DIVのTOP位置の取得
//
//
//
//
//
//
//
//=======================================================================
function div_get_top(div)
{
	if(typeof window.crypto!="undefined" && typeof window.getComputedStyle!="undefined")
	{ 
		return parseInt(div.style.top);
	}
	else 
	{
		return document.layers?div.top:(div.offsetTop || div.style.top || div.style.pixelTop || 0);
	}

}
//=======================================================================
//DIVのLEFT位置の取得
//
//
//
//
//
//
//
//=======================================================================
function div_get_left(div)
{
	return document.layers?div.clip.left:(div.offsetLeft || div.style.pixelLeft || 0);
}


//=======================================================================
//DIVの取得
//
//
//
//
//
//
//
//=======================================================================
function div_get_object(div_name)
{
 
	if(document.getElementById) return document.getElementById(div_name); 
	if(document.all) return document.all(div_name); 
	
	if(document.layers)
	{ 
		var s='';
		for(var i=1; i<arguments.length; i++)
			s+='document.layers.'+arguments[i]+'.';
		
		return eval(s+'document.layers.'+div_name);
	}
	
	return null;
}

//=======================================================================
//DIVのレイヤー内での移動
//
//
//
//
//
//
//
//=======================================================================
function div_move_layer(div,left,top)
{
	if(document.layers)
	{ 
		div.moveBy(left,top); 
		return; 
	} 
	
	if(typeof window.crypto!="undefined" && typeof window.getComputedStyle!="undefined")
	{ 
		div.style.left=(parseInt(div.style.left)+Math.round(left))+'px';
		div.style.top =(parseInt(div.style.top) +Math.round(top) )+'px';
		return;
	}
	 
	if(typeof div.style.left!="undefined"&& typeof div.style.left=="string")
	{
		div.style.left=(div.offsetLeft+Math.round(left))+'px';
		div.style.top =(div.offsetTop +Math.round(top) )+'px';
		return; 
	}
	
	if(typeof div.style.pixelLeft!="undefined")
	{
		div.style.pixelLeft+=Math.round(left);
		div.style.pixelTop +=Math.round(top);
		return;
	}
}

//=======================================================================
//DIVの画面上での移動
//
//
//
//
//
//
//
//=======================================================================
function div_move_window(div,left,top)
{
	if(document.layers)
	{ 
		div.moveTo(left,top);
		return; 
	} 
	
	if(typeof div.style.left!="undefined"&& typeof div.style.left=="string")
	{ 
		div.style.left=left+'px';
		div.style.top =top +'px';
	}
	else if(typeof div.style.pixelLeft!="undefined")
	{ 
		div.style.pixelLeft=left;
		div.style.pixelTop =top;
	}

}

//=======================================================================
//DIV領域の表示、非表示
//
//
//
//
//
//
//
//=======================================================================
function div_visible(div,visible)
{
	(div.style || div).visibility = (visible)?((window.opera && !document.documentElement)?
									'visible':'inherit'):'hidden';
}

