var Bright = 'hlight';
var Default= '';



function hl(el, style){el.className = style;}


function notEmpty(elem, err) 
{
    var str = elem.value;

    if(str == null || str.length == 0) 
	{
		hl(elem, Bright);
		errorString+=err; 
		return false;
	}
	else 
	{
		hl(elem,Default);
		return true;
	}
}


function validEmail(elem, err)
{
    if(elem.value.length > 0)
	{
		var str = elem.value;
	    var splitted = str.match("^(.+)@(.+)$");

	    if(splitted !== null && splitted[1] !== null)
		{
	    	var regexp_user=/^\"?[\w-_\.]*\"?$/;
		    if(splitted[1].match(regexp_user) !== null && splitted[2] !== null)
			{
		    	var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
				var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
				if((splitted[2].match(regexp_domain) !== null) || (splitted[2].match(regexp_ip) !== null))
				{
					hl(elem,Default);
					return true;
				}
			}
		
		}
	}
	hl(elem, Bright);
	errorString+=err;
	return false;
}


function notSelected(elem, err, ind) 
{
    var str = elem.selectedIndex;

    if(str==ind) 
	{
		hl(elem, Bright);
		errorString+=err; 
		return false;
	}
	else 
	{
		hl(elem,Default);
		return true;
	}
}


function validateForm(formname)
{
	errorString = "Please fill in following fields:     \n---------------------------------\n";

	var Results = [
	notEmpty(formname.b_fname, 'First name \n'),
	notEmpty(formname.b_lname, 'Last Name \n'),
	notEmpty(formname.b_address1, 'Street Adress 1 \n'),
	notEmpty(formname.b_city, 'City\n'),
	notEmpty(formname.b_country, 'Country\n'),
	notEmpty(formname.b_zip, 'Zip/Postal Code\n'),
	notEmpty(formname.b_phone, 'Phone\n'),
	validEmail(formname.b_email, 'Email (should be valid) \n'),

	notEmpty(formname.s_fname, 'First name (shipping)\n'),
	notEmpty(formname.s_lname, 'Last Name (shipping) \n'),
	notEmpty(formname.s_address1, 'Street Adress 1 (shipping) \n'),
	notEmpty(formname.s_city, 'City (shipping)\n'),
	notEmpty(formname.s_country, 'Country (shipping)\n'),
	notEmpty(formname.s_zip, 'Zip/Postal Code (shipping)\n'),
	notEmpty(formname.s_phone, 'Phone (shipping)\n'),
	validEmail(formname.s_email, 'Email (should be valid) (shipping)\n')
	];

	if (Results[0] && Results[1] && Results[2] && Results[3] && Results[4] && Results[5] && Results[6] && Results[7] && Results[8] && Results[9] && Results[10] && Results[11] && Results[12] && Results[13] && Results[14] && Results[15])
	{
		return true;
	}
	else
	{
		alert(errorString);
		return false;
	}
}

function cD()
{
	f = document.forms.details;
	if (f.same.checked==true)
	{
		f.s_fname.disabled=true;
		f.s_lname.disabled=true;
		f.s_address1.disabled=true;
		f.s_address2.disabled=true;
		f.s_city.disabled=true;
		f.s_country.disabled=true;
		f.s_zip.disabled=true;
		f.s_phone.disabled=true;
		f.s_fax.disabled=true;
		f.s_email.disabled=true;
		f.s_fname.value=f.b_fname.value;
		f.s_lname.value=f.b_lname.value;
		f.s_address1.value=f.b_address1.value;
		f.s_address2.value=f.b_address2.value;
		f.s_city.value=f.b_city.value;
		f.s_country.selectedIndex=f.b_country.selectedIndex;
		f.s_zip.value=f.b_zip.value;
		f.s_phone.value=f.b_phone.value;
		f.s_fax.value=f.b_fax.value;
		f.s_email.value=f.b_email.value;
	}
	else
	{
		f.s_fname.disabled=false;
		f.s_lname.disabled=false;
		f.s_address1.disabled=false;
		f.s_address2.disabled=false;
		f.s_city.disabled=false;
		f.s_country.disabled=false;
		f.s_zip.disabled=false;
		f.s_phone.disabled=false;
		f.s_fax.disabled=false;
		f.s_email.disabled=false;
	}
}