

loadCharacters = function() {
	var div = document.createElement('div');
	
	var font = $('fonts').options[$('fonts').selectedIndex].value;
	
	var img, i;
	
	while ($('previewcontainer').firstChild) {
		$('previewcontainer').removeChild($('previewcontainer').firstChild);
	}

	for (i=97; i<123; i++) {
		img = document.createElement('img');
		img.style.cursor = 'pointer';
		img.onclick = function() {
			setCharacter(this);
		}
		img.chr = i;
		img.className = "fontpreview";
		img.width = 30;
		img.height = 30;
		img.src = 'index.php?font='+font+'&chr='+i+'&r='+Math.round(Math.random()*1000000)+Math.round(Math.random()*1000000);
		
		$('previewcontainer').appendChild(img);
	}

	for (i=65; i<91; i++) {
		img = document.createElement('img');
		img.style.cursor = 'pointer';
		img.onclick = function() {
			setCharacter(this);
		}
		img.chr = i;
		img.className = "fontpreview";
		img.width = 30;
		img.height = 30;
		img.src = 'index.php?font='+font+'&chr='+i+'&r='+Math.round(Math.random()*1000000)+Math.round(Math.random()*1000000);

		$('previewcontainer').appendChild(img);
	}

	for (i=48; i<58; i++) {
		img = document.createElement('img');
		img.style.cursor = 'pointer';
		img.onclick = function() {
			setCharacter(this);
		}
		img.chr = i;
		img.className = "fontpreview";
		img.width = 30;
		img.height = 30;
		img.src = 'index.php?font='+font+'&chr='+i+'&r='+Math.round(Math.random()*1000000)+Math.round(Math.random()*1000000);

		$('previewcontainer').appendChild(img);
	}
}



var cur_elem;
setCharacter = function(elem) {
	$('character').value = elem.chr;
	elem.style.border = '1px dashed red';
	if (cur_elem && cur_elem != elem) {
		cur_elem.style.border = '1px solid #dddddd';
	}
	cur_elem = elem;
	
	sendFormPreview();
}

previewColor = function(obj, preview) {
	color = obj.value;

	if (color.length == 6) {
		if (color.match(/^[a-f0-9]{6}$/i)) {
			$(preview).style.backgroundColor = '#'+color;
		} else {
			$(preview).style.backgroundColor = 'transparent';
			alert('Die Farbe enthält ungültige Werte!');
			obj.focus();
			obj.select();
		}
	} else {
		$(preview).style.backgroundColor = 'transparent';
	}
}

sendForm = function() {
	if ($('avatarpreview').src == 'crossed.png') {
		alert('Bitte einen neuen Avatar erstellen.');
		return false;
	}
	
	if ($('creator').value == '' || $('creator').value == $('creator').defaultValue) {
		alert('Bitte den Namen angeben.');
		$('creator').focus();
		return false;
	}
	if (/[^a-z0-9\._-]/i.test($('creator').value) == true) {
		alert('Der Name enthält ungültige zeichen.');
		$('creator').focus();
		return false;
	}
	document.forms['settings'].target = 'frabx';
	$('sendbutton').disabled = true;
	window.setTimeout("location.href='index.php';", 4000);
	document.forms['settings'].action = 'generate.php';
	document.forms['settings'].submit();
	alert('Danke für meinen neuen Avatar :-)');
}



sendFormPreview = function() {
	document.getElementById('sendbuttonPreview').disabled = true;

	a = (document.forms['settings'].elements['displayborder'].checked)? 1: 0;
	b = (document.forms['settings'].elements['displaycorners'].checked)? 1: 0;
	c = (document.forms['settings'].elements['filterblur'].checked)? 1: 0;
	f = (document.forms['settings'].elements['filterblurmore'].checked)? 1: 0;
	g = (document.forms['settings'].elements['filtermotionblur'].checked)? 1: 0;
	h = (document.forms['settings'].elements['filterscatter'].checked)? 1: 0;
	i = (document.forms['settings'].elements['filterpixelate'].checked)? 1: 0;
	d = (document.forms['settings'].elements['filternegate'].checked)? 1: 0;
	j = (document.forms['settings'].elements['filterinterlace'].checked)? 1: 0;
	e = (document.forms['settings'].elements['roundcorners'].checked)? 1: 0;
	k = (document.forms['settings'].elements['backgroundgradient'].checked)? 1: 0;
	l = (document.forms['settings'].elements['filtergloss'].checked)? 1: 0;
	m = (document.forms['settings'].elements['vortex'].checked)? 1: 0;
	n = (document.forms['settings'].elements['dropshadow'].checked)? 1: 0;
	

	$('avatarpreview').src = 'generate.php?preview=1&font='+$('fonts').value+'&character='+$('character').value+'&dropshadow='+n+'&vortex='+m+'&vortexdirection='+document.forms['settings'].elements['vortexdirection'].value+'&vorticity='+document.forms['settings'].elements['vorticity'].value+'&backgroundcolor='+document.forms['settings'].elements['backgroundcolor'].value+'&foregroundcolor='+document.forms['settings'].elements['foregroundcolor'].value+'&displayborder='+a+'&displaycorners='+b+'&cornersize='+document.forms['settings'].elements['cornersize'].value+'&bordercolor='+document.forms['settings'].elements['bordercolor'].value+'&borderwidth='+document.forms['settings'].elements['borderwidth'].value+'&fontsize='+document.forms['settings'].elements['fontsize'].value+'&offsetx='+document.forms['settings'].elements['offsetx'].value+'&offsety='+document.forms['settings'].elements['offsety'].value+'&angle='+document.forms['settings'].elements['angle'].value+'&filterblur='+c+'&filterblurmore='+f+'&filternegate='+d+'&filtermotionblur='+g+'&filterscatter='+h+'&filterscatterrange='+document.forms['settings'].elements['filterscatterrange'].value+'&filterpixelate='+i+'&filterpixelsize='+document.forms['settings'].elements['filterpixelsize'].value+'&filterinterlace='+j+'&filtergloss='+l+'&filterglossposition='+document.forms['settings'].elements['filterglossposition'].value+'&filterglosstype='+document.forms['settings'].elements['filterglosstype'].value+'&roundcorners='+e+'&backgroundgradient='+k+'&gradienttype='+document.forms['settings'].elements['gradienttype'].value+'&gradientendcolor='+document.forms['settings'].elements['gradientendcolor'].value+'&'+Math.round(Math.random()*1000000)+Math.round(Math.random()*1000000);
	
}


scroller = function(event) {
	var top = 0;
	if (Prototype.Browser.IE) {
		px_top = (document.documentElement.clientHeight - $('left').getHeight())/2 + document.documentElement.scrollTop + 'px';
	} else {
		px_top = (window.innerHeight - $('left').getHeight())/2 + window.pageYOffset + 'px';
	}
	$('left').setStyle({top: px_top});
}

resetAll = function() {
	$('settings').reset();
	$('avatarpreview').src='crossed.png';
	previewColor(document.forms['settings'].elements['backgroundcolor'], 'backgroundcolor_preview');
	previewColor(document.forms['settings'].elements['foregroundcolor'], 'foregroundcolor_preview');
	previewColor(document.forms['settings'].elements['gradientendcolor'], 'gradientendcolor_preview');
	previewColor(document.forms['settings'].elements['bordercolor'], 'bordercolor_preview');
}

Event.observe(window, 'load', function() {
	loadCharacters();
	scroller();
	Event.observe($('fonts'), 'change', loadCharacters);
	Event.observe(window, 'scroll', scroller);
	Event.observe('avatarpreview', 'load', function() {
		window.setTimeout("$('sendbuttonPreview').disabled = false;", 250);
	});
	
	previewColor(document.forms['settings'].elements['backgroundcolor'], 'backgroundcolor_preview');
	previewColor(document.forms['settings'].elements['foregroundcolor'], 'foregroundcolor_preview');
	previewColor(document.forms['settings'].elements['gradientendcolor'], 'gradientendcolor_preview');
	previewColor(document.forms['settings'].elements['bordercolor'], 'bordercolor_preview');
	
	var elements = $('settings').getElements();
	for (i=0; i<elements.length; i++) {
		el = elements[i];
		if (el.type == 'hidden') continue;
		if (el.type == 'checkbox') {
			Event.observe(el, 'click', sendFormPreview);
		} else {
			Event.observe(el, 'change', sendFormPreview);
		}
		
		
	}
});
