
var General = (function() 
{
	return {
		
		SizeOf: function (elements)
		{
			return elements.length;
			
		},			
		
		Operand: function (operand, result1, result2)
		{
			switch(operand)
			{
				case "AND":
					result = result1 && result2;
					break;
				case "OR":
					result = result1 || result2;
					break;
						
			}
			
			return result;
				
		},
		
		IsNumeric: function (info, integer)
		{
			if (typeof(integer) == 'undefined')
				integer = 0;
				
			var Char;
			var IsNumber = 1;
			
			if (integer == 0) var ValidChars = "0123456789.";	
				else var ValidChars = "0123456789";	
		
			for (i = 0; i < General.SizeOf(info); i++)
			{
				Char = info.charAt(i);
				
				if (ValidChars.indexOf(Char) == -1)
				{
					IsNumber = 0;
					
				}
				
			}
			
			return IsNumber;
		
		},
		
		StrFind: function (string, character)
		{
			var i;
			var availabile = false;
			var characters = string.split('');
			
			for (i in characters)
			{
				if (characters[i] == character)
					availabile = true;
				
			}
			
			return availabile;
			
		},
		
		StrPos: function (haystack, needle, offset) 
		{
   			var i = (haystack+'').indexOf(needle, (offset || 0));
    		return i === -1 ? false : i;
		
		},
		
		IsArray: function () 
		{
			if (typeof arguments[0] == 'object') 
			{  
				var criterion = arguments[0].constructor.toString().match(/array/i); 
		 		return (criterion != null);  
			
			}
			
			return false;
		
		},
		
		InArray: function(elementvalue, data)
		{
			var ok = 0;
			
			for (var i in data)
			{
				if (data[i] == elementvalue)
				{
					ok = 1;
					break;
					
				}
				
			}
			
			return ok;
			
		},

		Implode: function (glue, pieces)
		{
			var j = 1; 
			var data = '';
			
			for (var i in pieces)
			{
				data = data + pieces[i];
				
				if (j < this.SizeOf(pieces))
				{
					data = data + glue;
					
				}
				
				j = j + 1;
				
			}
			
			return data;
			
		},

		AddSlashes: function (data) 
		{
			return data.replace(/("|'|\\)/g, "\\$1");
		
		},
		
		StripSlashes: function (data) 
		{
			return data.replace(/\\("|'|\\)/g, "$1");
			
		},
		
		Trim: function (data)
		{
			return data.replace(/(^[\s\xA0]+|[\s\xA0]+$)/g, '') ;
				
		},		

		StripLinkArgument: function (link, argument)
		{	
			var Temp = link.split('?');
			var Page = Temp[0];
			var Arguments = Temp[1].split('&');	
				
			var j = 0;
			var NewArguments = new Array();
			
			for (var i in Arguments)
			{
				Temp = Arguments[i].split('=');
				
				if (Temp[0] != argument)
				{
					NewArguments[j] = Arguments[i];
					
					j = j + 1;
					
				}
				
			}
			
			return Page + '?' + this.Implode('&', NewArguments);
			
		}	
		
	};
	
})();
