﻿//####################################################################################################
//ESN Custom Control 에서 사용하는 Script

//####################################################################################################

function onDatePicker(box,pnl,frm,dtF,dtT,red)
{
	var opnl = document.getElementById(pnl);
	if ( opnl.style.display == "" )
	{
		opnl.style.display = "none";
	}
	else
	{
		var dtfrm = document.getElementById(frm);
		if(red == 'True')
		{
			dtfrm.src = "/CommonWeb/Aspx/redBlockCalendar.aspx?dt="+document.getElementById(box).value+"&ctl="+box+"&pnl="+pnl+"&dtFrom="+dtF+"&dtTo="+dtT ;
		}
		else
		{
			dtfrm.src = "/CommonWeb/Aspx/normalCalendar.aspx?dt="+document.getElementById(box).value+"&ctl="+box+"&pnl="+pnl+"&dtFrom="+dtF+"&dtTo="+dtT ;
		}
		
		opnl.style.display = "";
	}
}

function SelectDate(pnl,box,dtFrom,dtTo,dtY,dtM,dtD)
{
	var dtSelect = new Date(dtY,dtM-1,dtD);
	
	if (dtFrom.length > 0)
	{
		var dF = dtFrom.split('-');
		var dFrom = new Date(dF[0],dF[1]-1,dF[2]);
		
		if(dFrom > dtSelect)
		{
			alert(dtFrom + " 부터 입력 가능합니다.");
			return;
		}
	}
	
	if (dtTo.length > 0)
	{
		var dT = dtTo.split('-');
		var dTo = new Date(dT[0],dT[1]-1,dT[2]);
		
		if(dTo < dtSelect)
		{
			alert(dtTo + " 까지 입력 가능합니다.");
			return;
		}
	}
	
	if(dtM.length == 1)
			dtM = "0"+dtM
		
	if(dtD.length == 1)
			dtD = "0"+dtD

	document.getElementById(box).value = dtY+"-"+dtM+"-"+dtD;
		
		if(document.getElementById('txtPAYDATE') != null)
		{
			var Flag = false;
			var ToDay = DateAdd(0);
			var AfterDay = 	document.getElementById('dptdtDate').value;
		
			for(var i = 0 ; i < 180 ; i++)
			{
				var TempDay = DateAdd(i);
				
				if(TempDay == AfterDay)
				{
					Flag = true;
					document.getElementById('txtPAYDATE').value = i+1;
					DateTextHide();
					break;
				}
			}
			if(Flag == false)
			{
				alert('180일 이하여야 합니다.');
				document.getElementById('dptdtDate').value = DateAdd(0);
				document.getElementById('txtPAYDATE').value = '';
			}		
		}
	
	document.getElementById(pnl).style.display = "none";

}

// ESN TEXTBOX 용 스크립트.

function OnkeyKorean() 
{
  if( (event.keyCode >= 48 && event.keyCode <=57) || (event.keyCode >=65 && event.keyCode <= 90) || (event.keyCode >= 97 && event.keyCode <= 122) )
  {
   event.returnValue=false; 
  }
}

function OnkeyEnglish() 
{
	if((event.keyCode<97)||(event.keyCode>122))
		event.returnValue=false;    
}
			
function OnkeyEnglishNumber() 
{
	if(((event.keyCode>47)&&(event.keyCode<58))||((event.keyCode>96)&&(event.keyCode<123)))
	{	event.returnValue=true;    }
	else
	{	event.returnValue=false;    }
}

function OnkeyNumber() 
{
	if((event.keyCode>47)&&(event.keyCode<58))
	{	event.returnValue=true;    }
	else
	{	event.returnValue=false;    }
}

function OnkeyNumber2(obj) 
{
if((event.keyCode<48)||(event.keyCode>57))
		event.returnValue=false;
	
}

//-- 마이너스를 허용한 정수
function OnkeyNumber3() 
{
	if( (event.keyCode>47)&&(event.keyCode<58) || (event.keyCode == 45) )
	{	event.returnValue=true;    }
	else
	{	event.returnValue=false;    }
}

function OnkeyNumberPoint(obj,point) 
{
	if( event.keyCode == 46 )
	{
		// "."는 제일처음에만 나올수 없다.
		if ( obj.value.length == 0 )
		{
			event.returnValue=false;
		}
		else if ( obj.value.indexOf(".") > -1 )
		{
			event.returnValue=false;
		}
	}
	else if((event.keyCode<48)||(event.keyCode>57))
		event.returnValue=false;
	else if ( obj.value.indexOf(".") > -1 )
	{
		var tmp = obj.value.substr( obj.value.indexOf("."), obj.value.length);
		if ( tmp.length > point )
		{
			event.returnValue=false;
		}
	}
	
}

function Reverse( Str )
{
	var ret = "";

	for (var i = 0; i < Str.length; i++)
	ret = Str.substr(i, 1) + ret;

		if ( ret.charAt(0) == "," )
		{
			ret = ret.substr(1,ret.length);
		}
	return ret;
}

function OnKeyComma( obj )
{
	var oTemp = obj.value;

	var tmp = Reverse(oTemp);
	var tmp2 = "";

	if( oTemp.indexOf(".") > -1 )
	{
		tmp = Reverse(oTemp.substr(0,oTemp.indexOf(".")));
		tmp2 = oTemp.substr( oTemp.indexOf("."), oTemp.length);
	}

		var Acc = "";

		if (tmp.indexOf(",") > -1) {
			while (tmp.indexOf(",") > -1)
     		tmp = tmp.replace(",", "");
		}

		for(var i = 0; i < tmp.length; i = i + 3) {

		Acc += tmp.substr(i, 3);
		if (i + 3 < tmp.length)
		Acc += ",";
		}

		obj.value = Reverse(Acc)+tmp2;

	return;
}


function RemoveComma( obj )
{
	var tmp = obj.value;
	
	while (tmp.indexOf(",") > -1)
		tmp = tmp.replace(",", "");
		obj.value = tmp;
		return;
}



// FROM ~ TO 일때
// 사용예 : dptdtFrom.Attribute["onblur"] = "fctDtCheck('"+dptdtFrom.ClientID+"','"+dptdtTo.ClientID+"');";
// flag 시작일 : 1, 종료일 : 2
function fctDtCheck(fromClientID, toClientID, flag)
{
	oDateFrom = document.getElementById(fromClientID); 
	oDateTo = document.getElementById(toClientID);
	
	var bStatusid = false;
	var bStatusid2 = false;
	

	if(oDateFrom.value.length > 0)	// 조회시작일을 입력했으면
	{ 				
		if(fctCheckDateFormat(oDateFrom))	// 날자 형식이 맞는지 체크
		{ 					
			bStatusid = true;
			
			if(bStatusid2)
			{				
				return fctCompareDate(oDateFrom, oDateTo, flag);
			}
		}
		else
		{	
			if(flag == 1)
			{
				alert('날짜 형식이 올바르지 않습니다.');
				
				oDateFrom.value = "";
				oDateFrom.focus();
				return false;
			}
		}
	}
	
	if(oDateTo.value.length > 0)	// 조회시작일을 입력했으면
	{
		if(fctCheckDateFormat(oDateTo))	// 날자 형식이 맞는지 체크
		{
			bStatusid2 = true;
			
			if(bStatusid)
			{
				return fctCompareDate(oDateFrom, oDateTo, flag);
			}
		}
		else
		{	
			if(flag == 2)
			{
				if(location.pathname.toLowerCase().indexOf("e_") == -1)
				{
					alert('날짜 형식이 올바르지 않습니다.');
				}
				else
				{
					alert("Date Type Invalid");
				}
				oDateTo.value = "";
				oDateTo.focus();
				return false;
			}
		}
	}			
}

function fctCheckDateFormat(DateControl)
{
	matchStr = /^[1-2][0-9]{3}(-)[0-1]{1}[0-9]{1}(-)[0-3]{1}[0-9]{1}/gi;			
	searchResult = DateControl.value.match(matchStr);
	
	if(searchResult == null)
	{
		return false;
	}			
	else
	{
			
	
		
		return DateCheck(DateControl);
	}	
}

function fctCompareDate(dtFR, dtTO, flag)
{			
	if(dtFR.value.length == 10 && dtTO.value.length == 10)
	{
		if(dtFR.value > dtTO.value)
		{	
			if(location.pathname.toLowerCase().indexOf("e_") == -1)
			{
				alert('견적접수 마감시간이 견적접수 시작시간보다 빠릅니다.');
			}
			else
			{
				alert("Please set the start date ahead of the end date");
			}
			
			if(flag == 1)
			{
				dtFR.value = "";
				dtFR.focus();	
			}
			else if(flag == 2)
			{
				dtTO.value = "";
				dtTO.focus();
			}
			return false;
		}
		else
		{
			return true;
		}
	}
}


function DateCheck(obj) {
  
  var arrDate = obj.value.split('-');
  
  var strDate = arrDate[0]+arrDate[1]+arrDate[2];
  var intYear,intMon,intDay;
  var strNowDate = new Date();
  var strNowYY = parseInt(strNowDate.getYear());
  var strNowMM = parseInt(strNowDate.getMonth())+1;
  var strNowDD = parseInt(strNowDate.getDate());
  var bFlag = true;
  
  
  intYear = parseInt(strDate.substring(0,4),10); 
  intMon = parseInt(strDate.substring(4,6),10);
  intDay = parseInt(strDate.substring(6,8),10);

    //alert( parseInt(strNowDate.getMonth()) + " - " + intMon);
    
  if (intYear<1900 ) {
   // alert ("유효한 날짜가 아닙니다.");
    return false; 
  }
  if (intMon<1 || intMon>12) {
   // alert ("유효한 날짜가 아닙니다.");
    return false; 
  }
  if (intDay<1 || intDay>31) {
  //  alert ("유효한 날짜가 아닙니다.");
    return false; 
  }
  
  if (intMon==4 || intMon==6 || intMon==9 || intMon==11){
   if (intDay==31) {
     alert ("유효한 날짜가 아닙니다.");
     return false; 
   }
  }
 
  // 윤년체크
  if (intMon==2){
   var val=parseInt(intYear/4)
 
   if (isNaN(val)) {
    return false;
   }
   
   if (intDay>29) return false;
   if (intDay==29 && ((intYear/4)!= parseInt(intYear/4))) return false;
  }

   return true;   
}