﻿var InvalidBgShow='none';
var InvalidBgColor='#000000';
var InvalidBgName='GrayBg';
var CalendarName='MyCalendar'
var CalendarShow='none'
var MovingObjName=''
var PopUpName='';
var PopUpLengthName='';
var Language='';
var A=document.getElementById
var B=document.all;
var XFromLayer=0;
var YFromLayer=0;
var YofLayer=0;
var XofLayer=0
var scrollTop,scrollLeft=0;
var NewDate = new Date();
var CurrentMonth
var CurrentYear
var CurrentDate
var CalendarFormat
var CalendarStartReturnField,CalendarEndReturnField,UsedFieldCount,NowField
var minDate,minYear,minMonth,maxDate,maxYear,maxMonth
var PminDate,PminYear,PminMonth,PmaxDate,PmaxYear,PmaxMonth
var OldPage,OldPageLink,OldPageLabel,OldCategory
var myInterval
var nn6=document.getElementById&&!document.all;

var isdrag=false;
var x,y,tx,ty;
var dobj;
var Maskiframe

document.onmousedown=selectmouse;
document.onmouseup=new Function("isdrag=false;");

function movemouse(e)
{
	if (isdrag)
	{
		var calcX,calcY
		calcX=nn6 ? tx + e.clientX - x : tx + event.clientX - x;
		calcY=nn6 ? ty + e.clientY - y : ty + event.clientY - y;

		if (scrollTop<=calcY && Number(scrollTop+document.body.clientHeight)>=Number(calcY+dobj.offsetHeight))
		{
			dobj.style.top  = calcY;
		}
		if (scrollLeft<=calcX && Number(scrollLeft+document.body.clientWidth)>=Number(calcX+dobj.offsetWidth))
		{
			dobj.style.left = calcX;
		}
		return false;
	}
}

function selectmouse(e) 
{
  var fobj       = nn6 ? e.target : event.srcElement;
  var topelement = nn6 ? "HTML" : "BODY";

	while (fobj.tagName != topelement && fobj.getAttribute('name') != "DragArea")
	{
		fobj = nn6 ? fobj.parentNode : fobj.parentElement;
	}

	if (fobj.getAttribute('name') == "DragArea")
	{
		while (fobj.tagName != topelement && fobj.className != "DragIt")
		{
			fobj = nn6 ? fobj.parentNode : fobj.parentElement;
		}
		
		if (fobj.className=="DragIt")
		{
			isdrag = true;
			dobj = fobj;
			tx = parseInt(dobj.style.left+0);
			ty = parseInt(dobj.style.top+0);
			x = nn6 ? e.clientX : event.clientX;
			y = nn6 ? e.clientY : event.clientY;
			GetScroll();
			document.onmousemove=movemouse;
			return false;
		}
	}
}
Maskiframe="<!--[if lte IE 6.5]><iframe id='MyMask' name='MyMask' class='Mask_iframe' frameborder='0'></iframe><![endif]-->"


function disableSelection(target)
{
if (typeof target.onselectstart!="undefined") //IE route
	target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined") //Firefox route
	target.style.MozUserSelect="none"
else //All other route (ie: Opera)
	target.onmousedown=function(){return false}
	target.style.cursor = "default"
}

function enableSelection(target)
{
if (typeof target.onselectstart!="undefined") //IE route
	target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined") //Firefox route
{	target.style.MozUserSelect="none"}
else //All other route (ie: Opera)
	target.onmousedown=function(){return false}
	target.style.cursor = "default"
}


function GetScroll()
{
	scrollTop=Number(document.body.scrollTop);
	scrollLeft=Number(document.body.scrollLeft);
	
	}

function ddlgoto(objDdl)
{
	url=objDdl.value
	if (url!='')
	{window.open(url,'_self');}
	}

function autoStop(funcName,param)
{
	mm=setInterval(funcName,rate,param)
	clearInterval(mm);
	}

function Hide(ObjName)
{
	if (ObjName)
	{
		if (ObjName!=undefined)
		{
			if (ObjName.name!=undefined || ObjName.name!=null )
			{
				ObjName.style.display='none';
			}
			else
			{
				ObjName=document.getElementById(ObjName);
				if (ObjName)
				{
					ObjName.style.display='none';
				}
			}
		}
	}
}

function Show(ObjName)
{
	if (ObjName)
	{
		if (ObjName.name!=undefined)
		{
			ObjName.style.display='block';
		}
		else
		{
			ObjName=document.getElementById(ObjName);
			if (ObjName)
			{
				ObjName.style.display='block';
			}
		}
	}
}

function ShowHide(ObjName)
{
	if (ObjName)
	{
		if (ObjName.name!=undefined)
		{
			if (ObjName.style.display.toLowerCase()=="block" || ObjName.style.display.toLowerCase()=="" )
			{
				ObjName.style.display='none';
			}
			else
			{
			ObjName.style.display='block';
			}
	
		}
		else
		{
			ObjName=document.getElementById(ObjName);
			if (ObjName)
			{
				if (ObjName.style.display.toLowerCase()=="block" || ObjName.style.display.toLowerCase()=="" )
				{
					ObjName.style.display='none';
				}
				else
				{
				ObjName.style.display='block';
				}
			}
		}
	}
}


function SetFoucus(ObjName)
{
	ObjName=document.getElementById(ObjName);
	if (ObjName)
	{
		ObjName.focus();
		}
	}

function SetValue(ObjName,ValueString)
{

	if (ObjName)
	{
		if (ObjName.name!=undefined)
		{
			if (ObjName)
			{
				ObjName.value=ValueString
			}			
		}
		else
		{
			ObjName=document.getElementById(ObjName);
			if (ObjName)
			{
				ObjName.value=ValueString;
			}
		}
	}
}

function ToPageMiddle(ObjName,LengthObjName)
{
	if (!isdrag)
	{
		GetScroll()
		if (ObjName && LengthObjName)
		{
			ObjName=document.getElementById(ObjName);
			LengthObjName=document.getElementById(LengthObjName);
		}
		else
		{
			ObjName=document.getElementById(PopUpName);
			LengthObjName=document.getElementById(PopUpLengthName);
			
			}
		
		if (ObjName && LengthObjName)
		{
			var pageWidth = document.body.offsetWidth;
			var pageHeight = document.body.offsetHeight;
			
			var ObjWidth = Number(LengthObjName.offsetWidth);
			var ObjHeight = Number(LengthObjName.offsetHeight) || Number(LengthObjName.scrollHeight) || Number(LengthObjName.height);
			var Left=((pageWidth-ObjWidth)/2)+scrollLeft;
			var Top=((pageHeight)/4)+scrollTop;
			ObjName.style.left=Left;
			ObjName.style.width=LengthObjName.offsetWidth;
			ObjName.style.top=Top;
			}
	}
}
	  
function FullPageWidth()
{
	ObjName=document.getElementById(InvalidBgName);

	if(document.body.scrollWidth== document.getElementById("mainTable").scrollWidth)
	{
		var pageWidth= document.getElementById("mainTable").scrollWidth;
		}
	else if (document.body.offsetWidth!== document.getElementById("mainTable").scrollWidth)
	{
		var pageWidth= '100%';
		}
	if (ObjName)
	{
		ObjName.style.width=pageWidth;
//	document.write(pageLeft)
		}
	}
	 
function InvalidBg(options) {
  // Pass true to gray out screen, false to ungray
  // options are optional.  This is a JSON object with the following (optional) properties
  // opacity:0-100         // Lower number = less grayout higher = more of a blackout 
  // zindex: #             // HTML elements with a higher zindex appear on top of the gray out
  // bgcolor: (#xxxxxx)    // Standard RGB Hex color code
  // grayOut(true, {'zindex':'50', 'bgcolor':'#0000FF', 'opacity':'70'});
  // Because options is JSON opacity/zindex/bgcolor are all optional and can appear
  // in any order.  Pass only the properties you need to set.
  var options = options || {}; 
  var zindex = options.zindex || 1;
  var opacity = options.opacity || 70;
  var opaque = (opacity / 100);
  var bgcolor = InvalidBgColor;
  var dark=document.getElementById(InvalidBgName);
  if (!dark) {
    var tbody = document.getElementsByTagName("body")[0];
    var tnode = document.createElement('div');          // Create the layer.
        tnode.style.position='absolute';                // Position absolutely
        tnode.style.top='0px';                          // In the top
        tnode.style.left='0px';                         // Left corner of the page
        tnode.style.overflow='hidden';                  // Try to avoid making scroll bars            
        tnode.style.display='none';                     // Start out Hidden
        tnode.id=InvalidBgName;                   			// Name it so we can find it later
	    tbody.appendChild(tnode);                       // Add it to the web page
    dark=document.getElementById(InvalidBgName);  			// Get the object.
  }

    // Calculate the page width and height 
    if( document.body && ( document.body.scrollWidth || document.body.scrollHeight ) ) {
        var pageWidth = document.body.scrollWidth;
        var pageHeight = document.body.scrollHeight;
    } else if( document.body.offsetWidth ) {
      var pageWidth = document.body.offsetWidth;
      var pageHeight = document.body.offsetHeight;
    } else {
       var pageWidth='100%';
       var pageHeight='100%';
    }   
    //set the shader to cover the entire page and make it visible.
    dark.style.opacity=opaque;                      
    dark.style.MozOpacity=opaque;
    dark.style.filter='alpha(opacity='+opacity+')'; 
    dark.style.zIndex=zindex;        
    dark.style.backgroundColor=bgcolor;  
    dark.style.width= '100%';
    dark.style.height= pageHeight;
    dark.style.display=InvalidBgShow;
	FullPageWidth()
}

function CreateCalendar(options) {
  var options = options || {}; 
  var zindex = options.zindex || 1;
  var opacity = options.opacity || 70;
  var opaque = (opacity / 100);
  var bgcolor = options.bgcolor || '#000000';
  var dark=document.getElementById(CalendarName);

  if (!dark) {
    var tbody = document.getElementsByTagName("body")[0];
    var tnode = document.createElement('div');          // Create the layer.
		tnode.className='DragIt'
        tnode.style.position='absolute';                // Position absolutely
        tnode.style.top='0px';                          // In the top
        tnode.style.left='0px';                         // Left corner of the page
        tnode.style.overflow='hidden';                  // Try to avoid making scroll bars            
        tnode.style.display='none';                     // Start out Hidden
        tnode.id=CalendarName;                   			// Name it so we can find it later
		tnode.name=CalendarName;
	    tbody.appendChild(tnode);                       // Add it to the web page
    dark=document.getElementById(CalendarName);  			// Get the object.
  }

    dark.style.opacity=opaque;                      
    dark.style.MozOpacity=opaque;
    dark.style.filter='alpha(opacity='+opacity+')'; 
    dark.style.zIndex=zindex;        
    dark.style.backgroundColor=bgcolor;  
    dark.style.width= '250';
//    dark.style.height= '225';
    dark.style.display=CalendarShow;

	dark.innerHTML=DrawDateTable(NewDate.getFullYear(),NewDate.getMonth(),NewDate.getDate());
}


function MoveToSelectedDate(ObjName)
{

	var nowChoosingDate,i
	var temp=true
	var nowChoosingDateValue,nowChoosingMonthValue,nowChoosingYearValue

		ObjName=document.getElementById(ObjName)
	
	
	if (ObjName)
	{
		nowChoosingDate=ObjName.value

		if (nowChoosingDate)
		{
		nowChoosingDateValue=getStringFromAnotherString(CalendarFormat,nowChoosingDate,"dd")
		nowChoosingMonthValue=getStringFromAnotherString(CalendarFormat,nowChoosingDate,"mm")
		nowChoosingYearValue=getStringFromAnotherString(CalendarFormat,nowChoosingDate,"yyyy")


		temp=CheckDate(nowChoosingDateValue,nowChoosingMonthValue,nowChoosingMonthValue);

		if (temp==true)
		{
			if (PmaxYear || PmaxMonth || PmaxDate)
			{
				if (nowChoosingYearValue>=PmaxYear)
				{
					if (nowChoosingMonthValue>=PmaxMonth || nowChoosingYearValue>PmaxYear)
					{
						if (nowChoosingDateValue>PmaxDate || nowChoosingMonthValue>PmaxMonth || nowChoosingYearValue>PmaxYear)
						{temp=false}
					}
					
				}
			}
			if (PminYear || PminMonth || PminDate)
			{
				if (nowChoosingYearValue<=PminYear)
				{
					if (nowChoosingMonthValue<=PminMonth || nowChoosingYearValue<PminYear)
					{
						if (nowChoosingDateValue<PminDate || nowChoosingMonthValue<PminMonth || nowChoosingYearValue<PminYear)
						{temp=false}
					}
					
				}
			}
		}

		if (temp==true)
		{
			document.getElementById(CalendarName).innerHTML=DrawDateTable(Number(nowChoosingYearValue),Number(nowChoosingMonthValue)-1,Number(nowChoosingDateValue));
		}
		else
		{
			document.getElementById(CalendarName).innerHTML=DrawDateTable(NewDate.getFullYear(),NewDate.getMonth(),NewDate.getDate());
		}
		
		}
		else
		{
		document.getElementById(CalendarName).innerHTML=DrawDateTable(NewDate.getFullYear(),NewDate.getMonth(),NewDate.getDate());
		}

	}

	ShowHide(CalendarName); 
	
}

function getStringFromAnotherString(FirstString,SecondString,FindString)
{
	var temp
	temp=FirstString.indexOf(FindString,0)
	temp=SecondString.substr(temp,FindString.length)
	return temp
}

function MovingMonth(ObjName,Count)
{
	ObjName=document.getElementById(ObjName)
	
	if (ObjName)
	{
		ObjName.innerHTML=''
		ObjName.innerHTML=DrawDateTable(CurrentYear,eval(CurrentMonth+Count),CurrentDate);
	}
	
}

function MovingToday(ObjName)
{
	ObjName=document.getElementById(ObjName)
	
	if (ObjName)
	{
		ObjName.innerHTML=''
		ObjName.innerHTML=DrawDateTable(NewDate.getFullYear(),NewDate.getMonth(),NewDate.getDate());
	}
	
}



function DrawDateTable(year,month,date)
{
	var temp,DateCells,YearMonthBar,InformationBar,DayBar,CloseBar,i,i2,i3
	var myNewDate = new Date(year,month,date);
	var myNewDate2=new Date(year,month+1,1);
	var myNewDate3=new Date(year,month,1)
	CurrentMonth=eval(myNewDate.getMonth());
	CurrentYear=myNewDate.getFullYear();
	CurrentDate=myNewDate.getDate();
	thisMonthStartDay=myNewDate3.getDay()
	var ShowDate
	var ObjName,ObjName2

	if (UsedFieldCount==2 && NowField==2)
	{
		ObjName=document.getElementById(CalendarStartReturnField)
		ObjName2=document.getElementById(CalendarEndReturnField)
		if (ObjName && ObjName2)
		{
			if (ObjName.value)
			{
				minDate=getStringFromAnotherString(CalendarFormat,ObjName.value,"dd")
				minMonth=getStringFromAnotherString(CalendarFormat,ObjName.value,"mm")
				minYear=getStringFromAnotherString(CalendarFormat,ObjName.value,"yyyy")
				maxDate=maxMonth=maxYear="";
				if (ObjName2.value=="")
				{
					CurrentDate=minDate
				}
			}
			else
			{
				maxDate=maxMonth=maxYear=minDate=minMonth=minYear="";	
			}
			
		}
		
	}
	else if (UsedFieldCount==2 && NowField==1)
	{
		ObjName=document.getElementById(CalendarEndReturnField)
		ObjName2=document.getElementById(CalendarStartReturnField)
		if (ObjName && ObjName2)
		{
			if (ObjName.value)
			{
				maxDate=getStringFromAnotherString(CalendarFormat,ObjName.value,"dd")
				maxMonth=getStringFromAnotherString(CalendarFormat,ObjName.value,"mm")
				maxYear=getStringFromAnotherString(CalendarFormat,ObjName.value,"yyyy")
				minDate=minMonth=minYear="";
				if (ObjName2.value=="")
				{
					CurrentDate=maxDate
				}
				
			}
			else
			{
				maxDate=maxMonth=maxYear=minDate=minMonth=minYear="";	
			}
			
		}
		
	}
	else
	{
		maxDate=maxMonth=maxYear=minDate=minMonth=minYear="";	
	}
		
DateCells=''
	temp=Maskiframe+"<table cellpadding='2' cellspacing='1.5' width='100%' height='100%' class='border_1px'>"
	
	CloseBar="<tr class='Calendar_Table-Close'><td id='lblHelp' onclick=\"alert('Test\\nTest\\nTest');\" onmouseover=\"ChangeStyle(this,'Calendar_Table-Title-Over');ShowInform(this,'Click for help.');\"  onmouseout=\"ChangeStyle(this,'');ShowInform(this,'');\" >?</td>"+
	
	"<td colspan='5' name='DragArea' onmouseover=\"ShowInform(this,'Drag for move.');\" onmouseout=\"ShowInform(this,'');\" >"+convertMonth(myNewDate.getMonth(),'')+" , "+convertNumber(myNewDate.getFullYear())+"</td>"+
	

	"<td id='lblClose' onclick=ShowHide('"+CalendarName+"');clearInterval(myInterval);myInterval=''; onmouseover=\"ChangeStyle(this,'Calendar_Table-Title-Over');ShowInform(this,'Click to close.');\"  onmouseout=\"ChangeStyle(this,'');ShowInform(this,'');\" >x</td></tr>"
	
	YearMonthBar="<tr class='Calendar_Table-Title'>"+
	"<td id='pMonth' onclick=MovingMonth('"+CalendarName+"',-1); onmouseover=\"ChangeStyle(this,'Calendar_Table-Title-Over');ShowInform(this,'Move To Previous Month.');\"  onmouseout=\"ChangeStyle(this,'');ShowInform(this,'');\" >&lt;</td>"+
	
	"<td id='pYear' onclick=MovingMonth('"+CalendarName+"',-12); onmouseover=\"ChangeStyle(this,'Calendar_Table-Title-Over');ShowInform(this,'Move To Previous Year.');\"  onmouseout=\"ChangeStyle(this,'');ShowInform(this,'');\" >&lt;&lt;</td>"+

	"<td id='lblToday' colspan='3' onclick=MovingToday('"+CalendarName+"'); onmouseover=\"ChangeStyle(this,'Calendar_Table-Title-Over');ShowInform(this,'Move To Today Date.');\"  onmouseout=\"ChangeStyle(this,'');ShowInform(this,'');\" >Today</td>"+

	"<td id='nYear' onclick=MovingMonth('"+CalendarName+"',12); onmouseover=\"ChangeStyle(this,'Calendar_Table-Title-Over');ShowInform(this,'Move To Next Year.');\"  onmouseout=\"ChangeStyle(this,'');ShowInform(this,'');\" >&gt;&gt;</td>"+
	
	"<td id='nMonth' onclick=MovingMonth('"+CalendarName+"',1); onmouseover=\"ChangeStyle(this,'Calendar_Table-Title-Over');ShowInform(this,'Move To Next Month.');\"  onmouseout=\"ChangeStyle(this,'');ShowInform(this,'');\" >&gt;</td></tr>"
	
	InformationBar="<tr><td colspan='7' name='DragArea' class='Calendar_Table-Inform' id='Inform' onmouseover=\"ShowInform(this,'Drag for move.');\" onmouseout=\"ShowInform(this,'');\" >&nbsp;</td></tr>"
	
	DayBar="<tr class='Calendar_Table-Header'>";
	
for (i3=0;i3<=6;i3++)
{
	if(i3==0 || i3==6)
	{
		DayBar=DayBar+"<td class='Calendar_Table-Header-Red'>"+convertWeekDay(i3,3)+"</td>";
	}
	else
	{
		DayBar=DayBar+"<td>"+convertWeekDay(i3,3)+"</td>";
	}
}

	DayBar=DayBar+"</tr>";
for (i2=1;i2<=6;i2++)
{
	DateCells=DateCells+"<tr class='Calendar_Table_Row' "+
			"id='row"+i2+"' onmouseover=ChangeStyle(this,'Calendar_Table_Row-Over'); "+
			"onmouseout=ChangeStyle(this,'Calendar_Table_Row');>"
	for (i=1;i<=7;i++)
	{
		if (i2==1)
		{
			if (thisMonthStartDay+1<=eval(i))
			{
				if (i==1 || i==7)
				{	ShowDate=eval((i)-thisMonthStartDay)
					if (validDate(ShowDate,CurrentMonth+1,CurrentYear)==true)
					{
						DateCells=DateCells+"<td id='cell"+ShowDate+"' class='Calendar_Table_Cell_Red' "+
						CalendarCells('Calendar_Table_Cell_Red','Calendar_Table_Cell_Red-Over',true)+" >"+
						CalendarDate(ShowDate)+"</td>"
					}
					else
					{
						DateCells=DateCells+"<td id='cell"+ShowDate+"' class='Invalid_Calendar_Table_Cell' "+
						CalendarCells('Invalid_Calendar_Table_Cell','Invalid_Calendar_Table_Cell-Over',false)+" >"+
						CalendarDate(ShowDate)+"</td>"
					}
				}
				else
				{	ShowDate=eval((i)-thisMonthStartDay)
					if (validDate(ShowDate,CurrentMonth+1,CurrentYear)==true)
					{
						DateCells=DateCells+"<td id='cell"+ShowDate+"' class='Calendar_Table_Cell' "+
						CalendarCells('Calendar_Table_Cell','Calendar_Table_Cell-Over',true)+" >"+
						CalendarDate(ShowDate)+"</td>"
					}
					else
					{
						DateCells=DateCells+"<td id='cell"+ShowDate+"' class='Invalid_Calendar_Table_Cell' "+
						CalendarCells('Invalid_Calendar_Table_Cell','Invalid_Calendar_Table_Cell-Over',false)+" >"+
						CalendarDate(ShowDate)+"</td>"
					}
				}
			}
			else
			{
				DateCells=DateCells+"<td class='Calendar_Table_Cell'></td>"
			}
		}
		else
		{
			if (eval(i+(7*(i2-1))-(thisMonthStartDay+1))<myNewDate2.getUTCDate())
			{
				if (i==1 || i==7)
				{	ShowDate=eval(i+(7*(i2-1))-thisMonthStartDay)
					if (validDate(ShowDate,CurrentMonth+1,CurrentYear)==true)
					{
						DateCells=DateCells+"<td id='cell"+ShowDate+"' class='Calendar_Table_Cell_Red' "+
						CalendarCells('Calendar_Table_Cell_Red','Calendar_Table_Cell_Red-Over',true)+" >"+
						CalendarDate(ShowDate)+"</td>"
						if (ShowDate==myNewDate2.getUTCDate())
						{i2=7}
					}
					else
					{
						DateCells=DateCells+"<td id='cell"+ShowDate+"' class='Invalid_Calendar_Table_Cell' "+
						CalendarCells('Invalid_Calendar_Table_Cell','Invalid_Calendar_Table_Cell-Over',false)+" >"+
						CalendarDate(ShowDate)+"</td>"
						if (ShowDate==myNewDate2.getUTCDate())
						{i2=7}
					}
				}
				else
				{	ShowDate=eval(i+(7*(i2-1))-thisMonthStartDay)
					if (validDate(ShowDate,CurrentMonth+1,CurrentYear)==true)
					{
						DateCells=DateCells+"<td id='cell"+ShowDate+"' class='Calendar_Table_Cell' "+
						CalendarCells('Calendar_Table_Cell','Calendar_Table_Cell-Over',true)+" >"+
						CalendarDate(ShowDate)+"</td>"
						if (ShowDate==myNewDate2.getUTCDate())
						{i2=7}
					}
					else
					{
						DateCells=DateCells+"<td id='cell"+ShowDate+"' class='Invalid_Calendar_Table_Cell' "+
						CalendarCells('Invalid_Calendar_Table_Cell','Invalid_Calendar_Table_Cell-Over',false)+" >"+
						CalendarDate(ShowDate)+"</td>"
						if (ShowDate==myNewDate2.getUTCDate())
						{i2=7}
					}
				}
				
			}
			else
			{
				DateCells=DateCells+"<td class='Calendar_Table_Cell'></td>"
			}
		}
		
	}
	DateCells=DateCells+"</tr>"
}
	temp=temp+CloseBar+YearMonthBar+DayBar+DateCells+InformationBar+"</table>"
	return temp

}

function validDate(qDate,qMonth,qYear)
{
var temp=true;
	if (maxYear || maxMonth || maxDate)
	{
		if (qYear>=maxYear)
		{
			if (qMonth>=maxMonth || qYear>maxYear)
			{
				if (qDate>maxDate || qMonth>maxMonth || qYear>maxYear)
				{temp=false}
			}
			
		}
	}
	else if (minYear || minMonth || minDate)
	{
		if (qYear<=minYear)
		{
			if (qMonth<=minMonth || qYear<minYear)
			{
				if (qDate<minDate || qMonth<minMonth || qYear<minYear)
				{temp=false}
			}
			
		}
	}
	if (PmaxYear || PmaxMonth || PmaxDate)
	{
		if (qYear>=PmaxYear)
		{
			if (qMonth>=PmaxMonth || qYear>PmaxYear)
			{
				if (qDate>PmaxDate || qMonth>PmaxMonth || qYear>PmaxYear)
				{temp=false}
			}
			
		}
	}
	if (PminYear || PminMonth || PminDate)
	{
		if (qYear<=PminYear)
		{
			if (qMonth<=PminMonth || qYear<PminYear)
			{
				if (qDate<PminDate || qMonth<PminMonth || qYear<PminYear)
				{temp=false}
			}
			
		}
	}


return temp
}

function CalendarDate(DateString)
{
	var temp;
	
	if (DateString==CurrentDate)
		{temp="<b>"+convertNumber(DateString)+"</b>"}
	else
		{temp=convertNumber(DateString)}
	
	return temp;

}


function CalendarCells(NormalStyle,OverStyle,Valid)
{
	var temp;	
	temp="onmouseover=ChangeStyle(this,'"+OverStyle+"');ShowInform(this); "+
		"onmouseout=ChangeStyle(this,'"+NormalStyle+"');ShowInform(this,''); "
	if (Valid==true)
	{
		temp=temp+"onclick=CalendarCellsClick(this); "
		temp=temp+"onDblclick=CalendarCellsClick(this);ShowHide('"+CalendarName+"');"
	}

	return temp;
	
}


function ShowInform(CellName,MessageString)
{

	var ObjName=document.getElementById("Inform")

if (ObjName)
{
//	alert(MessageString)
	if ((MessageString!=undefined  && MessageString!="") || MessageString=="" )
	{
		setText(ObjName.id,MessageString)
	}
	else
	{
		var tempDate=convertToEnglishNumber(getText(CellName.id));
		var tempDateObj= new Date(CurrentYear,CurrentMonth,tempDate);
		var CellObjName=document.getElementById(CellName.id)
		ObjName.innerHTML=convertNumber(tempDate)+", "+convertMonth(CurrentMonth)+", "+convertNumber(CurrentYear)+" ( "+convertWeekDay(tempDateObj.getDay())+" )"
	}
}

}
	
function getText(ObjName)
{
	ObjName=document.getElementById(ObjName);
	if (ObjName)
	{
		temp=ObjName.innerText
		
		if (temp==undefined)
		{temp="textContent"}
		else
		{temp="innerText"}
	
		return eval("ObjName."+temp)
	}
}

function setText(ObjName,TextString)
{

	ObjName=document.getElementById(ObjName);

	if (ObjName)
	{
		temp=ObjName.innerText
		
		if (temp==undefined)
		{temp="textContent"}
		else
		{temp="innerText"}
		
		eval("ObjName."+temp+"=TextString")
	}
}


function CalendarCellsClick(ObjName)
{
var OldObjName
var temp
var ReturnDate
var ReturnMonth
var ReturnYear
var ReturnString=CalendarFormat
	ObjName=document.getElementById(ObjName.id);
	CurrentDate=convertToEnglishNumber(Number(CurrentDate)).replace(/\n/,"")
	OldObjName=document.getElementById("cell"+CurrentDate);

	if (UsedFieldCount==2 && NowField==2)
	{ReturnObjName=document.getElementById(CalendarEndReturnField);}
	else
	{ReturnObjName=document.getElementById(CalendarStartReturnField);}
	if (ObjName)
	{


		OldObjName.innerHTML=getText(OldObjName.id)
		ObjName.innerHTML="<b>"+getText(ObjName.id)+"</b>"
		CurrentDate=convertToEnglishNumber(getText(ObjName.id)).replace(/\n/,"")

			if (CurrentDate<=9)
			{ReturnDate="0"+CurrentDate}
			else
			{ReturnDate=CurrentDate}
			
			if (Number(CurrentMonth+1)<=9)
			{ReturnMonth="0"+Number(CurrentMonth+1)}
			else
			{ReturnMonth=CurrentMonth+1}

			ReturnYear=CurrentYear
			
			ReturnString=ReturnString.replace("dd",ReturnDate)
			ReturnString=ReturnString.replace("mm",ReturnMonth)
			ReturnString=ReturnString.replace("yyyy",ReturnYear)
			
			ReturnObjName.value=ReturnString

	}
}


function ChangeStyle(ObjName,StyleName)
{
	ObjName=document.getElementById(ObjName.id)
	if (ObjName)
	{ObjName.className=StyleName}
	}

	
function movingCalendar(e)
{

	GetScroll()
    x = nn6 ? e.clientX : event.clientX;
    y = nn6 ? e.clientY : event.clientY;
	ObjName=document.getElementById(CalendarName)
	if (Number(ObjName.offsetWidth+10+x+scrollLeft)>Number(document.body.clientWidth)+scrollLeft)
	{ObjName.style.left=x-10-ObjName.offsetWidth;}
	else
	{ObjName.style.left=x+scrollLeft+10}
	if (Number(ObjName.offsetHeight+10+y+scrollTop)>Number(document.body.clientHeight+scrollTop))
	{ObjName.style.top=document.body.clientHeight+scrollTop-ObjName.offsetHeight;}
	else
	{ObjName.style.top=y+scrollTop+10}
}
	
function convertMonth(Num,CutLength)
{
	var val

	if(Language=='m')
	{
		
			if (CutLength)
			{
				switch (Num)
				{
					case 0: val="ဇန်"
					break
					
					case 1: val="ဖေ"
					break
					
					case 2: val="မတ်"
					break
					
					case 3: val="ပြီ"
					break
					
					case 4: val="မေ"
					break
					
					case 5: val="ဇွန်"
					break
					
					case 6: val="ဇူ"
					break
					
					case 7: val="သြ"
					break
					
					case 8: val="စက်"
					break
					
					case 9: val="အောက်"
					break
					
					case 10: val="နို"
					break
					
					case 11: val="ဒီဇင်ဘာ"
					break
					
				}
			}
				
			else
			{
				switch (Num)
				{
					case 0: val="ဇန်န၀ါရီ"
					break
					
					case 1: val="ဖေဖေါ်၀ါရီ"
					break
					
					case 2: val="မတ်"
					break
					
					case 3: val="ဧပြီ"
					break
					
					case 4: val="မေ"
					break
					
					case 5: val="ဇွန်"
					break
					
					case 6: val="ဇူလိုင်"
					break
					
					case 7: val="သြဂုတ်"
					break
					
					case 8: val="စက်တင်ဘာ"
					break
					
					case 9: val="အောက်တိုဘာ"
					break
					
					case 10: val="နို၀င်ဘာ"
					break
					
					case 11: val="ဒီဇင်ဘာ"
					break
				}
			}

	}

	else
	{
		switch (Num)
		{
			case 0: val="January"
			break
			
			case 1: val="Febaruary"
			break
			
			case 2: val="March"
			break
			
			case 3: val="April"
			break
			
			case 4: val="May"
			break
			
			case 5: val="June"
			break
			
			case 6: val="July"
			break
			
			case 7: val="August"
			break
			
			case 8: val="September"
			break
			
			case 9: val="October"
			break
			
			case 10: val="November"
			break
			
			case 11: val="December"
			break
		}
		
		if (CutLength)
		{val=val.substr(0,CutLength)}
	}

		return val;
}

function convertWeekDay(Num,CutLength)
{
	var val
	if(Language=='m')
	{
			if (CutLength)
			{
				switch (Number(Num))
				{
					case 0: val="နွေ"
					break
					
					case 1: val="လာ"
					break
					
					case 2: val="ဂါ"
					break
					
					case 3: val="ဟူး"
					break
					
					case 4: val="တေး"
					break
					
					case 5: val="ကြာ"
					break
					
					case 6: val="နေ"
					break
				}
			}
			else
			{

				switch (Number(Num))
				{
					
					case 0: val="တနင်္ဂနွေ"
					break
					
					case 1: val="တနင်္လာ"
					break
					
					case 2: val="အင်္ဂါ"
					break
					
					case 3: val="ဗုဒ္ဓဟူး"
					break
					
					case 4: val="ကြာသာပတေး"
					break
					
					case 5: val="သောကြာ"
					break
					
					case 6: val="စနေ"
					break
				}
			}

	}
	
	else
	{
		switch (Num)
		{
			case 0: val="Sunday"
			break
			
			case 1: val="Monday"
			break
			
			case 2: val="Tuesday"
			break
			
			case 3: val="Wednesday"
			break
			
			case 4: val="Thursday"
			break
			
			case 5: val="Friday"
			break
			
			case 6: val="Saturday"
			break
		}
		
		if (CutLength)
		{val=val.substr(0,CutLength)}
	}

		return val;
}

function convertNumber(Num)
{
	var i,val
	
	if(Language=='m')
	{
		Num=String (Num)
		val=''
		for (i=0;i<Num.length;i++)
		{
			
				switch (Number(Num.substr(i,1)))
				{
					case 0: val=val+"၀"
					break
					
					case 1: val=val+"၁"
					break
					
					case 2: val=val+"၂"
					break
					
					case 3: val=val+"၃"
					break
					
					case 4: val=val+"၄"
					break
					
					case 5: val=val+"၅"
					break
					
					case 6: val=val+"၆"
					break
					
					case 7: val=val+"၇"
					break
					
					case 8: val=val+"၈"
					break
					
					case 9: val=val+"၉"
					break
				}
		}
	}
	
	else
	{
		val=Num
	}

		return val;
}


function convertToEnglishNumber(Num)
{
	var i,val
	
		Num=String (Num)
		val=''
	if (Language=='m')
	{
		for (i=0;i<Num.length;i++)
		{
				switch (Num.substr(i,1))
				{
					case "၀": val=val+0
					break
					
					case "၁": val=val+1
					break
					
					case "၂": val=val+2
					break
					
					case "၃": val=val+3
					break
					
					case "၄": val=val+4
					break
					
					case "၅": val=val+5
					break
					
					case "၆": val=val+6
					break
					
					case "၇": val=val+7
					break
					
					case "၈": val=val+8
					break
					
					case "၉": val=val+9
					break
				}
		}
		
	}
	else
	{
		for (i=0;i<Num.length;i++)
		{
				switch (Num.substr(i,1))
				{
					case "0": val=val+0
					break
					
					case "1": val=val+1
					break
					
					case "2": val=val+2
					break
					
					case "3": val=val+3
					break
					
					case "4": val=val+4
					break
					
					case "5": val=val+5
					break
					
					case "6": val=val+6
					break
					
					case "7": val=val+7
					break
					
					case "8": val=val+8
					break
					
					case "9": val=val+9
					break
				}
		}
		
	}


	if (val)
		{return val}
	else
		{return Num}

}

function SetPDate()
{
PminDate=11
PminYear=2007
PminMonth=7
PmaxDate=NewDate.getDate();
PmaxYear=NewDate.getFullYear();
PmaxMonth=NewDate.getMonth()+1;
	}


function CalenderSetUp(e,Format,StartField,EndField,FieldFor)
{
/*
PminDate=11
PminYear=2007
PminMonth=7
PmaxDate=NewDate.getDate();
PmaxYear=NewDate.getFullYear();
PmaxMonth=NewDate.getMonth()+1;
*/
	disableSelection(document.getElementById(CalendarName));

//SelectObjArray[1].style.display="none"

	CalendarFormat=Format;
	
	CalendarStartReturnField=StartField;
	
	if (EndField)
	{
		CalendarEndReturnField=EndField;
		UsedFieldCount=2;
		NowField=FieldFor;
	}
	else
	{
		UsedFieldCount=1;
	}
	
	
	if (FieldFor==1 || FieldFor==undefined || FieldFor=="")
	{
		MoveToSelectedDate(StartField);
	}
	else
	{
		MoveToSelectedDate(EndField);
	}

	movingCalendar(e)

	if (myInterval)
	{
		clearInterval(myInterval)
		myInterval=""
	}
	else
	{
		myInterval=setInterval("positionIT('"+CalendarName+"')",20)
	}

}


function CheckCharacters(ObjName,CharString,PressedKey,LimitCount,FillString,WhichIndex)
{
	var temp=false
	var i
	var myCharArray


	if (Number(ObjName.value.length)<LimitCount || PressedKey==8 || PressedKey==9 || PressedKey==35 || PressedKey==36 || PressedKey==37 || PressedKey==39 || PressedKey==46 || PressedKey==116)
	{
	//alert(PressedKey)
		myCharArray=CharString.split(",")
		for (i=0;i<=myCharArray.length;i++)
		{
			if (myCharArray[i]==PressedKey)
			{
				temp=true;
				i=myCharArray.length
			}
		}

		
//			alert(temp)
		if (temp==true && (PressedKey!=8 && PressedKey!=9 && PressedKey!=35 &&PressedKey!=36 &&PressedKey!=37 && PressedKey!=39 && PressedKey!=46 && PressedKey!=116))
		{
			AutoFill(ObjName,FillString,WhichIndex);
		}
	}
	
	return temp

}


function AutoFill(ObjName,FillString,WhichIndex)
{
	var WhichIndexArray,i

//alert(ObjName.value)
	WhichIndexArray=WhichIndex.split(",")
	for (i=0;i<=WhichIndexArray.length;i++)
	{
		if (WhichIndexArray[i]==Number(ObjName.value.length+1))
		{
			ObjName.value=ObjName.value+FillString;
			i=WhichIndexArray.length;
		}
		CussorToEnd(ObjName)
//		else if (i==WhichIndexArray.length)
//		{
//			ObjName.value=ObjName.value;
//		}
	}

}


function GetKeyCode(e) 
{
	return e.keyCode ? e.keyCode : e.charCode ? e.charCode : e.which ? e.which : void 0
}


function CheckDate(DateString,MonthString,YearString)
{
	var temp=false;

	if (DateString && MonthString && YearString)
	{
		if (isNaN(Number(DateString))==false && isNaN(Number(MonthString))==false && isNaN(Number(YearString))==false)
		{
//			if (YearString<=NewDate.getFullYear())
//			{				
				if (MonthString<=12)
				{
					if ((MonthString==4 || MonthString==6 || MonthString==9 || MonthString==11) && DateString<=30)
					{
						temp=true;
					}
					if ((MonthString==1 || MonthString==3 || MonthString==5 || MonthString==7 || MonthString==8 || MonthString==10 || MonthString==12) && DateString<=31)
					{
						temp=true;
					}
					if (MonthString==2 && DateString<=28  && String(YearString/4).indexOf(".",0)!=-1)
					{
						temp=true
					}
					if (MonthString==2 && DateString<=29  && String(YearString/4).indexOf(".",0)==-1)
					{
						temp=true
					}
//				}
			}
		
		}
		
	}
	
	return temp

}

function CussorToEnd(o)
{
	o.value=o.value
	o.selectionStart=o.value.length
	o.selectionEnd=o.value.length
}

function LanguageLabel(ObjName,lblObjName)
{
//	var My=ObjName.selectionStart;
//	alert(My)
	lblObjName=document.getElementById(lblObjName)
	setText(lblObjName.id,ObjName[ObjName.selectedIndex].label)
	}
	
function setMinMaxCalendarDate(MinDateString,MaxDateString,DateFormat)
{

	PminDate=getStringFromAnotherString(DateFormat,MinDateString,"dd")
	PminMonth=getStringFromAnotherString(DateFormat,MinDateString,"mm")
	PminYear=getStringFromAnotherString(DateFormat,MinDateString,"yyyy")
	
	PmaxDate=getStringFromAnotherString(DateFormat,MaxDateString,"dd")
	PmaxMonth=getStringFromAnotherString(DateFormat,MaxDateString,"mm")
	PmaxYear=getStringFromAnotherString(DateFormat,MaxDateString,"yyyy")

	}

function setLabelValue(SourceObjName,DistinationObjName,FormName)
{

var DistinationObjName2
var SourceObjName2
	DistinationObjName2=DistinationObjName
	SourceObjName2=SourceObjName

DistinationObjName=document.getElementById(DistinationObjName);
if (DistinationObjName==null)
{
	DistinationObjName=document[FormName][DistinationObjName2]
	
}
	if (SourceObjName.name!=undefined)
	{
		if (SourceObjName)
		{
			if (SourceObjName.value)
			{
				DistinationObjName.value=SourceObjName[SourceObjName.selectedIndex].label
			}
		}			
	}
	else
	{
		SourceObjName=document.getElementById(SourceObjName);
		if (SourceObjName==null)
		{
			SourceObjName=document[FormName][SourceObjName2]
		}
		
		if (SourceObjName)
		{
			if (SourceObjName.value)
			{
				DistinationObjName.value=SourceObjName[SourceObjName.selectedIndex].label
			}
		}
	}

}


function ChangeClass(ObjName,ChangethisClassName)
{
	if (ObjName!=undefined)
	{
		if (ObjName.name!=undefined)
		{
			ObjName.className=ChangethisClassName;
		}
		else
		{
			ObjName=document.getElementById(ObjName);
			if (ObjName)
			{
				ObjName.className=ChangethisClassName;
			}
		}
	}
}

function GetValue(ObjName,FormName)
{
	if (ObjName!=undefined)
	{
		if (ObjName.name!=undefined)
		{
			return ObjName.value;
		}
		else
		{
			ObjName=document[FormName][ObjName];
			if (ObjName)
			{
				return ObjName.value;
			}
		}
	}
}

function ToogleShowHide(Old,Now)
{
	if (Old!=Now)
	{
		Show(Now)
		Hide(Old)
	}
}

function getLabelValue(SourceObjName,FormName)
{

var SourceObjName2
	SourceObjName2=SourceObjName

	if (SourceObjName.name!=undefined)
	{
		if (SourceObjName)
		{
			if (SourceObjName.value)
			{
				return SourceObjName[SourceObjName.selectedIndex].label
			}
		}			
	}
	else
	{
		SourceObjName=document.getElementById(SourceObjName);
		if (SourceObjName==null)
		{
			SourceObjName=document[FormName][SourceObjName2]
		}
		
		if (SourceObjName)
		{
			if (SourceObjName.value)
			{
				return SourceObjName[SourceObjName.selectedIndex].label
			}
		}
	}

}

function positionIT(ObjName)
{

if (navigator.appName=="Microsoft Internet Explorer")
{
	var myObj=document.getElementById("MyMask")
	myObj.filters["mask"].apply();
}

	GetScroll()
	var Obj
	Obj=ObjName;
	var ObjLeft,ObjWidth,ObjTop,ObjHeight
	var pageWidth = document.body.clientWidth;
	var pageHeight = document.body.clientHeight;
	Obj=document.getElementById(Obj)
	ObjTop=Obj.style.top
	ObjTop=ObjTop.replace('px','')
	ObjTop=parseInt(ObjTop)
	ObjLeft=Obj.style.left
	ObjLeft=ObjLeft.replace('px','')
	ObjLeft=parseInt(ObjLeft)
	ObjWidth=Obj.offsetWidth
	ObjHeight=Obj.offsetWidth


	if (scrollTop+pageHeight<ObjTop+ObjHeight)
	{
		Obj.style.top=Number(scrollTop+pageHeight+31)-ObjHeight
	}
	else if (scrollTop>ObjTop)
	{
		Obj.style.top=scrollTop
	}
	
	if (scrollLeft+pageWidth<ObjLeft+ObjWidth)
	{
		Obj.style.left=(scrollLeft+pageWidth)-ObjWidth
	}
	else if (scrollLeft>ObjLeft)
	{
		Obj.style.left=scrollLeft
	}

}

function FormReset(ObjName)
{
	var i
	
	for (i=0;i<ObjName.length;i++)
	{
		if (ObjName.elements[i].type.indexOf("select",0)>=0)
		{	
			if (ObjName.elements[i].type.indexOf("one",0)>=0)
			{	
//				ObjName.elements[i].selectedIndex=0
			}
			else
			{
				ObjName.elements[i].selectedIndex=-1
			}
		}
		else if (ObjName.elements[i].type.indexOf("hidden",0)>=0)
		{
//			ObjName.elements[i].value=""
		}
		else if (ObjName.elements[i].type.indexOf("text",0)>=0)
		{
			ObjName.elements[i].value=""
		}
	}
	
}

function ShowHideByTagName(TagNameString)
{
	if (navigator.appName=="Microsoft Internet Explorer")
	{
		var SelectObjArray
		var i
		SelectObjArray=document.getElementsByTagName(TagNameString)
		for (i=0;i<SelectObjArray.length;i++)
		{
			SelectObjArray[i].parentNode.setAttribute('height',SelectObjArray[i].offsetHeight+20)
			ShowHide(SelectObjArray[i])
		}
	}
}