﻿// Defines a jQuery pre-load image plug-in.
(function($) {
	var cache = [];
	// Arguments are image paths relative to the current page.
	$.preLoadImages = function() {
		var argsLength = arguments.length;
		for (var i = 0; i < argsLength; i++) {
			var cacheImage = document.createElement('img');
			cacheImage.src = arguments[i];
			cache.push(cacheImage);
		}
	}
})(jQuery)

// Returns the size string of the specified size in bytes.
function toSizeString(bytes) {
	var si_prefices = ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];
	var prefix = 0;
	while (bytes > 1000) {
		bytes /= 1000;
		prefix++;
	}
	return bytes.toFixed(2) + ' ' + si_prefices[prefix] + 'B';
}

// Disables specified buttons on submit(button ids separated with comma ',')
function disableButtonsOnClick(buttonsToValidate, validationGroup, buttonsNoValidate) {
	var controlButtons = new Array()
	var controlsToValidate = new Array();
	if (buttonsNoValidate != null && buttonsNoValidate != "") {
		controlButtons = buttonsNoValidate.split(',');
	}
	if (buttonsToValidate != null) {
		controlsToValidate = buttonsToValidate.split(',');
		for (var i = 0; i < controlsToValidate.length; i++) {
			controlButtons.push(controlsToValidate[i]);
		}
	}
	for (var i = 0; i < controlsToValidate.length; i++) {
		$('#' + controlsToValidate[i]).removeAttr("disabled");
		$('#' + controlsToValidate[i]).click(function() {
			var valid = true;
			if (typeof Page_ClientValidate == 'function') {
				valid = Page_ClientValidate(validationGroup);
			}
			if (valid) {
				for (var j = 0; j < controlButtons.length; j++) {
					$('#' + controlButtons[j]).attr("disabled", "disabled");
				}
			}
		});
	}
}

// Returns the first index of a string value in array
function indexInArray(array, val) {
	var result = -1;
	if (array != null) {
		for (var i = 0; i < array.length; i++) {
			if (array[i] == val) {
				result = i;
				break;
			}
		}
	}
	return result;
}

