//Functions to control external links
var ExternalLinks = 
{
	init: function() 
	{
		var extLinks = $$('a.external');
		
		for (i=0; i<extLinks.length; i++)
		{
			Event.observe(extLinks[i], 'click', ExternalLinks.openNew.bindAsEventListener(extLinks[i]));	
			extLinks[i].onclick = function() { return false; };
		}
	},
	
	openNew: function() 
	{
		open(this.href);
	}
}
Event.observe(window, 'load', ExternalLinks.init);

//Mailto Encoding Functions
var HideMailto = 
{
	init: function() 
	{
		if ($$('a.email')) {
			var emls = $$('a.email');
			for (i=0; i<emls.length; i++) {
				var pre = emls[i].id;
				if (emls[i].getAttribute('title')) {
					var domain = emls[i].getAttribute('title');
				} else {
					var domain = 'specialtycomfort.com';
				}
				emls[i].setAttribute("href", 'mailto:'+pre+'@'+domain);
			}
		}
	}
}
Event.observe(window, 'load', HideMailto.init);

//Subnav Functions
var HighlightNav = 
{
	init: function() 
	{
		if ($$('h2')) {
			var hdrs = $$('h2');
			for (i=0; i<hdrs.length; i++) {
				var hdrtext = hdrs[i].firstChild.nodeValue.toUpperCase();//h2 converted to uppercase by CSS
				hdrtext = hdrtext.strip();
			}
			
			var lnks = $$('#subnav a');
			for (i=0; i<lnks.length; i++) {
				var linktext = lnks[i].firstChild.nodeValue.toUpperCase();
				linktext = linktext.strip();
				if (linktext == hdrtext) {
					lnks[i].addClassName('active');
				}
			}
		}
	}
}
Event.observe(window, 'load', HighlightNav.init);

//Printable Functions
var Printable = 
{
	init: function() 
	{
		window.print();	
	}
}

//Scripts to control the Clients Page
var MarketingForm = 
{
	init: function() 
	{
		if ($('pre_designed')) {
			var dropdown = $('order_requesttype');
			Event.observe(dropdown, 'change', MarketingForm.showoptions);
			MarketingForm.showoptions();
		}
	},
	
	showoptions: function(event) 
	{
		var val = $('order_requesttype').value;
		if (val == '') {
			$('custom_request').addClassName('hidden');
			$('pre_designed').addClassName('hidden');
		} else if (val == 'Custom Design') {
			$('custom_request').removeClassName('hidden');
			$('pre_designed').addClassName('hidden');
		} else {
			$('custom_request').addClassName('hidden');
			$('pre_designed').removeClassName('hidden');
		}		
	}
}
Event.observe(window, 'load', MarketingForm.init);

//Scripts to control the Dealer Database
var DealerDatabase = 
{
	init: function ()
	{
		if ($$('a.expand')) {
			var lnks = $$('a.expand');
			for (i=0; i<lnks.length; i++) {
				Event.observe(lnks[i], 'click', DealerDatabase.toggleDetails.bindAsEventListener(lnks[i]));
			}
		}
		
		if ($('dealer_total_trained')) {
			var trns = $$('.trainees');
			var ttl = 0;
			for (i=0; i<(trns.length-1); i++) {
				if (trns[i].value == '') {trns[i].value = 0}
				ttl += parseInt(trns[i].value); 
				Event.observe(trns[i], 'change', DealerDatabase.addTrainees);
			}
			$('dealer_total_trained').value = ttl;
		}
		
	},
	
	toggleDetails: function(event) 
	{
		Event.stop(event);
		var divid = this.getAttribute('rel');
		var dtls = $(divid);
		if (dtls.hasClassName('hidden')) {
			dtls.removeClassName('hidden');
			this.addClassName('expanded');
		} else {
			dtls.addClassName('hidden');
			this.removeClassName('expanded');
		}
	},
	
	addTrainees: function(event)
	{
		var trns = $$('.trainees');
		var ttl = 0;
		for (i=0; i<(trns.length-1); i++) {
			ttl += parseInt(trns[i].value); 
		}
		$('dealer_total_trained').value = ttl;
	},
	
	send_file: function(filename)
	{
		var path = filename;
		window.open(path,'filename');
	}
}
Event.observe(window, 'load', DealerDatabase.init);


//Scripts to control the AJAX Links & Functionality
var Overlay = 
{
	init: function() 
	{
		if ($$('.openajax')) {
			var olnks = $$('.openajax');
			for (i=0; i<olnks.length; i++)
			{
				Event.observe(olnks[i], 'click', Overlay.appear.bindAsEventListener(olnks[i]));
			}
		
			var clnks = $$('.close');
			for (i=0; i<clnks.length; i++)
			{
				Event.observe(clnks[i], 'click', Overlay.hide.bindAsEventListener(clnks[i]));
			}
		}
		
		if ($('ajaxform')) {
			var ajx = $('ajaxform');
			Event.observe(ajx, 'submit', Overlay.submitAJAXForm.bindAsEventListener(ajx));
		}
		
	},
	
	popupinit: function() 
	{
		if ($$('.openajax')) {
			var olnks = $$('.openajax');
			for (i=0; i<olnks.length; i++)
			{
				if (olnks[i].descendantOf('ajaxdiv')) {
				  Event.observe(olnks[i], 'click', Overlay.appear.bindAsEventListener(olnks[i]));
				}
			}
		
			var clnks = $$('.close');
			for (i=0; i<clnks.length; i++)
			{
				if (olnks[i].descendantOf('ajaxdiv')) {
				  Event.observe(clnks[i], 'click', Overlay.hide.bindAsEventListener(clnks[i]));
				}
			}
		}
		
		if ($('ajaxform')) {
			var ajx = $('ajaxform');
			Event.observe(ajx, 'submit', Overlay.submitAJAXForm.bindAsEventListener(ajx));
		}
		
		ExternalLinks.init();
		
		if ($('download')) {
			var fl = $('download').href;
			DealerDatabase.send_file(fl);
		}
	},
	
	appear: function(event) 
	{
		Event.stop(event);
		var div = $('ajaxdiv');
		new Ajax.Updater('ajaxdiv', this.href, {asynchronous:true, evalScripts:true, onCreate:Overlay.loadingInfo,onComplete:Overlay.showInfo});
		var ov = $('overlay');
		var ajd = $('ajaxdiv');
		if (ov.hasClassName('hidden')) {
			ov.removeClassName('hidden');
			ajd.removeClassName('hidden');
			ov.addClassName('popped');
			ajd.addClassName('popped');
		}
		var hgt = $('container').getHeight();
		ov.setStyle({height: hgt+'px'});
		var ofst = document.viewport.getScrollOffsets(); 
		var newtop = ofst[1] + 25;
		ajd.setStyle({'top': newtop+'px'});
	},
	
	hide: function(event) 
	{
		Event.stop(event);
		var div = $('ajaxdiv');
		div.update();
		var ov = $('overlay');
		var ajd = $('ajaxdiv');
		ov.removeClassName('popped');
		ajd.removeClassName('popped');
		ov.addClassName('hidden');
		ajd.addClassName('hidden');
	},
	
	loadingInfo: function()
	{
		$('ajaxdiv').addClassName('loading');
	},
	
	showInfo: function()
	{
		var clnks = $$('.close');
			for (i=0; i<clnks.length; i++)
			{
				Event.observe(clnks[i], 'click', Overlay.hide);
			}
		$('ajaxdiv').removeClassName('loading');
		ExternalLinks.init();
	},
	
	submitAJAXForm: function(event)
	{
		Event.stop(event);
		$('ajaxform').request({onCreate:Overlay.loadingInfo, onSuccess:function(t){$('ajaxdiv').update(t.responseText);}, onComplete:Overlay.showInfo});
	}
}
Event.observe(window, 'load', Overlay.init);

