// UBB.classic(tm) Date Javascript Library

//

// Original code is copyright 2002-2003 Infopop Corporation

//

// This entire program is copyright Infopop Corporation.

// For more info on UBB.classic and other Infopop

// Products/Services, visit: http://www.infopop.com

//

// You may not distribute this program in any manner, modified or otherwise.

// You make modifications, but only for your own use and within the confines

// of the UBB.classic License Agreement.

//

// function formatDate and function LZ are based on the work of Matt Kruse - http://www.mattkruse.com/

// Thank you, Matt!

//

// $Id: datelib.js,v 1.4 2003/02/07 22:04:06 cvscapps Exp $



function timestamp (dobj, dform, tform, dclass, tclass, dord, noadj) {

	// Args:

	// Date object

	// Date format

	// Time format

	// Date CSS class (numeric)

	// Time CSS class

	// Bool: Place time before date?

	// Bool: Don't adjust time?



	var dstamp;

	var tstamp;

	var ret = new Array;



	var ttime = dobj.getTime();

	if((fudge != null) && (noadj < 1)) {

		ttime += (fudge * 3600000);

		dobj.setTime(ttime);

	} // end if



	if(dform != null) {

		dstamp = formatDate(dobj, dform);

	} else {

		dstamp = "";

	} // end if

	if(tform != null) {

		tstamp = formatDate(dobj, tform);

	} else {

		tstamp = "";

	} // end if



	if(dclass > 0) {

		ret[0] = "<" + "s" + "pan class=" + '"datestamp-' + dclass + '">' + dstamp + "<" + "/span" + ">";

	} else {

		ret[0] = dstamp;

	} // end if

	if(tclass > 0) {

		ret[1] = "<" + "s" + "pan class=" + '"timestamp-' + tclass + '">' + tstamp + "<" + "/span" + ">";

	} else {

		ret[1] = tstamp;

	} // end if



	if(dord == 1) {

		var tmp = ret[0];

		ret[0] = ret[1];

		ret[1] = tmp;

	} // end if



	if (ret[0] && !ret[1]) {

		return ret[0];

	} else if (!ret[0] && ret[1]) {

		return ret[1];

	} else {

		return ret[0] + " " + ret[1];

	} // end if



} // end function



function LZ(x) {return(x<0||x>9?"":"0")+x}



function formatDate(date,format) {

	format=format+"";

	var result="";

	var i_format=0;

	var c="";

	var token="";

	var y=date.getYear()+"";

	var M=date.getMonth()+1;

	var d=date.getDate();

	var H=date.getHours();

	var m=date.getMinutes();

	var s=date.getSeconds();

	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;

	// Convert real date parts into formatted versions

	var value=new Object();

	if (y.length < 4) {y=""+(y-0+1900);}

	value["y"]=""+y;

	value["yyyy"]=y;

	value["yy"]=y.substring(2,4);

	value["M"]=M;

	value["MM"]=LZ(M);

	value["MMM"]=MONTH_NAMES[M-1];

	value["d"]=d;

	value["dd"]=LZ(d);

	value["H"]=H;

	value["HH"]=LZ(H);

	if (H==0){value["h"]=12;}

	else if (H>12){value["h"]=H-12;}

	else {value["h"]=H;}

	value["hh"]=LZ(value["h"]);

	if (H>11){value["K"]=H-12;} else {value["K"]=H;}

	value["k"]=H;

	value["KK"]=LZ(value["K"]);

	value["kk"]=LZ(value["k"]);

	if (H > 11) { value["a"]= AMPM[1]; }

	else { value["a"]= AMPM[0]; }

	value["m"]=m;

	value["mm"]=LZ(m);

	value["s"]=s;

	value["ss"]=LZ(s);

	while (i_format < format.length) {

		c=format.charAt(i_format);

		token="";

		while ((format.charAt(i_format)==c) && (i_format < format.length)) {

			token += format.charAt(i_format++);

			}

		if (value[token] != null) { result=result + value[token]; }

		else { result=result + token; }

		}

	return result;

	}


