/*!
 * Format functions to format filesize & time
 * by Thuy
 */
;(function($) {

	$.extend({
		'webmind': '1.1'
	
		, 'isBlank': function(str) {
			return (typeof(str) == 'undefined' || str == null || $.trim(str) == '');
		}
		
		, 'isEmail': function(str) {
			return str.search(/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/) != -1;
		}
		
		, 'isEmails': function(str) {
			return str.search(/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})(\s*[;,]\s*[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})*(\s*[;,]\s*)*$/) != -1;
		}
		
		, 'isPhone': function(str) {
			return str.search(/^(\+[1-9][0-9]*(\([0-9]*\)|-[0-9]*-))?[0]?[1-9][0-9\- ]*$/) != -1;
		}
		
		, 'isNum': function(str) {
			return str.search(/^[0-9]+$/) != -1;
		}
		
		, 'plainURL': function(str) {
			return str.replace(/(\?.*)*$/, '');
		}
	
		, 'URLNoCache': function(url) {
			var sequence = String(Math.random()).replace('0.', '');
			if (url == null) {
				url = '';
			}
			return url + ((url.indexOf('?') == -1 && $.trim(url) != '') ? '?' : '&') + 'rnd=' + sequence;
		}
		
		, 'formatFileSize': function(bytes) {
			var sizes = ['Bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
			if (bytes == 0) return 'n/a';
			var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
			return ((i == 0)? (bytes / Math.pow(1024, i)) : (bytes / Math.pow(1024, i)).toFixed(1)) + ' ' + sizes[i];
		}
		
		, 'formatTime': function(seconds) {
			var s = seconds;
			var hours = Math.floor(s / (60 * 60)); 
			s -= hours * (60 * 60);
			
			var mins = Math.floor(s / 60);
			s -= mins * 60;
			
			if (hours < 10) hours = '0' + hours;
			if (mins < 10) mins = '0' + mins;
			if (s < 10) s = '0' + s;
			return hours + ':' + mins + ':' + s;
		}
		
		, 'emailArray': function(emailString) {
			var emailArray = new Array();
			var t1 = emailString.split(',');
			$.each(t1, function() {
				var t2 = this.split(';');
				$.each(t2, function() {
					if (typeof(this) != 'undefined' && this != null && $.trim(this) != '') {
						emailArray.push($.trim(this));
					}
				});
			});
			return emailArray;
		}
		
		, 'createCheckGrid': function(form) {
			// checkboxes
			var formObj = $(form);
			if (formObj.length == 0) {
				return;
			}
			formObj.find('input[type=checkbox]').click(function() {
				var checked = $(this).attr('checked') == 'checked';
				if ($(this).attr('name') == 'checkAll') {
					if (checked == true) {
						formObj.find('input[type=checkbox][name!=checkAll]').attr('checked', 'checked');
					} else {
						formObj.find('input[type=checkbox][name!=checkAll]').removeAttr('checked');
					}
				} else {
					var allChecked = formObj.find('input[type=checkbox][name!=checkAll]').length == formObj.find('input[type=checkbox][name!=checkAll]:checked').length
					if (allChecked == true) {
						formObj.find('input[name=checkAll]').attr('checked', 'checked');
					} else {
						formObj.find('input[name=checkAll]').removeAttr('checked');
					}
				}
			});
		}
		
		, 'zebraTable': function initZebraTable(id) {
			$(id + ' tbody tr:odd').removeClass('even').addClass('odd');
			$(id + ' tbody tr:even').removeClass('odd').addClass('even');
		}
		
		, 'popCenter': function(url, title, width, height) {
			var left = (screen.width / 2) - (width / 2);
			var top = (screen.height / 2) - (height / 2);
			var win = window.open(url, title, 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=' + width + ',height=' + height + ',top=' + top + ',left=' + left + ',screenY=' + top + ',screenX=' + left);
			return win;
		}
	});

})(jQuery);


