// JavaScript Document
var html
var loadImg = ""
var intBlock = "clear"

// loading Graphic Code
loadImg += "<div align='center'><br><br><br><br>"
loadImg += "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' width='100' height='100' title='Loading'>"
loadImg += "  <param name='movie' value='images/Loadimg.swf' />"
loadImg += "  <param name='quality' value='high' />"
loadImg += "  <param name='autostar' value ='true' />"
loadImg += "  <param name='loop' value ='true' />"
loadImg += "  <embed src='images/Loadimg.swf' autostart='true' loop='true'> align='absmiddle' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='100' height='100' bgcolor='#FFFFFF'></embed>"
loadImg += "</object>"
loadImg += "</div>"

// JScript File

// Initializes a new instance of the StringBuilder class
// and appends the given value if supplied
function StringBuilder(value)
{
	this.strings = new Array("");
	this.append(value);
}

// Appends the given value to the end of this instance.
StringBuilder.prototype.append = function (value)
{
	if (value)
	{
		this.strings.push(value);
	}
}

// Clears the string buffer
StringBuilder.prototype.clear = function ()
{
	this.strings.length = 1;
}

// Converts this instance to a String.
StringBuilder.prototype.toString = function ()
{
	return this.strings.join("");
}

//common string functions 
function trim(sTrim)
	{
	return sTrim.replace(/^\s+|\s+$/g,"");
	}
	


//Common Form Functions
function checkBoxToggle(x)
	{
	var b = x
	if (document.cForm[x].value=="0")
		{
			document.cForm[x].value = "1"
		}
	else
		{
			document.cForm[x].value = "0"
		}
	pageToggle()
	}


//Common Dreamweaver functions
function MM_swapImgRestore()
	{ //v3.0
  	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}

function MM_preloadImages() 
	{ //v3.0
	    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	}

function MM_findObj(n, d) 
	{ //v4.01
	  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	  if(!x && d.getElementById) x=d.getElementById(n); return x;
	}

function MM_swapImage()
	{ //v3.0
	  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}
//Common Dialog Function and response
function commonDialog() 
	{ 	
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
			{ 		
			var GetData=xmlHttp.responseText 
			alert(GetData)
			}
		pageCommon()
	}	
	
	
function commonDialogNoAlert() 
	{ 	
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
			{ 		
//			var GetData=xmlHttp.responseText 
//			alert(GetData)
			}
		pageCommon()
	}

// AJAX handeler function 
function GetXmlHttpObject(handler)
	{ 
	var objXmlHttp=null
	if (navigator.userAgent.indexOf("MSIE")>=0)
		{ 
		var strName="Msxml2.XMLHTTP"
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
			{
			 	strName="Microsoft.XMLHTTP"
			} 		
		objXmlHttp=new ActiveXObject(strName)
		objXmlHttp.onreadystatechange=handler 
		return objXmlHttp			
		} 
	if (navigator.userAgent.indexOf("Mozilla")>=0)
		{
			objXmlHttp=new XMLHttpRequest()
			objXmlHttp.onload=handler
			objXmlHttp.onerror=handler 
			return objXmlHttp
		}
	} 
	
//Org Structure dropdown menus
function clrLowerLevels(level)
	{
		
		var l = level;
		//alert("I'm here  clrLowerLevels" )
		if (l == 1) {
			document.cForm.LocID.options.length=1;
			document.cForm.DeptID.options.length=1;
			document.cForm.SubDeptID.options.length=1;
		}
		if (l == 2) {		
			document.cForm.DeptID.options.length=1;
			document.cForm.SubDeptID.options.length=1;
		}
		if (l == 3) {
			document.cForm.SubDeptID.options.length=1;
		}
	}
//Org Structure dropdown menus
function clrTLowerLevels(level)
	{
	
		//alert("I'm here  clrTLowerLevels" )
		var l = level;
		if (l == 1) {
			document.cForm.tlocid.options.length=1;
			document.cForm.tDeptID.options.length=1;
			document.cForm.tSubDeptID.options.length=1;
		}
		if (l == 2) {		
			document.cForm.tDeptID.options.length=1;
			document.cForm.tSubDeptID.options.length=1;
		}
		if (l == 3) {
			document.cForm.tSubDeptID.options.length=1;
		}
	}	
	
	
function getCo(str, locID, uType)
	{ 	
		var url="../import/DataSet_Stu.aspx?rec=co&x=0&location=" + locID +  "&UserType=" + uType
		//alert(url)
		xmlHttp=GetXmlHttpObject(getCoData)
		xmlHttp.open("POST", url , true)
		xmlHttp.send(null)
	} 
	


function getCoData() 
	{ 	
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{ 		
			var GetData=xmlHttp.responseText 
			//alert (GetData)
			var arr=new Array
			arr=GetData.split("%")				
			leng=arr.length						
			for(var k=document.cForm.CompanyID.options.length;k>0;k--)
			{ 
			   if(document.cForm.CompanyID.options.length=="1")
			   {                       
					document.cForm.CompanyID.options[0]=null
			   }
			   else
			   {
					document.cForm.CompanyID.options[k]=null
			   }
			}
		   document.cForm.CompanyID.options[0] = new Option("All","0", true);			
		   
		   for(var j=0;j<leng;j++)
			{         
			   x = j+1
			   var xArr = new Array
			   xArr = arr[j].split("~")
			   document.cForm.CompanyID.options[x] = new Option(xArr[1],xArr[0]);
			   
			}
		pageCo()
		} 
	}
	
function getCoStudent(str, locID, uType)
	{ 	
		var url="../import/DataSet_Stu.aspx?rec=cos&x=0&location=" + locID +  "&UserType=" + uType
		//alert(url)
		xmlHttp=GetXmlHttpObject(getCoStudentData)
		xmlHttp.open("POST", url , true)
		xmlHttp.send(null)
		
	} 

function getCoStudentData() 
	{ 	
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{ 		
			var GetData=xmlHttp.responseText 
			//alert (GetData)
			var arr=new Array
			arr=GetData.split("%")				
			leng=arr.length						
			for(var k=document.cForm.CompanyID.options.length;k>0;k--)
			{ 
			   if(document.cForm.CompanyID.options.length=="1")
			   {                       
					document.cForm.CompanyID.options[0]=null
			   }
			   else
			   {
					document.cForm.CompanyID.options[k]=null
			   }
			}

		   if(leng>1)
		   {
                document.cForm.CompanyID.options[0] = new Option("All","0", true);
                for(var j=0;j<leng;j++)
	                {         
	                   x = j+1
	                   var xArr = new Array
	                   xArr = arr[j].split("~")
	                   document.cForm.CompanyID.options[x] = new Option(xArr[1],xArr[0]);
	                }
	            pageCo()
            }
           else
            {
                for(var j=0;j<leng;j++)
	            {         
	               x = j
	               var xArr = new Array
	               xArr = arr[j].split("~")
	               document.cForm.CompanyID.options[0] = new Option(xArr[1],xArr[0]);
	            }
	            pageCo1()
		    }		
		} 
	}

	

function getLoc(str, locID, uType)
	{ 	
		var url="../import/DataSet_Stu.aspx?rec=loc&x=" + str + "&location=" + locID +  "&UserType=" + uType		
		//alert(url)
		xmlHttp=GetXmlHttpObject(getLocData)
		xmlHttp.open("POST", url , true)
		xmlHttp.send(null)
	} 

function getLocData() 
	{ 	
	//alert("GetLocData");
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		
		{ 		
			var GetData=xmlHttp.responseText 			
			//alert (GetData)
			var arr=new Array
			arr=GetData.split("%")				
			leng=arr.length	
			//alert(leng)
			for(var k=document.cForm.LocID.options.length;k>0;k--)
			{ 
			   if(document.cForm.LocID.options.length==1)
			   {                       
					document.cForm.LocID.options[0]=null
			   }
			   else
			   {
					document.cForm.LocID.options[k]=null
			   }
			}
			if(leng>1)
			{
			//alert("should be adding All");
		        document.cForm.LocID.options[0] = new Option("All","0", true);			
		   
		       for(var j=0;j<leng;j++)
			    {         
			       x = j+1
			       var xArr = new Array
			       xArr = arr[j].split("~")
			       document.cForm.LocID.options[x] = new Option(xArr[1],xArr[0]);
			    }
				//alert("pageloc1");
		     pageLoc1();
			}
			else
			{
			//alert("shouldt have hit this");
		       for(var j=0;j<leng;j++)
			    {         
			       x = j
			       var xArr = new Array
			       xArr = arr[j].split("~")
			       document.cForm.LocID.options[x] = new Option(xArr[1],xArr[0]);
			    }
				//alert("pageloc1")
		     pageLoc1();
		     }
		    } 
	    }

function getDept(str, locID, uType)
	{ 	
		var url="../import/DataSet_Stu.aspx?rec=dept&x=" + str  + "&location=" + locID +  "&UserType=" + uType
		//alert(url)
		xmlHttp=GetXmlHttpObject(getDeptData)
		xmlHttp.open("POST", url , true)
		xmlHttp.send(null)
	} 

function getDeptData() 
	{ 	
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{ 		
			var GetData=xmlHttp.responseText 
			var arr=new Array
			arr=GetData.split("%")				
			leng=arr.length						
			for(var k=document.cForm.DeptID.options.length;k>0;k--)
			{ 
			   if(document.cForm.DeptID.options.length=="1")
			   {                       
					document.cForm.DeptID.options[0]=null
			   }
			   else
			   {
					document.cForm.DeptID.options[k]=null
			   }
			}
		   document.cForm.DeptID.options[0] = new Option("All","0", true);			
		   for(var j=0;j<leng;j++)
			{         
			   x = j+1
			   var xArr = new Array
			   xArr = arr[j].split("~")
			   document.cForm.DeptID.options[x] = new Option(xArr[1],xArr[0]);
			   
			}
			pageDept()
		} 
	}

function getSubDept(str, locID, uType)
	{ 	
		var url="../import/DataSet_Stu.aspx?rec=subdept&x=" + str +  "&UserType=" + uType
		//alert(url)
		xmlHttp=GetXmlHttpObject(getSubDeptData)
		xmlHttp.open("POST", url , true)
		xmlHttp.send(null)
	} 

function getSubDeptData() 
	{ 	
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{ 		
			var GetData=xmlHttp.responseText 
			var arr=new Array
			arr=GetData.split("%")				
			leng=arr.length						
			for(var k=document.cForm.SubDeptID.options.length;k>0;k--)
			{ 
			   if(document.cForm.SubDeptID.options.length=="1")
			   {                       
					document.cForm.SubDeptID.options[0]=null
			   }
			   else
			   {
					document.cForm.SubDeptID.options[k]=null
			   }
			}
		   document.cForm.SubDeptID.options[0] = new Option("All","0", true);			
		   for(var j=0;j<leng;j++)
			{         
			   x = j+1
			   var xArr = new Array
			   xArr = arr[j].split("~")
			   document.cForm.SubDeptID.options[x] = new Option(xArr[1],xArr[0]);
			   
			}
			pageSubDept()
		} 
	}

//Attempt to speed up the org graphic build

function getOrgStrData()
	{ 	
	    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
			{ 		
			//var GetData="@1%STS@2%Grand Rapids@3%Sales@4%AM Shift@4%Sales 1 Sub dept@2%IT@3%IT-Dev@4%Sheela@1%ABC@" 
			var GetData=xmlHttp.responseText 
			
			//alert(GetData)
			var Arr=new Array, leng
			var coArr=new Array, coLeng
			var rColor = "D3EBD7"

	        html="<table width='423' border='0'  align = 'top' cellpadding='0' cellspacing='0'>"

		if( GetData.indexOf("@") > -1)
				{
			    Arr=GetData.split("@")
			    leng = (Arr.length)
				for(var w=1;w<leng;)
				    {
				    coArr =Arr[w].split("%");
				    if(rColor=="#ffffff"){rColor="#D3EBD7"}else{rColor="#ffffff"};
				    if (coArr[0] == "1")
				        {
    			        html += "<tr bgcolor='" + rColor + "'>";
				        html += "<td width='20'></td>";
				        html += "<td width='22' class='l_tableLine'><div align='center'><img src='images/circle.gif' width='10' height='10' /></div></td>";
				        html += "<td width='20' class='lr_tableLine'>&nbsp; </td>";
				        html += "<td width='20' class='r_tableLine'>&nbsp; </td>";
				        html += "<td width='20' class='r_tableLine'>&nbsp; </td>";
				        html += "<td width='20' ><div align='center'> &nbsp;</div></td>";
				        html += "<td width='300' class='headSmall_Org'> &nbsp;" + coArr[1] + "</td></tr>";
				        }
                    else
                    {
				    if (coArr[0] == "2")
				        {
    			        html += "<tr bgcolor='" + rColor + "'>";
				        html += "<td width='20'></td>";
				        html += "<td width='20' class='l_tableLine'>&nbsp; </td>";
				        html += "<td width='22' class='lr_tableLine'><div align='center'><img src='images/circle.gif' width='10' height='10' /></div></td>";
				        html += "<td width='20' class='r_tableLine'>&nbsp; </td>";
				        html += "<td width='20' class='r_tableLine'>&nbsp; </td>";
				        html += "<td width='20' ><div align='center'> &nbsp;</div></td>";
				        html += "<td width='300' class='headSmall_Org'> &nbsp;" + coArr[1] + "</td></tr>";
				        }
				      
                    else
                    {
				    if (coArr[0] == "3")
				        {
   			            html += "<tr bgcolor='" + rColor + "'>";
				        html += "<td width='20'></td>";
				        html += "<td width='22' class='l_tableLine'>&nbsp; </td>";
				        html += "<td width='20' class='lr_tableLine'>&nbsp; </td>";
				        html += "<td width='20' class='r_tableLine'><div align='center'><img src='images/circle.gif' width='10' height='10' /></div></td>";
				        html += "<td width='20' class='r_tableLine'>&nbsp; </td>";
				        html += "<td width='20' ><div align='center'> &nbsp;</div></td>";
				        html += "<td width='300' class='headSmall_Org'> &nbsp;" + coArr[1] + "</td></tr>";
				        }
                    else
                    {
				    if (coArr[0] == "4")
				        {
    			        html += "<tr bgcolor='" + rColor + "'>";
				        html += "<td width='20'></td>";
				        html += "<td width='20' class='l_tableLine'>&nbsp; </td>";
				        html += "<td width='20' class='lr_tableLine'>&nbsp; </td>";
				        html += "<td width='20' class='r_tableLine'>&nbsp; </td>";
				        html += "<td width='22' class='r_tableLine'><div align='center'><img src='images/circle.gif' width='10' height='10' /></div></td>";
				        html += "<td width='20' ><div align='center'> &nbsp;</div></td>";
				        html += "<td width='300' class='headSmall_Org'> &nbsp;" + coArr[1] + "</td></tr>";
				        }
				       }
				       }
				       }
				    w++

				    };
				};					
			//html = trim(html);
			html +="</table>"
			//alert(html)
			dispOrgData()
			} 
	
	}

function getOrgStrData2()
	{ 	
	    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
			{ 		
			//var GetData="@1%STS@2%Grand Rapids@3%Sales@4%AM Shift@4%Sales 1 Sub dept@2%IT@3%IT-Dev@4%Sheela@1%ABC@" 
			var GetData=xmlHttp.responseText 
			
			//alert(GetData)
			var Arr=new Array, leng
			var coArr=new Array, coLeng
			var rColor = "D3EBD7"
			
            // create a StringBuilder
            var sb = new StringBuilder();

            sb.append("<table width='423' border='0'  align = 'top' cellpadding='0' cellspacing='0'>");

		if( GetData.indexOf("@") > -1)
				{
			    Arr=GetData.split("@")
			    leng = (Arr.length)
				for(var w=1;w<leng;)
				    {
				    coArr =Arr[w].split("%");
				    if(rColor=="#ffffff"){rColor="#D3EBD7"}else{rColor="#ffffff"};
				    if (coArr[0] == "1")
				        {
    			        sb.append("<tr bgcolor='" + rColor + "'>");
				         sb.append("<td width='20'></td>");
				         sb.append("<td width='22' class='l_tableLine'><div align='center'><img src='images/circle.gif' width='10' height='10' /></div></td>");
				         sb.append("<td width='20' class='lr_tableLine'>&nbsp; </td>");
				         sb.append("<td width='20' class='r_tableLine'>&nbsp; </td>");
				         sb.append("<td width='20' class='r_tableLine'>&nbsp; </td>");
				         sb.append("<td width='20' ><div align='center'> &nbsp;</div></td>");
				         sb.append("<td width='300' class='headSmall_Org'> &nbsp;" + coArr[1] + "</td></tr>");
				        }
                    else
                    {
				    if (coArr[0] == "2")
				        {
    			         sb.append("<tr bgcolor='" + rColor + "'>");
				         sb.append("<td width='20'></td>");
				         sb.append("<td width='20' class='l_tableLine'>&nbsp; </td>");
				         sb.append("<td width='22' class='lr_tableLine'><div align='center'><img src='images/circle.gif' width='10' height='10' /></div></td>");
				         sb.append("<td width='20' class='r_tableLine'>&nbsp; </td>");
				         sb.append("<td width='20' class='r_tableLine'>&nbsp; </td>");
				         sb.append("<td width='20' ><div align='center'> &nbsp;</div></td>");
				         sb.append("<td width='300' class='headSmall_Org'> &nbsp;" + coArr[1] + "</td></tr>");
				        }
				      
                    else
                    {
				    if (coArr[0] == "3")
				        {
   			             sb.append("<tr bgcolor='" + rColor + "'>");
				         sb.append("<td width='20'></td>");
				         sb.append("<td width='22' class='l_tableLine'>&nbsp; </td>");
				         sb.append("<td width='20' class='lr_tableLine'>&nbsp; </td>");
				         sb.append("<td width='20' class='r_tableLine'><div align='center'><img src='images/circle.gif' width='10' height='10' /></div></td>");
				         sb.append("<td width='20' class='r_tableLine'>&nbsp; </td>");
				         sb.append("<td width='20' ><div align='center'> &nbsp;</div></td>");
				         sb.append("<td width='300' class='headSmall_Org'> &nbsp;" + coArr[1] + "</td></tr>");
				        }
                    else
                    {
				    if (coArr[0] == "4")
				        {
    			         sb.append("<tr bgcolor='" + rColor + "'>");
				         sb.append("<td width='20'></td>");
				         sb.append("<td width='20' class='l_tableLine'>&nbsp; </td>");
				         sb.append("<td width='20' class='lr_tableLine'>&nbsp; </td>");
				         sb.append("<td width='20' class='r_tableLine'>&nbsp; </td>");
				         sb.append("<td width='22' class='r_tableLine'><div align='center'><img src='images/circle.gif' width='10' height='10' /></div></td>");
				         sb.append("<td width='20' ><div align='center'> &nbsp;</div></td>");
				         sb.append("<td width='300' class='headSmall_Org'> &nbsp;" + coArr[1] + "</td></tr>");
				        }
				       }
				       }
				       }
				    w++

				    };
				};					
			 sb.append("</table>");
			 html = sb.toString();
			//alert(html)
			dispOrgData()
			} 
	
	}
	
	// 3rd Party Add Ons




// Title: Timestamp picker
// Description: See the demo at url
// URL: http://us.geocities.com/tspicker/
// Script featured on: http://javascriptkit.com/script/script2/timestamp.shtml
// Version: 1.0
// Date: 12-05-2001 (mm-dd-yyyy)
// Author: Denis Gritcyuk <denis@softcomplex.com>; <tspicker@yahoo.com>
// Notes: Permission given to use this script in any kind of applications if
//    header lines are left unchanged. Feel free to contact the author
//    for feature requests and/or donations

//<a href="javascript:show_calendar('document.form1.TextBox1', document.form1.TextBox1.value);"><img height="16" alt="Click Here to choose the start date" src="images/cal.gif" width="16" border="0" /></a>

function show_calendar(str_target, str_datetime) {
	var arr_months = ["January", "February", "March", "April", "May", "June",
		"July", "August", "September", "October", "November", "December"];
	var week_days = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
	var n_weekstart = 1; // day week starts from (normally 0 or 1)
	var dt_cdate=new Date();
	var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt(str_datetime));
	var dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);
	var dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth()+1);
	var dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
	var dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);
	
	// html generation (feel free to tune it for your particular application)
	// print calendar header
	var yeaCombo="";
	yeaCombo="<select ONCHANGE=\"javascript:window.opener.show_calendar('"+str_target+"', dt2dtstr(this.options[this.selectedIndex].value,"+dt_datetime.getMonth()+","+dt_datetime.getDate()+")"+");\">";
	
	for (var b=0; b<25; b++)
	{
	if ((dt_cdate.getFullYear()+(b-5))==dt_datetime.getFullYear())
	yeaCombo+="<option selected=\"selected\" value=\""+(dt_cdate.getFullYear()+(b-5))+"\">"+(dt_cdate.getFullYear()+(b-5))+"</option>";
	else
	yeaCombo+="<option value=\""+(dt_cdate.getFullYear()+(b-5))+"\">"+(dt_cdate.getFullYear()+(b-5))+"</option>";
	
	}
	yeaCombo+="</select>";


	var str_buffer = new String (
		"<html>\n"+
		"<head>\n"+
		"	<title>Calendar</title>\n"+
		"</head>\n"+
		"<SCRIPT LANGUAGE=\"JAVASCRIPT\">\n"+
		"function dt2dtstr (dt_datetime,dt_month,dt_days) {\n"+
		"var dt_date=new Date();\n"+
		"dt_date.setFullYear(dt_datetime)\n"+
		"dt_date.setMonth(dt_month)\n"+
		"dt_date.setDate(dt_days)\n"+
		"return (new String (\n"+
		"(dt_date.getMonth()+1)+\"/\"+dt_date.getDate()+\"/\"+dt_date.getFullYear()));\n"+
		"}\n"+
		"</SCRIPT>\n"+
		"<body bgcolor=\"White\">\n<form>\n"+
		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
		"<tr><td bgcolor=\"#4682B4\">\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
		"<tr>\n	<td bgcolor=\"#4682B4\"><a href=\"javascript:window.opener.show_calendar('"+
		str_target+"', '"+ dt2dtstr(dt_prev_month)+"');\">"+
		"<img src='images/prev.gif' width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"previous month\"></a></td>\n"+
		"	<td bgcolor=\"#4682B4\" colspan=\"5\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
		+arr_months[dt_datetime.getMonth()]+"</font> "+yeaCombo+"</td>\n"+
		"	<td bgcolor=\"#4682B4\" align=\"right\"><a href=\"javascript:window.opener.show_calendar('"
		+str_target+"', '"+dt2dtstr(dt_next_month)+"');\">"+
		"<img src='images/next.gif' width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"next month\"></a></td>\n</tr>\n"
	);

	var dt_current_day = new Date(dt_firstday);
	// print weekdays titles
	str_buffer += "<tr>\n";
	for (var n=0; n<7; n++)
		str_buffer += "	<td bgcolor=\"#87CEFA\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"+
		week_days[(n_weekstart+n)%7]+"</font></td>\n";
	// print calendar table
	str_buffer += "</tr>\n";
	while (dt_current_day.getMonth() == dt_datetime.getMonth() ||
		dt_current_day.getMonth() == dt_firstday.getMonth()) {
		// print row heder
		str_buffer += "<tr>\n";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
				if (dt_current_day.getDate() == dt_datetime.getDate() &&
					dt_current_day.getMonth() == dt_datetime.getMonth())
					// print current date
					str_buffer += "	<td bgcolor=\"#FFB6C1\" align=\"right\">";
				else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\">";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"white\" align=\"right\">";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
					// print days of current month
					str_buffer += "<a href=\"javascript:window.opener."+str_target+
					".value='"+dt2dtstr(dt_current_day)+"'; window.close();\">"+
					"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
				else 
					// print days of other months
					str_buffer += "<a href=\"javascript:window.opener."+str_target+
					".value='"+dt2dtstr(dt_current_day)+"'; window.close();\">"+
					"<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
				str_buffer += dt_current_day.getDate()+"</font></a></td>\n";
				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	// print calendar footer
	str_buffer +=
		"<tr><td colspan=\"7\" bgcolor=\"#87CEFA\">"+
		"</td></tr>\n" +
		"</table>\n" +
		"</tr>\n</td>\n</table>\n</form>\n" +
		"</body>\n" +
		"</html>\n";

	var vWinCal = window.open("", "Calendar", 
		"width=200,height=250,status=no,resizable=yes,top=200,left=200");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
}
// datetime parsing and formatting routimes. modify them if you wish other datetime format
function str2dt (str_datetime) {
	var re_date = /^(\d+)\/(\d+)\/(\d+)/;
	if (!re_date.exec(str_datetime))
		return alert("Invalid Datetime format: "+ str_datetime);
	
	return (new Date (RegExp.$3,RegExp.$1-1,RegExp.$2));
}
function dt2dtstr (dt_datetime) {
	return (new String (
			(dt_datetime.getMonth()+1)+"/"+dt_datetime.getDate()+"/"+dt_datetime.getFullYear()));
}
function dt2tmstr (dt_datetime) {
	return (new String (
			dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds()));
}


function show_calendarRSVP(str_target, str_datetime) {
	var arr_months = ["January", "February", "March", "April", "May", "June",
		"July", "August", "September", "October", "November", "December"];
	var week_days = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
	var n_weekstart = 1; // day week starts from (normally 0 or 1)
	var dt_cdate=new Date();
	var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt(str_datetime));
	var dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);
	var dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth()+1);
	var dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
	var dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);
	
	// html generation (feel free to tune it for your particular application)
	// print calendar header
	var yeaCombo="";
	yeaCombo="<select ONCHANGE=\"javascript:window.opener.show_calendar('"+str_target+"', dt2dtstr(this.options[this.selectedIndex].value,"+dt_datetime.getMonth()+","+dt_datetime.getDate()+")"+");\">";
	
	for (var b=0; b<25; b++)
	{
	if ((dt_cdate.getFullYear()+(b-5))==dt_datetime.getFullYear())
	yeaCombo+="<option selected=\"selected\" value=\""+(dt_cdate.getFullYear()+(b-5))+"\">"+(dt_cdate.getFullYear()+(b-5))+"</option>";
	else
	yeaCombo+="<option value=\""+(dt_cdate.getFullYear()+(b-5))+"\">"+(dt_cdate.getFullYear()+(b-5))+"</option>";
	
	}
	yeaCombo+="</select>";


	var str_buffer = new String (
		"<html>\n"+
		"<head>\n"+
		"	<title>Calendar</title>\n"+
		"</head>\n"+
		"<SCRIPT LANGUAGE=\"JAVASCRIPT\">\n"+
		"function dt2dtstr (dt_datetime,dt_month,dt_days) {\n"+
		"var dt_date=new Date();\n"+
		"dt_date.setFullYear(dt_datetime)\n"+
		"dt_date.setMonth(dt_month)\n"+
		"dt_date.setDate(dt_days)\n"+
		"return (new String (\n"+
		"(dt_date.getMonth()+1)+\"/\"+dt_date.getDate()+\"/\"+dt_date.getFullYear()));\n"+
		"}\n"+
		"</SCRIPT>\n"+
		"<body bgcolor=\"White\">\n<form>\n"+
		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
		"<tr><td bgcolor=\"#4682B4\">\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
		"<tr>\n	<td bgcolor=\"#4682B4\"><a href=\"javascript:window.opener.show_calendar('"+
		str_target+"', '"+ dt2dtstr(dt_prev_month)+"');\">"+
		"<img src='images/prev.gif' width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"previous month\"></a></td>\n"+
		"	<td bgcolor=\"#4682B4\" colspan=\"5\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
		+arr_months[dt_datetime.getMonth()]+"</font> "+yeaCombo+"</td>\n"+
		"	<td bgcolor=\"#4682B4\" align=\"right\"><a href=\"javascript:window.opener.show_calendar('"
		+str_target+"', '"+dt2dtstr(dt_next_month)+"');\">"+
		"<img src='images/next.gif' width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"next month\"></a></td>\n</tr>\n"
	);

    var dt_current_day = new Date(dt_firstday);
	// print weekdays titles
	str_buffer += "<tr>\n";
	for (var n=0; n<7; n++)
		str_buffer += "	<td bgcolor=\"#87CEFA\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"+
		week_days[(n_weekstart+n)%7]+"</font></td>\n";
	// print calendar table
	str_buffer += "</tr>\n";
	while (dt_current_day.getMonth() == dt_datetime.getMonth() ||
		dt_current_day.getMonth() == dt_firstday.getMonth()) {
		// print row heder
		str_buffer += "<tr>\n";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
				if (dt_current_day.getDate() == dt_datetime.getDate() &&
					dt_current_day.getMonth() == dt_datetime.getMonth())
					// print current date
					str_buffer += "	<td bgcolor=\"#FFB6C1\" align=\"right\">";
				else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\">";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"white\" align=\"right\">";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
				{
					// print days of current month
					if (dt_current_day.getDay() <= 4 && dt_current_day.getDay() != 0)
					    //enable clickable if they are Mon-Thurs
					    str_buffer += "<a href=\"javascript:window.opener."+str_target+
					    ".value='"+dt2dtstr(dt_current_day)+"'; window.close();\">"+
					    "<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
					else
					    //disable clickable if fri-Sun
					    str_buffer += "<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
			    }
				else 
				{
					    // print days of other months
					    if (dt_current_day.getDay() <= 4 && dt_current_day.getDay() != 0)
					        str_buffer += "<a href=\"javascript:window.opener."+str_target+
					        ".value='"+dt2dtstr(dt_current_day)+"'; window.close();\">"+
					        "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
					    else
					        str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
			    }
				str_buffer += dt_current_day.getDate()+"</font></a></td>\n";
				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	// print calendar footer
	str_buffer +=
		"<tr><td colspan=\"7\" bgcolor=\"#87CEFA\">"+
		"</td></tr>\n" +
		"</table>\n" +
		"</tr>\n</td>\n</table>\n</form>\n" +
		"</body>\n" +
		"</html>\n";

	var vWinCal = window.open("", "Calendar", 
		"width=200,height=250,status=no,resizable=yes,top=200,left=200");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
}