
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;
    
	var FieldsMandatory = new Array();
	FieldsMandatory["gender"] = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "Gender*"};
	FieldsMandatory["firstname"] = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "First name*"};
	FieldsMandatory["lastname"]  = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "Last name*"};
	FieldsMandatory["company"]  = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "Company / Organisation*"};
	FieldsMandatory["email"]     = {"highlight":"#990000", "error": "Your e-mail address is not valid. Please check the spelling before sending! ","default": "E-Mail*"};

	FieldsMandatory["zip"]       = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "ZIP Code*"};
	FieldsMandatory["city"]      = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "City / Town*"};
	FieldsMandatory["region"]    = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "Please select a country *"};
	FieldsMandatory["street"]    = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "Street / Number*"};
	FieldsMandatory["region"]    = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "Country*"};

	FieldsMandatory["disclaimer"]    = {"highlight":"#990000", "error": "Please check the disclaimer text.\n","default": "Disclaimer*"};

	switch(form.id) {
	case "contactform-general":
		FieldsMandatory["telephone"]    = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "Telephone number*"};
		FieldsMandatory["productservice"]    = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "Product / Service*"};
		break;
	case "contactform-subscription":
		if(showSubscriptionAddress)
		{
			FieldsMandatory["newzip"]       = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "New zip code*"};
			FieldsMandatory["newcity"]      = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "New city*"};
			FieldsMandatory["newregion"]    = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "Please select a country*"};
			FieldsMandatory["newstreet"]    = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "New address*"};
		}
		else if(showSubscriptionOrdernum)
		{
			FieldsMandatory["ordernum"]    = {"highlight":"#990000", "error": "Please fill all required fields.\n","default": "Number of ordered copies*"};
		}
		break;
	case "contactform-excitation":
		break;
	}

    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]) == '') )
            {
                form.elements[field].style.color = FieldsMandatory[field]['highlight'];
                error = FieldsMandatory[field]['error'];
                if(message.indexOf(error) < 0)
                    message += error;
                status = false;
            }
            else if(field == 'disclaimer' && form.elements[field].checked == false)
            {
            	var selector = 'form#' + form.id + ' div.disclaimer';
            	$$(selector).each(function(item){item.addClassName('errorfield')});
            	
                form.elements[field].style.color = FieldsMandatory[field]['highlight'];
            	error = FieldsMandatory[field]['error'];
            	if(message.indexOf(error) < 0)
                    message += error;
            	status = false;
            }
            else if(form.elements[field].type == 'hidden')
            {
            	var selector = '';
        		switch(form.elements[field].name)
        		{
        		case 'gender':
        			selector = 'contact-gender' + '-' + form.id.split('-')[1];
        			break;
        		case 'productservice':
        			selector = 'contact-productservice';
        			break;
        		default:
        			selector = form.elements[field].name + '-' + form.id.split('-')[1];;
        			break;
        		}
        		
            	if(form.elements[field].value == '')
            	{
            		$(selector).down('p').down('a').style.color=FieldsMandatory[field]['highlight'];
            		error = FieldsMandatory[field]['error'];
                	if(message.indexOf(error) < 0)
                        message += error;
            		status = false;
            	}
            	else
            	{
            		$(selector).down('p').down('a').style.color='#333333';
            	}
            }
            else
            {
                form.elements[field].style.color = '#333333';
                
            	$$('div.disclaimer').each(function(item){item.removeClassName('errorfield')});
            }
        }
    }
    
    document.getElementById(messageDiv).innerHTML = message;    
    return status;
}
function getElementText(element)
{
    if(element.type == 'text')
        return element.value;
    if(element.type == 'select')
        return element.options[element.selectedIndex].text;
}

var showSubscriptionAddress = false;
var showSubscriptionOrdernum = true;

function showOrdernum(show)
{
	if(show == 1)
	{
		$('ordernumset').show();
		$$('fieldset.changeaddress').each(function(item){item.hide();});
		showSubscriptionAddress = false;
		showSubscriptionOrdernum = true;
	}
	else if(show == 2)
	{
		$('ordernumset').hide();
		$$('fieldset.changeaddress').each(function(item){item.show();});
		showSubscriptionAddress = true;
		showSubscriptionOrdernum = false;
	}
	else
	{
		$('ordernumset').hide();
		$$('fieldset.changeaddress').each(function(item){item.hide();});
		showSubscriptionAddress = false;
		showSubscriptionOrdernum = false;
	}
}