var fixedX = -1;
var fixedY = -1;
var startAt = 0; //¿äÀÏÇ¥½Ã
var showToday = 1; // ¿À´Ã ³¯ÀÚ Ç¥½Ã À¯¹« - 0 : °¨Ãã / 1 : º¸ÀÓ
var imgDir = './'; // ÀÌ¹ÌÁö µð·ºÅä¸® - ./ : ÇöÀç µð·ºÅä¸®

var crossobj, crossMonthObj, crossYearObj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear

var bPageLoaded = false;
var ie = document.all;
var dom = document.getElementById;
var bShow = false;
var ns4 = document.layers;

var today = new	Date();
var dateNow = today.getDate();
var monthNow = today.getMonth();
var yearNow = today.getYear();
var imgsrc = new Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif"); // ÀÌ¹ÌÁö ¹è¿­
var img	= new Array(); // ¹è¿­ ¼±¾ð

var monthName = new Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12");
var monthName2 =	new	Array("1¿ù", "2¿ù", "3¿ù", "4¿ù", "5¿ù", "6¿ù", "7¿ù", "8¿ù", "9¿ù", "10¿ù", "11¿ù", "12¿ù");
var dayName = new Array("ÀÏ","¿ù","È­","¼ö","¸ñ","±Ý","Åä");

function hideElement(elmID, overDiv){
	if(ie) {
		for(i = 0; i < document.all.tags(elmID).length; i++) {
			obj = document.all.tags(elmID)[i];

			if(!obj || !obj.offsetParent) {
				continue;
			}
      
			objLeft = obj.offsetLeft;
			objTop = obj.offsetTop;
			objParent = obj.offsetParent;
          
			while(objParent.tagName.toUpperCase() != "BODY") {
				objLeft += objParent.offsetLeft;
				objTop += objParent.offsetTop;
				objParent = objParent.offsetParent;
			}
      
			objHeight = obj.offsetHeight;
			objWidth = obj.offsetWidth;
      
			if((overDiv.offsetLeft + overDiv.offsetWidth) <= objLeft);
			else if((overDiv.offsetTop + overDiv.offsetHeight) <= objTop);
			else if(overDiv.offsetTop >= (objTop + objHeight));
			else if(overDiv.offsetLeft >= (objLeft + objWidth));
			else {
				obj.style.visibility = "hidden";
			}
		}
	}
}

function showElement(elmID) {
	if(ie) {
		for(i = 0; i < document.all.tags(elmID).length; i++) {
			obj = document.all.tags( elmID )[i];
          
			if(!obj || !obj.offsetParent) {
				continue;
			}
        
			obj.style.visibility = "";
		}
	}
}

function HolidayRec(d, m, y, desc) {
	this.d = d;
	this.m = m;
	this.y = y;
	this.desc = desc;
}

var HolidaysCounter = 0;
var Holidays = new Array();
var styleAnchor = "text-decoration:none;color:black;";
var styleLightBorder = "border-style:solid;border-width:1px;border-color:#a0a0a0;";

function addHoliday(d, m, y, desc) {
	Holidays[HolidaysCounter++] = new HolidayRec ( d, m, y, desc );
}

if(dom) {
	for(i=0; i<imgsrc.length; i++) {
		img[i] = new Image;
		img[i].src = imgDir + imgsrc[i];
	}

    document.write ("<div onclick='bShow=true' id='calendar' style='z-index:+999;position:absolute;visibility:hidden;'>");
	document.write ("<table width='211' height='149' border='0' cellpadding='0' cellspacing='0'><tr><td align='center' valign='top'>");
	document.write ("<table width='203' border='0' cellspacing='0' cellpadding='0'><tr><td height='32' align='center' background='/img/common/cal_01.gif'>");
	document.write ("<B><span id='caption'></span></B>");    //Å¸ÀÌÆ²
	document.write ("</td></tr>");
	document.write ("<tr><td><img src='/img/common/cal_02.gif' width='203' height='5' /></td></tr>");
	document.write ("<tr><td align='center' valign='top' background='/img/common/cal_03.gif'>");
	document.write ("<span id='content'></span>");   //³»¿ë
	document.write ("</td></tr>");
	document.write ("<tr><td height='32' align='center' valign='bottom' background='/img/common/cal_03.gif'>");
	document.write ("<table width='100' border='0' cellspacing='0' cellpadding='0'>");
	document.write ("<tr><td colspan='2' align='center'><a href='javascript:hideCalendar();'><img src='/img/common/cal_btn02.gif' width='46' height='22' align='absbottom'></a></td></tr>");
	document.write ("</table></td></tr><tr><td><img src='/img/common/cal_04.gif' width='203' height='11' /></td></tr></table></td></tr></table>");
	document.write ("</div>");
	document.write ("<div id='selectMonth' style='z-index:+999;position:absolute;visibility:hidden;'></div>");
	document.write ("<div id='selectYear' style='z-index:+999;position:absolute;visibility:hidden;'></div>");
}

function swapImage(srcImg, destImg) {
	if(ie) {
		document.getElementById(srcImg).setAttribute("src",imgDir + destImg);
	}
}

function init() {
	if(!ns4) {
		if(!ie) {
			yearNow += 1900;
		}

		crossobj = (dom)?document.getElementById("calendar").style : ie? document.all.calendar : document.calendar;
		hideCalendar();
		crossMonthObj = (dom)?document.getElementById("selectMonth").style : ie? document.all.selectMonth : document.selectMonth;
		crossYearObj = (dom)?document.getElementById("selectYear").style : ie? document.all.selectYear : document.selectYear;
		monthConstructed = false;
		yearConstructed = false;

		sHTML1 = "<table width='150' border='0' cellspacing='0' cellpadding='0'><tr><td width='6'>";
		sHTML1 += "<a href='javascript:decMonth();' ><img src='/img/common/cal_dot01.gif' width='6' height='11'></a></span> ";
		sHTML1 += "<td width='138' align='center'>";
		sHTML1 += "<table width='83' border='0' cellspacing='0' cellpadding='0'><tr>";
		sHTML1 += "<td align='center' class='cal_cal' colspan='2'>";
		sHTML1 += "<span id='spanMonthYear'></span>";
		sHTML1 += "</td></tr></table></td><td width='6' align='center'>";	
		sHTML1 += "<a href='javascript:incMonth();' ><img src='/img/common/cal_dot02.gif' width='6' height='11'></a></span> ";
		sHTML1 += "</td></tr></table>";

		document.getElementById("caption").innerHTML = sHTML1;
		bPageLoaded = true;
	}
}

function hideCalendar()	{
	crossobj.visibility = "hidden";
	if(crossMonthObj != null) {
		crossMonthObj.visibility="hidden";
	}

	if(crossYearObj != null) {
		crossYearObj.visibility="hidden";
	}

	showElement('SELECT');
	showElement('APPLET');
}

function padZero(num) {
	return (num < 10)? '0' + num : num;
}

function constructDate(d,m,y) {
	sTmp = dateFormat
	sTmp = sTmp.replace("dd","<e>");
	sTmp = sTmp.replace("d","<d>");
	sTmp = sTmp.replace("<e>",padZero(d));
	sTmp = sTmp.replace("<d>",d);
	sTmp = sTmp.replace("mmmm","<p>");
	sTmp = sTmp.replace("mmm","<o>");
	sTmp = sTmp.replace("mm","<n>");
	sTmp = sTmp.replace("m","<m>");
	sTmp = sTmp.replace("<m>",m+1);
	sTmp = sTmp.replace("<n>",padZero(m+1));
	sTmp = sTmp.replace("<o>",monthName[m]);
	sTmp = sTmp.replace("<p>",monthName2[m]);
	sTmp = sTmp.replace("yyyy",y);

	return sTmp.replace("yy",padZero(y%100));
}

function closeCalendar() {
	var sTmp;
	hideCalendar();
	ctlToPlaceValue.value =	constructDate(dateSelected,monthSelected,yearSelected);
}

function StartDecMonth() {
	intervalID1 = setInterval("decMonth()",80);
}

function StartIncMonth() {
	intervalID1 = setInterval("incMonth()",80);
}

function incMonth() {
	monthSelected++;

	if (monthSelected>11) {
		monthSelected=0;
		yearSelected++;
	}
	constructCalendar();
}

function decMonth() {
	monthSelected--;

	if (monthSelected<0) {
		monthSelected=11;
		yearSelected--;
	}
	constructCalendar();
}

function constructMonth() {
	popDownYear();

	if (!monthConstructed) {
		sHTML =	"";

		for(i=0; i<12; i++) {
			sName =	monthName[i];

			if (i==monthSelected){ sName =	"<B>" +	sName +	"</B>"; 	}   // ÇöÀç ¿ù

			sHTML += "<tr><td id='m" + i + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onClick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'> " + sName + " </td></tr>";
		}
		// ¿ù Ç¥ Å©±â
		document.getElementById("selectMonth").innerHTML = "<table width=50	style='font-family:±¼¸²; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;' bgcolor='#FFFFDD' cellspacing=0 onmouseover='clearTimeout(timeoutID1)'	onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" +	sHTML +	"</table>";
		monthConstructed = true;
	}
}

function popUpMonth() {
	constructMonth();
	crossMonthObj.visibility = (dom||ie)? "visible"	: "show";
	crossMonthObj.left = parseInt(crossobj.left) + 50;
	crossMonthObj.top = parseInt(crossobj.top) + 26;
	hideElement('SELECT', document.getElementById("selectMonth"));
	hideElement('APPLET', document.getElementById("selectMonth"));			
}

function popDownMonth()	{
	crossMonthObj.visibility = "hidden";
}

function incYear() {
	for(i=0; i<7; i++) {
		newYear	= (i+nStartingYear)+1;

		if (newYear==yearSelected) {
			txtYear = " <B>"+ newYear +"</B> "; 
		} else {
			txtYear = " " + newYear + " "; 
		}
		document.getElementById("y"+i).innerHTML = txtYear;
	}
	nStartingYear++;
	bShow = true;
}

function decYear() {
	for (i=0; i<7; i++) {
		newYear	= (i+nStartingYear)-1;

		if (newYear==yearSelected) {
			txtYear = " <B>"+ newYear +"</B> "; 
		} else {
			txtYear = " " + newYear + " "; 
		}
		document.getElementById("y"+i).innerHTML = txtYear;
	}
	nStartingYear--;
	bShow = true;
}

function selectYear(nYear) {
	yearSelected = parseInt(nYear+nStartingYear);
	yearConstructed = false;
	constructCalendar();
	popDownYear();
}

function constructYear() {
	popDownMonth();
	sHTML =	"";

	if(!yearConstructed) { // ³âµµ ÀÌÀü ³âµµ ¸µÅ©
		sHTML ="<tr><td align='center' style='cursor:pointer'	 "
		sHTML +="	onmouseover='this.style.backgroundColor=\"#FFCC99\"' "
		sHTML +="	onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"'  "
		sHTML +="	onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' "
		sHTML +="	onmouseup='clearInterval(intervalID1)'> "
		sHTML +="	¡ã</td></tr>";
		j = 0;
		nStartingYear =	yearSelected-3;

		for (i=(yearSelected-3); i<=(yearSelected+3); i++) {
			sName =	i;

			//ÇöÀç ³âµµ
			if (i==yearSelected) { sName =	"<b>" +	sName +	"</b>" }
			sHTML +="<tr><td height='15' id='y" + j + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' "
			sHTML +=" style='cursor:pointer' onClick='selectYear("+j+");event.cancelBubble=true'> " + sName + "³â  "
			sHTML +="</td></tr>";
			j ++;
		}
        
		// ³âµµ ´ÙÀ½ ³âµµ ¸µÅ©
		sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#FFCC99\"' style='cursor:pointer' "
		sHTML += " onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' "
		sHTML += " onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'	"
		sHTML += " onmouseup='clearInterval(intervalID2)'> "
		sHTML += " ¡å</td></tr>";

        // ³âµµ Ç¥ Å©±â
		document.getElementById("selectYear").innerHTML	= ""+
		"<table width='55' style='font-family:±¼¸²; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;' bgcolor='#FFFFDD' "+ 
		" onmouseover='clearTimeout(timeoutID2)' "+
		" onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"+
		""+ sHTML	+ ""+
		"</table>";
		yearConstructed	= true;
	}
}

function popDownYear() {
	clearInterval(intervalID1);
	clearTimeout(timeoutID1);
	clearInterval(intervalID2);
	clearTimeout(timeoutID2);
	crossYearObj.visibility= "hidden";
}

function popUpYear() {
	var leftOffset;
	constructYear();
	crossYearObj.visibility	= (dom||ie)? "visible" : "show";
	leftOffset = parseInt(crossobj.left) + document.getElementById("spanYear").offsetLeft;

	if(ie) {
		leftOffset += 6;
	}
	crossYearObj.left = leftOffset;
	crossYearObj.top = parseInt(crossobj.top) + 26;
}

function WeekNbr(n) {
	year = n.getFullYear();
	month = n.getMonth() + 1;

	if (startAt == 0) {
		day = n.getDate() + 1;
	} else {
		day = n.getDate();
	}
 
	a = Math.floor((14-month) / 12);
	y = year + 4800 - a;
	m = month + 12 * a - 3;
	b = Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400);
	J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045;
	d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
	L = Math.floor(d4 / 1460);
	d1 = ((d4 - L) % 365) + L;
	week = Math.floor(d1/7) + 1;
 
	return week;
} 

function constructCalendar() {
	var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31);
	var startDate =	new Date (yearSelected,monthSelected,1);
	var endDate;

	if(monthSelected==1) {
		endDate	= new Date (yearSelected,monthSelected+1,1);
		endDate	= new Date (endDate	- (24*60*60*1000));
		numDaysInMonth = endDate.getDate();
	} else {
		numDaysInMonth = aNumDays[monthSelected];
	}

	datePointer = 0;
	dayPointer = startDate.getDay() - startAt;
		
	if(dayPointer<0) {
		dayPointer = 6;
	}

	sHTML = "<table width='181' border='0' cellspacing='0' cellpadding='0'><tr><td height='22'>";
	sHTML +=	 "<table width='181' border='0' cellspacing='1' cellpadding='0'><tr>";

	for(i=0; i<7; i++) {   // ¿äÀÏ
		if(i==0)	 sHTML += "<td width='27' bgcolor='#FFFFFF' align='center' style='font-size: 11px;  color: #ef2700; font-family: \"µ¸À½\"; text-decoration: none;'><B>"+ dayName[i]+"</B></td>";
		else if(i==6)  sHTML += "<td width='27' bgcolor='#FFFFFF' align='center' style='font-size: 11px;  color: #0060b2; font-family: \"µ¸À½\"; text-decoration: none;'><B>"+ dayName[i]+"</B></td>";
		else   sHTML += "<td width='27' bgcolor='#FFFFFF' align='center' style='font-size: 11px;  color: #707070; font-family: \"µ¸À½\"; text-decoration: none;'><B>"+ dayName[i]+"</B></td>";
	}
	sHTML += "</tr></table></td></tr>";
	sHTML += "<tr><td><table width='181' border='0' cellpadding='0' cellspacing='1' bgcolor='eaeaea'><tr>";
		
	for(var i=1; i<=dayPointer;i++)	{  // ºó ³¯Â¥
		sHTML += "<td bgcolor='#FFFFFF'>&nbsp;</td>";
	}
	
	for(datePointer=1; datePointer<=numDaysInMonth; datePointer++) {
		dayPointer++;
		sHTML += "<td align='center'  bgcolor='#FFFFFF'>";
		sStyle = styleAnchor;

		if((datePointer==odateSelected) && (monthSelected==omonthSelected) && (yearSelected==oyearSelected)) {
			sStyle += styleLightBorder;
		}
		sHint = "";

		for(k=0;k<HolidaysCounter;k++) {
			if((parseInt(Holidays[k].d)==datePointer)&&(parseInt(Holidays[k].m)==(monthSelected+1))) {
				if((parseInt(Holidays[k].y)==0)||((parseInt(Holidays[k].y)==yearSelected)&&(parseInt(Holidays[k].y)!=0))) {
					sStyle+="background-color:#FFDDDD;";
					sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc;
				}
			}
		}
		var regexp= /\"/g;
		sHint=sHint.replace(regexp,"&quot;");
		
		if((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow)) {  // ÇöÀç ¿À´Ã ³¯Â¥
			sHTML += "<b><a style='background-color: #dbdbdb;font-size: 11px;  color: #707070; font-family: \"µ¸À½\";text-decoration: none;font-weight: bold;' href='javascript:dateSelected="+datePointer+";closeCalendar();'> " + datePointer + "</a></b>";
		} else
		if(dayPointer % 7 == (startAt * -1)+1) {  // ÀÏ¿äÀÏ ÀÏ¶§
			sHTML += "<a style='font-size: 11px;  color: #ef2700; font-family: \"µ¸À½\"; text-decoration: none;' href='javascript:dateSelected="+datePointer + ";closeCalendar();'> <font color=red>" + datePointer + "</font> </a>";
		}else if(dayPointer % 7 == (startAt * -1)){  //Åä¿äÀÏÀÏ¶§
			sHTML += "<a style='font-size: 11px;  color: #0060b2; font-family: \"µ¸À½\"; text-decoration: none;' href='javascript:dateSelected="+datePointer + ";closeCalendar();'> <font color=blue>" + datePointer + "</font> </a>";
		} else {
			sHTML += "<a style='font-size: 11px;  color: #707070; font-family: \"µ¸À½\"; text-decoration: none;' href='javascript:dateSelected="+datePointer + ";closeCalendar();'> " + datePointer + " </a>";
		}
		sHTML += "";

		if((dayPointer+startAt) % 7 == startAt) { 
			sHTML += "</tr><tr  bgcolor='#FFFFFF'>";
		}
	}

	if(dayPointer%7 != 0){
		var r = 7 - (dayPointer%7);
		for(var c=0;c<r;c++){
			sHTML +="<td bgcolor='#FFFFFF'> </td>";
		}
	}

	sHTML += "</tr></table></td></tr></table>";

	document.getElementById("content").innerHTML = sHTML;  
	document.getElementById("spanMonthYear").innerHTML = yearSelected + " / " +monthName[monthSelected];
}

//>>>>>>>>>> ½ÃÀÛ
function popUpCalendar(ctl, ctl2, format) {
var leftpos = 0;
var toppos = 0;

if(bPageLoaded){
	if(crossobj.visibility == "hidden"){
		ctlToPlaceValue	= ctl2;
		dateFormat=format;
		formatChar = " ";
		aFormat	= dateFormat.split(formatChar);

			if(aFormat.length<3) {
				formatChar = "/";
				aFormat	= dateFormat.split(formatChar);

				if(aFormat.length<3) {
					formatChar = ".";
					aFormat	= dateFormat.split(formatChar);

					if(aFormat.length<3) {
						formatChar = "-";
						aFormat	= dateFormat.split(formatChar);

						if (aFormat.length<3) {
							formatChar="";
						}
					}
				}
			}
			tokensChanged =	'0';

			if(formatChar != "") {
				aData =	ctl2.value.split(formatChar);

				for(i=0;i<3;i++) {
					if ((aFormat[i]=="d") || (aFormat[i]=="dd")) {
						dateSelected = parseInt(aData[i], 10);
						tokensChanged++;
					} else
					if((aFormat[i]=="m") || (aFormat[i]=="mm")) {
						monthSelected =	parseInt(aData[i], 10) - 1;
						tokensChanged++;
					} else
					if(aFormat[i]=="yyyy") {
						yearSelected = parseInt(aData[i], 10);
						tokensChanged++;
					}else
					if(aFormat[i]=="mmm") {

						for(j=0; j<12;	j++) {
							if (aData[i]==monthName[j]) {
								monthSelected=j;
								tokensChanged++;
							}
						}
					} else
					if(aFormat[i]=="mmmm") {
						for(j=0; j<12;	j++) {
							if (aData[i]==monthName2[j]) {
								monthSelected=j;
								tokensChanged ++;
							}
						}
					}
				}
			}

			if((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected)) {
				aData = ctl2.value;
				if(aData==""){
					dateSelected = dateNow;
					monthSelected =	monthNow;
					yearSelected = yearNow;
				}else{
					dateSelected = dateNow;
					monthSelected =	monthNow;
					yearSelected = yearNow;
					
					if(aData.substr(6,1)==0) dateSelected = parseInt(aData.substr(7,1));
					else dateSelected = parseInt(aData.substr(6,2));
					if(aData.substr(4,1)==0) monthSelected = parseInt(aData.substr(5,1))-1;
					else monthSelected = parseInt(aData.substr(4,2))-1;
					//monthSelected =	(aData.substr(4,2));
					yearSelected = parseInt(aData.substr(0,4));
					//alert(yearSelected + " : " + monthSelected + " : " + dateSelected);
				}
			}
			odateSelected=dateSelected;
			omonthSelected=monthSelected;
			oyearSelected=yearSelected;

			aTag = ctl;
			do {
				aTag = aTag.offsetParent;
				leftpos	+= aTag.offsetLeft;
				toppos += aTag.offsetTop;
			} while(aTag.tagName!="BODY");

			leftpos = leftpos - 120;

			crossobj.left =	fixedX==-1 ? ctl.offsetLeft	+ leftpos :	fixedX;
			crossobj.top = fixedY==-1 ?	ctl.offsetTop +	toppos + ctl.offsetHeight +	2 :	fixedY;
			constructCalendar (1, monthSelected, yearSelected);
			crossobj.visibility=(dom||ie)? "visible" : "show";

			hideElement('SELECT', document.getElementById("calendar"));
			hideElement('APPLET', document.getElementById("calendar"));			

			bShow = true;
		} else {
			hideCalendar();

			if (ctlNow!=ctl) {
				popUpCalendar(ctl, ctl2, format);
			}
		}
		ctlNow = ctl;
	}
}

document.onkeypress = function hidecal1() { 
	if(event.keyCode==27) {
		hideCalendar();
	}
}

document.onclick = function hidecal2() { 		
	if(!bShow) {
		hideCalendar();
	}
	bShow = false;
}

if(ie) {
	init();
} else {
	window.onload = init;
}
var layerQueue = new Array();
var layerIndex = -1;

function hideElement(elmID, overDiv) {
	if(ie) {
		for(i = 0; i < document.getElementsByTagName(elmID).length; i++) {
			obj = document.getElementsByTagName( elmID )[i];

			if(!obj || !obj.offsetParent) {
				continue;
			}
			objLeft   = obj.offsetLeft;
			objTop    = obj.offsetTop;
			objParent = obj.offsetParent;
	  
			while(objParent.tagName.toUpperCase() != "BODY") {
				objLeft  += objParent.offsetLeft;
				objTop   += objParent.offsetTop;
				objParent = objParent.offsetParent;
			}

			objHeight = obj.offsetHeight;
			objWidth = obj.offsetWidth;

			if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
			else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
			else if( overDiv.offsetTop >= ( objTop + objHeight ));
			else if( overDiv.offsetLeft >= ( objLeft + objWidth ));
			else {
				obj.style.visibility = "hidden";
			}
		}
	}
}

function showElement(elmID) {
	if(ie) {
		for(i = 0; i < document.getElementsByTagName( elmID ).length; i++) {
			obj = document.getElementsByTagName( elmID )[i];
	  
			if(!obj || !obj.offsetParent) {
				continue;
			}
	
			obj.style.visibility = "";
		}
	}
}

function lw_getObj(objName) {
	return (dom)?document.getElementById(objName).style:ie?eval("document.all."+objName) :eval("document."+objName);
}

function lw_hideLayer() {
	showElement('SELECT', document.getElementById(layerQueue[layerIndex]));
	showElement('APPLET', document.getElementById(layerQueue[layerIndex]));

	lw_getObj(layerQueue[layerIndex--]).visibility = "hidden";
}

function lw_closeAllLayers() {
	while(layerIndex >= 0) {
		lw_hideLayer();
	}
}

function lw_closeLastLayer() {
	if(layerIndex >= 0) {
		while ((lw_getObj(layerQueue[layerIndex]).visibility!="visible") && (layerIndex>0)) {
			layerIndex--;
		}
		lw_hideLayer();
	}
}

function lw_escLayer(e) {
	if(navigator.appName=="Netscape") {
		var keyCode = e.keyCode?e.keyCode:e.which?e.which:e.charCode;
		if((keyCode==27)||(keyCode==1)) {
			lw_closeLastLayer();
		}
	} else
	if((event.keyCode==0)||(event.keyCode==27)) {
		lw_closeLastLayer();		
	}
}

document.onkeypress = lw_escLayer;
document.onclick = lw_closeAllLayers;

