/*
CU functions for sortabletable
*/

/*
Thanks to Devon McCarty for this code :-)
This function processes dates in normal US order: m/d/yyyy

	if(s == '') {
		return 0;
	}
	else {
		var parts = s.split("/");
		var d = new Date(parts[2],parts[0] - 1, parts[1]);
		return d;
	}


*/
function cuDateFunc(s) {
	if(s == '') {
		return 0;
	}
	else {
		var parts = s.split("/");
		if (parts.length == 3) {
			// check for two/four digit year
			if (parts[2].length == 2) {
				var theYear=parseFloat(parts[2]);
				if (theYear < 50) {
					theYear=theYear + 2000;
				} else {
					theYear=theYear + 1900;
				}
				parts[2] = theYear;
			}
			var d = new Date(parts[2],parts[0] - 1, parts[1]);
			return d;
		} else {
			// otherwise the string passed wasn't in the expected format
			return 0;
		}
	}
}
SortableTable.prototype.addSortType("cuDate",cuDateFunc);


/* 
This function processes date strings that are set as an attribute on the td
*/
function cuGetDateFromTr(oTr, nCol) {
	// borrowed from http://webfx.eae.net/webboard/?action=display&id=1324&group=data/dhtml
	// iso dates are comparable
	return oTr.cells[nCol].getAttribute("date");
}
SortableTable.prototype.addSortType("cuDate2",null,null,cuGetDateFromTr);

/* 
This function processes date strings that are ...
*/
function cuParseDate_ddd_m_d_yy(oTr, nCol) {
	var s=oTr.cells[nCol].innerHTML;
	if (s.length > 0)
		// replace br tag
		s=s.replace(/<(.*)>/, " ");
		var parts = s.split(" ");
		// verify we have at least two parts
		if (parts.length > 1) {
			// pass the second piece to the normal CuDateFunc()
			// trim leading and trailing whitespace
		   var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
		   if (obj.test(parts[1])) { parts[1] = parts[1].replace(obj, '$2'); }
			//document.writeln('parts[1] = "' + parts[1] + '"<br />');
			var d = cuDateFunc(parts[1]);
			//document.writeln('d = ' + d + '<br />');
		return d;
	} else {
		// otherwise the string passed wasn't in the expected format
		return 0;
	}
}
SortableTable.prototype.addSortType("cuDate3",null,null,cuParseDate_ddd_m_d_yy);

// Thanks to Brian K. Cantwell for the initial code
function cuUsCurrencyConverter(s) {
	var n = s;
	var i = s.indexOf( "$" );
	if ( i == -1 ) {
		i = s.indexOf( "," );
	}
	if ( i != -1 ) {
		var p1 = s.substr( 0, i );
		var p2 = s.substr( i + 1, s.length );
		return cuUsCurrencyConverter( p1 + p2 );
	}
	return parseFloat(n);
}
SortableTable.prototype.addSortType("cuUsCurrency",cuUsCurrencyConverter);

