function validate(form,type){
  var firstname = form.first_name.value;
  var last = form.last_name.value;
  var email = form.email_address.value;
  var address = form.address.value;
  var city = form.city.value;
  var state = form.state.value;
  var zip = form.postal_code.value;
  var phone = form.phone.value;
  var comments = form.comments.value;
  if(type == 'dealer'){
  	var business = form.business.value;
  	/* var area = form.area.value;
	var employees = form.employees.value;
	var years = form.years.value;
	var salespeople = form.salespeople.value;
	var installers = form.installers.value; */
	var showroom = form.showroom; 
  } else if(type == 'consumer'){
  	var source = form.source.value;
  }
  var nameRegex = new RegExp(/^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/);
  var emailRegex = new RegExp(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);
  var zipRegex = new RegExp(/^\d{5}$/);
  var numberRegex = new RegExp(/^[0-9]+/);
  var digitRegex = new RegExp(/\D/g);
  var markupRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);
  if(type == 'dealer' && business == ""){
	inlineMsg('business','You must enter your business name.',2);
	return false;
  }
 if(firstname == ""){
    inlineMsg('first_name','You must enter your first name.',2);
    return false;
  }else if(!firstname.match(nameRegex)){
    inlineMsg('first_name','You have entered an invalid first name.',2);
    return false;
  }else{
	form.first_name.value = capitalizeString(firstname);  
  }
  
  if(last == ""){
    inlineMsg('last_name','You must enter your last name.',2);
    return false;
  }else if(!last.match(nameRegex)){
    inlineMsg('last_name','You have entered an invalid last name.',2);
    return false;
  }else{
	  form.last_name.value = capitalizeString(last);
  }
  if(email == ""){
    inlineMsg('email_address','You must enter your email.',2);
    return false;
  }
  if(!email.match(emailRegex)){
    inlineMsg('email_address','You have entered an invalid email address.',2);
    return false;
  }
  if(address == ""){
    inlineMsg('address','You must enter your address.',2);
    return false;
  }else{
	form.address.value = capitalizeString(address);
  }
  if(city == ""){
    inlineMsg('city','You must enter your city.',2);
    return false;
  }else if(!city.match(nameRegex)){
    inlineMsg('city','You have entered an invalid city name.',2);
    return false;
  }else{
	form.city.value = capitalizeString(city);
  }
  if(state == ""){
    inlineMsg('state','You must select your state.',2);
    return false;
  }
  if(zip != "" && !zip.match(zipRegex)){
    inlineMsg('postal_code','You have entered an invalid 5 digit zip code.',2);
    return false;
  } 
  if(zip == ""){
	inlineMsg('postal_code','You must enter your zip code.',2);
	return false;
  }
  if(phone != "" && phone.replace(digitRegex, '').length != 10){
    inlineMsg('phone','You have entered an invalid 10 digit phone number.' ,2);
    return false;
  }
/*  if(type == 'dealer'){
    if(zip == ""){
      inlineMsg('postal_code','You must enter your zip code.',2);
      return false;
    }
    if(phone == ""){
      inlineMsg('phone','You must enter your phone number.' ,2);
	  return false;
    }
	/* if(area == ""){
      inlineMsg('area','You must enter your area served.',2);
      return false;
	}
	if(employees == ""){
       inlineMsg('employees','You must enter your number of employees.',2);
       return false;
	}
	if(!employees.match(numberRegex)){
      inlineMsg('employees','You have entered an invalid number of employees.',2);
      return false;
	}
	if(years == ""){
       inlineMsg('years','You must enter your number of years in business',2);
       return false;
	}
	if(!years.match(numberRegex)){
       inlineMsg('years','You have entered an invalid number of years.',2);
      return false;
	}
	if(salespeople == ""){
      inlineMsg('salespeople','You must enter your number of salespeople.',2);
      return false;
	}
	if(!salespeople.match(numberRegex)){
      inlineMsg('salespeople','You have entered an invalid number of salespeople.',2);
      return false;
	}
	if(installers == ""){
      inlineMsg('installers','You must enter your number of installers.',2);
      return false;
	}
	if(!installers.match(numberRegex)){
      inlineMsg('installers','You have entered an invalid number of installers.',2);
      return false;
	} */
  	var valid = false;
	for(var i=0; i<showroom.length; i++){
      if(showroom[i].checked){
        valid = true; 
      }
    }
	if(!valid){
      inlineMsg('selection','You must select a showroom option.',2);
      return false;
	}
  
  if(comments.search(markupRegex) != -1){
  	inlineMsg('comments','Markup is not allowed in your comments.',2);
	return false;
  }
  return true;
}

function capitalizeString(string){
  return string.toLowerCase().replace(/\b[a-z]/g, upperCase);
  function upperCase(){
	return arguments[0].toUpperCase();
  }
}

var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;

function inlineMsg(target,string,autohide){
  var msg;
  var msgcontent;
  if(!document.getElementById('msg')){
    msg = document.createElement('div');
    msg.id = 'msg';
    msgcontent = document.createElement('div');
    msgcontent.id = 'msgcontent';
    document.body.appendChild(msg);
    msg.appendChild(msgcontent);
    msg.style.filter = 'alpha(opacity=0)';
    msg.style.opacity = 0;
    msg.alpha = 0;
  }else{
    msg = document.getElementById('msg');
    msgcontent = document.getElementById('msgcontent');
  }
  msgcontent.innerHTML = string;
  msg.style.display = 'block';
  var msgheight = msg.offsetHeight;
  var targetdiv = document.getElementById(target);
  targetdiv.focus();
  var targetheight = targetdiv.offsetHeight;
  var targetwidth = targetdiv.offsetWidth;
  var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
  var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
  msg.style.top = topposition + 'px';
  msg.style.left = leftposition + 'px';
  clearInterval(msg.timer);
  msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
  if(!autohide){
    autohide = MSGHIDE;  
  }
  window.setTimeout("hideMsg()", (autohide * 1000));
}

function hideMsg(msg){
  var msg = document.getElementById('msg');
  if(!msg.timer){
    msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
  }
}

function fadeMsg(flag){
  if(flag == null){
    flag = 1;
  }
  var msg = document.getElementById('msg');
  var value;
  if(flag == 1){
    value = msg.alpha + MSGSPEED;
  }else{
    value = msg.alpha - MSGSPEED;
  }
  msg.alpha = value;
  msg.style.opacity = (value / 100);
  msg.style.filter = 'alpha(opacity=' + value + ')';
  if(value >= 99){
    clearInterval(msg.timer);
    msg.timer = null;
  } else if(value <= 1){
    msg.style.display = "none";
    clearInterval(msg.timer);
  }
}

function leftPosition(target){
  var left = 0;
  if(target.offsetParent){
    while(1){
      left += target.offsetLeft;
      if(!target.offsetParent){
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.x){
    left += target.x;
  }
  return left;
}

function topPosition(target){
  var top = 0;
  if(target.offsetParent){
    while(1){
      top += target.offsetTop;
      if(!target.offsetParent){
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.y){
    top += target.y;
  }
  return top;
}

if(document.images){
  arrow = new Image(7,80); 
  arrow.src = "/skin/frontend/default/default/images/msg_arrow.gif"; 
}