
function setHeight() {
	var bodyHeight = document.body.offsetHeight;
	$('overall').style.height = bodyHeight + 'px';
}

Event.observe(window, 'load', function() {
	//open references
	$$('.listing').each(function(e) {
		e.onclick = function() {
			return open_project(e);
		}
	});
	
	//toggle search options
	if($('toggleSearch')) {
		$('toggleSearch').onclick = function() {
			toggleLink('searchForm', 'toggleSearch');
		}
	}
	
	//toggle comments
	if($('toggleComment')) {
		$('toggleComment').onclick = function() {
			toggleLink('comments', 'toggleComment');
		}
	}
	

	
});

function close_others() {
	
	if($('searchForm').visible()) {
		toggleLink('searchForm', 'toggleSearch');
	}

	$$('.reference').each(function(e) {
		if(e.visible()) {
			close_project(e);
		}
	});
	
	
}


function close_project(reference) {

	var container = reference.previous();
	$('header').style.backgroundImage = 'url(' + _path + 'app/images/header.arbeiten.jpg)';
	new Effect.BlindUp(reference, {
		afterFinish: function() {
			new Effect.BlindDown(container);
			reference.replace('');
		}
	});
	
	return false;
}

function open_project(link) {
	
	close_others();
	var container = link.up();
	var id_product = link.getAttribute('rel');
	
	//get header
	new Ajax.Request(_path + 'perform/getProductsHeader?id=' + id_product, {
		onSuccess: function(transport) {
			$('header').style.backgroundImage = 'url(' + transport.responseText + ')';
		}
	});
	
	
	new Ajax.Request(_path + 'perform/getProduct?id=' + id_product, {
		onSuccess: function(transport) {
			Insertion.After(container, transport.responseText);
			var reference = container.next();
			
			new Effect.BlindUp(container, {
				afterFinish: function() {
					new Effect.BlindDown(reference, {
						beforeStart: function() {
							$('overall').style.height = $('column-1').getHeight() + 'px';
						},
						afterFinish: function() {
							$('overall').style.height = $('column-1').getHeight() + 'px';
						}
					});
				}
			});
			
		}
	});
	
	if(Prototype.Browser.IE){
		//setHeight();
	}
	
	return false;
}



function toggleLink(element, link) {
	if($(link)) {
		new Effect.toggle(element, 'blind', {
			afterFinish: function() {
				setHeight();
			}
		});
		
		//special cases
		if(element == 'header') new Ajax.Request(_path + 'perform/setOption?option=header&value=' + $('header').visible(),{});
		if(element == 'comments') new Ajax.Request(_path + 'perform/setOption?option=comments&value=' + $('comments').visible(),{});
			
		if($(link).hasClassName('blindDown')) {
			
			//special cases
			if(element == 'searchForm')	close_others();
			
			$(link).removeClassName('blindDown');
			$(link).addClassName('blindUp');
			
		} else {
			$(link).addClassName('blindDown');
			$(link).removeClassName('blindUp');
		}
	}
	
	return false;
	
}


function toggleHorizontal(element, link) {
	if($(link)) {

		new Effect.toggle(element, 'blind', {
			scaleX: true,
			scaleY: false,
			afterFinish: function() {
				if($(link).hasClassName('blindRight')) {
					$('toggleColumnSmall').toggle();
				}
			}
		});
		
		if($(link).hasClassName('blindLeft')) {		
			new Effect.toggle($('toggleColumnSmall'), 'blind', {
				scaleX: true,
				scaleY: false
			});
			value = 'closed';
		}  else value = 'open';
		
		if(element == 'column-2') new Ajax.Request(_path + 'perform/setOption?option=blog&value=' + value,{});

	}
	
	return false;
	
}



//check form
function checkForm(id_form) {
	

	var fElms = $(id_form).getElements();
	var errorMessage = '';
	var texterror = false;

	for(i=0; i < fElms.length; i++) {
		if(fElms[i].getAttribute('rel')) {
			var checktype	= fElms[i].getAttribute('rel');
			var checkvalue	= fElms[i].value;
			
			switch (checktype) {
					
				case 'text':
					if(checkvalue=='' && !texterror ) {
						var texterror = true;
							errorMessage += 'Bitte füllen Sie alle nötigen Felder aus!'+"\n";
						}	
					
					break;
					
				case 'email':
					var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
					if(!filter.test(checkvalue)) {
							errorMessage += 'Bitte überprüfen Sie Ihre Emailadresse!'+"\n";
						}	
					
					break;
			}
		}
		
	}
	
	
	if(errorMessage!='') {
		alert(errorMessage);
		return false;
	}
	
	return true;
}


