var amount = 1;
var fields = new Array();

var openForm = false;

var Site = {
	
	init: function(){
		
		Site.removeBorders();
		
		Site.initSubmit();
		
		Site.initMouseovers();
		
		Site.initVerify();
		
		if ($('notification')) Site.hideNotification();
		
		if ($$('.subnavChild')) Site.handleSubnavChilds();
		
		if ($('faqAccordion')) Site.handleAccordion();
		
		if ($('enquiryType')) Site.handleEnquiryForm();
		
		if ($('searchPage')) Site.handleSearchLimit();
	},
	
	start: function(){
		if (!$('frontend')) setupZoom();

		if ($('nodes')) Site.browseNodes($('path').getValue());
		
		if ($('applesearch')) {
			applesearch.init();
		
			$('applesearch').setStyle('display', 'block');
		}
		
		if ($('addScaleOfPrice')) Site.addScaleOfPrice();
		
		if ($('pageName')) Site.handlePageName();
		
		Site.preloadImages();
	},
	
	preloadImages: function(){
		var images = [];
		
		$$('.over').each(function(el){
			var src			= el.getProperty('src');
			var extension 	= src.substring(src.lastIndexOf('.'), src.length)
			
			images.push(src.replace(extension, '-over'+extension));
		});
		
		new Asset.images(images, {
    		onComplete: function(){
        		Site.initMouseovers();
    		}
		});
	},
	
	initMouseovers: function(){
		$$('img.over').each(function(img){                                                                                                  
			var src = img.getProperty('src');                                                                                                   
			var extension = src.substring(src.lastIndexOf('.'),src.length)                                                                      
																																					
			img.addEvent('mouseenter', function() { img.setProperty('src',src.replace(extension,'-over' + extension)); });                     
			img.addEvent('mouseleave', function() { img.setProperty('src',src); });                                                             
		});
	},
	
	removeBorders: function(){
		$$('a').each(function(el){
			el.addEvent('focus', function(){
				el.blur();
			});
		});
	},
	
	initSubmit: function(){
		$$('.submit').each(function(el){
			var button 	= el.getElement('a');
			var form	= $(button.get('rel'));
			
			function submit(){
				el.getElements('a').each(function(button){
					button.remove();
				});
				
				el.setHTML('');
				
				var loader = $('loader').clone().injectInside(el).setStyle('display', 'block');
				
				form.submit();
			}
			
			form.addEvent('submit', function(e){
				e = new Event(e).stop();
				
				submit();
			});
			
			button.addEvent('click', function(e){
				e = new Event(e).stop();
				
				submit();
			});
		});
	},
	
	initVerify: function(){
		$$('a').each(function(el){
			if (el.get('rel') == 'confirm') {
				el.addEvent('click', function(e){
					if (confirm('Sind Sie sicher?') == false) {
						e = new Event(e).stop();
					}
				});
			}
		});
	},
	
	deleteObject: function(url, query, object){
		var request = new Request.HTML({
			method: 'post',
			url: site_url+url,
			update: $(object)
		}).send(query);
	},
	
	alternating: function(object){
		var i = 1;
		
		object.getElements('tr').each(function(el){
			if (el.hasClass('odd')) {
				el.removeClass('odd');
			} else if (el.hasClass('even')) {
				el.removeClass('even');
			}
			
			if (i == 1) {
				el.addClass('odd');
				
				i = 2;
			} else {
				el.addClass('even');
				
				i = 1;
			}
		});
	},
	
	sortables: function(object, url, alternating){
		var sortables = new Sortables(object, {
			handle: 'u',
			onComplete: function(){
				if (alternating == true) Site.alternating(object);
				
				var order 		= 1;
				var elements 	= new Array();
				
				object.getElements('li').each(function(el){
					elements.push(el.get('id')+'_'+order);
					
					order++;
				});
				
				var request = new Request.HTML({
					method: 'post',
					url: site_url+url
				}).send('elements='+elements.join(';'));
			}
		});
	},
	
	hideNotification: function(){
		var slide = new Fx.Slide($('notification'));
		
		(function(){ slide.slideOut(); }).delay(2000);
	},

	browseNodes: function(path, node, redirect){
		if (redirect == true) {
			location.href = site_url+'products/browse/'+node;
		} else {
			var request = new Request.HTML({
				method: 'post',
				url: site_url+'products/nodes',
				update: $('nodes')
			}).send('selected='+path);
		}
	},
	
	handlePageName: function(){
		$('pageName').addEvent('blur', function(){
			$('pageName').value = $('pageName').value.toUpperCase();
		});
	},
	
	disposeScaleOfPrice: function(id){
		$('fieldContainer_'+id+'').dispose();
	},
	
	addScaleOfPrice: function(){
		$('addScaleOfPrice').addEvent('click', function(){
			var id = 1;
			
			$$('.scaleField').each(function(el){
				if (!fields.contains(el.get('id'))) {
					fields.push(el.get('id'))
				}
			});
			
			if (fields.length > 0) {
				id = fields.getLast().replace('scaleField_', '').toInt() + 1;
			}
			
			var fieldContainer 	= new Element('div', {'id': 'fieldContainer_'+id+''});
			field 	= '<div class="label">Mengeneinheit/Preis</div>';
			field   += '<div class="scaleField field" id="scaleField_'+id+'"><input type="text" name="amount[field_'+id+']" class="tiny" value="" /> / <input type="text" name="price[field_'+id+']" class="tiny" value="" />&nbsp;&nbsp;<a href="javascript:Site.disposeScaleOfPrice('+id+');" class="red">löschen</a></div><br /><br />';
			
			fieldContainer.set('html', field);
			
			fieldContainer.inject($('scaleOfPriceContainer'));
		});
	},
	
	handleSubnavChilds: function(){
		$$('.subnavChild').each(function(el){
			el.addEvent('mouseover', function(){
				id = el.get('id').replace('page_','');
				$('suffix_' + id + '').setStyle('display', 'inline');
			});
			el.addEvent('mouseout', function(){
				id = el.get('id').replace('page_','');
				$('suffix_' + id + '').setStyle('display', 'none');
			});
		});
	},
	
	handleAccordion: function(){
		var myAccordion = new Accordion($('faqAccordion'), 'h3.question', 'div.answer', {
			opacity: false,
			onActive: function(toggler, element){
				toggler.setStyles({
					color: '#ff9900',
					background: '#fff'
				});
			},
			onBackground: function(toggler, element){
				toggler.setStyles({
					color: '#ff9900',
					background: 'none'
				});
			}
		});
	},
	
	handleEnquiryForm: function(){
		var printForm = new Fx.Slide('print').hide();
		var normalForm = new Fx.Slide('normal').hide();
		
		if (openForm != false) {
			switch (openForm) {
				case 'print':
					printForm.show();
				break;
				case 'normal':
					normalForm.show();
				break;
			}	
		}
		
		$('enquiryType').addEvent('change', function(){
			value		= $('enquiryType').get('value');
			
			switch (value) {
				case 'print':
					normalForm.slideOut();
					printForm.slideIn();
				break;
				case 'normal':
					printForm.slideOut();
					normalForm.slideIn();			
				break;
				case 'false':
					printForm.slideOut();
					normalForm.slideOut();
				break;
			}
		});
	},
	
	handleSearchLimit: function(){
		var searchTogglers 	= new Array();
		var selectValues	= new Array();
		
		$$('.search_category').each(function(el){
			id = el.get('id');
			selectValues.push(id);
			searchTogglers[id] = new Fx.Slide(id, { 
				mode: 'vertical' 
			}).show();
		});
		
		$('searchLimit').addEvent('change', function(){
			value = $('searchLimit').get('value');
			
			if (value == 'false') {
				selectValues.each(function(id){
					searchTogglers[id].slideIn();
				});
			} else {
				selectValues.each(function(id){
					if (id != 'page_' + value) {
						searchTogglers[id].slideOut();
					} else {
						searchTogglers[id].slideIn();
					}
				});
			}
		});
	}
}

window.addEvent('domready', Site.init);
window.addEvent('load', Site.start);
