function validate_text(obj,warning) {
  if(obj.value.length >= 2) {
    if(document.getElementById(obj.name + "_warn")) document.body.removeChild(document.getElementById(obj.name + "_warn"));
    return true;
  }
  else {
    generate_warning(obj,warning);
    return false;
  }
}

function validate_email(obj,warning) {
  if(obj.value.match(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/)) {
    if(document.getElementById(obj.name + "_warn")) document.body.removeChild(document.getElementById(obj.name + "_warn"));
    return true;
  }
  else {
    generate_warning(obj,warning);
    return false;
  }
}

function validate_phone(obj,warning) {
  var phone =  strip_non_numbers(obj.value);
  if(phone.length == 10) {
    if(phone.length == 10) { obj.value = phone.substring(0,3)+"-"+phone.substring(3,6)+"-"+phone.substring(6,10); }
    if(document.getElementById(obj.name + "_warn")) document.body.removeChild(document.getElementById(obj.name + "_warn"));
    return true;
  }
  else {
    generate_warning(obj,warning);
    return false;
  }
}

function validate_zip() {
  var obj = document.getElementById('zip');
  var warning = "Your zip code is required to find a local dealer.";
  if((obj.value.length == 5 && !isNaN(obj.value)) || !document.getElementById('localdealer').checked) {
    if(document.getElementById(obj.name + "_warn")) document.body.removeChild(document.getElementById(obj.name + "_warn"));
    return true;
  }
  generate_warning(obj,warning);
  return false;
}

function strip_non_numbers(text) {
  text = text.split("");
  for(i=0;text.length>i;i++) {
    if(isNaN(text[i])) text.splice(i--,1);
  }
  text = text.join("");
  return text;
}

function position_element(obj1,obj2) {
  var curleft = curtop = 0;
	if(obj1.offsetParent) {
		curleft = obj1.offsetLeft
		curtop = obj1.offsetTop
		while (obj1 = obj1.offsetParent) {
			curleft += obj1.offsetLeft
			curtop += obj1.offsetTop
		}
	}
	obj2.style.position = "absolute";
	obj2.style.left = curleft + 192 + "px";
	obj2.style.top = curtop + "px";
	return;
}

function generate_warning(obj,warning) {
  var newid = obj.name + "_warn";
  if(document.getElementById(newid)) {
    newdiv = document.getElementById(newid);
  }
  else {
    newdiv = document.createElement('div');
    newdiv.setAttribute('id',newid);
    newdiv.setAttribute('class','form_warning');
    newdiv.setAttribute('className','form_warning');
    document.body.appendChild(newdiv);
  }
  position_element(obj,newdiv);
  newdiv.innerHTML = warning;
}
