//**********************************************************************************************
//GLobal Variables and Functions
//**********************************************************************************************
var ngsActiveDate;
var ngsCurDate = new Date();

function ngsCalShowMonth(dt) {
	cal = document.getElementById("ngsPopupCal");

	var dc = 0;
	var mth = dt.getMonth();
	
	switch (mth) { 
		case 0:  document.getElementById("ngsCalMonth").innerHTML = 'January ' + dt.getFullYear(); break;
		case 1:  document.getElementById("ngsCalMonth").innerHTML = 'February ' + dt.getFullYear(); break; 
		case 2:  document.getElementById("ngsCalMonth").innerHTML = 'March ' + dt.getFullYear(); break; 
		case 3:  document.getElementById("ngsCalMonth").innerHTML = 'April ' + dt.getFullYear(); break; 
		case 4:  document.getElementById("ngsCalMonth").innerHTML = 'May ' + dt.getFullYear(); break; 
		case 5:  document.getElementById("ngsCalMonth").innerHTML = 'June ' + dt.getFullYear(); break; 
		case 6:  document.getElementById("ngsCalMonth").innerHTML = 'July ' + dt.getFullYear(); break; 
		case 7:  document.getElementById("ngsCalMonth").innerHTML = 'August ' + dt.getFullYear(); break; 
		case 8:  document.getElementById("ngsCalMonth").innerHTML = 'September ' + dt.getFullYear(); break; 
		case 9:  document.getElementById("ngsCalMonth").innerHTML = 'October ' + dt.getFullYear(); break; 
		case 10: document.getElementById("ngsCalMonth").innerHTML = 'November ' + dt.getFullYear(); break; 
		case 11: document.getElementById("ngsCalMonth").innerHTML = 'December ' + dt.getFullYear(); break; 
	}
	
	for (i=1; i<43; i++) {
		var btn = document.getElementById("ngsCalBtn"+i);
		
		if ( (dc==dt.getDay()) && (mth==dt.getMonth()) ) {
			btn.style.visibility = "visible";
			btn.innerHTML = dt.getDate();
			dt = new Date( dt.getFullYear(), dt.getMonth(), dt.getDate()+1 );
		} else {
			btn.style.visibility = "hidden";
		}
		
		dc++;
		if (dc>6) {dc=0;}
	}
	
}	

function ngsCalShowNextMonth() {
	ngsCurDate = new Date( ngsCurDate.getFullYear(), ngsCurDate.getMonth()+1, 1, 0, 0, 0 );
	ngsCalShowMonth( ngsCurDate );
}

function ngsCalShowPrevMonth() {
	ngsCurDate = new Date( ngsCurDate.getFullYear(), ngsCurDate.getMonth()-1, 1, 0, 0, 0 );
	ngsCalShowMonth( ngsCurDate );
}

function ngsCalGetPageCoords (element) { 
	var coords = { x: 0, y: 0 }; 
	while (element) { 
		coords.x += element.offsetLeft; 
		coords.y += element.offsetTop; 
		element = element.offsetParent; 
	} 
	return coords; 
} 

function ngsCalShowCalendar(ctrl,input) {
	cnc = document.getElementById("ngsCloseDiv");
	cal = document.getElementById("ngsPopupCal");
	pop = document.getElementById(ctrl);
	box = document.getElementById(input);

	try {
		var cd = box.value;
		if (cd!='') {
			cd = cd.split('/');
			dt = new Date( cd[2], cd[1]-1, 1, 0, 0, 0 );
		} else {
			dt = new Date();
		}
	} catch(e) {
		dt = new Date();	
	}

	dt = new Date( dt.getFullYear(), dt.getMonth(), 1, 0, 0, 0 );
	ngsCurDate = new Date( dt.getFullYear(), dt.getMonth(), 1, 0, 0, 0 );

	ngsCalShowMonth( dt ); 
	
	cnc.style.visibility = "visible";
	cnc.style.height = "100%"; 
	
	var coords = ngsCalGetPageCoords( pop );
	cal.style.visibility = "visible";
	cal.style.left = coords.x + "px";
	cal.style.top = coords.y + 20 + "px";
	
	ngsActiveDate = box;
}

function ngsCalAddLeadingZeroes(ds) {
	var dp = ds.split('/');
	
	if (dp[0].length<2) dp[0] = '0' + dp[0];
	if (dp[1].length<2) dp[1] = '0' + dp[1];
	if (dp[2].length<2) dp[2] = '0' + dp[2];
	
	return dp[0] + '/' + dp[1] + '/' + dp[2];
}

function ngsCalClick(sender) {
	cnc = document.getElementById("ngsCloseDiv");
	cal = document.getElementById("ngsPopupCal");
	btn = document.getElementById(sender.id); 

	cnc.style.visibility = "hidden";
	cal.style.visibility = "hidden";

	ngsActiveDate.value = ngsCalAddLeadingZeroes(btn.innerHTML + '/' + (ngsCurDate.getMonth()+1) + '/' + ngsCurDate.getFullYear());

	for (i=1; i<43; i++) {
		var btn = document.getElementById("ngsCalBtn"+i);
		btn.style.visibility = "hidden";
	}		
	
	try { ngsCalDateUpdate(ngsActiveDate.id); } catch(e) { }
}

function ngsCalHideCalendar() {
	cnc = document.getElementById("ngsCloseDiv");
	cal = document.getElementById("ngsPopupCal");

	cnc.style.visibility = "hidden";
	cal.style.visibility = "hidden";

	for (i=1; i<43; i++) {
		var btn = document.getElementById("ngsCalBtn"+i);
		btn.style.visibility = "hidden";
	}		
}	

