import Vue from 'vue'

const helpers = {}

helpers.timeAgo = (time) => {
	const time_formats = [
		[ 60, 			'seconds', 			1						],
		[ 120, 			'1 minute ago', 	'1 minute from now'		],
		[ 3600, 		'minutes', 			60						],
		[ 7200, 		'1 hour ago', 		'1 hour from now'		], 
		[ 86400, 		'hours', 			3600					], 
		[ 172800, 		'yesterday', 		'tomorrow'				],
		[ 604800, 		'days', 			86400					],
		[ 1209600, 		'last week', 		'next week'				],
		[ 2419200, 		'weeks', 			604800					],
		[ 4838400, 		'last month', 		'next month'			],
		[ 29030400, 	'months', 			2419200					],
		[ 58060800, 	'last year', 		'next year'				],
		[ 2903040000, 	'years', 			29030400				],
		[ 5806080000, 	'last century', 	'next century'			],
		[ 58060800000, 	'centuries', 		2903040000				]
	]

	//How many seconds ago was input event time?
	let seconds = Math.round((+new Date)/1000) - time
	let token = 'ago'
	let list_choice = 1
	
	if (seconds == 0) {
		return 'Just now'
	}

	if (seconds < 0) {
		seconds = Math.abs(seconds)
		token = 'from now'
		list_choice = 2
	}
	

	let i = 0
	let format = null
	while (format = time_formats[i++]){
		if (seconds < format[0]) {
			if (typeof format[2] == 'string') {
				return format[list_choice]
			} else {
				return Math.floor(seconds / format[2]) + ' ' + format[1] + ' ' + token
			}
		}
	}

	return time
}

const plugin = {
    install () {
        Vue.helpers = helpers
        Vue.prototype.$helpers = helpers
    }
}

Vue.use(plugin)