// JavaScript Document
var i_scripts = function() {
	return {
		init: function() {
			i_scripts.addDOMLoadedListener(i_scripts.addAutoSubmit);
		},
		addAutoSubmit: function() {
			// Check for form elements with a "autosubmit" class name
			var els = i_scripts.getElementsByClassName('autosubmit');
			
			for (var n = 0, el; el = els[n++];) {
				// If element is a submit button, hide it
				if (el.type == 'submit') {
					el.style.display = 'none';
				} else {		
					// Add auto submit listener
					i_scripts.addListener(el, 'change', i_scripts.autoSubmitForm);
				}
			}
		},
		autoSubmitForm: function(e) {
			var el = (e.target) ? e.target : event.srcElement;
			var parent_node = el.parentNode;
			
			// Search for element's parent, and if it is a form, submit it.
			while (parent_node.nodeName.toLowerCase() != 'form' && parent_node.nodeName.toLowerCase() != 'document') {
				parent_node = parent_node.parentNode;
			}
			
			parent_node.submit();
		},
		getElementsByClassName: function(class_name, root) {
			root = typeof(root) != "undefined" ? root : document;
			
			var els       = root.all || root.getElementsByTagName('*');
			var found_els = new Array();
			
			for (var n = 0, el; el = els[n++];) {
				if (el.className == class_name) found_els.push(el);
			}
			
			return found_els;
		},
		getQueryString: function(key) {
/* 			key = key.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
			var regex = new RegExp('[\\?&]' + key + '=([^&#]*)');
			var q_value = regex.exec(window.location.href);
			
			return (q_value != null) ? q_value[1] : null;
*/		},
		addListener: function(el, type, func) {
			if (window.addEventListener) {
				el.addEventListener(type, func, false);
			} else if (window.attachEvent) {
				el.attachEvent("on" + type, func);
			}
		},
		addDOMLoadedListener: function(func) {
			if (document.addEventListener) {
				document.addEventListener('DOMContentLoaded', func, false);
			} else if (document.all && !window.opera) {
				if (document.location.protocol == 'https:') {
					// IE doesn't like using deferred JavaScript over https
					i_scripts.addListener(window, 'load', func);
					return;
				}
				
				if (typeof(i_scripts_ie_ctr) == 'undefined') i_scripts_ie_ctr = 0; else i_scripts_ie_ctr++;
				
				// Use a deferred JavaScript hack
				document.write('<script type="text/javascript" id="contentloadtag' + i_scripts_ie_ctr + '" defer="defer" src="javascript:void(0)"><\/script>');
				
				var contentloadtag = document.getElementById('contentloadtag' + i_scripts_ie_ctr);
				
				contentloadtag.onreadystatechange = function() {
					if (this.readyState == 'complete') setTimeout(func, 0);
				}
			} else {
				// DOM ready isn't possible. Defer to window.onload.
				i_scripts.addListener(window, 'load', func);
			}
		}
	};
}();

i_scripts.init();