//Copyright (c) 2008 DSIC Co.,Ltd. All rights reserved.
//Developer : Lioneyes
//Date Info : 2008. 10. 20
//Details  : 달력 팝업

var Calendar = new Object();

Calendar.returnstr = function(str)
{
	str=""+str;
	if (str.length==1) str="0"+str;
	return str;
}



Calendar.curObj;
Calendar.curObj2;
Calendar.ctime ="";

//get current date..
Calendar.now_date=new Date();
Calendar.s_year=Calendar.now_date.getYear();
if( Calendar.s_year<1900) Calendar.s_year=Calendar.s_year+1900;
Calendar.s_month = Calendar.returnstr(Calendar.now_date.getMonth()+1);
Calendar.s_day = Calendar.returnstr(Calendar.now_date.getDate());
Calendar.dtype = "YYYYMMDD";
Calendar.strLang = "";

Calendar.month_name=new Array('01','02','03','04','05','06','07','08','09','10','11','12');
Calendar.day_name=new Array('S','M','T','W','T','F','S');
Calendar.isSelect = 0;
Calendar.calWidth = 180;
Calendar.menuPopup;
Calendar.caldiv;

Calendar.menuDelay1 = 50; //delay before menu appears
Calendar.menuSpeed1 = 5; //speed which menu appears (lower=faster)
Calendar.menuOffset1 = 2; //offset of menu from mouse pointer

Calendar.menuWidth1 = 180;
Calendar.menuHeight1 = 180; //menu height

Calendar.scriptId;
Calendar.scriptName;
Calendar.formName;
Calendar.arrNum;
Calendar.customObjName;
Calendar.obj;

Calendar.put_datetype = function(str)
{
   Calendar.dtype = str;
}

Calendar.put_month_name = function(str)
{
   Calendar.month_name = str;
}

Calendar.put_day_name = function(str)
{
   Calendar.day_name = str;
}

Calendar.put_select = function(str)
{
   Calendar.isSelect = str;
}

Calendar.put_calWidth = function(str)
{
   Calendar.calWidth = str;
}

Calendar.setLang = function(lang)
{

	if( lang != null || lang != "" )
		Calendar.strLang = lang;
	else
		Calendar.strLang = "E";
}

//processing changed date
Calendar.return_date = function(year_item, month_item, day_item)
{
	if( year_item < 1900) year_item = 1900 + year_item;

	month_item=Calendar.returnstr(month_item);
	day_item=Calendar.returnstr(day_item);
	//make_calendar(year_item,month_item,day_item);
	
	
	Calendar.input_date(year_item,month_item,day_item);
}

//output selected date
Calendar.input_date = function(year_item, month_item, day_item)
{
	if( year_item < 1900) year_item = 1900 + year_item;
	month_item=""+month_item;
	day_item=""+day_item;
	month_item2 = Calendar.returnstr(month_item);
	day_item2 = Calendar.returnstr(day_item);
	var backupidval = year_item +"."+ month_item2 +"."+ day_item2;


    Calendar.setCalDate(Calendar.formName, Calendar.scriptId, backupidval);
    Calendar.caldiv.style.display = "none";
}

Calendar.dreplace = function( str , old_char , new_char )
{
	if( str == null || str == "" ) return;
	else
	{
		var fromindex = 0;
		var temp = "";
		for(var i=0 ; i<str.length ; i++)
		{
			fromindex = i;
			pos = str.indexOf(old_char,fromindex);
			if( pos != -1 )
			{
				temp = str.substring(0,pos) + new_char + str.substring(pos+old_char.length);
				str = temp;
				i = pos+new_char.length-1;
			} else break;
		}
		return str;
	}
}

Calendar.setCalDate = function(formName, targetName, returnStr)
{
	var tmpEle = document.getElementsByName(targetName);
	Calendar.arrNum = (!Calendar.arrNum)? 0 : Calendar.arrNum; 

	if(false)
	{
	  	document.forms[formName].elements[targetName].value = returnStr;
  		document.forms[formName].elements[targetName].focus();
	}
	else
	{
		var tmpEle = document.getElementsByName(targetName);
		tmpEle[Calendar.arrNum].value = returnStr;
		tmpEle[Calendar.arrNum].focus();
		
	}
}

//draw calendar UI
Calendar.make_calendar = function(y,m,d)
{
    y = parseInt(y, 10);
    m = parseInt(m, 10);
    d = parseInt(d, 10);
	
	var content="";


    if(window.navigator.appName == "Microsoft Internet Explorer" && window.navigator.appVersion.substring(window.navigator.appVersion.indexOf("MSIE") + 5, window.navigator.appVersion.indexOf("MSIE") + 8) >= 5.5)
    {
        isIe = 1;
    }
    else
    {
        isIe = 0;
    }

    if(isIe)
    {

    	var day_num=new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

        if (m == 0) { y = y - 1; m = 12; }
        else if (m == 13) { y = y + 1; m = 1; }

    	if(((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) day_num[1]=29;

    	var first=new Date(y,m-1, 1);
    	firstday    = first.getDay()+1
    	DaysInMonth = day_num[m-1]
    	
    	

    	if ((m-2) == -1) DaysInBefMonth = day_num[11]
    	else DaysInBefMonth = day_num[m-2]


    	if (d > DaysInMonth) day = DaysInMonth
    	else day = d



    	content=content + "<iframe frameborder='0' class='iefix'></iframe>\n";
    	content=content + "<div class='iefix'>\n";
    	content=content + "<table >\n";
    	content=content + "<tr>\n";
    	content=content + "<td>\n";
    	content=content + "<span style='border:0px solid red;width:170;text-align:right;'><a href='javascript:Calendar.hideCalendarPopup();'><img src='/images/calendar/btn_icodelete.gif' width='11' border=0  height='11' border=0 alt='닫기'></a></span>\n";
    	content=content + "</td>\n";
    	content=content + "</tr>\n";
    	content=content + "</table>\n";
    	content=content + "<table>\n";
    	content=content + "<caption style='text-align:center'>\n";
		content=content + y+".";
		content+=(m<10) ? '0' + m : m;
		conetnt=content + " ";
		content=content + "<a href='javascript:Calendar.showCalendarPopup(" + (y-1) + "," + m + "," + day + ");' class='prev2'><img src='/images/calendar/btn_arrow_prev030.gif' alt='이전년' border=0></a>";
		content=content + "<a href='javascript:Calendar.showCalendarPopup(" + y + "," + (m-1) + "," + day + ");' class='prev'><img src='/images/calendar/btn_arrow_prev03.gif' alt='이전달' border=0 width='12' height='13'></a> ";
		content=content + "<a href='javascript:Calendar.showCalendarPopup(" + y + "," + (m+1) + "," + day + ");' class='next'><img src='/images/calendar/btn_arrow_next03.gif' alt='다음달' border=0 width='12' height='13'></a>";
		content=content + "<a href='javascript:Calendar.showCalendarPopup(" + (y+1) + "," + m + "," + day + ");' class='next2'><img src='/images/calendar/btn_arrow_next030.gif' alt='다음년' border=0 ></a>\n";
		content=content + "</caption>\n";
		content=content + "<thead>\n";
		content=content + "<tr>\n";
		content=content + "<th class='sun'><img src='/images/calendar/ico_calendar_sun.gif' border=0 alt='Sunday' width='6' height='5'></th>\n";
		content=content + "<th><img src='/images/calendar/ico_calendar_mon.gif' alt='Monday' border=0 width='6' height='5'></th>\n";
		content=content + "<th><img src='/images/calendar/ico_calendar_tue.gif' alt='Tuesday' border=0 width='6' height='5'></th>\n";
		content=content + "<th><img src='/images/calendar/ico_calendar_wed.gif' alt='Wednesday' border=0 width='8' height='5'></th>\n";
		content=content + "<th><img src='/images/calendar/ico_calendar_thu.gif' alt='Thursday' border=0 width='6' height='5'></th>\n";
		content=content + "<th><img src='/images/calendar/ico_calendar_fri.gif' alt='Friday' border=0 width='6' height='5'></th>\n";
		content=content + "<th class='sat'><img src='/images/calendar/ico_calendar_sat.gif' alt='Saturday' border=0 width='6' height='5'></th>\n";
		content=content + "</tr>\n";
		content=content + "</thead>\n";
		content=content + "<tbody>\n";


		var dayIndex = 0;
    	var classnm = "";

    	for (i=1 ; dayIndex < DaysInMonth;i++)
    	{
    		if (i%7 == 1) {
    			content=content + "<tr>\n"
    			classnm="sun";
    		}else if (i%7 == 0) {
    			classnm="sat";
    		}else
    			classnm="";
    		
    		if (i < firstday)
	    		content=content + "<TD class='"+classnm+"'></TD>\n"
	    	else {
	    		dayIndex++;
	    		content=content + "<TD class='"+classnm+"'><a href='javascript:Calendar.return_date(" + y + "," + m+ "," + dayIndex + ")'>"+dayIndex+"</a> </TD>\n"
	    	}
	    	
	    	if (i%7 == 0) content=content + "</tr>\n"
    	}

		content=content + "</tbody>\n";
   		content=content + "</table>\n";
   		content=content + "</div>\n";
   		
   		
   		//alert(content);
   		
   		Calendar.caldiv = document.getElementById("calendar");
   		Calendar.caldiv.innerHTML = content;
   		

  }
}


Calendar.callCalPop = function(scriptId, scriptName, formName, arrNum, customObjName)
{
	//alert("callCalPop");
	
    if(window.navigator.appName == "Microsoft Internet Explorer" && window.navigator.appVersion.substring(window.navigator.appVersion.indexOf("MSIE") + 5, window.navigator.appVersion.indexOf("MSIE") + 8) >= 5.5)
    {
	}
	else
	{
    	return alert("Version of Internet Explorer must higher than 5.5");
	}
	//alert(Calendar);

    Calendar.scriptId = scriptId;
    Calendar.scriptName = scriptName;
    Calendar.formName = formName;
    Calendar.arrNum = (isNaN(arrNum)) ? 0 : arrNum;
    Calendar.customObjName = (customObjName) ? customObjName : false;
    Calendar.showCalendarPopup(Calendar.s_year,Calendar.s_month,Calendar.s_day);
}

Calendar.showCalendarPopup = function(sYear,sMonth,sDay)
{
	//alert("showCalendarPopup");
	
    Calendar.make_calendar(sYear,sMonth,sDay);

    if(Calendar.customObjName)
    {
    	Calendar.obj = document.getElementsByName(Calendar.customObjName)[Calendar.arrNum];
    }
    else
    {
    	Calendar.obj = document.getElementById(Calendar.scriptName);
    }
//	alert(Calendar.obj);

    Calendar.menuXPos = Calendar.getX(Calendar.obj)+5;
    Calendar.menuYPos = Calendar.getY(Calendar.obj)+18;

    
    //alert(Calendar.caldiv);
    Calendar.caldiv.getAttribute('style').setAttribute('display', 'inline');
    Calendar.caldiv.getAttribute('style').setAttribute('left', Calendar.menuXPos+"px");
    Calendar.caldiv.getAttribute('style').setAttribute('top', Calendar.menuYPos+"px");

    //menuTimer = setTimeout("openMenu1(0,0)", menuDelay1);
    
    

    //return false;
}

Calendar.hideCalendarPopup = function()
{
	Calendar.caldiv.innerHTML="";
	Calendar.caldiv.display = "none";
}

 //if(isIe) document.oncontextmenu = showMenu;

Calendar.getX = function(obj)
{
 return( obj.offsetParent==null ? obj.offsetLeft : obj.offsetLeft+Calendar.getX(obj.offsetParent) );
}

Calendar.getY = function(obj)
{
 return( obj.offsetParent==null ? obj.offsetTop : obj.offsetTop+Calendar.getY(obj.offsetParent) );
}
