function CropString(orgStr, cropSize)
{
	if (orgStr.length == 0) 
	{
		return '';
	}
	
	if (cropSize == NaN) 
	{
		cropSize = 100;
	}
	
	var appendStr = ' ...';
	
	if(orgStr.length < cropSize)
	{
		appendStr = '';
		cropSize = orgStr.length;
	}
	
	return orgStr.substr(0, cropSize) + appendStr;
}

function FormatDateTimeSA(datetimeUtc, dateTimeZone) {
    var dateTimeToBeFormat = datetimeUtc;
	    var dateTimeZone = dateTimeZone;
	    var dateParts = dateTimeToBeFormat.split(" ")[0].split("/");
	    var timeParts = dateTimeToBeFormat.split(" ")[1].split(":");

	    var formatDateYear = parseInt(dateParts[2]);
	    var formatDateMonth = parseInt(dateParts[0].charAt(0) == "0" ? dateParts[0].substr(1,1) : dateParts[0]);
	    var formatDateDay = parseInt(dateParts[1].charAt(0) == "0" ? dateParts[1].substr(1,1) : dateParts[1]);
	    var formatDateHour = parseInt(timeParts[0].charAt(0) == "0" ? timeParts[0].substr(1,1) : timeParts[0]);
	    var formatDateMins = parseInt(timeParts[1].charAt(0) == "0" ? timeParts[1].substr(1,1) : timeParts[1]);

	    var formatDateTime = new Date(formatDateYear, formatDateMonth - 1, formatDateDay, formatDateHour, formatDateMins);
        formatDateTime.addHours(dateTimeZone);

        

	    var currentDateTime = new Date();

	    WriteTimeDifference(currentDateTime, formatDateTime);

	    function WriteTimeDifference(laterdate, earlierdate) {
	        var difference = laterdate.getTime() - earlierdate.getTime();

	        var daysDifference = Math.floor(difference / 1000 / 60 / 60 / 24);
	        difference -= daysDifference * 1000 * 60 * 60 * 24

	        var hoursDifference = Math.floor(difference / 1000 / 60 / 60);
	        difference -= hoursDifference * 1000 * 60 * 60

	        var minutesDifference = Math.floor(difference / 1000 / 60);
	        difference -= minutesDifference * 1000 * 60

	        var secondsDifference = Math.floor(difference / 1000);

	        var outputString = "about ";

	        if (daysDifference > 0) {
	            //outputString += daysDifference + (daysDifference == 1 ? " day " : " days ");
                var weekday = new Array(7);
                weekday[0]="Sunday";
                weekday[1]="Monday";
                weekday[2]="Tuesday";
                weekday[3]="Wednesday";
                weekday[4]="Thursday";
                weekday[5]="Friday";
                weekday[6]="Saturday";

                var months = new Array(12);
                months[0] = "Jan";
                months[1] = "Feb";
                months[2] = "Mar";
                months[3] = "Apr";
                months[4] = "May";
                months[5] = "Jun";
                months[6] = "Jul";
                months[7] = "Aug";
                months[8] = "Sep";
                months[9] = "Oct";
                months[10] = "Nov";
                months[11] = "Dec";

                var day = formatDateTime.getDay();
                var month = formatDateTime.getMonth();

                document.write(weekday[day] + " " + months[month] + " " + formatDateTime.getDate() + ", " + (formatDateTime.getHours() == "0" ? "12" : (formatDateTime.getHours() + 1 > 12 ? formatDateTime.getHours() - 12 : formatDateTime.getHours() + 1)) + "." + timeParts[1] + (formatDateTime.getHours() > 11 ? "PM" : "AM"));
                return;
	        }

	        if (hoursDifference > 0) {
	            outputString += hoursDifference + (hoursDifference == 1 ? " hour " : " hours ");
	        }

	        if (minutesDifference > 0) {
	            outputString += minutesDifference + (minutesDifference == 1 ? " minute " : " minutes ");
                
	        }

	        document.write(outputString += " ago");
	    }
}

function FormatDateTimeUtc(datetimeUtc, dateTimeZone) {
	    var dateTimeToBeFormat = datetimeUtc;
	    var dateTimeZone = dateTimeZone;
	    var dateParts = dateTimeToBeFormat.split("T")[0].split("-");
	    var timeParts = dateTimeToBeFormat.split("T")[1].split(":");

	    var formatDateYear = parseInt(dateParts[0]);
	    var formatDateMonth = parseInt(dateParts[1].charAt(0) == "0" ? dateParts[1].substr(1,1) : dateParts[1]);
	    var formatDateDay = parseInt(dateParts[2].charAt(0) == "0" ? dateParts[2].substr(1,1) : dateParts[2]);
	    var formatDateHour = parseInt(timeParts[0].charAt(0) == "0" ? timeParts[0].substr(1,1) : timeParts[0]);
	    var formatDateMins = parseInt(timeParts[1].charAt(0) == "0" ? timeParts[1].substr(1,1) : timeParts[1]);

	    var formatDateTime = new Date(formatDateYear, formatDateMonth - 1, formatDateDay, formatDateHour, formatDateMins);
        formatDateTime.addHours(dateTimeZone);

	    var currentDateTime = new Date();

	    WriteTimeDifference(currentDateTime, formatDateTime);

	    function WriteTimeDifference(laterdate, earlierdate) {
	        var difference = laterdate.getTime() - earlierdate.getTime();

	        var daysDifference = Math.floor(difference / 1000 / 60 / 60 / 24);
	        difference -= daysDifference * 1000 * 60 * 60 * 24

	        var hoursDifference = Math.floor(difference / 1000 / 60 / 60);
	        difference -= hoursDifference * 1000 * 60 * 60

	        var minutesDifference = Math.floor(difference / 1000 / 60);
	        difference -= minutesDifference * 1000 * 60

	        var secondsDifference = Math.floor(difference / 1000);

	        var outputString = "about ";

	        if (daysDifference > 0) {
	            //outputString += daysDifference + (daysDifference == 1 ? " day " : " days ");
                var weekday = new Array(7);
                weekday[0]="Sunday";
                weekday[1]="Monday";
                weekday[2]="Tuesday";
                weekday[3]="Wednesday";
                weekday[4]="Thursday";
                weekday[5]="Friday";
                weekday[6]="Saturday";

                var months = new Array(12);
                months[0] = "Jan";
                months[1] = "Feb";
                months[2] = "Mar";
                months[3] = "Apr";
                months[4] = "May";
                months[5] = "Jun";
                months[6] = "Jul";
                months[7] = "Aug";
                months[8] = "Sep";
                months[9] = "Oct";
                months[10] = "Nov";
                months[11] = "Dec";

                var day = formatDateTime.getDay();
                var month = formatDateTime.getMonth();

                document.write(weekday[day] + " " + months[month] + " " + formatDateTime.getDate() + ", " + (formatDateTime.getHours() == "0" ? "12" : (formatDateTime.getHours() + 1 > 12 ? formatDateTime.getHours() - 12 : formatDateTime.getHours() + 1)) + "." + timeParts[1] + (formatDateTime.getHours() > 11 ? "PM" : "AM"));
                return;
	        }

	        if (hoursDifference > 0) {
	            outputString += hoursDifference + (hoursDifference == 1 ? " hour " : " hours ");
	        }

	        if (minutesDifference > 0) {
	            outputString += minutesDifference + (minutesDifference == 1 ? " minute " : " minutes ");
	        }

	        document.write(outputString + " ago");
	    }
}

Date.prototype.addHours = function(h){
    this.setHours(this.getHours()+h);
    return this;
}
