if(typeof __ === 'undefined') var __ = new tmlib;

__.scrOnload = function(){
	__.addPlaceholderSupport();
	__.gaTracker = new __.classes.gaOutboundLinkTracker({defaultCategory: "Outbound Links"});
//	__.lib.inputSelectAllOnFocus("selectall");
}

/*-----
inputselectallonfocus
-----*/
/*
__.lib.inputSelectAllOnFocus = function(argClass, argContainer){
		if(!argClass) argClass = "selectall";
		if(!argContainer) argContainer = document.body;

__.message(argContainer);
		// inputs
		var elmsInputs = __.getElementsByClassName({tagName: "input", className: argClass});
		var elmsInputsLength = elmsInputs.length;
		for(var i = 0; i < elmsInputsLength; ++i){
			var fncThis = elmsInputs[i];
			__.addListeners(fncThis, "focus", function(event){
				event.target.select();
			});
		}

		// textareas
		var elmsTextareas = __.getElementsByClassName({tagName: "textarea", className: argClass});
		var elmsTextareas = argContainer.getElementsByTagName("textarea");
		var elmsTextareasLength = elmsInputs.length;
		for(var i = 0; i < elmsTextareasLength; ++i){
			var fncThis = elmsTextareas[i];
			__.addListeners(fncThis, "focus", function(event){
				event.target.select();
			});
		}
	}
*/


/* --------
©gaOutboundLinkTracker
------- */
__.classes.gaOutboundLinkTracker = function(arguments){
		if(!arguments) arguments = {};
		if(typeof _gat == "undefined") return false;
//->die if analytics doesn't exist
		this.container = arguments.container || document.body;
		this.classname = (arguments.classname)? arguments.classname: "ga";
		this.defaultCategory = arguments.defaultCategory || false;
		this.attrHrefNonAnchor = (arguments.attrHrefNonAnchor)? arguments.attrHrefNonAnchor: "data-ga-href";
		this.attrCategory = (arguments.attrCategory)? arguments.attrCategory: "data-ga-category";
		this.attrAction = (arguments.attrAction)? arguments.attrAction: "data-ga-action";
		
		this.attachListenersToMatches(this.container);
		
	}
	__.classes.gaOutboundLinkTracker.prototype.attachListenersToMatches = function(argContainer){
		var elmsLinks = __.getElementsByClassName({tagName: "a", className: this.classname, element: argContainer});
		this.attachListeners(elmsLinks);
	}
	__.classes.gaOutboundLinkTracker.prototype.attachListeners = function(argElements){
		var fncThis = this;
		__.addListeners(argElements, "click", function(event){
			var elmThis = event.target;
			var fncHref = elmThis.href || elmThis.getAttribute(fncThis.attrHrefNonAnchor);
			var urlParsed = __.lib.urlParse(fncHref);
			var fncCategory = elmThis.getAttribute(fncThis.attrCategory) || fncThis.defaultCategory || urlParsed.type;
			var fncAction = elmThis.getAttribute(fncThis.attrAction);
			if(!fncAction){
				switch(urlParsed.type){
					case "external":
					case "mailto":
						fncAction = urlParsed.host;
						break;
					case "tel":
					case "fax":
						fncAction = urlParsed.n;
						break;
					case "internal":
					default:
						fncAction = urlParsed.href;
						break;
				}
			}
				
			fncThis.recordClick(fncHref, fncCategory, fncAction);
		});
	}
	//-@functionality from google
	__.classes.gaOutboundLinkTracker.prototype.recordClick = function(link, category, action){
		_gat._getTrackerByName()._trackEvent(category, action);
		setTimeout('document.location = "' + link.href + '"', 100);
	}

/* ********* 
©tmlib
********* */
function tmlib(){
		this.classes = {};
		this.lib = {};
		this.cfg = {};
	}
	__.lib.init = function(){
		__.addClass(document.body, "hasjavascript");
	}
	tmlib.prototype.addClass = function(argElement, argClass){
		if(new RegExp('\\b'+argClass+'\\b').test(argElement.className))
			return 0;
		else{
			argElement.className+=argElement.className?' '+argClass:argClass;
			return 1;
		}
	}
	tmlib.prototype.getElementsByClassName = function(args){
		var fncClassName = (args.className)?args.className:null; if(!fncClassName) return;
		var fncElement = (args.element)?args.element:document;
		var fncTagName = (args.tagName)?args.tagName:null;
		
		var fncReturn = [], fncElementsToSearch = [];
		var fncRegex = new RegExp('\\b'+fncClassName+'\\b');
		
		if(fncTagName){
			fncElementsToSearch = fncElement.getElementsByTagName(fncTagName);
		}
		else if(fncElement.all)
			fncElementsToSearch = fncElement.all;
		else
			fncElementsToSearch = fncElement.getElementsByTagName('*');
	
		for(var i=0; i < fncElementsToSearch.length; ++i){
			if(fncRegex.test(fncElementsToSearch[i].className))
				fncReturn.push(fncElementsToSearch[i]);
		}
		
		return fncReturn;
	}
	tmlib.prototype.addListener = function(argElement, argEvent, argFunction, argBubble){
		var fncBubble = (argBubble)?argBubble : false;
		if(argElement.attachEvent)
			argElement.attachEvent("on"+argEvent, argFunction);
		else
			argElement.addEventListener(argEvent, argFunction, fncBubble);
	}
	tmlib.prototype.addListeners = function(argElements, argEvent, argFunction, argBubble){
		var fncBubble = (argBubble)?argBubble : false;
		if(!__.lib.isArray(argElements))
			argElements = new Array(argElements);
		for(var i = 0; i < argElements.length; ++i){
			var forElement = argElements[i];
			if(forElement.attachEvent)
				forElement.attachEvent("on"+argEvent, argFunction);
			else
				forElement.addEventListener(argEvent, argFunction, fncBubble);
		}
	}
	tmlib.prototype.message = function(argument){
		if(window.console) 
			console.log(argument);
//		else alert(argument);
	}
	__.lib.urlParse = function(argURL){
		var regexExternal = /^(.*):\/\/([^\/]+)(.*)/i;
		var regexEmail = /^mailto:(.*)@(.*)/i;
		var regexTel = /^(tel|fax):(.*)/i;
		
		var resultExternal = argURL.match(regexExternal);
		if(resultExternal != null)
			return {type: "external", protocol: resultExternal[1], host: resultExternal[2], file: resultExternal[3]};
		var resultEmail = argURL.match(regexEmail);
		if(resultEmail != null)
			return {type: "mailto", username: resultEmail[1], host: resultEmail[2]};
		var resultTel = argURL.match(regexTel);
		if(resultTel != null)
			return {type: resultTel[1], n: resultTel[2]};

		return {type: "internal", href: argURL};
	}
	__.lib.isArray = function(argObject){
		return typeof argObject == 'object' && (argObject instanceof Array);
	}

/* -----
©addplacholdersupport
----- */
	tmlib.prototype.supportsInputPlaceholder = function(){
		if(!this.supportsInputPlaceholderValue){
			var a = document.createElement('input');
			this.supportsInputPlaceholderValue = 'placeholder' in a
		}
		return this.supportsInputPlaceholderValue;
	}
	tmlib.prototype.addPlaceholderSupport = function(argContainer){
		if(!argContainer) argContainer = document.body;
		if(!__.supportsInputPlaceholder()){
			// inputs
			var elmsInputs = argContainer.getElementsByTagName("input");
			var elmsInputsLength = elmsInputs.length;
			for(var i = 0; i < elmsInputsLength; ++i){
				var fncThis = elmsInputs[i];
				if(fncThis.getAttribute("placeholder")){
					var callbackFocus = function(fncThis){
						return function(){
							if(fncThis.value == fncThis.getAttribute("placeholder"))
								fncThis.value = "";
						}
					}(fncThis);
					var callbackBlur = function(fncThis){
						return function(){
							if(fncThis.value == "")
								fncThis.value = fncThis.getAttribute("placeholder");
						}
					}(fncThis);
					
					__.addListeners(fncThis, "focus", callbackFocus);
					__.addListeners(fncThis, "blur", callbackBlur);
					
					callbackBlur.call();
				}
			}
			// textareas
			var elmsTextareas = argContainer.getElementsByTagName("textarea");
			var elmsTextareasLength = elmsTextareas.length;
			for(var i = 0; i < elmsTextareasLength; ++i){
				var fncThis = elmsTextareas[i];
				if(fncThis.getAttribute("placeholder")){
					var callbackFocus = function(fncThis){
						return function(){
							if(fncThis.value == fncThis.getAttribute("placeholder"))
								fncThis.value = "";
						}
					}(fncThis);
					var callbackBlur = function(fncThis){
						return function(){
							if(fncThis.value == "")
								fncThis.value = fncThis.getAttribute("placeholder");
						}
					}(fncThis);
					
					__.addListeners(fncThis, "focus", callbackFocus);
					__.addListeners(fncThis, "blur", callbackBlur);
					
					callbackBlur.call();
				}
			}
		}
	}

/* ----
init
---- */
__.addListeners(window, "load", __.lib.init, false);
__.addListeners(window, "load", __.scrOnload, false);

function reginfotoMals() {
	var inv_name = document.getElementById('inv_name').value;
	var inv_addr1 = document.getElementById('inv_addr1').value;
	var inv_addr2 = document.getElementById('inv_addr2').value;	
	var inv_state = document.getElementById('inv_state').value;	
	var inv_zip = document.getElementById('inv_zip').value;
	var tell = document.getElementById('tell').value;
	var email = document.getElementById('email').value;	
	var employer = document.getElementById('employer').value;
	var employercity = document.getElementById('employercity').value;
	var employerstate = document.getElementById('employerstate').value;
	var occupation = document.getElementById('occupation').value;
	var confirmation = document.getElementById('confirmation').value;
	var condense = 'Name:' + inv_name + '|' + 'Employer:' + employer + '|' + 'Employer City:' + employercity + '|' + 'Employer State:' + employerstate + '|' + 'Occupation:' + occupation + '|' + 'Confirmation:' + confirmation;
	if(condense != '') { document.getElementById('message').value = condense; }
}

