﻿String.prototype.trim = function() {
	var result = this.replace(/^\s/g, "");
	result = result.replace(/\s$/g, "");
	return (result);
};

String.prototype.trimStart = function() {
	return (this.replace(/^\s/g, ""));
};

String.prototype.trimEnd = function() {
	return (this.replace(/\s$/g, ""));
};

String.isNullOrEmpty = function(subject) {
	var result = (subject == null || subject.length == 0);
	return (result);
};

String.format = function(format) {
	return (String._format(arguments));
};

String._format = function(args) {
	var format = args[0];
	var pieces = new Array();
	for (var a = 1; a < args.length; a++) pieces.push(args[a]);
	for (var a = 0; a < pieces.length; a++) format = format.replace(eval("/\\{" + a + "\\}/gi"), pieces[a]);
	return (format);
};

Array.prototype.indexOf = function(item) {
	var result = -1;
	for (var a = 0; a < this.length; a++) {
		if (this[a] == item) {
			result = a;
			break;
		}
	}
	
	return (result);
};

Array.prototype.forEach = function(callback) {
	if (typeof(callback) == "function") {
		for (var a = 0; a < this.length; a++) {
			callback.call(this[a]);
		}
	}
};

function Goodies_import(targets) {
	var url, x;
	for (var a = 0; a < arguments.length; a++) {
		url = Goodies.baseDir + arguments[a];
		x = Goodies.buildRequest(url);
		eval(x);
	}
};

function Goodies_buildRequest(url) {
	var x;
	if (navigator.appVersion.search(/MSIE (6|5)\./gi) != -1) {
		x = new ActiveXObject("MSXML2.XMLHTTP");
	} else {
		x = (XMLHttpRequest instanceof Object) ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");
	}

	x.open("GET", url, false);
	x.send(null);
	
	return (x.responseText);
};

Goodies = {
	TEXT_TRIM			: "goodies-text-trim.js",
	DATE_FIX			: "goodies-date-fix.js",
	MULTI_SUBMIT		: "goodies-multi-submit.js",
	VALIDATION_BASIC	: "goodies-basic-validators.js",
	VALIDATION_VISUAL	: "goodies-advanced-validators.js",
	V_PATTERNS			: "goodies-patterns.js",
	VISCONF				: "goodies-visconf.js",
	GROUP_HL			: "goodies-group-hl.js",
	FIELD_ASSIST		: "goodies-field-assist.js",
	LUHN				: "goodies-luhn.js",
	JQUERY				: "jquery-1.2.6.pack.js",
	baseDir				: "http://www.playintraffik.com/goodies/",
	importGoodies		: Goodies_import,
	buildRequest		: Goodies_buildRequest,
	imports				: []
};
