﻿window.onload = function(){
	Event.observe('home','click',home);
	Event.observe('config1','click',config1);
	Event.observe('login','click',login);
	Event.observe('syokuin','click',syokuin);
	Event.observe('now','click',nowdate);
	Event.observe('config2','click',config2);
	Event.observe('save','click',savedata);
	Event.observe('hcopy','click',hcopy);
	Event.observe('previous','click',selectMonth);
	Event.observe('next','click',selectMonth);
	Event.observe('con','click',sel_kinmu);
	Event.observe('kpattern','change',ptnChenge);
	Event.observe('bumon','change',bmnChenge);
	xOffsetConst=242;yOffsetConst=40;xwidth=20;ywidth=20;
	var ua = navigator.userAgent;
	if (ua.indexOf("MSIE")>=0){yOffsetConst += 4;ywidth += 0;}
	selyear=$("selyear").value;selmonth=$("selmonth").value;days=$("days").value;menbers=$("menbers").value;maxrows=$("maxrows").value;
	km = new Array();
	kms= new Array;
	kinmu =new Array();
	for (i=0;i<24;i++){var bt="sel"+i;kinmu[i]=$(bt).value;
	var kk=kinmu[i].split("：");
	km[i]=kk[0];kms[i]=kk[1];}
	bsel = km[0];kmNo=0;ptnSelect=false;kptnNo=$("kpattern").value;btncolor=$("btncolor").value.split(",");btnbcolor=$("btnbcolor").value.split(",");
	selcolor = btncolor[0];selbcolor = btnbcolor[0];selFixed=false;houjin=$("houjinCode").value;
	var bmn=$("bumon").value;
	bumon=("0"+bmn).substr(("0"+bmn).length-2,2);
	for (bi=0;bi<22;bi++) {
		var selb="sel"+bi;
		$(selb).style.backgroundColor = bi<6 ? btnbcolor[bi] : btnbcolor[6];
		$(selb).style.color = bi<6 ? btncolor[bi] : btncolor[6];
	}

	vevstr =new Array();hevstr =new Array();
	hchk=$("hchk").value;
	hchk=hchk.split(",");
	vchk=$("vchk").value;
	vchk=vchk.split(",");
	//???
		randb = ") ? 'red' : 'black'";
	//???
	condition();
	vsumFlg=$("real").value;
		cddata = new Array();
		fsm = new Array;
			for (i=0;i<menbers;i++) {fsm[i]="";}
	$("save").disabled = true;
	cMode="login";
		eventFlag=false;
		var objAjax = new Ajax.Updater('contents','login.php',
			{
				method		:'post',
				asynchronous:true,
				onComplete	:function(){
					Event.observe('loginForm','click',loginClick);
					Event.observe('nHoujinName','keypress',login2);
					$("reqReg").disabled = true;
					},
				onFailure	:function(){
					guide('サーバーとの通信に失敗しました','red');
					}
			});
		$("prt").disabled = true;
		$("hcopy").disabled = true;
}

function hcopy(){
cMode="config2";
window.open('hcopy.php?houjin='+houjin+'&bumon='+bumon+'&selyear='+selyear+'&selmonth='+selmonth, 'hcopyWindow', 'width=1024, height=768, menubar=yes, toolbar=no, scrollbars=yes');
}

function config2(){
	cMode="config2";
	$("save").disabled = true;
	$("hcopy").disabled = true;	
	guide('','whitesmoke');

	if (eventFlag){
		Event.stopObserving('contents','click',button_click);
		Event.stopObserving('contents', "mousemove", displayXY);
		eventFlag=false;
	}
	var objAjax = new Ajax.Updater('contents','config2.php',
	{
		method:'post',
		asynchronous:true,
		parameters	:"houjin="+houjin+"&cmd="+cMode,
		onComplete:function(){
		Event.observe('configForm2','click',config2Click);
		},
		onFailure:function(){
		guide('サーバーとの通信に失敗しました','red');
		}
	});
}

function config2Click(event){
	var eid = Event.element(event).id;
	if(eid=="hvsum"){
		var hc=new Array();var hv=new Array();var vc=new Array();var vv=new Array();
		for (i=0;i<6;i++){
			hcsel="hc"+i;
			hvsel="hv"+i;
			hc[i]=$(hcsel).value;
			hv[i]=$(hvsel).value;
		}
		for (i=0;i<8;i++){vcsel="vc"+i;vvsel="vv"+i;vc[i]=$(vcsel).value;vv[i]=$(vvsel).value;}

		vsumFlg = ($("vsumchk").checked);	// 縦計処理フラグ
		vsumchk = ($("vsumchk").checked) ? 'yes' : 'no' ;	//「true/false」は通信で化けるので文字型に変更
//		guide("　　　　　　　　　　　"+vsumFlg,"red");
		new Ajax.Request('config2.php',
		{
			method:'post',
			asynchronous:true,
			parameters	:"houjin="+houjin+"&hc="+hc+"&hv="+hv+"&vc="+vc+"&vv="+vv+"&real="+vsumchk+"&cmd="+eid,
			onSuccess	:function(objHTTP){
				guide("更新しました","blue");
				var msg = objHTTP.responseText;
				msg = msg.split(",");

				if (msg[0] == "success"){
					hc=msg[2].split(":");
					hchk=hc.concat(hv);
					vc=msg[3].split(":");
					vchk=vc.concat(vv);
					condition();

				}else{
					guide("更新に失敗："+msg[1],"red");
				}
			},
			onFailure:function(objHTTP){
			guide('サーバーとの通信に失敗しました','red');
			}
		});
	}
}
function config1(){
	cMode="config1";
	$("save").disabled = true;
	$("hcopy").disabled = true;
	guide('','whitesmoke');
	if (eventFlag){
		Event.stopObserving('contents','click',button_click);
		Event.stopObserving('contents', "mousemove", displayXY);
		eventFlag=false;
	}
	sendKmNo = (kmNo>=22) ? 0:kmNo;	
	var objAjax = new Ajax.Updater('contents','config1.php',
	{
		method		:'post',
		asynchronous:true,
		parameters	:"houjin="+houjin+"&cmd="+cMode+"&kmNo="+sendKmNo+"&kptnNo="+kptnNo,
		onComplete	:function(){
			Event.observe('configForm1','click',configClick1);
		},
		onFailure	:function(){
			guide('サーバーとの通信に失敗しました','red');
		}
	});
}
function configClick1(event){
	var eid = Event.element(event).id;
	if(eid=="iniUpdate1"){
		updateBmn0=$("updateBmn0").value;
		updateBmn1=$("updateBmn1").value;
		updateBmn2=$("updateBmn2").value;	
		updateBmn3=$("updateBmn3").value;	
		kmKigou=$("kmKigou").value;
		kmSyubetu=$("kmSyubetu").value;
		var usel;
		var updateKm = new Array();
		for (i=0;i<12;i++) {
			usel="km"+i;
			updateKm[i]=$(usel).value;
		}

		new Ajax.Request('config1.php',
		{
			method		:'post',
			asynchronous:true,
			parameters	:"houjin="+houjin+"&updateBmn0="+updateBmn0+"&updateBmn1="+updateBmn1+"&updateBmn2="+updateBmn2+"&updateBmn3="+updateBmn3+"&kmNo="+kmNo+"&kmKigou="+kmKigou+"&kmSyubetu="+kmSyubetu+"&kptnNo="+kptnNo+"&updateKm="+updateKm+"&cmd="+eid,
			onSuccess	:function(objHTTP){
				res = objHTTP.responseText;
				result=res.split(",");
				$("m01").innerHTML = "";
				$("m02").innerHTML = "";
				if (result[0]=="success"){
					$("opBumon0").innerHTML = updateBmn0;				
					$("opBumon1").innerHTML = updateBmn1;
					$("opBumon2").innerHTML = updateBmn2;
					$("opBumon3").innerHTML = updateBmn3;	
					if (result[2]!="nothing"){
						sel="sel"+kmNo;	
						var sep=(kmKigou=="" || kmSyubetu=="") ? "" : "：";
						$(sel).value = kmKigou+sep+kmSyubetu;
						kinmu[kmNo]= kmKigou+sep+kmSyubetu;
						km[kmNo]=kmKigou;kms[kmNo]=kmSyubetu;
					}
					if (result[3]!="nothing"){
						sel="opKptn"+kptnNo;
						$(sel).innerHTML = str_replace(result[3],":",",");
					}
					guide('更新しました','blue');
				}else{
					guide('更新に失敗しました'+result[0],'red');				
				}
			},
			onFailure	:function(objHTTP){
				guide('サーバーとの通信に失敗しました','red');
			}
		});  
	}
}

function login(){
cMode="login";
$("save").disabled = true;
$("hcopy").disabled = true;
guide('','whitesmoke');
if (eventFlag){
Event.stopObserving('contents','click',button_click);
Event.stopObserving('contents', "mousemove", displayXY);
eventFlag=false;
}
var objAjax = new Ajax.Updater('contents','login.php',
{
method		:'post',
asynchronous:true,
onComplete	:function(){
Event.observe('loginForm','click',loginClick);
Event.observe('nHoujinName','keypress',login2);
$("reqReg").disabled = true;
},
onFailure	:function(){
guide('サーバーとの通信に失敗しました','red');
}
});
}
function login2(){
$("reqReg").disabled = false;
}
function loginClick(event){
if (eventFlag){
Event.stopObserving('contents','click',button_click);
Event.stopObserving('contents', "mousemove", displayXY);
eventFlag=false;
}
var eid = Event.element(event).id;
var reqid=$('lid').value;
var reqpw=$('lpw').value;
var nName=$('nRriyousyaName').value;
var nHoujin=$('nHoujinName').value;
var nKinmu=$('nkinmu').value;
var nSikaku=$('nSikaku').value;
if ((nName != "") && (nHoujin != "")){$("reqReg").disabled = false;}
if (eid=="reqLogin"){
reqid=trim(toHankakuNum(reqid));
reqpw=trim(toHankakuNum(reqpw));		
if (reqid.length < 6){
alert("ＩＤを６桁以上で入力してください");
return false;  
}
if (reqpw.length < 6){
alert("パスワードを６桁以上で入力してください");
return false;  
}
new Ajax.Request('login.php',
{
method		:'post',
asynchronous:true,
parameters	:"reqid="+reqid+"&reqpw="+reqpw+"&cmd="+eid,　	
onSuccess	:function(objHTTP){
var res = objHTTP.responseText;result=res.split(",");
kinmu=str_replace(result[4],":",",").split(",");
resbumon=str_replace(result[5],":",",").split(",");
reskptn0=str_replace(result[6],":",",");
reskptn1=str_replace(result[7],":",",");
reskptn2=str_replace(result[8],":",",");
reskptn3=str_replace(result[9],":",",");
reskptn4=str_replace(result[10],":",",");
reskptn5=str_replace(result[11],":",",");
$("msg03").innerHTML = "";
$("msg04").innerHTML = "";
$("msg05").innerHTML = "";
if (result[0]=="success"){
$("msg01").innerHTML = "ようこそ「Ｗｅｂ勤務管理」へ";
$("msg02").innerHTML = result[1];
guide("認証しました","green");
$("houjinName").innerHTML = result[3];
houjin=result[2];
$("loginName").innerHTML="　"+result[12]+"　様";	
$("opBumon0").innerHTML = resbumon[0];				
$("opBumon1").innerHTML = resbumon[1];
$("opBumon2").innerHTML = resbumon[2];
$("opBumon3").innerHTML = resbumon[3];
$("opKptn0").innerHTML = reskptn0;
$("opKptn1").innerHTML = reskptn1;
$("opKptn2").innerHTML = reskptn2;
$("opKptn3").innerHTML = reskptn3;
$("opKptn4").innerHTML = reskptn4;
$("opKptn5").innerHTML = reskptn5;
for (i=0;i<24;i++) {
var bt="sel"+i;
$(bt).value = kinmu[i];
var kk=kinmu[i].split("：");km[i]=kk[0];kms[i]=kk[1];
}
}
$("reqLogin").disabled = false;
$("reqReg").disabled = false;
},
onFailure	:function(objHTTP){
guide('サーバーとの通信に失敗しました','red');
}
});  
}else if (eid=="reqReg"){
if ((trim(reqid).length < 6) || (trim(reqid)=="demo")){
alert("ＩＤを６桁未満、または、ＩＤがデモ用になっています。");
return false;  
}
if (trim(reqpw).length < 6){
alert("パスワードを６桁以上で入力してください");
return false;  
}
if (nName == "" || nHoujin == "" || nSikaku == ""){
alert("氏名、資格または法人名が入力されていません");
return false;  
}
new Ajax.Request('login.php',
{
method		:'post',
asynchronous:true,
parameters	:"nHoujin="+nHoujin+"&nName="+nName+"&nSikaku="+nSikaku+"&nKinmu="+nKinmu+"&reqid="+reqid+"&reqpw="+reqpw+"&cmd="+eid,　	
onSuccess	:function(objHTTP){
var res = objHTTP.responseText;result=res.split(",");
if (result[0]=="success"){
$("msg01").innerHTML = "ようこそ「Ｗｅｂ勤務管理」へ(新規登録)";
$("msg02").innerHTML = result[1];
$("msg03").innerHTML = "";
$("msg04").innerHTML = "";
$("msg05").innerHTML = "";								
guide('新規に登録が完了しました。','green');
}else{
}
},
onFailure	:function(objHTTP){
guide('サーバーとの通信に失敗しました','red');
}
});  
}
$("reqLogin").disabled = false;
}
function nowdate(){
var myD = new Date();	
var myDate  = myD.getDate();
var sm = myD.getMonth()+1;
var sy = myD.getFullYear();
selmonth=(" "+sm).substr((" "+sm).length-2,2);
selyear=""+sy;
$("syoriTuki").innerHTML = selyear+"年"+selmonth+"月";
getdata();
}
function syokuin(){
cMode="syokuin";
$("save").disabled = true;
$("hcopy").disabled = true;
guide('','whitesmoke');
var bmn=$("bumon").value;	//bumon_No : 0-3
bumon=("0"+bmn).substr(("0"+bmn).length-2,2);	//00-03 for DBaccees
cmd="tload";
if (eventFlag){
Event.stopObserving('contents','click',button_click);
Event.stopObserving('contents', "mousemove", displayXY);
eventFlag=false;
}
var objAjax = new Ajax.Updater('contents','syokuintbl.php',
{
method		:'post',
asynchronous:true,
parameters	:"houjin="+houjin+"&bumon="+bumon+"&cmd="+cmd,
onComplete	:function(){
changed = false;
Event.observe('syokuinForm','click',syokuin_click);
guide("「"+bumon+"」の情報を表示ました",'blue');
$("prev").disabled=true;		
$("fowd").disabled=true;
},
onFailure	:function(){
guide('サーバーとの通信に失敗しました','red');
}
});
}
function syokuin_click(event){
var eid = Event.element(event).id;
	if (eid=="rBtn" || eid=="rBtnDel"){
	guide('','whitesmoke');
	cmd=eid;

	if (eid=="rBtn"){
		delflg = false;
		rCode=$('rCode').value;rName=$('rName').value;rSikaku=$('rSikaku').value;
		rReader=$('rReader').value;bumon=$('rBumon').value;
		rCode=toHankakuNum(rCode);

		if (trim(rCode).length != 6){
			alert("職員コードを６桁で入力してください");
			return false;  
		}

		if (rName == "" || rSikaku == ""){
			alert("氏名または資格が入力されていません");
			return false;  
		}

	}else if (eid=="rBtnDel"){
		delflg = true;
		if (!confirm("ほんとうに削除してよろしいですか？")){
			return false;
		}
	} 
	new Ajax.Request('syokuintbl.php',
	{
		method		:'post',
		asynchronous:true,
		parameters	:"houjin="+houjin+"&bumon="+bumon+"&syokuinCd="+rCode+"&rName="+rName+"&rSikaku="+rSikaku+"&rReader="+rReader+"&delflg="+delflg+"&cmd="+eid,　	
		onSuccess	:function(objHTTP){
		guide("「"+rName+"」さんの情報を更新・登録ました",'blue');
		},
		onFailure	:function(objHTTP){
		guide('サーバーとの通信に失敗しました','red');
		}
	});  
}else if (eid.substr(0,3)=="sno") {	
syokuinCd=$(eid).value;
var resmsg = new Array();
var cmd="sel";
new Ajax.Request('syokuintbl.php',
{
method		:'post',
asynchronous:true,
parameters	:"houjin="+houjin+"&bumon="+bumon+"&syokuinCd="+syokuinCd+"&cmd="+cmd,　	
onSuccess	:function(objHTTP){
res = objHTTP.responseText;resmsg = res.split(",");
$('rCode').value = resmsg[0];
$('rName').value = resmsg[1];
$('rSikaku').value = resmsg[2];
$('rReader').value = resmsg[3];
$('rBumon').value = resmsg[4];
guide("「"+resmsg[1]+"」さんを選択しました",'blue');
},
onFailure	:function(objHTTP){
guide('サーバーとの通信に失敗しました','red');
}
});
}else if (eid=="rAll" || eid=="prev" || eid=="fowd"){
allrows=$('allrows').value;offset=$('offset').value;limit=$('limit').value;	
if (eid=="prev"){
offset=((offset-limit)>0) ? offset=offset-limit:0;
}else if (eid=="fowd"){			
if((allrows-offset)>limit){
offset=offset+limit;
}	
}
var objAjax = new Ajax.Updater('contents','syokuintbl.php',
{
method		:'post',
asynchronous:true,
parameters	:"houjin="+houjin+"&offset="+offset+"&cmd="+eid,
onComplete	:function(){
changed = false;
Event.observe('syokuinForm','click',syokuin_click);
guide("全職員を表示しました"+eid,'blue');
allrows=$('allrows').value;offset=$('offset').value;limit=$('limit').value;	
$("prev").disabled=((offset-limit)>=0) ? false : true ;		
$("fowd").disabled=((allrows-offset)>limit) ? false : true ;	
},
onFailure	:function(){
guide('サーバーとの通信に失敗しました','red');
}
});	
}
}
function getdata(){
cMode="job";
Event.stopObserving('contents', "mousemove", displayXY);
guide('','whitesmoke');
$("previous").disabled = true;
$("next").disabled = true;
$("now").disabled = true;
$("save").disabled = true;
var objAjax = new Ajax.Updater('contents','array_load.php',
{
method		:'post',
asynchronous:true,
parameters	:"selyear="+selyear+"&selmonth="+selmonth+"&houjin="+houjin+"&bumon="+bumon,
onComplete	:function(){
changed = false;
$("previous").disabled = false;
$("next").disabled = false;
$("now").disabled = false;
$("save").disabled = false;
$("hcopy").disabled = false;
days=$("newdays").value;	
menbers=$("newmenbers").value;
adXY = Position.cumulativeOffset($("tableXY"));
xOffset=adXY[0]+xOffsetConst;
yOffset=adXY[1]+yOffsetConst;
Event.observe('contents','click',button_click);
Event.observe('contents', "mousemove", displayXY);
var wk=$("fsm").value;fsm=wk.split(",");
for (i=0;i<menbers;i++){
cell="cd"+i;
cddata[i] = $(cell).innerHTML;
}
eventFlag=true;
},
onFailure	:function(){
guide('サーバーとの通信に失敗しました','red');
			}
	});
}
function savedata(){
	$("save").disabled = true;
var pdata = [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]];
var vdata = [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]];
var cell; 
var m,j,m2,j2,cellval,getBorderColor;
for (m=0;m<menbers;m++) {
m2='0'+m;m2=m2.substr(m2.length-2,2);
if (cddata[m]!=""){	
for (j=0;j<5;j++) {
j2='0'+j;j2=j2.substr(j2.length-2,2);
cell = "p"+m2+j2;
cellval=$(cell).innerHTML; 
cellval=(cellval=="")?"　":cellval;
pdata[m][j] = cellval;
}
fsm[m]="fixedcell";	
for (j=0;j<days;j++) {
j2='0'+j;j2=j2.substr(j2.length-2,2);
cell = "v"+m2+j2;
cellval=$(cell).innerHTML; 
cellval=(cellval=="")?"　":cellval;
vdata[m][j] = cellval; 
getBackgroundColor = Element.getStyle($(cell),"background-color");
fsm[m]+=(getBackgroundColor=="lightsalmon" || getBackgroundColor=="rgb(255, 160, 122)")? ":"+j:"";
}
fsm[m]=fsm[m]+":end";	
}
}
new Ajax.Request('array_save.php',
{
method		:'post',
asynchronous:true,
parameters	:"selyear="+selyear+"&selmonth="+selmonth+"&houjin="+houjin+"&bumon="+bumon+"&cddata="+cddata+"&pdata="+pdata+"&vdata="+vdata+"&fsm="+fsm+"&days="+days,　	
onSuccess	:function(objHTTP){
$('m01').innerHTML = objHTTP.responseText;
$("save").disabled = false;
},
onFailure	:function(objHTTP){
guide('サーバーとの通信に失敗しました','red');
}
}
);   
}
function selectMonth(event){
var eid = Event.element(event).id;
var sm=eval(selmonth);
var sy=eval(selyear);
if (eid=="previous"){
if (sm==1){sm=12;sy=sy-1}else{sm=sm-1}
}else if (eid=="next"){
if (sm==12){sy=sy+1;sm=1}else{sm=sm+1}
}else{
return;
}
selmonth=(" "+sm).substr((" "+sm).length-2,2);
selyear=""+sy;
$("syoriTuki").innerHTML = selyear+"年"+selmonth+"月";
getdata();
}
function sel_kinmu(event){
var eid,kptnSel,ss,sx,selb;
eid = Event.element(event).id;
if (eid=="sel23"){	
ptnSelect=true;	
kptnNo=$("kpattern").value;
kptnSel="opKptn"+kptnNo;
kptn=$(kptnSel).innerHTML;kptn=kptn.split(",");	
selFixed=false;	
}else if (eid=="sel22"){
selFixed=true;		
ptnSelect=false;
}else{
selFixed=false;	
ptnSelect=false;
}
ss = eid.substr(eid.length-2,2);
sx = (ss.substr(0,1)=="l") ? "0"+ss.substr(1,1) : ss;
kmNo = eval(sx); 	
bsel = ($(eid).value!="")?km[kmNo]:"　";
if (kmNo < "06"){
selcolor=btncolor[eval(kmNo)];
selbcolor=btnbcolor[eval(kmNo)];
}else{
selcolor = btncolor[6];	
selbcolor = btnbcolor[6];
}
if ($(eid).value != ""){
for (bi=0;bi<22;bi++) {
selb="sel"+bi;
$(selb).style.backgroundColor = bi<6 ? btnbcolor[bi] : btnbcolor[6];
$(selb).style.color = bi<6 ? btncolor[bi] : btncolor[6];
}
$("sel22").style.backgroundColor="#D4D0C8";
$("sel23").style.backgroundColor="#D4D0C8";
$(eid).style.backgroundColor = "palegreen";
}
if (cMode=="config1" && kmNo<22){	
$("kmKigou").value = (km[kmNo]==undefined)?"":km[kmNo];
$("kmSyubetu").value = (kms[kmNo]==undefined)?"":kms[kmNo];
guide("ボタン["+kmNo+"]を選択","green");
}
}
function ptnChenge(){
kptnNo=$("kpattern").value;
var kptnSel="opKptn"+kptnNo;
kptn=$(kptnSel).innerHTML;kptn=kptn.split(",");	
if (cMode=="config1"){
for (p=0;p<12;p++) {
var tsel="km"+p;$(tsel).value="";
}
for (p=0;p<kptn.length;p++) {
var tsel="km"+p;$(tsel).value=kptn[p];
}
}
}
function bmnChenge(){
var bmn=$("bumon").value;
bumon="0"+bmn.substr(("0"+bmn).length-2,2);
if	(eventFlag){	
getdata();	
}else if (cMode=="syokuin"){
syokuin();
}
}
function displayXY(event){
Event.stopObserving('contents',"mousemove", displayXY);
var i,pm;
var mouseX = Event.pointerX(event);
var mouseY = Event.pointerY(event);
if ($("zahyo").checked){
var posX = mouseX-xOffset;
var posDay = Math.floor(posX/xwidth);
if (posDay >= 0 && posDay < days){
posDay = "day"+posDay;
for (i=0;i<days;i++) {
var pday = "day"+i; 
$(pday).style.backgroundColor = "white";
}
$(posDay).style.backgroundColor = "lightgreen";
}
var posY = mouseY-yOffset;
var posMenber= Math.floor(posY/ywidth);
if (posMenber >= 0 && posMenber < menbers){
posMenber= "cd"+posMenber;
for (i=0;i<menbers;i++) {
pm = "cd"+i; 
$(pm).style.backgroundColor = "honeydew";
}
$(posMenber).style.backgroundColor = "lightgreen";
}
}
Event.observe('contents', "mousemove", displayXY);
}
function button_click(fmEvent){
Event.stopObserving('contents', "mousemove", displayXY);
Event.stopObserving('contents','click',button_click);
var eid = Event.element(fmEvent).id;
area=eid.substr(0,1);
xx=eid.substr(3,2);px=parseInt(xx,10);
yy=eid.substr(1,2);py=parseInt(yy,10);
if (eid.length==0){	
px=Math.floor((Event.pointerX(fmEvent)-xOffset)/xwidth);xx="0"+px;xx=xx.substr(xx.length-2,2);
py=Math.floor((Event.pointerY(fmEvent)-yOffset)/ywidth);yy="0"+py;yy=yy.substr(yy.length-2,2);
area="v";eid=area+yy+xx;
}
if ((eid >="chk0")&&(eid<="chk7")){
switch(eid){
case "chk0":holiday();break;
case "chk1":guide("op1:このボタンはオプションです","blue");break;
case "chk2":guide("op2:このボタンはオプションです","blue");break;
case "chk3":guide("op3:このボタンはオプションです","blue");break;
case "chk4":guide("op4:このボタンはオプションです","blue");break;
case "chk5":guide("op5:このボタンはオプションです","blue");break;
case "chk6":calVsum();break;
case "chk7":clrJob();break;
}
Event.observe('contents', "mousemove", displayXY);
Event.observe('contents','click',button_click);
return;
}else if (area=="v" && (px >= 0 && px < days) && (py >= 0 && py < menbers)){
preBackgroundColor = Element.getStyle($(eid),"background-color");
$(eid).style.backgroundColor = "tomato";
timerActivateCount=0;
tid=setTimeout('sellwrite()',5);
}
}
function sellwrite(){
clearTimeout(tid);
if (timerActivateCount!=0){return;} 
timerActivateCount++;
var pos,msg,syo,startPos,block,getcolor,getbcolor;
if (!ptnSelect){
timeStart();
pos="v"+yy+xx;
if (selFixed==true){
getbcolor=btnbcolor[6];getcolor=btncolor[6];
switch($(pos).innerHTML){
case km[0]:getbcolor=btnbcolor[0];getcolor=btncolor[0];break;
case km[1]:getbcolor=btnbcolor[1];getcolor=btncolor[1];break;
case km[2]:getbcolor=btnbcolor[2];getcolor=btncolor[2];break;
case km[3]:getbcolor=btnbcolor[3];getcolor=btncolor[3];break;
case km[4]:getbcolor=btnbcolor[4];getcolor=btncolor[4];break;
case km[5]:getbcolor=btnbcolor[5];getcolor=btncolor[5];break;
case "　":getbcolor="whitesmoke";getcolor="whitesmoke";break;
}
if (preBackgroundColor=="lightsalmon" || preBackgroundColor=="rgb(255, 160, 122)"){
Element.setStyle($(pos), {color:getcolor,backgroundColor:getbcolor});
}else{
Element.setStyle($(pos), {color:getcolor,backgroundColor:"lightsalmon"});
}
}else{
$(pos).style.backgroundColor = selbcolor;
$(pos).style.color = selcolor;
$(pos).innerHTML = bsel;
hsumUpdate();
vsumUpdate();
}
msg="Single Sell : "+timeStop();guide(msg,"red");
}else if(!$("repeat").checked){
timeStart();
repeatSel(0);
hsumUpdate();
msg="Single Pattern : "+timeStop();guide(msg,"red");
}else{
timeStart();
syo=px%kptn.length;
px=0;xx="00";			
if (syo==0){
startPos=0;
block=Math.ceil((days-kptn.length)/kptn.length);
}else{
startPos=kptn.length-syo;
block=Math.ceil((days-syo)/kptn.length);
}
repeatSel(startPos);
for (b=0;b<block;b++){repeatSel(0);}			
hsumUpdate();
msg="Pattern Repeat : "+timeStop();guide(msg,"red");
}
Event.observe('contents', "mousemove", displayXY);
Event.observe('contents','click',button_click);
}
function repeatSel(spos){
var p,pos,getBackgroundColor;
for (p=spos;p<kptn.length;p++){
selcolor=btncolor[6];selbcolor=btnbcolor[6];
bsel = kptn[p];
pos="v"+yy+xx;
getBackgroundColor = Element.getStyle($(pos),"background-color");
if (!(getBackgroundColor=="lightsalmon" || getBackgroundColor=="rgb(255, 160, 122)")){
if (getBackgroundColor=="tomato" && (preBackgroundColor=="lightsalmon" || preBackgroundColor=="rgb(255, 160, 122)")){
$(pos).style.backgroundColor =preBackgroundColor;
}else{
$(pos).style.color=btncolor[6];$(pos).style.backgroundColor=btnbcolor[6];
switch(bsel){
case km[0]:$(pos).style.color=btncolor[0];$(pos).style.backgroundColor=btnbcolor[0];break;
case km[1]:$(pos).style.color=btncolor[1];$(pos).style.backgroundColor=btnbcolor[1];break;
case km[2]:$(pos).style.color=btncolor[2];$(pos).style.backgroundColor=btnbcolor[2];break;
case km[3]:$(pos).style.color=btncolor[3];$(pos).style.backgroundColor=btnbcolor[3];break;
case km[4]:$(pos).style.color=btncolor[4];$(pos).style.backgroundColor=btnbcolor[4];break;
case km[5]:$(pos).style.color=btncolor[5];$(pos).style.backgroundColor=btnbcolor[5];break;
}
$(pos).innerHTML = bsel;
}
}
if (vsumFlg==true){vsumUpdate();}
px=px+1;
xx="0"+px;
xx=xx.substr(xx.length-2,2);
if (px>=days){
return;
}
}
}
function vsumUpdate(){
var i,i2,cv,sname,npos,cr;
var vsum = new Array(0,0,0,0,0,0,0,0);
for (i=0;i<menbers;i++){
i2='0'+i;i2=i2.substr(i2.length-2,2);
cv="v"+i2+xx;
npos="cd"+i;sname=$(npos).innerHTML;cr=sname.split(":");reader=cr[0].substr(6,1);
switch($(cv).innerHTML){
case km[0]:vsum[0]++;reader=="A"?vsum[6]++:vsum[7]++;break;
case km[1]:vsum[1]++;reader=="A"?vsum[6]++:vsum[7]++;break;
case km[2]:vsum[2]++;reader=="A"?vsum[6]++:vsum[7]++;break;
case km[3]:vsum[3]++;reader=="A"?vsum[6]++:vsum[7]++;break;
case km[4]:vsum[4]++;reader=="A"?vsum[6]++:vsum[7]++;break;
case km[5]:vsum[5]++;reader=="A"?vsum[6]++:vsum[7]++;break;
}
}
var ss0="s00"+xx;$(ss0).innerHTML=vsum[0];$(ss0).style.color=eval(vevstr[0]);
var ss1="s01"+xx;$(ss1).innerHTML=vsum[1];$(ss1).style.color=eval(vevstr[1]);
var ss2="s02"+xx;$(ss2).innerHTML=vsum[2];$(ss2).style.color=eval(vevstr[2]);
var ss3="s03"+xx;$(ss3).innerHTML=vsum[3];$(ss3).style.color=eval(vevstr[3]);
var ss4="s04"+xx;$(ss4).innerHTML=vsum[4];$(ss4).style.color=eval(vevstr[4]);
var ss5="s05"+xx;$(ss5).innerHTML=vsum[5];$(ss5).style.color=eval(vevstr[5]);
var ss6="s06"+xx;$(ss6).innerHTML=vsum[6];$(ss6).style.color=eval(vevstr[6]);
var ss7="s07"+xx;$(ss7).innerHTML=vsum[7];$(ss7).style.color=eval(vevstr[7]);
}
function hsumUpdate(){
var i,i2,cv;
var hsum = new Array(0,0,0,0,0,0);
for (i=0;i<days;i++){
i2='0'+i;i2=i2.substr(i2.length-2,2);
cv="v"+yy+i2;
switch($(cv).innerHTML){
case km[0]:hsum[0]++;break;case km[1]:hsum[1]++;break;case km[2]:hsum[2]++;break;case km[3]:hsum[3]++;break;case km[4]:hsum[4]++;break;case km[5]:hsum[5]++;break;
}
}
var dmy0="c"+yy;
var ss0=dmy0+"00";$(ss0).innerHTML=hsum[0];$(ss0).style.color=eval(hevstr[0]);
var ss1=dmy0+"01";$(ss1).innerHTML=hsum[1];$(ss1).style.color=eval(hevstr[1]);
var ss2=dmy0+"02";$(ss2).innerHTML=hsum[2];$(ss2).style.color=eval(hevstr[2]);
var ss3=dmy0+"03";$(ss3).innerHTML=hsum[3];$(ss3).style.color=eval(hevstr[3]);
var ss4=dmy0+"04";$(ss4).innerHTML=hsum[4];$(ss4).style.color=eval(hevstr[4]);
var ss5=dmy0+"05";$(ss5).innerHTML=hsum[5];$(ss5).style.color=eval(hevstr[5]);
}
function holiday(){
timeStart();
var i,j,x,y,xx,yy;
pary=new Array();vary=new Array();ary=new Array();
var alm=0;
var almDay=new Array();
var almStDay=new Array();
res="";
kinmuStart=99;	
for (y=0;y<menbers;y++){
yy='0'+y;yy=yy.substr(yy.length-2,2);
for (x=0;x<days;x++){xx='0'+x;xx=xx.substr(xx.length-2,2);pos="v"+yy+xx;Element.setStyle($(pos),{border:'0px',fontSize:"14px"});
}
}
for (y=0;y<menbers;y++){
yy='0'+y;yy=yy.substr(yy.length-2,2);
for (x=0;x<5;x++){xx='0'+x;xx=xx.substr(xx.length-2,2);sel="p"+yy+xx;pary[x]=$(sel).innerHTML;}
for (x=0;x<days;x++){xx='0'+x;xx=xx.substr(xx.length-2,2);sel="v"+yy+xx;vary[x]=$(sel).innerHTML;}
ary = pary.concat(vary);loop = eval(days)+5;
for (i=0;i<loop;i++){
switch(ary[i]){
case (""):case ("　"):
break;
case (km[0]):case (km[1]):case (km[2]):case (km[3]):case (km[4]):case (km[5]):
if(kinmuStart==99){kinmuStart=i;};break;
case (km[6]):case (km[7]):case (km[8]):case (km[9]):case (km[10]):case (km[11]):
case (km[12]):case (km[13]):case (km[14]):case (km[15]):case (km[16]):case (km[17]):
case (km[18]):case (km[19]):case (km[20]):case (km[21]):
if((i-kinmuStart) > 6){almStDay[alm]=kinmuStart;almDay[alm]=i;alm++}
kinmuStart=99;
break;
}
}
if((i-kinmuStart) > 6){
almStDay[alm]=kinmuStart;
almDay[alm]=i;
alm++
}
for (i=0;i<alm;i++){	
sx=((almStDay[i]-5)<=0) ? 0 : almStDay[i]-5;
ex=almDay[i]-5;
for (j=sx;j<ex;j++){xx="0"+j;xx=xx.substr(xx.length-2,2);pos="v"+yy+xx;
Element.setStyle($(pos), {border:'1px solid red',fontSize:"12px"});
}
}
almStDay.clear();almDay.clear();alm=0;kinmuStart=99;
}
msg="休日間隔チェックが終わりました "+timeStop();guide(msg,"red");
}
function calVsum(){
timeStart();
var z;
for (z=0;z<days;z++){xx='0'+z;xx=xx.substr(xx.length-2,2);vsumUpdate();}
msg="縦集計が終わりました "+timeStop();guide(msg,"red");
}
function clrJob(){
timeStart();
var x,y,xx,yy,pos;
for (y=0;y<menbers;y++){
yy='0'+y;yy=yy.substr(yy.length-2,2);
for (x=0;x<days;x++){
xx='0'+x;xx=xx.substr(xx.length-2,2);
pos="v"+yy+xx;
$(pos).innerHTML="　";
Element.setStyle($(pos), { color:"whitesmoke",backgroundColor:"whitesmoke",border:'0',fontSize:"14px"});
}
for (x=0;x<6;x++){
xx='0'+x;xx=xx.substr(xx.length-2,2);
pos="c"+yy+xx;
$(pos).innerHTML=0;
Element.setStyle($(pos), { color:"black",backgroundColor:"whitesmoke"});
}
}
for (y=0;y<8;y++){
yy='0'+y;yy=yy.substr(yy.length-2,2);
for (x=0;x<days;x++){
xx='0'+x;xx=xx.substr(xx.length-2,2);
var pos="s"+yy+xx;
$(pos).innerHTML=0;
Element.setStyle($(pos),{color:"black", backgroundColor:"whitesmoke"});
}
}
msg="クリア完了 "+timeStop();guide(msg,"red");
}
//function home(){location.href="http://nextstage24.com";}
function home(){window.history.back();}
function trim(argValue){return String(argValue).replace(/^[ 　]*/gim, "").replace(/[ 　]*$/gim, "");}
function ltrim(argValue){return String(argValue).replace(/^[ 　]*/gim, "");}
function rtrim(argValue){return String(argValue).replace(/[ 　]*$/gim, "");}
function toHankakuNum(motoText) {var han="0123456789";var zen="０１２３４５６７８９";var str = "";var c,n,i;
for (i=0; i<motoText.length; i++) {c = motoText.charAt(i);n = zen.indexOf(c,0);
if (n >= 0) c = han.charAt(n);str += c;}return str;}
function str_replace(text, sText, rText) {while (true){dummy=text;text=dummy.replace(sText,rText);if(text==dummy){break;}}return text;}
function guide(msg,atr){$("guide").style.color = atr;$("guide").innerHTML = msg;}
function condition(){for (i=0;i<6;i++) {hevstr[i]="(hsum["+i+"]"+hchk[i]+hchk[i+6]+randb;}for (i=0;i<8;i++) {vevstr[i]="(vsum["+i+"]"+vchk[i]+vchk[i+8]+randb;}}
function timeStart(){st=new Date();}
function timeStop(){sp=new Date();cTime = sp.getTime() - st.getTime();return cTime+" ms";}
