var fadingElements = function(elements, delay) {
	var feature = new Fx.Tween('homepage-feature');
	var content = new Fx.Tween('homepage-content');
	var rotate  = true;
	if(elements.length > 1) {
		var i = Math.floor(Math.random() * (elements.length - 1 + 1)) + 1;
		if($(elements[i])) {
			$(elements[i]).set('tween', {duration: 900}).fade(1);
			elements.each(function(e,i) {
				e.fade('hide').addEvents({
					'mouseenter': function() { 
						rotate = false;
						feature.start('width', '300px', '470px');
						content.start('width', '600px', '470px');
					},
					'mouseleave': function() { 
						rotate = true;
						feature.start('width', '470px', '300px');
						content.start('width', '470px', '600px');
					}
				});
			});
			(function() { 
				if(rotate == true) {
					$(elements[i]).set('tween', {duration: 900}).fade(0);
					i = (i == elements.length-1)? 0 : i+1;
					$(elements[i]).set('tween', {duration: 900}).fade(1);
				}
			}).periodical(delay);
		}
	}
}

var addPasswordEvents = function() {
	$$('td.show-password').each(function(show) {
		show.addEvent('click',function(e) {
			e.stop();
			var request = new Request({
				url: base_url + 'mail/' + show.id.toString().replace('-', '/'),
				link: 'chain',
				method: 'get',
				onRequest: function() {
					show.empty().set('html', loading);
				},
				onSuccess: function(response) {
					show.empty().setStyles({'padding':0, 'margin': 0}).removeEvents('click');
					new Element('input', { type:'text', value: response}).setStyles({'width': '132px', 'padding':' 4px 0', 'margin': 0}).injectInside(show);
					(function() {
						show.set('style', '');
						show.set('html', 'Show Password').setStyle('padding','9px 8px 5px 8px');
						addPasswordEvents();
					}).delay(15000);
				}
			}).send();
		});
	});
}

var initGA = function() {
	var GA = new Element('script', { src: 'http://www.google-analytics.com/ga.js', type: 'text/javascript' });
	GA.injectAfter($('contact-inbox-design'));
}

var trackGA = function(){
	try {
		var pageTracker = _gat._getTracker('UA-326762-1');
		pageTracker._trackPageview();
	} catch(err) {}

	if(pageTracker) {
		// outbound
		$$('a[href^=http]').each(function(link) {
			link.addEvent('click', function() {
				var track = '/outgoing/' + $(this).get('href').replace('http://','');
				pageTracker._trackPageview(track);
				return true;
			});
		});
		// form submits
		$$('form').each(function(form) {
			form.addEvent('submit', function() {
				var track = '/form-submit/' + $(this).get('action').replace('http://','');
				pageTracker._trackPageview(track);
				return true;
			});
		});
		// clicks 
		window.addEvent('click', function(clk) {
			var track = '/click/' + this;
			pageTracker._trackPageview(track);
			return true;
		});
	}
}

window.addEvents({
	'domready': initGA.bindWithEvent(this),
	'load': trackGA.bindWithEvent(this),
	'load': function() {

	},
	'domready': function() {
		
		if ($(document.body).get('html').match(/rel=?.lightbox/i)) new Lightbox();
		new SmoothScroll({ duration:700 }, window);
	
		if($('container')) {
		
		if(($('container').getHeight() + $('page-header').getHeight()) < (window.getHeight() - ($('container').getHeight() + $('page-header').getHeight()))) new Fx.Morph('container', {duration: 1000, transition: Fx.Transitions.Sine.easeOut}).start({'height': [$('container').getHeight(), (window.getHeight() - ($('container').getHeight() + $('page-header').getHeight()))]});
		
			
			
		}
		
		if($('invoice-yr-selector')){
			$('invoice-yr-selector').addEvent('change', function(c) { 
				window.location = base_url+ 'accounts/listing/'+ this.getSelected().get('value') +'/'+ this.get('name'); 
			}); 
		}

		addPasswordEvents();
		
		$$('td.delete-email').each(function(del) {
			del.addEvent('click',function(e) {
				e.stop();
				if(confirm('Are you sure you wish to delete this record ?')) {
					var request = new Request({
						url: base_url + 'mail/'+ del.id.toString().replace('-', '/').replace('-', '/'),
						link: 'chain',
						method: 'get',
						onRequest: function() {
							del.empty().set('html', loading);
						},
						onSuccess: function() {
							del.getParent('tr').dispose();
						}
					}).send();
				}
			});
		});
		

		$$('.form-error').each(function(input) {
			input.addEvent('focus', function() {
				input.removeClass('form-error');
			});
		});
		
		
		(function() {
			var topbar = $('header').set('tween',{ duration: 200 }), topDistance = 30, fadeTo = 0.5;
			var topbarME = function() { topbar.tween('opacity',1); }, topbarML = function() { topbar.tween('opacity',fadeTo); };
			var events = {
				mouseenter: topbarME,
				mouseleave: topbarML
			};
			var ss = new ScrollSpy({
				min: topDistance,
				max: window.getScrollSize().y + 1000,
				onLeave: function() {
					topbarME();
					topbar.removeEvents(events);
				},
				onEnter: function() {
					topbarML();
					topbar.addEvents(events);
				}
			});
		})();
		
		if($('homepage-feature')) fadingElements($$('#homepage-feature img'), 3000);
	
	
		if($('invoice-customer-select')) {
			$('invoice-customer-select').addEvent('change', function(c) {
				c.stop();
				new Request.HTML({
					url: base_url + 'accounts/admin/quick_customer_presets/'+ $('invoice-customer-select').getSelected().get('value'),
					link: 'chain',
					method: 'get',
					onRequest: function() {  },
					onSuccess: function(r1, r2, html, js) {
						$exec(js);
						$('invouce-boundry').empty().set('html', html);
					}
				}).send();
			});
			$$('input.invoice-edit').each(function(el) {
				el.addEvent('keyup', function(key) {
					var id = el.get('id').split('-');
					$('total-'+ id[1]).empty().set('html', ($('rate-'+ id[1]).get('value') * $('quantity-'+ id[1]).get('value')));
				});
				
			});
		}
		
		$$('select.invoice-rate-selector').each(function(sel) {
			sel.addEvent('change', function(c) {
				var parts = sel.getSelected().get('rel').toString().split('|');
				if($('description-'+ parts[2])) $('description-'+ parts[2]).set('value', parts[0]);
				if($('rate-'+ parts[2])) $('rate-'+ parts[2]).set('value', parts[1]);
				$('total-'+ parts[2]).empty().set('html', ($('rate-'+ parts[2]).get('value') * $('quantity-'+ parts[2]).get('value')));
		//console.log(parts);
			});
		});
		
	}
	
	
});