//
// This will be included at the end, for parameters at the start use commonfunctions
//
if (hg_debug) {
	window.onload = initItAll;
	if ($.browser.mozilla) {
		//alert("mozilla");
	} else {
		firebug.env.height = 200;
	}
} else {
	window.onload = initItAll;
	// jQuery onload has a problem in FF 3 see :
	// http://groups.google.rw/group/Google-Maps-API/browse_thread/thread/864c4579cc540574/77764c753e3ddedb?show_docid=77764c753e3ddedb#
	// BUT IT DID NOT WORK : still I have to press the reload button sometimes
	/*
	$(document).ready(function() {
	  initItAll();
	});
	*/
}
/*
// jQuery extension from book jQuery in Action
$.fn.getClassNames = function() {
	if (name = this.attr("className")) {
		return name.split(" ");
	}
	Else {
		return [];
	}
};
*/
function initItAll() {
	initCollection();
	allInit();
}
//
// Init small jQuery plugins
//
function initCollection() {
	//
	// Somehow did the following wrapping not work :
	// 
	// (function($){
	// })(jQuery);
	//
	// That is why it is inited here
	$.fn.vAlign = function() {
		return this.each(function(i){
		var ah = $(this).height();
		var ph = $(this).parent().height();
		var mh = (ph - ah) / 2;
		$(this).css('margin-top', mh);
		});
	};
	// Alphanumeric by by Paulo P. Marinas
	$.fn.alphanumeric = function(p) { 
		p = $.extend({
			ichars: "!@#$%^&*()+=[]\\\';,/{}|\":<>?~`.- ",
			nchars: "",
			allow: ""
		  }, p);	
		return this.each
			(
				function() 
				{
					if (p.nocaps) p.nchars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
					if (p.allcaps) p.nchars += "abcdefghijklmnopqrstuvwxyz";
					
					s = p.allow.split('');
					for ( i=0;i<s.length;i++) if (p.ichars.indexOf(s[i]) != -1) s[i] = "\\" + s[i];
					p.allow = s.join('|');
					
					var reg = new RegExp(p.allow,'gi');
					var ch = p.ichars + p.nchars;
					ch = ch.replace(reg,'');

					$(this).keypress
						(
							function (e)
								{
								
									if (!e.charCode) k = String.fromCharCode(e.which);
										else k = String.fromCharCode(e.charCode);
										
									if (ch.indexOf(k) != -1) e.preventDefault();
									if (e.ctrlKey&&k=='v') e.preventDefault();
									
								}
								
						);
						
					$(this).bind('contextmenu',function () {return false});
									
				}
			);

	};

	$.fn.numeric = function(p) {
	
		var az = "abcdefghijklmnopqrstuvwxyz";
		az += az.toUpperCase();

		p = $.extend({
			nchars: az
		  }, p);	
		  	
		return this.each (function()
			{
				$(this).alphanumeric(p);
			}
		);
			
	};
	
	$.fn.alpha = function(p) {

		var nm = "1234567890";

		p = $.extend({
			nchars: nm
		  }, p);	

		return this.each (function()
			{
				$(this).alphanumeric(p);
			}
		);
			
	};	
}