
/*
 |=====================================================================================
 |AJAX °´Ã¼ »ý¼º
 |-------------------------------------------------------------------------------------
*/

var ajax = {};
ajax.xhr = {};


ajax.xhr.Request = function(url, params, callback, method) {

	this.url = url;
	this.params = params;
	this.callback = callback;
	this.method = method;
	this.send();

} //ajax.xhr.Request


ajax.xhr.Request.prototype = {

	getXMLHttpRequest: function() {
		
		if(window.ActiveXObject) {
			try {
				return new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e1) {
				try {
					return new ActiveXObject("Microsoft.XMLHTTP");
				} catch(e2) {
					return null;
				}
			}
		} else if(window.XMLHttpRequest) {
			return new XMLHttpRequest();
		} else {
			return null;
		}
		
	}, //getXMLHttpRequest
	
	
	send: function() {
	
		this.req = this.getXMLHttpRequest();
		
		var httpMethod = this.method ? this.method : 'GET';
		if(httpMethod != 'GET' && httpMethod != 'POST') {
			httpMethod = 'GET';
		}
		
		var httpParams = (this.params == null || this.params == '') ? null : this.params;
		
		var httpUrl = this.url;
		if(httpMethod == 'GET' && httpParams != null) {
			httpUrl = httpUrl + "?" + httpParams;
		}
		
		this.req.open(httpMethod, httpUrl, true);
		this.req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		//this.req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
		
		var request = this;
		this.req.onreadystatechange = function() {
			request.onStateChange.call(request);
		}
		
		this.req.send(httpMethod == 'POST' ? httpParams : null);
	
	}, //send
	
	
	onStateChange: function() {
	
		this.callback(this.req);
	
	} //onStateChange

} //ajax.xhr.Request.prototype

/*
 |=====================================================================================
 */
 
 
 
 /*
 |=====================================================================================
 |AJAX °´Ã¼ »ý¼º
 |-------------------------------------------------------------------------------------
*/

function ssmdOpenWindowCenter(inUrl, inWinName, inWidth, inHeight, inScroll, inResize) {

	var h = inHeight;
	var w = inWidth;
	var iMyWidth;
	var iMyHeight;

	iMyWidth = (window.screen.width/2) - (w/2+50);
	iMyHeight = (window.screen.height/2) - (h/2+50);
	
	var winstyle = "left=" + iMyWidth + ",top=" + iMyHeight + ",screenX=" + iMyWidth + ",screenY=" + iMyHeight + ",height=" + h + ",width=" + w + ", toolbar=no, menubar=no,directories=no,resizable=" + inResize + ",status=no,scrollbars=" + inScroll + ",location=no,copyhistory=no";
	
	var openWin = window.open(inUrl, inWinName, winstyle);
	
	if(openWin == null) {
		alert("Â÷´ÜµÈ ÆË¾÷Ã¢À» Çã¿ëÇØ ÁÖ¼¼¿ä.");
	} else {
		openWin.focus();
	}

}

/*
 |=====================================================================================
 */
 
 
 
//string String::CutString(int len)
//±ÛÀÚ¸¦ ¾Õ¿¡¼­ºÎÅÍ ¿øÇÏ´Â ¹ÙÀÌÆ®¸¸Å­ Àß¶ó ¸®ÅÏÇÕ´Ï´Ù.
//ÇÑ±ÛÀÇ °æ¿ì 2¹ÙÀÌÆ®·Î °è»êÇÏ¸ç, ±ÛÀÚ Áß°£¿¡¼­ Àß¸®Áö ¾Ê½À´Ï´Ù.
String.prototype.CutString = function(len) {
	var str = this;
	var l = 0;
	for (var i=0; i<str.length; i++) {
		l += (str.charCodeAt(i) > 128) ? 2 : 1;
		//if (l > len) return str.substring(0,i) + "...";
		if (l > len) return str.substring(0,i) + "";
	}
	return str;
}

//bool String::GetBytes(void)
//ÇØ´ç½ºÆ®¸µÀÇ ¹ÙÀÌÆ®´ÜÀ§ ±æÀÌ¸¦ ¸®ÅÏÇÕ´Ï´Ù. (±âÁ¸ÀÇ length ¼Ó¼ºÀº 2¹ÙÀÌÆ® ¹®ÀÚ¸¦ ÇÑ±ÛÀÚ·Î °£ÁÖÇÕ´Ï´Ù)
String.prototype.GetBytes = function() {
	var str = this;
	var l = 0;
	for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 2 : 1;
	return l;
}

//string String::StripTags(void)
//HTMLÅÂ±× Á¦°Å
String.prototype.StripTags = function() {
	var str = this;
	var pos1 = str.indexOf("<");
	if(pos1 == -1) {
		return str;
	} else {
		var pos2 = str.indexOf(">", pos1);
		if (pos2 == -1) return str;
		return (str.substr(0, pos1) + str.substr(pos2+1)).StripTags();
	}
}
 
 
/*
 |=====================================================================================
 |´Þ·Â °´Ã¼ »ý¼º
 |-------------------------------------------------------------------------------------
*/

var objPopup = window.createPopup();
var objTargetField;

var pop_top;
var pop_left;
var cal_width;
var cal_height;

var orgObjDate;
var intOrgYear = new Number(), intOrgMonth = new Number(), intOrgDay = new Number();

var thisObjDate, thisDate, thisYear, thisMonth, thisDay;
var intThisYear = new Number(), intThisMonth = new Number(), intThisDay = new Number();
var intThisDate;

var nowObjDate, nowDate, nowYear, nowMonth, nowDay;
var intNowYear = new Number(), intNowMonth = new Number(), intNowDay = new Number();

nowObjDate = new Date();
nowYear = nowObjDate.getFullYear();
nowMonth = nowObjDate.getMonth()+1;
nowDay = nowObjDate.getDate();
nowDate = nowYear + "-" +  nowMonth + "-" + nowDay;

intNowYear = parseInt(nowYear,10);
intNowMonth = parseInt(nowMonth,10);
intNowDay = parseInt(nowDay,10);
intNowDate = intNowYear + "-" +  intNowMonth + "-" + intNowDay;

var intPrevYear, intPrevMonth;
var intNextYear, intNextMonth;

var arrMonthsDay = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);


function GetObjectHeight(tObj) {
	//if (tObj.offsetParent == document.body) {
		return tObj.offsetHeight;
	//} else {
		//return tObj.offsetHeight + GetObjectHeight(tObj.offsetParent);
	//}
}

function GetObjectTop(tObj) {
	if (tObj.offsetParent == document.body) {
		return tObj.offsetTop;
	} else {
		return tObj.offsetTop + GetObjectTop(tObj.offsetParent);
	}
}

function GetObjectLeft(tObj) {
	if (tObj.offsetParent == document.body) {
		return tObj.offsetLeft;
	} else {
		return tObj.offsetLeft + GetObjectLeft(tObj.offsetParent);
	}
}



function OpenCalendar(targetfield, defaultdate) {

	objTargetField = targetfield;

	//pop_top = document.body.clientTop ;//+ GetObjectTop(targetfield) + GetObjectHeight(targetfield) - document.body.scrollTop;
	//pop_left = document.body.clientLeft ;//+ GetObjectLeft(targetfield) -  document.body.scrollLeft;
	
	if (event){
		
		// ÀÎÅÍ³Ý ÀÍ½ºÇÃ·Î·¯ ¹öÀüº° ³ôÀÌ±¸ÇÏ±â È®ÀÎ
		if(navigator.appVersion.indexOf("MSIE 8.0") >= 0)
		{
			pop_top = event.y + 100;
		}
		else
		{
			pop_top = event.y + document.documentElement.scrollTop + 100;
		} 
	
		pop_left = window.event.x + 100;
		
	}
	
	
		
	orgObjDate = objTargetField.value.split("-");
	if (orgObjDate.length == 3) {
		intOrgYear = parseInt(orgObjDate[0],10);
		intOrgMonth = parseInt(orgObjDate[1],10);
		intOrgDay = parseInt(orgObjDate[2],10);
	} else {
		intOrgYear = 0;
		intOrgMonth = 0;
		intOrgDay = 0;
	}

	thisObjDate = defaultdate.split("-");
	if (thisObjDate.length == 3) {
		thisYear = thisObjDate[0];
		thisMonth = thisObjDate[1];
		thisDay = thisObjDate[2];
	} else {
		thisYear = nowYear;
		thisMonth = nowMonth;
		thisDay = nowDay;
	}
	thisDate = thisYear + "-" +  thisMonth + "-" + thisDay;
	
	intThisYear = parseInt(thisYear,10);
	intThisMonth = parseInt(thisMonth,10);
	intThisDay = parseInt(thisDay,10);
	intThisDate = intThisYear + "-" +  intThisMonth + "-" + intThisDay;
	
	switch(intThisMonth) {
		case 1:
			intPrevYear = intThisYear -1;
			intPrevMonth = 12;
			intNextYear = intThisYear;
			intNextMonth = 2;
			break;
		case 12:
			intPrevYear = intThisYear;
			intPrevMonth = 11;
			intNextYear = intThisYear + 1;
			intNextMonth = 1;
			break;
		default:
			intPrevYear = intThisYear;
			intPrevMonth = intThisMonth - 1;
			intNextYear = intThisYear;
			intNextMonth = intThisMonth + 1;
			break;
	}

	CreateCalendar();

}

function CloseCalendar() {
	objPopup.hide();
}

function CreateCalendar() {

	var calendarHtml = "";
	calendarHtml += "<div id='calendarLayer' style='z-index:+999; position:absolute;'>";
	calendarHtml += "<table border='0' align='center' cellpadding='0' cellspacing='0' style='border-width:1; border-style:solid; border-color:#A0A0A0; font-size:9pt'>";
	
	//HEADER (½ÃÀÛ)/////////////////////////////////////////////////////////////////////////////////
	calendarHtml += "	<tr>";
	calendarHtml += "		<td id='calendarTop' align='center' bgcolor='#F4F4F4'>";
	
	calendarHtml += "			<table width='100%' border='0' align='center' cellpadding='2' cellspacing='0' style='font-size:9pt;' bgcolor='F4F4F4'>";
	calendarHtml += "				<tr>";
	
	calendarHtml += "					<td align='center'>";
	calendarHtml += "						<select name='selYear' align='absmiddle' onchange='parent.ChangeCalendar(this.value," + intThisMonth + "," + intThisDay + ");'>";
	for(var iyear=2002; iyear<=2010; iyear++) {
		if(iyear == intThisYear) {
			calendarHtml += "					<option value='" + iyear + "' selected>" + iyear + "</option>\n";
		} else {
			calendarHtml += "					<option value='" + iyear + "'>" + iyear + "</option>\n";
		}
	}
	calendarHtml += "						</select>&nbsp;";
	calendarHtml += "						<a title='ÀÌÀü´Þ' style='cursor:hand;' onclick='parent.ChangeCalendar(" + intPrevYear + "," + intPrevMonth + "," + intThisDay + ");' onfocus='this.blur();'>¢¸</a>";
	calendarHtml += "						<select name='selMonth' align='absmiddle' onchange='parent.ChangeCalendar(" + intThisYear + ",this.value," + intThisDay + ");'>";
	for(var imonth=1; imonth<=12; imonth++) {
		if(imonth == intThisMonth) {
			calendarHtml += "					<option value='" + imonth + "' selected>" + imonth + "</option>\n";
		} else {
			calendarHtml += "					<option value='" + imonth + "'>" + imonth + "</option>\n";
		}
	}
	calendarHtml += "						</select>";
	calendarHtml += "						<a title='´ÙÀ½´Þ' style='cursor:hand;' onclick='parent.ChangeCalendar(" + intNextYear + "," + intNextMonth + "," + intThisDay + ");' onfocus='this.blur();'>¢º</a>";
	calendarHtml += "					</td>";
	
	calendarHtml += "					<td align='right' width='20'>";
	calendarHtml += "						<input type='button' value='x' title='´Ý±â' style='font-size:9pt; color:#000000; border-width:1;  border-color:#808080; border-style:solid; cursor:hand; font-weight:bold; height:20px; width:20px; text-align:center; vertical-align:bottom;' align='absmiddle' onclick='parent.CloseCalendar();' onfocus='this.blur();'>";
	calendarHtml += "					</td>";
	
	calendarHtml += "				</tr>";
	calendarHtml += "			</table>";
	
	calendarHtml += "		</td>";
	calendarHtml += "	</tr>";
	//HEADER (³¡)///////////////////////////////////////////////////////////////////////////////////
	
	//BODY (½ÃÀÛ)///////////////////////////////////////////////////////////////////////////////////
	
	var startObjectDate, startDay, startWeek;
	var lastObjectDate, lastDay, lastWeek;
	
	startObjectDate = new Date(intThisYear, intThisMonth-1, 1);
	startDay = startObjectDate.getDate();
	startWeek = startObjectDate.getDay();
	
	if((intThisYear % 4)==0) {
		if ((intThisYear % 100) == 0) {
			if ((intThisYear % 400) == 0) {
				arrMonthsDay[2] = 29;
			}
		} else {
			arrMonthsDay[2] = 29;
		}
	} else {
		arrMonthsDay[2] = 28;
	}
	lastDay = arrMonthsDay[intThisMonth];
	lastObjectDate = new Date(intThisYear, intThisMonth-1, lastDay);
	lastDay = lastObjectDate.getDate();
	lastWeek = lastObjectDate.getDay();
	
	var i, j, k;
	var m = 0;
	var loofWeek = 1;
	
	var tmpChrColor = "#0000000";
	var tmpBgColor = "#FFFFFF";
	var tmpChrUnderline = "none";
	var tmpChrBold = "normal";
	
	calendarHtml += "	<tr>";
	calendarHtml += "		<td id='calendarBody' align='center'>";
	
	calendarHtml += "			<table border='0' align='center' cellpadding='4' cellspacing='2' style='font-size:9pt'>";
	
	calendarHtml += "				<tr bgcolor='#F4F4F4'>";
	calendarHtml += "					<td align='center' style='color:#FF0000;'>ÀÏ</td>";
	calendarHtml += "					<td align='center'>¿ù</td>";
	calendarHtml += "					<td align='center'>È­</td>";
	calendarHtml += "					<td align='center'>¼ö</td>";
	calendarHtml += "					<td align='center'>¸ñ</td>";
	calendarHtml += "					<td align='center'>±Ý</td>";
	calendarHtml += "					<td align='center' style='color:#3300CC;'>Åä</td>";
	calendarHtml += "				</tr>";
	
	calendarHtml += "				<tr>";
	
	for(i=0; i<startWeek; i++) {
		m = m + 1;
		calendarHtml += "					<td align='right'></td>";
	}
	
	for(j=startDay; j<=lastDay; j++) {
		
		m = m + 1;
		
		switch(m % 7) {
			case 0:
				tmpChrColor = "#3300CC";
				break;
			case 1:
				tmpChrColor = "#FF0000";
				break;
			default:
				tmpChrColor = "#0000000";
				break;
		}
		
		if(intNowYear == intThisYear && intNowMonth == intThisMonth && intNowDay == j) {
			tmpBgColor = "#FFEDD2";
		} else {
			tmpBgColor = "#FFFFFF";
		}
		
		if(intOrgYear == intThisYear && intOrgMonth == intThisMonth && intOrgDay == j) {
			tmpChrUnderline = "underline";
			tmpChrBold = "bold";
		} else {
			tmpChrUnderline = "none";
			tmpChrBold = "normal";
		}
		
		calendarHtml += "					<td align='right' style='cursor:hand; color:" + tmpChrColor + "; background-color:" + tmpBgColor + "; text-decoration:" + tmpChrUnderline + "; font-weight:" + tmpChrBold + ";' onclick='parent.SelectedDate(" + intThisYear + "," + intThisMonth + "," + j + ");' onmouseover='this.style.backgroundColor = \"#FFCFC4\";' onmouseout='this.style.backgroundColor = \"" + tmpBgColor + "\";'>" + j + "</td>";
		
		if((m % 7) == 0) {
			calendarHtml += "					</tr><tr>";
		}
	
	}
	
	for(k=(lastWeek+1); k<=6; k++) {
		m = m + 1;
		calendarHtml += "					<td align='right'></td>";
	}
	
	var cal_width = 170;
	var cal_height;
	
	if((m/7) > 5) {
		cal_height = 224;
	} else {
		cal_height = 204;
	}
	
	calendarHtml += "				</tr>";
	
	calendarHtml += "			</table>";
	
	calendarHtml += "		</td>";
	calendarHtml += "	</tr>";
	//BODY (³¡)/////////////////////////////////////////////////////////////////////////////////////
	
	//FOOTER (½ÃÀÛ)////////////////////////////////////////////////////////////////////////////////
	calendarHtml += "	<tr>";
	calendarHtml += "		<td id='calendarFooter' align='center'>";
	calendarHtml += "			<table width='100%' border='0' align='center' cellpadding='4' cellspacing='2' style='font-size:9pt;' bgcolor='#F4F4F4'>";
	calendarHtml += "				<tr>";
	calendarHtml += "					<td align='center'>";
	calendarHtml += "						<a title='¿À´Ã³¯Â¥¼±ÅÃ' style='cursor:hand;' onclick='parent.ChangeCalendar(" + intNowYear + "," + intNowMonth + "," + intNowDay + ");' onfocus='this.blur();'>¿À´ÃÀº " + intNowYear + "³â " + intNowMonth + "¿ù " + intNowDay + "ÀÏ</a>";
	calendarHtml += "					</td>";
	calendarHtml += "				</tr>";
	calendarHtml += "			</table>";
	calendarHtml += "		</td>";
	calendarHtml += "	</tr>";
	//FOOTER (³¡)//////////////////////////////////////////////////////////////////////////////////
	
	calendarHtml += "</table>";
	calendarHtml += "</div>";
	
	objPopup.document.body.innerHTML = calendarHtml;
	objPopup.show(pop_left, pop_top, cal_width, cal_height, document.body);

}

function ChangeCalendar(y, m, d) {
	
	var returnDate, returnYear, returnMonth, returnDay;
	
	returnYear = y;
	
	if(m < 10) {
		returnMonth = "0" + m;
	} else {
		returnMonth = m;
	}
	
	if(d < 10) {
		returnDay = "0" + d;
	} else {
		returnDay = d;
	}
	
	returnDate = returnYear + "-" + returnMonth + "-" + returnDay;
	
	OpenCalendar(objTargetField, returnDate);
	
}

function SelectedDate(sy, sm, sd) {
	
	var reDate, reYear, reMonth, reDay;
	
	reYear = sy;
	
	if(sm < 10) {
		reMonth = "0" + sm;
	} else {
		reMonth = sm;
	}
	
	if(sd < 10) {
		reDay = "0" + sd;
	} else {
		reDay = sd;
	}
	
	reDate = reYear + "-" + reMonth + "-" + reDay;
	
	objTargetField.value = reDate;
	CloseCalendar();
	
}

/*
 |=====================================================================================
*/


/*
 |=====================================================================================
 |ÀÌ¹ÌÁö °ü·Ã UTIL
 |-------------------------------------------------------------------------------------
*/

function ssmdImageSizeConvert(eleId, w, h) {

	var thisContentImg;
	var myImage;
	var myWidth, myHeight;
	var newWidth, newHeight;
	
	thisContentImg = document.getElementById(eleId);

	if(thisContentImg && thisContentImg.src != "") {
	
		myImage = new Image();
		
		myImage.src = thisContentImg.src;
		myWidth = myImage.width;
		myHeight = myImage.height;
		
		if(myWidth > myHeight) {
			newWidth = (myWidth > w) ? w : myWidth;
			newHeight = parseInt((myHeight * newWidth) / myWidth)
			if(newHeight > h) {
				newHeight = h;
				newWidth = parseInt((myWidth * newHeight) / myHeight)
			}
		} else {
			newHeight = (myHeight > h) ? h : myHeight;
			newWidth = parseInt((myWidth * newHeight) / myHeight)
			if(newWidth > w) {
				newWidth = w;
				newHeight = parseInt((myHeight * newWidth) / myWidth)
			}
		}
		
		thisContentImg.width = newWidth;
		thisContentImg.height = newHeight;
	}
	
	return;

}

function ssmdShowOriginalImage(url){
	
	var h = 100;  //200
	var w =100;  //200
	var iMyWidth;
	var iMyHeight;

	//iMyWidth = (window.screen.width/2) - (w/2+50);
	//iMyHeight = (window.screen.height/2) - (h/2+50);
	iMyWidth = 0;  //20
	iMyHeight = 0;  //20
	
	var urlname = "/common/execute/previewImage.asp?imgurl=" + escape(url);
	
	var openWin = window.open(urlname, "","left=" + iMyWidth + ",top=" + iMyHeight + ",screenX=" + iMyWidth + ",screenY=" + iMyHeight + ",height=" + h + ",width=" + w + ", toolbar=no, menubar=no,directories=no,resizable=no,status=no,scrollbars=yes");
	
	openWin.focus();

}

function ssmdShowOriginalFlash(url){
	
	var h = 200;  //300
	var w = 200;  //336
	var iMyWidth;
	var iMyHeight;

	//iMyWidth = (window.screen.width/2) - (w/2+50);
	//iMyHeight = (window.screen.height/2) - (h/2+50);
	iMyWidth = 20;
	iMyHeight = 20;
	
	var thisForm = document.frmMyform;
	var urlname = "/common/execute/previewFlash.asp?furl=" + escape(url);
	
	var openWin = window.open(urlname, "","left=" + iMyWidth + ",top=" + iMyHeight + ",screenX=" + iMyWidth + ",screenY=" + iMyHeight + ",height=" + h + ",width=" + w + ", toolbar=no, menubar=no,directories=no,resizable=no,status=no,scrollbars=yes");
	
	openWin.focus();

}

/*
 |=====================================================================================
*/
