addEvent('domready', function(){
	
	if($("authCustomerno") != undefined)
		$('authCustomerno').focus();
	
	$$('form.quickfinder input[type=text]').addEvents({
		'focus':function(e){
			if(this.value == this.title)
				this.value = "";
		},'blur':function(e){
			if(this.value == "")
				this.value = this.title;
		}
	});
	$$('form.quickfinder select').addEvent('change', function(e){
		var w = this.selectedIndex;
		this.getPrevious().set('html','<span>'+this.options[w].text+'</span>');
		$$('form.quickfinder #articleno').set('value',$$('form.quickfinder #articleno').get('title'));
		$$('form.quickfinder input[type=text]').set('value',$$('form.quickfinder input[type=text]')[0].get('title'));
		this.form.submit();
	});
	
	if($('articles') != null){
		$('articles').reset();
		$('articles').addEvent('submit', function(e){e.stop();});
		$$('#articles select').addEvent('change', function(e){requestArticles(this,null);});
	}
	
	$$('.pager input').addEvent('click',function(e){
		e.stop();
		requestArticles("",e,null);
	});
	
	$$('.pager a').addEvent('click',function(e){
		e.stop();
	});
	
	if($('resetFinder')){
		$('resetFinder').addEvent('click',function(e){
			requestArticles("",e,{'reset':true});
		});
	}
	
	if($('articlelist')){
		$$('#articlelist tbody.action .parent td').addEvent('click',function(e){e.stop();requestDetails(this,e);});
	}
	
	if($('authorisation')){
		$('authorisation').addEvent('submit',function(e){e.stop();setAuthorisationForm(this,e);});
	}
	
	/* Ordervalidation */
	if($('orderSamples')){
		orderSamples();
	}
	/* !Ordervalidation */

	var color = "";
	$$('#articlelist tbody.action tr').addEvent('mouseover',function(){
		//color = this.getElement('td').getStyle('color');
		//this.getElements('td').setStyle('color','#000000');
	}).addEvent('mouseout',function(){
		//this.getElements('td').setStyle('color','#'.color);
	});
	$$('.products #main .mod_article p').addEvent('mouseover',function(){
		color = this.getStyle('color');
		this.setStyle('color','#111111');
	}).addEvent('mouseout',function(){
		this.setStyle('color','#'.color);
	});
	
});

function requestArticles(elm,e,data){
	
	if(elm != ""){
		var w = elm.selectedIndex;
		elm.setAttribute('title',elm.options[w].text);
		elm.getPrevious().set('text',elm.options[w].text);
	}

	if($('productDetails'))$('productDetails').destroy();
	var loading = new Element('div',{
		'class':'loadingScreen',
		'html':'<div class="loading"></div>'
	}).inject('articlelist','bottom');
	
	new Request({
		url: $('articles').get('action'),
		method: 'post',
		data: $extend($('articles').toQueryString().parseQueryString(),data),
		onSuccess: function(r){
			$('articles').destroy();
			$$(loading).destroy();
			$('articlelist').set('html',r)
				.addEvent('submit', function(e){e.stop();})
				.getElements("select")
					.addEvent('change', function(e){requestArticles(this,e,null);});

			$$('#articlelist tbody.action .parent td').addEvent('click',function(e){e.stop();requestDetails(this,e);});
			$('articlelist').getElements('.pager input').addEvent('click',function(e){e.stop();requestArticles("",e,null);});
			$('articlelist').getElements('#resetFinder').addEvent('click',function(e){requestArticles("",e,{'reset':true});});
		}
	}).send();
	/**/
}

function requestDetails(elm,e){
	$$('tr.sampleDetails').hide();
	$$('tr.active').removeClass('active');
	elm.getParent('.parent').addClass('active').getNext('tr').addClass('active');
	var sampleDetails = elm.getParent('.parent').getNext('tr');
	var articleno = elm.getParent('.parent').getElement('td:first-child').get('text').split(',')[0];
	var data = {
		'requestDetails':'true',
		'productfamily':'--',
		'aid':articleno,
		'aid_check':'---',
		'request':true,
		'swichTemplate':'details',
		'lang':$$('input[name=lang]').get('value')[0]
	}
	
	new Request.HTML({
		url: $('articles').get('action'),
		method: 'post',
		data: data,
		append:sampleDetails.getElement('td'),
		onRequest: function(){
			if($('productDetails'))$('productDetails').destroy();
		},
		onSuccess: function(){
			$$('#productDetails .closeDetails').addEvent('click',function(){
				$$('tr.sampleDetails').hide();
				$$('#productDetails').destroy();
				$$('tr.active').removeClass('active');
			});
			
			if(Browser.Engine.trident) sampleDetails.show();
			else sampleDetails.show('table-row');
		}
	}).send();
	/**/
}

function setAuthorisationForm(elm,e){
	var data = {
		'lang':$$('input[name=lang]').get('value')[0]
	}
	new Request.HTML({
		url:elm.get('action'),
		method:'post',
		data:$extend(elm.toQueryString().parseQueryString(),data),
		append:$('authSamples'),
		onRequest: function(r){
			$('authSamples').set('html','');
		},
		onSuccess: function(r){
			if($('authorisation')){
				$('authorisation').addEvent('submit',function(e){e.stop();setAuthorisationForm(this,e);});
			}
			orderSamples();
		}
	}).send();
}

function orderSamples(){
	if($('orderSamples')){
		$('orderSamples').addEvent('submit',function(e){
			e.stop();
			var invalid = 0;
			this.getElements('input[type=text]').each(function(item){
				if(validateItem(item) != -1)
					invalid++;
			});
			if(invalid == 0)
				this.submit();
		});
		$('orderSamples').getElements('input[type=text]').addEvent('keyup',function(e){
			validateItem(this);
		});
	}
}

function validateItem(item){
	if(errorMsg == undefined){
		errorMsg = {
			'noNumber':'Value is no Number',
			'required':'Required Field',
			'toSmall':'Value is to small, min: ',
			'toBig':'Value is to big, max: '
		};
	}
	var s = /validate\[([a-zA-Z0-9\,\<\>]*)\]/;
	var r = s.exec(item.get('class'));
	var invalide = -1;
	if(r){
		var Error = [];
		if(item.getNext('ul') != null)
			item.getNext('ul').destroy();
		r[1].split(',').each(function(option){
			var value = item.get('value');
			switch(option){
				case 'required':
					if(value == ""){
						invalide++;
						Error[invalide] = errorMsg.required;
					}
					break;
				case 'int':
					if(parseInt(value) != value){
						invalide++;
						Error[invalide] = errorMsg.noNumber;
					}
					break;
			}
			switch(option.substr(0,1)){
				case 'k':
					if(parseInt(value) > parseInt(option.slice(1))){
						invalide++;
						Error[invalide] = errorMsg.toBig+option.slice(1);
					}
					break;
				case 'g':
					if(parseInt(value) < parseInt(option.slice(1))){
						invalide++;
						Error[invalide] = errorMsg.toSmall+option.slice(1);
					}
					break;
			}
		});
		if(invalide == -1){
			item.removeClass('error');
		}
		else{
			item.addClass('error');
			
			var errorContainer = "";
			Error.forEach(function(err, index){
				errorContainer += '<li>'+err+'</li>';
			});

			new Element('ul',{
				'class':'error',
				'html':errorContainer
			}).inject(item.getParent('div'));
		}
	}
	return invalide;
}




