function get_time(format, time) {

    var oCurrentDate = new Date();
    var oDateValue = new Date(time);
    var iHour = oDateValue.getHours();
    var iMinute = oDateValue.getMinutes();
    var iSecond = oDateValue.getSeconds();
    var iDay = oDateValue.getDate();
    var iDayWeek = oDateValue.getDay();
    var iMonth = oDateValue.getMonth();
    var iYear = oDateValue.getFullYear();
    var iHour12 = iHour;
    var sAP = "AM";
    var sDay = "";
    var sMonth = "";
    var sMinute = iMinute;
    var sSecond = iSecond;
    var iSecondsDiff = round_floorceil((oCurrentDate.getTime() - oDateValue.getTime())/1000);
    var iMinsDiff = round_floorceil(iSecondsDiff/60);
    var iHrsDiff = round_floorceil(iMinsDiff/60);
    var iDaysDiff = round_floorceil(iHrsDiff/24);

    if (iHour >= 13) {
        iHour12 = iHour - 12;
        sAP = "PM";
    }

    if (iMinute <= 9) {
        sMinute = "0" + iMinute;
    }
    
    if (iSecond <= 9) {
        sSecond = "0" + iSecond;
    }

    switch (iMonth) { 
       case 0 : 
          sMonth = "January"
          break; 
       case 1 : 
          sMonth = "February"
          break; 
       case 2 : 
          sMonth = "March"
          break; 
       case 3 : 
          sMonth = "April"
          break; 
       case 4 : 
          sMonth = "May"
          break; 
       case 5 : 
          sMonth = "June"
          break; 
       case 6 : 
          sMonth = "July"
          break; 
       case 7 : 
          sMonth = "August"
          break; 
       case 8 : 
          sMonth = "September"
          break; 
       case 9 : 
          sMonth = "October"
          break; 
       case 10 : 
          sMonth = "November"
          break; 
       case 11 : 
          sMonth = "December"
          break; 
    } 
    
    switch (iDayWeek) { 
       case 0 : 
          sDay = "Sunday"
          break; 
       case 1 : 
          sDay = "Monday"
          break; 
       case 2 : 
          sDay = "Tuesday"
          break; 
       case 3 : 
          sDay = "Wednesday"
          break; 
       case 4 : 
          sDay = "Thursday"
          break; 
       case 5 : 
          sDay = "Friday"
          break; 
       case 6 : 
          sDay = "Saturday"
          break; 
    }

    if (format == 1) {
        return new String(sDay).substring(0, 3) + " " + iDay + " " + new String(sMonth).substring(0, 3) + " - " + iHour12 + ":" + sMinute + ":" + sSecond + " " + sAP;
    }
    else if (format == 2) {
    	return iHour12 + ":" + sMinute + ":" + sSecond + " " + sAP;
    }
    else if (format == 3) {
    	return iDay + " " + new String(sMonth).substring(0, 3) + " " + iYear + " " + iHour12 + ":" + sMinute + " " + sAP;
    }
    else if (format == 4) {
    	return iDay + " " + sMonth + " " + iYear;
    }
    else if (format == 5) {
    	return iDay + " " + new String(sMonth).substring(0, 3) + " " + iHour12 + ":" + sMinute + " " + sAP;
    }
    else if (format == 6) {
    	return new String(sDay).substring(0, 3) + " " + iDay + " " + new String(sMonth).substring(0, 3);
    }
    else if (format == 7) { 
    	return iHour + ":" + sMinute + ":" + sSecond
    }
    else if (format == 8) {
    	return iDay + " " + new String(sMonth).substring(0, 3) + " " + iYear;
    }
    else if (format == 9) {
    	return new String(sDay).substring(0, 3) + " " + new String("0" + iHour).charAt(new String("0" + iHour).length - 2) + new String("0" + iHour).charAt(new String("0" + iHour).length - 1) + ":" + sMinute;
    }
    else if (format == 10) {
    	return iDay + " " + new String(sMonth).substring(0, 3) + " " + iHour + ":" + sMinute;
    }
    else if (format == 11) {
        if (iDaysDiff > 0) {
        	return iDaysDiff + " day" + (iDaysDiff == 1 ? "" : "s") + " ago";
        }
        else if (iHrsDiff > 0) {
        	return iHrsDiff + " hr" + (iHrsDiff == 1 ? "" : "s") + ". ago";
        }
        else if (iMinsDiff > 0) {
        	return iMinsDiff + " min" + (iMinsDiff == 1 ? "" : "s") + ". ago";
        }
        else {
        	return iSecondsDiff + " sec" + (iSecondsDiff == 1 ? "" : "s") + ". ago";
        }
    }
    else if (format == 12) {
        if (iDaysDiff < 0) {
        	return "in " + Math.abs(iDaysDiff) + " day" + (iDaysDiff == -1 ? "" : "s") + "";
        }
        else if (iHrsDiff < 0) {
        	return "in " + Math.abs(iHrsDiff) + " hr" + (iHrsDiff == -1 ? "" : "s") + ".";
        }
        else if (iMinsDiff < 0) {
        	return "in " + Math.abs(iMinsDiff) + " min" + (iMinsDiff == -1 ? "" : "s") + ".";
        }
        else {
        	return "in " + Math.abs(iSecondsDiff) + " sec" + (iSecondsDiff == -1 ? "" : "s") + ".";
        }
    }
    else if (format == 13) {
    	return sMonth + " " + iYear;
    }
}

function display_time(format, time) {
	document.write(get_time(format, time));
}

function display_current_time(format) {
    display_time(format, new Date().getTime());
}

function round_floorceil(num) {

    if (num < 0) {
        return Math.ceil(num);
    }
    else if (num > 0) {
        return Math.floor(num);
    }
    else {
        return num;
    }
}
