var searchReq = getXmlHttpRequestObject();
var suggestSelected = 0;
function getXmlHttpRequestObject() {
  if (window.XMLHttpRequest)
    return new XMLHttpRequest();
  else if(window.ActiveXObject)
    return new ActiveXObject("Microsoft.XMLHTTP");
}
function checkPostReview() {
  if (document.getElementById('usernameLogin').value.length == 0 && document.getElementById('Login2').value.length == 0) {
    alert('Enter your existing login or register.');
    return false;
  }
  if (document.getElementById('usernameLogin').value.length == 0) {
    return checkNewUserRegistration();
  }
  return true;
}
function checkNewUserRegistration() {
  var theError = '';
  
  theError = checkNewUserUsername()
 
  if (checkNewUserEmail() != '')
    theError += '\n'+checkNewUserEmail();

  if (checkNewUserPassword() != '')
    theError += '\n'+checkNewUserPassword();

  if (checkNewUserRepassword() != '')
    theError += '\n'+checkNewUserRepassword();
  
  if (theError != '') {
    alert(theError);
    return false;
  }
  return true;
}
function checkNewUserUsername() {
  if (document.getElementById('Login2').value.length < 2)
    return 'The user name must be 2 chars or more';
  return '';
}
function fillTextNewUserUsername() {
  if (checkNewUserUsername() == '') {
    document.getElementById('userUsernameError').innerHTML = ' <img src="/images/13x13progress.gif" /> Please Wait Car Dealer Check is Searching';
    searchNewUserUsername();
  } else {
    document.getElementById('userUsernameError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkNewUserUsername();
  }
}

function searchNewUserUsername() {
  if (searchReq.readyState == 4 || searchReq.readyState == 0) {
    var str = escape(document.getElementById('Login2').value);
    searchReq.open("GET", '/registerCheck.php?u=users&type=username&what=' + str, true);
    searchReq.onreadystatechange = handleNewUserUsername; 
    searchReq.send(null);
  }
}
function handleNewUserUsername() {
  if (searchReq.readyState == 4) {
    var str = searchReq.responseText;
    if (str.length > '2') {
      document.getElementById('userUsernameError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> Username is in use';
    } else {
      document.getElementById('userUsernameError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Username is available';
    }
  }
}









function checkNewUserPassword() {
  if (document.getElementById('password2').value.length < 6)
    return 'Password must be 6 chars or more';
  return '';
}
function fillTextNewUserPassword() {
  document.getElementById('userPasswordError').innerHTML = (checkNewUserPassword()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Valid password':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkNewUserPassword());
}
function checkNewUserRepassword() {
  if (document.getElementById('repassword2').value != document.getElementById('password2').value)
    return 'Passwords do not match';
  return '';
}
function fillTextNewUserRepassword() {
  document.getElementById('userRepasswordError').innerHTML = (checkNewUserRepassword()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Passwords match':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkNewUserRepassword());
}
function checkNewUserEmail() {
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  if (reg.test(document.getElementById('email2').value) == false)
    return 'Fill in a correct emailaddress';
  return '';
}
function fillTextNewUserEmail() {
  if (checkNewUserEmail() == '') {
    document.getElementById('userEmailError').innerHTML = ' <img src="/images/13x13progress.gif" /> Please Wait Car Dealer Check is Searching';
    searchNewUserEmail();
  } else {
    document.getElementById('userEmailError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkNewUserEmail();
  }
}
function searchNewUserEmail() {
  if (searchReq.readyState == 4 || searchReq.readyState == 0) {
    var str = escape(document.getElementById('email2').value);
    searchReq.open("GET", '/registerCheck.php?u=users&type=email&what=' + str, true);
    searchReq.onreadystatechange = handleNewUserEmail; 
    searchReq.send(null);
  }
}
function handleNewUserEmail() {
  if (searchReq.readyState == 4) {
    var str = searchReq.responseText;
    if (str.length > '2') {
      document.getElementById('userEmailError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> Email address is in use';
    } else {
      document.getElementById('userEmailError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Email address is valid';
    }
  }
}
















function checkDealerRequest() {
  var theError = '';
  
  theError = checkDealerUsername();
   
  if (checkDealerEmail() != '')
    theError += '\n'+checkDealerEmail();
  
  if (checkDealerPassword() != '')
    theError += '\n'+checkDealerPassword();

  if (checkDealerRepassword() != '')
    theError += '\n'+checkDealerRepassword();
    
  if (checkDealerPhone() != '')
    theError += '\n'+checkDealerPhone();
    
  if (theError != '') {
    alert(theError);
    return false;
  }
  return true;
}

function checkDealerRegistration() {
  var theError = '';
  
  theError = checkDealerUsername();
   
  if (checkDealerEmail() != '')
    theError += '\n'+checkDealerEmail();
  
  if (checkDealerPassword() != '')
    theError += '\n'+checkDealerPassword();

  if (checkDealerRepassword() != '')
    theError += '\n'+checkDealerRepassword();
    
  if (checkDealerFax() != '')
    theError += '\n'+checkDealerFax();
    
  if (checkDealerAddress() != '')
    theError += '\n'+checkDealerAddress();
    
  if (checkDealerCity() != '')
    theError += '\n'+checkDealerCity();
  
  if (checkDealerState() != '')
    theError += '\n'+checkDealerState();
    
  if (checkDealerZipcode() != '')
    theError += '\n'+checkDealerZipcode();
    
  if (checkDealerPhone() != '')
    theError += '\n'+checkDealerPhone();
    
  if (checkDealerTollfree() != '')
    theError += '\n'+checkDealerTollfree();
      
  if (theError != '') {
    alert(theError);
    return false;
  }
  return true;
}
function checkDealerState() {
  if (document.getElementById('state').value == '0')
    return 'Select a state';
  return '';
}
function fillTextDealerState() {
  document.getElementById('dealerStateError').innerHTML = (checkDealerState()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> State ok':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkDealerState());
}
function checkDealerUsername() {
  if (document.getElementById('Login').value.length < 2)
      return 'The user name must be 2 chars or more';
  return '';
}
function fillTextDealerUsername() {
  if (checkDealerUsername() == '') {
    document.getElementById('dealerUsernameError').innerHTML = ' <img src="/images/13x13progress.gif" /> Please Wait Car Dealer Check is Searching';
    searchDealerUsername();
  } else {
    document.getElementById('dealerUsernameError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkDealerUsername();
  }
}
function searchDealerUsername() {
  if (searchReq.readyState == 4 || searchReq.readyState == 0) {
    var str = escape(document.getElementById('Login').value);
    searchReq.open("GET", '/registerCheck.php?u=dealers&type=username&what=' + str, true);
    searchReq.onreadystatechange = handleDealerUsername; 
    searchReq.send(null);
  }
}
function handleDealerUsername() {
  if (searchReq.readyState == 4) {
    var str = searchReq.responseText;
    if (str.length > '2') {
      document.getElementById('dealerUsernameError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> Username is in use';
    } else {
      document.getElementById('dealerUsernameError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Username is available';
    }
  }
}

function checkDealerEmail() {
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  if (reg.test(document.getElementById('email').value) == false)
    return 'Fill in a correct emailaddress';
  return '';
}
function fillTextDealerEmail() {
  if (checkUserEmail() == '') {
    document.getElementById('dealerEmailError').innerHTML = ' <img src="/images/13x13progress.gif" /> Please Wait Car Dealer Check is Searching';
    searchDealerEmail();
  } else {
    document.getElementById('dealerEmailError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkDealerEmail();
  }
}
function searchDealerEmail() {
  if (searchReq.readyState == 4 || searchReq.readyState == 0) {
    var str = escape(document.getElementById('email').value);
    searchReq.open("GET", '/registerCheck.php?u=dealers&type=email&what=' + str, true);
    searchReq.onreadystatechange = handleDealerEmail; 
    searchReq.send(null);
  }
}
function handleDealerEmail() {
  if (searchReq.readyState == 4) {
    var str = searchReq.responseText;
    if (str.length > '2') {
      document.getElementById('dealerEmailError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> Email address is in use';
    } else {
      document.getElementById('dealerEmailError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Email address is valid';
    }
  }
}
function checkDealerPassword() {
  if (document.getElementById('password').value.length < 6)
    return 'Password must be 6 chars or more';
  return '';
}
function fillTextDealerPassword() { 
  document.getElementById('dealerPasswordError').innerHTML = (checkDealerPassword()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Valid password':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkDealerPassword());
}
function checkDealerRepassword() {
  if (document.getElementById('repassword').value != document.getElementById('password').value)
    return 'Passwords do not match';
  return '';
}
function fillTextDealerRepassword() { 
  document.getElementById('dealerRepasswordError').innerHTML = (checkDealerRepassword()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Passwords match':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkDealerRepassword());
}
function checkDealerFax() {
  if (document.getElementById('fax').value.length < 2)
    return 'User Contact Number is a required field';
  return '';
}
function fillTextDealerFax() { 
  document.getElementById('dealerFaxError').innerHTML = (checkDealerFax()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> User Contact Number ok':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkDealerFax());
}
function checkDealerAddress() {
  if (document.getElementById('address').value.length < 2)
    return 'Address is a required field';
  return '';
}
function fillTextDealerAddress() { 
  document.getElementById('dealerAddressError').innerHTML = (checkDealerAddress()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Address ok':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkDealerAddress());
}
function checkDealerCity() {
  if (document.getElementById('city').value.length < 2)
    return 'City is a required field';
  return '';
}
function fillTextDealerCity() { 
  document.getElementById('dealerCityError').innerHTML = (checkDealerCity()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> City ok':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkDealerCity());
}
function checkDealerZipcode() {
  if (document.getElementById('zipcode').value.length < 2)
    return 'Zipcode is a required field';
  return '';
}
function fillTextDealerZipcode() { 
  document.getElementById('dealerZipcodeError').innerHTML = (checkDealerZipcode()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Zipcode ok':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkDealerZipcode());
}
function checkDealerPhone() {
  if (document.getElementById('phone').value.length < 2)
    return 'Phone is a required field';
  return '';
}
function fillTextDealerPhone() { 
  document.getElementById('dealerPhoneError').innerHTML = (checkDealerPhone()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Phone ok':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkDealerPhone());
}
function checkDealerTollfree() {
  //if (document.getElementById('tollfree').value.length < 2)
  //  return 'Toll-free phone is a required field';
  //
  //NOT REQUIRED
  //
  return '';
}
function fillTextDealerTollfree() { 
  //document.getElementById('dealerTollfreeError').innerHTML = (checkDealerTollfree()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Toll-free phone ok':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkDealerTollfree());
}








function checkUserRegistration() {
  var theError = '';

  theError = checkUserUsername();
 
  if (checkUserEmail() != '')
    theError += '\n'+checkUserEmail();

  if (checkUserPassword() != '')
    theError += '\n'+checkUserPassword();

  if (checkUserRepassword() != '')
    theError += '\n'+checkUserRepassword();
  
  if (document.getElementById('agreed').checked == false)
    theError += '\nYou need to agree the Car Dealer Check rules';
    
  if (theError != '') {
    alert(theError);
    return false;
  }
  return true;
}

function checkUserUsername() {
  if (document.getElementById('Login').value.length < 2)
    return 'The user name must be 2 chars or more';
  return '';
}
function fillTextUserUsername() {
  if (checkUserUsername() == '') {
    document.getElementById('userUsernameError').innerHTML = ' <img src="/images/13x13progress.gif" /> Please Wait Car Dealer Check is Searching';
    searchUserUsername();
  } else {
    document.getElementById('userUsernameError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkUserUsername();
  }
}

function searchUserUsername() {
  if (searchReq.readyState == 4 || searchReq.readyState == 0) {
    var str = escape(document.getElementById('Login').value);
    searchReq.open("GET", '/registerCheck.php?u=users&type=username&what=' + str, true);
    searchReq.onreadystatechange = handleUserUsername; 
    searchReq.send(null);
  }
}
function handleUserUsername() {
  if (searchReq.readyState == 4) {
    var str = searchReq.responseText;
    if (str.length > '2') {
      document.getElementById('userUsernameError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> Username is in use';
    } else {
      document.getElementById('userUsernameError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Username is available';
    }
  }
}









function checkUserPassword() {
  if (document.getElementById('password').value.length < 6)
    return 'Password must be 6 chars or more';
  return '';
}
function fillTextUserPassword() {
  document.getElementById('userPasswordError').innerHTML = (checkUserPassword()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Valid password':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkUserPassword());
}
function checkUserRepassword() {
  if (document.getElementById('repassword').value != document.getElementById('password').value)
    return 'Passwords do not match';
  return '';
}
function fillTextUserRepassword() {
  document.getElementById('userRepasswordError').innerHTML = (checkUserRepassword()==''?' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Passwords match':' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkUserRepassword());
}
function checkUserEmail() {
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  if (reg.test(document.getElementById('email').value) == false)
    return 'Fill in a correct emailaddress';
  return '';
}
function fillTextUserEmail() {
  if (checkUserEmail() == '') {
    document.getElementById('userEmailError').innerHTML = ' <img src="/images/13x13progress.gif" /> Please Wait Car Dealer Check is Searching';
    searchUserEmail();
  } else {
    document.getElementById('userEmailError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> '+checkUserEmail();
  }
}
function searchUserEmail() {
  if (searchReq.readyState == 4 || searchReq.readyState == 0) {
    var str = escape(document.getElementById('email').value);
    searchReq.open("GET", '/registerCheck.php?u=users&type=email&what=' + str, true);
    searchReq.onreadystatechange = handleUserEmail; 
    searchReq.send(null);
  }
}
function handleUserEmail() {
  if (searchReq.readyState == 4) {
    var str = searchReq.responseText;
    if (str.length > '2') {
      document.getElementById('userEmailError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/bad.gif" /> Email address is in use';
    } else {
      document.getElementById('userEmailError').innerHTML = ' <img src="http://www.cardealercheck.com/forum/images/misc/good.gif" /> Email address is valid';
    }
  }
}



		function passwordStrength(passwd, username) {
		  var intScore   = 0;
		  var strLog     = "";
		  if (passwd == username)
		  {
		    intScore = 1;
		    return intScore;
		  }
		  if ((passwd.length > 0) && (passwd.length <= 4))
		  {
		    intScore = 2;
		    strLog   = strLog + "2 points for length (" + passwd.length + "); ";
		  }
		  else if ((passwd.length>=5) && (passwd.length<=7))
		  {
		    intScore = passwd.length / 0.6;
		    strLog   = strLog + intScore + " points for length (" + passwd.length + "); ";
		  }
		  else if ((passwd.length>=8) && (passwd.length<=10))
		  {
		    intScore = (passwd.length * 1.5) / 0.6;
		    strLog   = strLog + intScore + " points for length (" + passwd.length + "); ";
		  }
		  else if (passwd.length >= 11)                           
		  {
		    intScore = 25;
		    strLog   = strLog + intScore + " points for length (" + passwd.length + "); ";
		  } 
		  if (passwd.match(/[a-z]/))
		  {
		    intScore = (intScore + 2)
		    strLog   = strLog + "2 point for at least one lower case char; "
		  }
		  if (passwd.match(/[A-Z]/))
		  {
		    intScore = (intScore + 5)
		    strLog   = strLog + "5 point for at least one upper case char; "
		  }
		  if (passwd.match(/\d+/))
		  {
		    intScore = (intScore + 5)
		    strLog   = strLog + "5 points for at least one number; "
		  }
		
		  if (passwd.match(/(.*[0-9].*[0-9].*[0-9])/))
		  {
		    intScore = (intScore + 13)
		    strLog   = strLog + "13 points for at least three numbers; "
		  }
		  if (passwd.match(/.[!,@,#,$,%,^,&,*,?,_,~]/))
		  {
		    intScore = (intScore + 8)
		    strLog   = strLog + "8 points for at least one special char; "
		  }
		  if (passwd.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/))
		  {
		    intScore = (intScore + 11)
		    strLog   = strLog + "11 points for at least two special chars; "
		  }
		  if (passwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/))
		  {
		    intScore = (intScore + 8)
		    strLog   = strLog + "8 points for upper and lower combo; "
		  }
		  if (passwd.match(/(\d.*\D)|(\D.*\d)/))
		  {
		    intScore = (intScore + 10)
		    strLog   = strLog + "10 points for letter and number combo; "
		  }
		  if (passwd.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/))
		  {
		    intScore = (intScore + 13)
		    strLog   = strLog + "13 points for letter, number and special char combo; "
		  }
		  return intScore;
		}
		function showStrength(strength) {
		  var strengthText = "";
		  if (strength == 0) {
		    strengthText = "Password Strength";
		  } else if (strength < 20) {
		    strengthText = "Very weak";
		  } else if (strength < 30) {
		    strengthText = "Weak";
		  } else if (strength < 60) {
		    strengthText = "Moderate";
		  } else if (strength < 85) {
		    strengthText = "Strong";
		  } else {
		    strengthText = "Very strong";
		  }
		  updateBar(strength, 'barMask', 'barBG', 'barText', strengthText);
		}
		function updateBar(val, maskId, bgId, textId, newHTML) {
		  barWidth = parseInt(document.getElementById(bgId).style.width);
		  maskWidth = barWidth - (barWidth * (val/100));
		  document.getElementById(maskId).style.width = maskWidth + "px";
		  if (!newHTML) {
		    document.getElementById(textId).innerHTML = Math.floor((curLeft / parseInt(document.getElementById(bgId).offsetWidth))*100) + "%";
		  } else {
		    document.getElementById(textId).innerHTML = newHTML;
		  }
		}
		
		
		
		
		
		
function searchDealers() {
  if (searchReq.readyState == 4 || searchReq.readyState == 0) {
    DisableEnableForm(document.dealerregistration, true);
    document.getElementById('searchDealers').innerHTML = '<img src="/images/13x13progress.gif" /> Please Wait Car Dealer Check is Searching';
    var str = escape(document.getElementById('dealernameRegistration').value);
    searchReq.open("GET", '/searchDealers.php?search=' + str, true);
    searchReq.onreadystatechange = handleSearchDealers; 
    searchReq.send(null);
  }
}
function handleSearchDealers() {
  if (searchReq.readyState == 4) {
    var str = searchReq.responseText.split("\n");
    if (searchReq.responseText.length > 1) {
      DisableEnableForm(document.dealerregistration, true);
      document.getElementById('searchDealers').innerHTML = '';
      for(i=0; i < str.length - 1; i++) {
        document.getElementById('searchDealers').innerHTML += str[i]+'<br>';	
      }
      document.getElementById('searchDealers').innerHTML = '<br> <br><img src="http://www.cardealercheck.com/forum/images/buttons/report.gif"><b>Are you sure one of these is not your dealer? <br> If one of them is, please click Dealers name to continue.</b><br>' + document.getElementById('searchDealers').innerHTML;
      document.getElementById('searchDealers').innerHTML += '<br><a href="#login" onClick="enableTheForm();">Click here to continue if none of these dealers are who you are looking for.</a><br><br>'
    } else {
      enableTheForm();
      document.getElementById('searchDealers').innerHTML = '';
    }
  }
}
function enableTheForm() {
  DisableEnableForm(document.dealerregistration, false);
  document.getElementById('searchDealers').innerHTML = '';
}
function DisableEnableForm(xForm,xHow){
  objElems = xForm.elements;
  for(i=0;i<objElems.length;i++){
    objElems[i].disabled = xHow;
  }
}