/*
	NOTE.
	
	PLEASE DO NOT PUT HERE ANY PROJECT-SPECIFIC SCRIPT
	
*/

/*
	$Id: DateTime.js,v 1.1.1.1 2004/02/03 07:54:59 vpatlatii Exp $
    Tag $Name: B60-07/13/2005 $
	
	THIS IS PRELIMINARY VERSION AND SUBJECT TO CHANGE
*/

function DT_toXML( c)
{
	var d = c.getDate();
	var m = c.getMonth()+1;
	var y = c.getFullYear();
	var h = c.getHours();
	var n = c.getMinutes();
	var s = c.getSeconds();
	
	return "" + y +  
		( m < 10 ? ('0' + m) : m) +
		( d < 10 ? ('0' + d) : d) +
		( h < 10 ? ('0' + h) : h) +
		( n < 10 ? ('0' + n) : n) +
		( s < 10 ? ('0' + s) : s);
}

function DT_fromXML( s)
{
	// 01234567890123
	// yyyymmddhhnnss
	return new Date(
		parseInt(s.substr(0,4),10),
		parseInt(s.substr(4,2),10)-1,
		parseInt(s.substr(6,2),10),
		parseInt(s.substr(8,2),10),
		parseInt(s.substr(10,2),10),
		parseInt(s.substr(12,2),10),
		0
	);
}

function DT_fromXML_strange( s)
{
	// YYYY-MM-DDTHH:MM:SS.LLL
	// 01234567890123456789012
		
	return new Date(
		parseInt(s.substr(0,4),10),
		parseInt(s.substr(5,2),10)-1,
		parseInt(s.substr(8,2),10),
		parseInt(s.substr(11,2),10),
		parseInt(s.substr(14,2),10),
		parseInt(s.substr(17,2),10),
		0
	);
}

function _DT_fromAny( date )
{
	switch( typeof(date)) {
	case "string":
		if( date.charAt(10) == 'T')
			return DT_fromXML_strange(date);
		else
			return DT_fromXML(date);
	break;
	case "number":
		return new Date(date);
	break;
	default:
		// assumed that a Date object is passed
		return date;
	break;
	}
}

function DT_fromAny( date, advance )
{
	date = _DT_fromAny( date);

	if( ! advance) return date;
	
	return new Date( date.getTime() + advance);
}

function DT_renderDate( s, format, separator)
	// s -- date in XML format
{

	switch( format) {
	case "dmy":
		return	s.substring(6,8) + separator + 
				s.substring(4,6) + separator +
				s.substring(0,4);
	break;
	case "mdy":
		return	s.substring(4,6) + separator + 
				s.substring(6,8) + separator +
				s.substring(0,4);
	break;
	default:
		return "ERROR";
	}
}

function DT_renderTime( s, format, am, pm, ampmseparator)
	// s -- date in XML format:
	//			01234567890123
	//			yyyymmddhhnnss
	// format:		h - 12 hours, AM/PM
	//				H - 24 hours
	//				hh, HH - leading zero
	// am, pm: am/pm suffixes
	// ampmseparator: separator between time and am/pm suffix
	
{
	var h = parseInt(s.substring(8,10),10);
	var hs;
	if(( format == "h" || format == "hh") && h > 12) h -= 12;
	hs = h;
	if(( format == "hh" || format == "HH") && h < 10) hs = "0" + hs;
	var r = hs + ":" + s.substring(10,12);
	if( format == "h" || format == "hh") {
		r += ampmseparator + (( h < 12) ? am : pm);
	}
	return  r;
}

/*
	NOTE.
	
	PLEASE DO NOT PUT HERE ANY PROJECT-SPECIFIC SCRIPT
	
*/
