﻿function checkDate(datestr,month_range,datename){ //検索開始日の入力チェック////////////////////////////////////////////////////////////////////////////////////
			//// 入力チェック・書式チェック
				if(datestr.replace(/ /g,"")==""){
						alert(datename + "は入力必須です。");
						setFocus_date(datename);
						return false;
				}
	
					if(!datestr.match(/[0-9][0-9][0-9][0-9]/)){
						alert("検索開始日の入力形式が不適切です。");
						setFocus_date(datename);
						return false;
					}
				
				var vMonth = datestr.substr(0, 2)-1;
				var vDay = datestr.substr(2, 2) - 0;
				var a=0;
				var vYear=0;
			//年数の算定
				dateToday=new Date();
				dateInput=new Date(dateToday.getFullYear(),vMonth,vDay );
				dateInput_next=new Date(dateToday.getFullYear()+1,vMonth,vDay );
				dateInput_last=new Date(dateToday.getFullYear()-1,vMonth,vDay );
				
				if((dateToday.getTime()-60*60*24* (month_range *30+1)*1000)<=dateInput.getTime() && (dateInput.getTime()<=(dateToday.getTime()+60*60*24*month_range *30*1000))){ //今年
					vYear=dateToday.getFullYear();
					a=1;
				}
				
				if((dateToday.getTime()-60*60*24*month_range *30*1000)<=dateInput_next.getTime() && (dateInput_next.getTime()<=(dateToday.getTime()+60*60*24*month_range *30*1000))){ //来年
					vYear=dateToday.getFullYear()+1;
					a=1;
				}
				if ((dateToday.getTime()-60*60*24*month_range *30*1000)<=dateInput_last.getTime() && (dateInput_last.getTime()<=(dateToday.getTime()+60*60*24*month_range *30*1000 ))){ //去年
					vYear=dateToday.getFullYear()+1;
					a=1;
				}

				if (a!=1){
					vYear=dateToday.getFullYear();
				}
				
				
				
			if(datestr.replace(/ /g,"")!=""){
				// 年月日の妥当性チェック
				if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){
					var vDt = new Date(vYear, vMonth, vDay);
						if(isNaN(vDt)){
							alert(datename+"に存在しない日付が入力されています。");
							setFocus_date(datename);
							return false;
						}else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){
							//範囲のチェック
							if(a==0){
								alert(datename+"には本日の日付の前後"+month_range*30+"日以内の日付を入力してください。");
								setFocus_date(datename);
								return false;
							}else{
								return true;
							}
						}else{
							alert(datename+"に存在しない日付が入力されています。");
							setFocus_date(datename);
							return false;
						}
				}else{
					alert(datename+"に存在しない日付が入力されています。");
					setFocus_date(datename);
					return false;
				}
			}
		}
function setFocus_date(datename){ //アラート後のフォーカス位置を指定(関数checkDateで使用)//////////////////////////////////////////////////////////////////////
	switch (datename) {
		case '検索開始日':
			document.searchForm.s_date_dis.focus(); break;
		case '入港日':
			document.inputForm.i_indate.focus(); break;
		case '出港日':
			document.inputForm.i_outdatesg28oJHa36lf.focus(); break;
	}
}
function checkDate2(datestr,month_range,datename){ //検索開始日の入力チェック////////////////////////////////////////////////////////////////////////////////////
			var error=0;
			//// 入力チェック・書式チェック
				if(datestr.replace(/ /g,"")==""){
					error=1;
				}
	
					if(!datestr.match(/[0-9][0-9][0-9][0-9]/)){
						error=1;
					}
				
				var vMonth = datestr.substr(0, 2)-1;
				var vDay = datestr.substr(2, 2) - 0;
				var a=0;
				var vYear=0;
			//年数の算定
				dateToday=new Date();
				dateInput=new Date(dateToday.getFullYear(),vMonth,vDay );
				dateInput_next=new Date(dateToday.getFullYear()+1,vMonth,vDay );
				dateInput_last=new Date(dateToday.getFullYear()-1,vMonth,vDay );
				
				if((dateToday.getTime()-60*60*24* (month_range *30+1)*1000)<=dateInput.getTime() && (dateInput.getTime()<=(dateToday.getTime()+60*60*24*month_range *30*1000))){ //今年
					vYear=dateToday.getFullYear();
					a=1;
				}
				
				if((dateToday.getTime()-60*60*24*month_range *30*1000)<=dateInput_next.getTime() && (dateInput_next.getTime()<=(dateToday.getTime()+60*60*24*month_range *30*1000))){ //来年
					vYear=dateToday.getFullYear()+1;
					a=1;
				}
				if ((dateToday.getTime()-60*60*24*month_range *30*1000)<=dateInput_last.getTime() && (dateInput_last.getTime()<=(dateToday.getTime()+60*60*24*month_range *30*1000 ))){ //去年
					vYear=dateToday.getFullYear()+1;
					a=1;
				}

				if (a!=1){
					vYear=dateToday.getFullYear();
				}		
				
			if(datestr.replace(/ /g,"")!=""){
				// 年月日の妥当性チェック
				if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){
					var vDt = new Date(vYear, vMonth, vDay);
						if(isNaN(vDt)){
							error=1;
						}else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){
							//範囲のチェック
							if(a==0){
								error=1;
							}
						}else{
							error=1;
						}
				}else{
					error=1;
				}
			}
			if(error==1){
				return "error";
			}else{
				strDate=vYear  + "," + vMonth  +  "," + vDay;
				return vDt;
			}
		}
function checkClock(ttime, TargetName){ //時間の入力チェック//////////////////////////////////////////////////////////////////////////////////////////////////
	var error=0;
	if(!ttime.match(/[0-9][0-9][0-9][0-9]/)){
		error=1;
	}
	if(ttime=='0000'){
		error=1;
	}
	thour=ttime.substring(0,2);
	tminute=ttime.substring(2,4);
	if((parseInt(thour)>23) || (parseInt(tminute)>=60)){
		if(ttime!='2400'){
			error=1;
		}
	}
	if(ttime.replace(/ /g,"")==""){
		error=0;
	}
	if(error==1 ){
		alert(TargetName + "の入力形式が不適切です。");
		return false;
	}
}

function checkClock2(ttime, TargetName){ //時間の入力チェック//////////////////////////////////////////////////////////////////////////////////////////////////
	var error=0;
	if(!ttime.match(/[0-9][0-9][0-9][0-9]/)){
		error=1;
	}
	if(ttime=='0000'){
		error=1;
	}
	thour=ttime.substring(0,2);
	tminute=ttime.substring(2,4);
	if((parseInt(thour)>23) || (parseInt(tminute)>=60)){
		if(ttime!='2400'){
			error=1;
		}
	}
	if(ttime.replace(/ /g,"")==""){
		error=0;
	}
	if(error==1 ){
		return "error";
	}
}
function checkDateRelation(indate,outdate){ ///////////////////////////////////////////////////////////////////////////////////////////////////
	checkDate(outdate,3,"出港日");
	
	if(checkDate2(outdate,3,"出港日")!="error"){
	    
		if(indate!="" && outdate!=""){
		    dateIndate=checkDate2(indate,3,'入港日');
		    dateOutdate=checkDate2(outdate,3,'出港日');
		    Diff=(dateOutdate-dateIndate)/ 86400000;
		    
			if(dateIndate > dateOutdate){
				alert("入港日と出港日の前後関係が不適切です。");
				return false;
			}else if(Diff>2){
		        alert("入港日と出港日の間隔が２日以上あいています。");
		        document.inputForm.shipno.focus();
				return false;
		    }
		}
	}
}
function checkDateTimeRelation(indate,intime,outdate,outtime){ ///////////////////////////////////////////////////////////////////////////////////////////////////
	checkClock(outtime,'出港時間');
	
	if(indate!=""  && outdate!="" ){
		dateIndate=checkDate2(indate,3,'入港日');
		dateOutdate=checkDate2(outdate,3,'出港日');
		Diff=(dateOutdate-dateIndate)/ 86400000;
		    
		if(dateIndate > dateOutdate){
		c=d;
			alert("入港日と出港日の前後関係が不適切です。");
			return false;
			document.inputForm.shipno.focus();
		}else if(indate==outdate && intime>=outtime){
			alert("入港日時と出港日時の前後関係が不適切です。");
			return false;		
		}
	}
}
function checkInput(ship,navi1,navi2,carrier,harbor,indate,intime,outdate,outtime){ ////////////////////////////////////////////////////////////////////////
//入力必須項目のチェック
	if(ship!="" && (navi1!="" || navi2!="")&& carrier!="" && harbor!="" && indate!="" && outdate!=""){

		checkDate(indate,3,'入港日');
		checkDate(outdate,3,'出港日');
		checkClock(intime,'入港時間');
		checkClock(outtime,'出港時間');
		
		dateIndate=checkDate2(indate,3,'入港日');
		dateOutdate=checkDate2(outdate,3,'出港日');
					
		if(checkDate2(indate,3,'入港日')!="error" && checkDate2(outdate,3,'出港日')!="error" && checkClock2(intime,'入港時間')!="error" && checkClock2(outtime,'出港時間')!="error" ){
			if (intime=="" || outtime==""){
				if( dateIndate > dateOutdate ){
				a=bb;
					alert("入港日と出港日の前後関係が不適切です。");
					return false;
				}else {			
					Diff=(dateOutdate-dateIndate)/ 86400000;

					if( Diff>2){
						if(window.confirm("入港日と出港日の間隔が２日以上空いています。\nよろしいですか。")){
							return true;
			    		}else{
			        		return false;
			        	}
					}else{
						return true;
					}
				}				
			}else{
				if(dateIndate>dateOutdate || (indate==outdate && intime>=outtime)){
					alert("入港日時と出港日時の前後関係が不適切です。");
					return false;
				}else{
					
					Diff=(dateOutdate-dateIndate)/ 86400000;

					if( Diff>2){
						if(window.confirm("入港日と出港日の間隔が２日以上空いています。\nよろしいですか。")){
							return true;
			    		}else{
			        		return false;
			        	}
					}else{
						return true;
					}
				}	
			}
		}else{
			return false;
		}
	}else{
		alert("未入力の項目があります。");
		return false;
	}
}
function setIMEDisabled(text){//Input boxに全角が入力されたら削除
    var sValue = text.value;
    var sNewValue = "";
    var iMax = sValue.length;
    for(var i=0; i<iMax; i++){
        var sChar = sValue.charAt(i);
        sNewValue += (escape(sChar).length > 3)? "" : sChar;
    }
    if(sValue != sNewValue){
        text.value = sNewValue;
	}
}
function keyBreak(){///////////////////////////////////////////////////////////////////
	if(window.event.keyCode=="13"){
		event.returnValue = false;
	}
}


function Calendar(formName, boxName){//カレンダーを別ウィンドウで表示
	mywin = window.open("./share/calendar.php?formname=" + formName + "&fieldname=" + boxName,"Calendar","width=750,height=280");
}
function Calendar2(formName, boxName){//カレンダーを別ウィンドウで表示
	mywin = window.open("../shippinginfo_pages/share/calendar.php?formname=" + formName + "&fieldname=" + boxName,"Calendar","width=750,height=280");
}

