var FieldsMandatory = new Array();
FieldsMandatory["firstname"] = {"highlight":"#cc0000", "error": "Bitte füllen Sie alle Pflichtfelder.\n","default": "Vorname*"};
FieldsMandatory["lastname"]  = {"highlight":"#cc0000", "error": "Bitte füllen Sie alle Pflichtfelder.\n","default": "Nachname*"};
FieldsMandatory["email"]     = {"highlight":"#cc0000", "error": "Ihre E-mail Adresse ist nicht gültig. Bitte überprüfen Sie Ihre Eingaben nochmals bevor Sie Ihre Anfrage absenden! ","default": "Email*"};
FieldsMandatory["region"]    = {"highlight":"#cc0000", "error": "Bitte füllen Sie alle Pflichtfelder.\n","default": "Bitte wählen Sie Ihr Land aus *"};

FieldsMandatory["zip"]       = {"highlight":"#cc0000", "error": "Bitte füllen Sie alle Pflichtfelder.\n","default": "Postleitzahl *"};
FieldsMandatory["city"]      = {"highlight":"#cc0000", "error": "Bitte füllen Sie alle Pflichtfelder.\n","default": "Stadt *"};
FieldsMandatory["street"]    = {"highlight":"#cc0000", "error": "Bitte füllen Sie alle Pflichtfelder.\n","default": "Straße / Nummer*"};

document.observe('dom:loaded', function() { initLayout_handledButtons()});
function initLayout_handledButtons()
{
    $$("button.handledGeneric").each(function(elt) {
            if(!elt.form.id) {
                elt.form.id=Helper.getUniqueId();
            }
            var handle="";
            var reg=/^return/;
            $A(elt.form.attributes).each(function(item) {
                if(item.nodeName=='onsubmit') {
                    handle="if("+item.nodeValue.replace(reg,"").replace(/;$/,"")+")";
                }
            });
            var caption=$(elt).innerHTML;
            var jsCode="javascript:"+handle+" document.forms['"+elt.form.id+"'].submit();";
            var cssClassName="generic-button";
//            linkAsButton=Builder.node('a',{className:cssClassName,href:jsCode},[Builder.node('span',[Builder.node('span',[caption])]),]);
            linkAsButton = new Element('a',{className:cssClassName,href:jsCode});
            var btnElement = new Element('span');
            var btnInnerElement = new Element('span').update(caption);
            btnElement.update(btnInnerElement);
            linkAsButton.update(btnElement);
            
            $(elt).parentNode.replaceChild($(linkAsButton),$(elt));
     });
}

function cleanLegend(field, legend)
{
    if(field.value == legend)
        field.value='';
    else if(field.value == '')
        field.value= legend;
}

function regexmail(mail) 
{
	var regexist = false;
	var res = false;
	if(typeof(RegExp) == 'function') 
	{
		var testregex = new RegExp('abc');
			if(testregex.test('abc') == true)
			{
				regexist = true;
			}
		}
	if(regexist == true) 
	{
		reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)(\\@)([a-zA-Z0-9\\-\\.]+)(\\.)([a-zA-Z]{2,4})$');
		res = (reg.test(mail));
		} 
	else 
		{
			res = (mail.search('@') >= 1 && mail.lastIndexOf('.') > mail.search('@') && mail.lastIndexOf('.') >= mail.length-5)
		}
		return(res);
}	

function validate(form, messageDiv)
{
    var message = "";
    var status = true;
    
    for(var field in FieldsMandatory)
    {
        if(form.elements[field] && field != 'all' && form.elements[field].style)
            if( (field == 'email' && !regexmail(getElementText(form.elements[field]))) ||
                (field != 'email' && getElementText(form.elements[field]) == FieldsMandatory[field]['default'] || getElementText(form.elements[field]) == '') )
            {
            	if (form.elements[field].type == 'hidden') {
            		$$('input[name="'+field+'"]').each( function(el) {
            			$(el).previous('p.title').setStyle({ borderColor: FieldsMandatory[field]['highlight'] });
            			$(el).previous('p.title').down().setStyle({ color: FieldsMandatory[field]['highlight'] });
            		});
            	} else {
            		form.elements[field].style.color = FieldsMandatory[field]['highlight'];
            		form.elements[field].style.borderColor = FieldsMandatory[field]['highlight'];
            	}
                error = FieldsMandatory[field]['error'];
                if(message.indexOf(error) < 0)
                    message += error;
                status = false;
            }
            else
            {
            	if (form.elements[field].type == 'hidden') {
            		$$('input[name="'+field+'"]').each( function(el) {
            			$(el).previous('p.title').setStyle({ borderColor: '#999999' });
            			$(el).previous('p.title').down().setStyle({ color: '#333333' });
            		});
            	} else {
            		form.elements[field].style.color = '#333333';
            		form.elements[field].style.borderColor = '#999999';
            	}
            }
    }
    
    document.getElementById(messageDiv).innerHTML = message;    
    return status;
}
function getElementText(element)
{
	 if(element.type == 'text' || element.type == 'hidden')
        return element.value;
    if(element.type == 'select-one')
        return element.options[element.selectedIndex].text;
}