var DIM6 = {
	// Begin site scripts.
	begin: function(){
		DIM6.makeHovers();
		//DIM6.makeOneSubmitForms();
		DIM6.makeHelpTips();
		DIM6.makeTextBoxMaxChars();
		DIM6.makeCaptchaReload();
	},

	// Make hover buttons hoverable and preload hover images.
	makeHovers: function(){
		$$('.HoverButton').each(function(el){
			var OverImageSrc = el.getProperty('src').replace('.','-over.');
			var PreloadImageObj = new Element('img', {'src': OverImageSrc});
			el.addEvent('mouseover', function(){
				el.setProperty('src', OverImageSrc);
			});
			el.addEvent('mouseout', function(){
				el.setProperty('src', OverImageSrc.replace('-over.','.'));
			});				    
		});
	},

	// Make forms one-time submittable.
	makeOneSubmitForms: function(){
		// Preload Submitting Button
		var PreloadImageObj = new Element('img', {'src': './images/btn-sending.gif'});
		$$('form').each(function(el){
			// Bind submit event to form.
			el.addEvent('submit', function(){
				if ($defined($('OneSubmitForm_Hidden'))){
					return false;
				} else {
					// Insert a Hidden Field to keep track of click status.
					var HiddenField = new Element('input',{'type':'hidden', 'name':'OneSubmitForm_Hidden', 'id':'OneSubmitForm_Hidden', 'value':'0'});
					HiddenField.injectTop(el);
					// Change submit button style to indicate submitting.
					$$('.btnSubmit').each(function(btn){
						btn.removeEvents();
						btn.setProperty('src', './images/btn-sending.gif');
					});
					return true;
				}
			});
		});
	},

	// Make Help Tips
	makeHelpTips: function(){
		$$('.HelpTips').each(function(el){
			var full_title	= el.getProperty('title');
			var dual = full_title.split('::');
			var tip_title = dual[0].trim();
			var tip_text = dual[1].trim();
			el.store('tip:title', tip_title);
			el.store('tip:text', tip_text);
		});
		var HelpTips = new Tips($$('.HelpTips'), {
			showDelay: 200,
			onShow: function(tip) {
				tip.set('tween', {duration: 250}).fade('in');
			},
			onHide: function(tip) {
				tip.set('tween', {duration: 250}).fade('out');
			}
		});
	},

	// Make Text Box Max Character Note/Limit
	makeTextBoxMaxChars: function(){
		$$('.MaxChars').each(function(el){
			var MaxChars = el.getProperty('title').toInt();
			el.addEvent('focus', function(){
				new Element('div', {
				'styles': {
					'color': '#b7b0aa',
					'font-size': '9px',
					'text-align': 'right',
					'width': el.getStyle('width')
				},
				'id': 'MaxCharDiv'
				}).injectAfter(el);
				if (MaxChars - el.value.length < 0){
					$('MaxCharDiv').setStyle('color','#ff0000');
					$('MaxCharDiv').setHTML('Please Remove '+(el.value.length-MaxChars)+' Character'+((el.value.length-MaxChars)==1?'':'s'));
				} else {
					$('MaxCharDiv').setStyle('color','#b7b0aa');
					$('MaxCharDiv').setHTML((MaxChars-el.value.length)+' Character'+((MaxChars-el.value.length)==1?'':'s')+' Remaining');
				}
			});
			el.addEvent('keyup', function(){
				if (MaxChars - el.value.length < 0){
					$('MaxCharDiv').setStyle('color','#ff0000');
					$('MaxCharDiv').setHTML('Please Remove '+(el.value.length-MaxChars)+' Character'+((el.value.length-MaxChars)==1?'':'s'));
				} else {
					$('MaxCharDiv').setStyle('color','#b7b0aa');
					$('MaxCharDiv').setHTML((MaxChars-el.value.length)+' Character'+((MaxChars-el.value.length)==1?'':'s')+' Remaining');
				}
			});
			el.addEvent('blur', function(){
				$('MaxCharDiv').remove();
			});
		});
	},

	// Make CAPTCHA Reload Functionality
	makeCaptchaReload: function(){
		if ( ($defined($('CAPTCHA_RELOAD'))) && ($defined($('CAPTCHA_IMAGE'))) ){
			$('CAPTCHA_RELOAD').addEvent('click', function(){
				$('CAPTCHA_IMAGE').setProperty('src','./?captcha=XH4ma9ScXg298p3uYr4X73iqPmG'+$random(10000,99000));
				if ($defined($('CAPTCHA'))) $('CAPTCHA').value = '';
			});
		}
	}

};

window.addEvent('domready', DIM6.begin);