
var timeouts = new Array();

var returnDateId = null;

function buildCal(parentId, d, m, y)
{
	try
	{
		
		cM		= "main";
		cH		= "month"; 
		cDW		= "daysofweek";
		cD		= "days";
		brdr	= "0";
	
		
		var mn=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
		var dim=[31,0,31,30,31,30,31,31,30,31,30,31];

		var oD = new Date(y, m-1, d); //DD replaced line to fix date bug when current day is 31st
		var m
		
		///alert(oD, + ", " + y +"-"+m+"-"+d)
		
		oD.od	= oD.getDay(); //DD replaced line to fix date bug when current day is 31st
		
		X = new Date() // Today
		
		
		var oD1 = new Date(y, m-1, 1);
		oD1.fdof = oD1.getDay(); //get weekday of first day of month

		///first day of week is now monday not sunday
		if(oD1.fdof == 0)
		{
			oD1.fdof = 7;
		}

		var todaydate=new Date() //DD added
		var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added


		dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
		
		var t = '';
		t += '<div><table class="calBody" cellpadding="2" border="0" width="105" cellspacing="0"><tr align="center" class="calHeader">';
		t += '<td>&nbsp;<a href="JavaScript:buildCal(\'' + parentId + '\', 1, ' + differentYear((parseInt(m) - 1), y) + ')" onclick="buildCal(\'' + parentId + '\', 1, '+ differentYear((parseInt(m) - 1),y) +'); return false;"><img src="Images//cal_prev_month.gif" border="0" width="7" height="11" /></a></td>';
		t += '<td colspan="7" align="center">' + mn[m-1] + ' - ' + y + '</td>';
		t += '<td><a href="JavaScript:buildCal(\'' + parentId + '\', 1, '+ differentYear((parseInt(m) + 1), y) + ')"><img src="Images//cal_next_month.gif" border="0"  width="8" height="11" /></a>&nbsp;</td>';
		t += '</tr>';
		t += '<tr align="center"><td>&nbsp;</td>';
		for(s = 0; s < 7; s++)
		{
			t += '<td class="calDayHeader" style="font-size:13pX;color:#000000;font-weight:100">'+ "MTWTFSS".substr(s, 1) +'</td>';
		}
		t += '<td>&nbsp;</td></tr><tr align="center"><td>&nbsp;</td>';
		
		
		for(var i = 1; i < 49; i++)
		{
			var x = (i >= oD1.fdof) && (((i - oD1.fdof) + 1) <= dim[m - 1]) ? ((i - oD1.fdof) + 1) : '&nbsp;';
	
			if(x != '&nbsp;')
			{
				if(x == d)
				{
					t += '<td style="background-color:#FF6600;font-size:12px"><a href="JavaScript:void(0);" onClick="setFormValue(\'' + parentId + '\', \'' + x + '/' + m + '/' + y + '\'); return false;">' + x + '</a></td>';
				}
				else
				{
					t += '<td style="font-size:12px"><a href="JavaScript:void(0);" onClick="setFormValue(\'' + parentId +'\', \'' + x + '/' + m + '/' + y + '\');  return false;">'+x+'</a></td>';
				}
			}
			else
			{
				t += '<td style="font-size:12px">'+ x +'</td>';
			}
			
			if(i==7||i==14||i==21||i==28||i==35||i==42||i==49)
			{
				t+='<td>&nbsp;</td></tr><tr align="center"><td>&nbsp;</td>';
				
				///break before extra line
				if(i>7 && x == '&nbsp;')
				{
					break;
				}
			}
		}
		
		t += '<td>&nbsp;</td></tr><td colspan="9" align="center" style="font-size:12px"><a href="JavaScript:closeCalendar(\'' + document.getElementById(parentId).id +'\');" onclick="closeCalendar(\'' + document.getElementById(parentId).id +'\'); return false;">Close</a><td></table></div>'
		
		///
		if(document.getElementById(parentId) != null)
		{
			document.getElementById(parentId).innerHTML = t;
//			document.getElementById(parentId).focus();
		}
	}
	catch(e)
	{
		//alert(e.message)
	}
}

function differentYear(m,y)
{
	try
	{
		if(parseInt(m) == 13)
		{
			return "1," + (parseInt(y) + 1).toString();
		}
		else if(parseInt(m) == 0)
		{
			return "12," + (parseInt(y) - 1).toString();
		}
		else
		{
			return m.toString() + "," + y.toString();
		}
	}
	catch(e)
	{
		//alert(e.message);
	}
}

var blockClose = new Array();


function test()
{
	alert("THIS IS A TEST MESSAGE");	
}

function getDateDifference(val1)
{
alert("haha : "+val1);
var currentTime = new Date()
var tmonth = currentTime.getMonth() + 1
var tday = currentTime.getDate()
var tyear = currentTime.getFullYear()
alert(tday + "/" + tmonth +"/"+ tyear);
//--------------
calDate = val1 ;
mday = calDate.substring(0,calDate.indexOf('/'));
calDate = calDate.substring(calDate.indexOf('/')+1);

mMonth = calDate.substring(0,calDate.indexOf('/'));
calDate = calDate.substring(calDate.indexOf('/')+1);

mYear = calDate;

alert(mday + "/" + mMonth +"/"+ mYear);
//--------------------

if(tyear <= mYear)
{
	if( tmonth < mMonth)
	{
		alert("IT's fine , we are save");
	}
	else  if(tmonth > mMonth)
	{
		alert("we are in Danger");
	}
	else if(tmonth == mMonth)
	{
		if(tday > mday)
		{
			alert("IT's fine , we are save");
		}
		else
		{
			alert("we are in Danger");
		}
	}
}


}


function openCalender(objSender)
{
	
	try
	{
		///this is to sync pickup and return date
		if(arguments.length > 1)
		{
			returnDateId = (document.getElementById(arguments[1]) != null) ? document.getElementById(arguments[1]) : null;
		}
		
		var dtNow  = new Date();
		var objCal;
		var objIFrame;
		if(document.getElementById("cal" + objSender.id) == null)
		{
			objCal = document.createElement("div");
			///add style to objLocationSuggestArea
			objCal.id = "cal" + objSender.id;
			///append style
			objCal.style.position			= "absolute";
			objCal.style.overflow			= "hidden";
			objCal.style.visibility			= "hidden";
			objCal.style.display			= "block";
			objCal.style.zIndex				= "100";
			objCal.style.backgroundColor	= "white";
			objCal.style.border				= "1px solid #DEDEDE";
			//objCal.style.font		        = "";
			///append posssision and size

			objCal.style.width				= "150px";
			//objCal.style.height			= "130px";
		
			document.body.appendChild(objCal)

			if(is_buggy_ie)
			{
				///this is a IE bug for overlapping a select with a div layer
				objIFrame = document.createElement("iframe");
				objIFrame.id						= "iframe" + objSender.id;
				objIFrame.src						= "blank.html";
				objIFrame.style.position			= "absolute";
				objIFrame.style.overflow			= "hidden";
				objIFrame.style.visibility			= "hidden";
				objIFrame.style.zIndex				= "10";
				objIFrame.frameborder				= "0";
				objIFrame.scrolling					= "no";
				document.body.appendChild(objIFrame)
			}
			
			if(chkdate(objSender) == true && objSender.value.length >= 8)
			{
				var dateValue = new Array(3);
				dateValue = objSender.value.split('/')
				var dtNow  = new Date(dateValue[2]+"-"+dateValue[1]+"-"+dateValue[0])
				buildCal("cal" + objSender.id, dateValue[0], dateValue[1], dateValue[2]);
			}
			else
			{
				buildCal("cal" + objSender.id, dtNow.getDate()+1, (dtNow.getMonth()+1), dtNow.getFullYear());
			}

			addEvent(objSender, "blur", function() { if(!blockClose['cal' + this.id]) closeCalendar('cal' + this.id); });
			addEvent(objCal, "mouseover", function() { blockClose[this.id] = true; });
			addEvent(objCal, "mouseout", function() { blockClose[this.id] = false; });
			addEvent(objCal, "mouseup", function() { document.getElementById(this.id.replace("cal", "")).focus(); });
		}
		else
		{	
			if(chkdate(objSender) == true && objSender.value.length >= 8)
			{
				var dateValue = new Array(3);
				dateValue = objSender.value.split('/')
				var dtNow  = new Date(dateValue[2],(dateValue[1]-1),dateValue[0])
				buildCal("cal" + objSender.id, dateValue[0], dateValue[1], dateValue[2]);

			}
			else
			{
				buildCal("cal" + objSender.id, dtNow.getDate(), (dtNow.getMonth()+1), dtNow.getFullYear());
			}
		}

		objCal		= document.getElementById("cal" + objSender.id);
		objIFrame	= document.getElementById("iframe" + objSender.id);
		
		///display and pos cal
		objCal.style.left	= (getOffsetLeft(document.getElementById(objSender.id), false))	+ "px";
		objCal.style.top	= (getOffsetTop(document.getElementById(objSender.id), false)		+ document.getElementById(objSender.id).offsetHeight) + "px";
				
		objCal.style.visibility		= "visible";
		objCal.style.display		= "block";
		
		if(is_buggy_ie)
		{
			///iframe
			objIFrame.style.left		= objCal.style.left;
			objIFrame.style.top			= objCal.style.top;
			objIFrame.style.width		= objCal.style.width;
			objIFrame.style.height		= objCal.style.height;
		
			objIFrame.style.visibility	= "visible";
			objIFrame.style.display		= "block";
		}
		
	}
	catch(e)
	{
		//alert(e.message);
	}
}

function closeCal(calId)
{
	try
	{
		if(document.getElementById(calId) != null)
		{
			if(!blockClose[calId]) closeCalendar(calId);
		}
	}
	catch(e)
	{
		//alert(e.message);
	}
}

function closeCalendar(calId)
{
	try
	{
		if(document.getElementById(calId) != null)
		{
			document.getElementById(calId).style.visibility	= "hidden";
			document.getElementById(calId).style.display	= "block";
			
			if(is_buggy_ie)
			{			
				document.getElementById(calId.replace("cal", "iframe")).style.visibility	= "hidden";
				document.getElementById(calId.replace("cal", "iframe")).style.display		= "block";
			}
		}
	}
	catch(e)
	{
		//alert(e.message);
	}
}

function setFormValue(calId, dateValue)
{
	try
	{
		if(document.getElementById(calId.slice(3)) != null)
		{
			if(returnDateId != null)
			{
				if(returnDateId.value.length < 1)
				{		
					returnDateId.value = setReturnDate(dateValue)	
					//returnDateId.value = dateValue;						
				}
				else
				{
					if(validateSetDateFormat(returnDateId.value) && validateSetDateFormat(dateValue))
					{
						var p; ///p = pickup
						var r; ///r = return
						p	= returnDateId.value.split("/");
						r	= dateValue.split("/");	
						
						dtP	= new Date();
						dtP.setFullYear(p[2],(parseInt(p[1])-1),p[0]);
						
						dtR	= new Date();
						dtR.setFullYear(r[2],(parseInt(r[1])-1),r[0]);				
						
						if(dtR > dtP)
						{	
							dtR.setDate(dtR.getDate() + 1);
							var newDate = dtR.getDate() + "/" + (dtR.getMonth()+ 1) + "/" + dtR.getFullYear();				
							
							returnDateId.value = newDate;							
						}
//						else
//						{
//							//buildCal("cal" + objSender.id, dtNow.getDate()+1, (dtNow.getMonth()+1), dtNow.getFullYear());
//						}
					}
				}
				
				
				//reset obj
				returnDateId = null;
			}
		
			document.getElementById(calId.slice(3)).value = dateValue;
			document.getElementById(calId).style.visibility	= "hidden";
			document.getElementById(calId).style.display	= "block";
			
			if(is_buggy_ie)
			{
				document.getElementById(calId.replace("cal", "iframe")).style.visibility	= "hidden";
				document.getElementById(calId.replace("cal", "iframe")).style.display		= "block";
			}
		}
	}
	catch(e)
	{
		alert(e.message);
	}
}

function getFormValue(calId)
{
	try
	{
		if(document.getElementById(calId) != null)
		{
			return document.getElementById(calId.slice(3)).value;
		}
	}
	catch(e)
	{
		//alert(e.message);
	}
}

// written by Dean Edwards, 2005
// with input from Tino Zijdel - crisp@xs4all.nl
// http://dean.edwards.name/weblog/2005/10/add-event/
function handleEvent(event) {
    var returnValue = true;
    // grab the event object (IE uses a global event object)
    event = event || fixEvent(window.event);
    // get a reference to the hash table of event handlers
    var handlers = this.events[event.type];
    // execute each event handler
    for (var i in handlers) {
        this.$$handleEvent = handlers[i];
        if (this.$$handleEvent(event) === false) {
            returnValue = false;
        }
    }
    return returnValue;
};

function fixEvent(event) {
    // add W3C standard event methods
    event.preventDefault = fixEvent.preventDefault;
    event.stopPropagation = fixEvent.stopPropagation;
    return event;
};
fixEvent.preventDefault = function() {
    this.returnValue = false;
};
fixEvent.stopPropagation = function() {
    this.cancelBubble = true;
};


function cloneDate(sender, targetId)
{
	try
	{
		if(document.getElementById(targetId) != null)
		{
			var objTargetId = document.getElementById(targetId);
			
			if(objTargetId.value.length == 0)
			{
				window.setTimeout("alert()",1000); 
			}
		}
	}
	catch(e)
	{
		alert(e.message);
	}
}

function setReturnDate(dateValue)
{
	try
	{
		var r; ///r = return
		r	= dateValue.split("/");	
					
		dtR	= new Date();	
		dtR.setFullYear(r[2],(parseInt(r[1])-1),r[0]);
		dtR.setDate(dtR.getDate() + 1);
			
		var newDate = dtR.getDate() + "/" + (dtR.getMonth() + 1)+ "/" + dtR.getFullYear();	
				
		return newDate;					
	}
	catch(e)
	{
		alert(e.message);
	}
}



