var zipcode_check = 0;

var get_ajax = true;

var add_selected = null;

function checkvalid() {

	

	

  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;  

  var emailaddress = document.satei.e_mail.value;



  var add1 = document.satei.add1.value;

  var add2 = document.satei.add2.value;

  var fullname = document.satei.fullname.value;

  //alert(add1.length);



  if(document.satei.maker.selectedIndex == 0) {

    alert("メーカーを選択してください");

    document.satei.maker.focus();

    return(false);

  }

  

  if (document.satei.car_name.selectedIndex == 0) {

    alert("車種を選択してください");

    document.satei.car_name.focus();

    return(false);

  }

  if (document.satei.nenshiki.selectedIndex == 0) {

    alert("年式を選択してください");

    document.satei.nenshiki.focus();

    return(false);

  }

  if (document.satei.soukou.selectedIndex == 0) {

    alert("走行距離を選択してください");

    document.satei.soukou.focus();

    return(false);

  }  

  if (document.satei.fullname.value == ""){

    alert("氏名を入力してください");

    document.satei.fullname.focus();

    return(false);

  }

  if (validateName(document.satei.fullname.value)==false) {

    alert("正しい氏名を入力してください");

    document.satei.fullname.focus();

    return(false);	  

  }  

  if (fullname.length < 2){

    alert("正しい氏名を入力してください");

    document.satei.fullname.focus();

    return(false);

  } else {



	var error_input = false;

	var count = 0;

	var old_str = "";



	for(var i=0; i<fullname.length; i++) {





		char = fullname.substring(i,(i+1));

		if (char == old_str && old_str !== ""){

			count++;

		}else{

			count = 0;

		}

		old_str = char;

		if (count >= 2) {

			error_input = true;

			break;

		}



	}

	if(error_input) {

	    alert("正しい氏名を入力してください");

	    document.satei.fullname.focus();

	    return(false);

	}

  }



  if (document.satei.zip1.value == "" || document.satei.zip2.value == ""){

    alert("郵便番号を入力して下さい");

    document.satei.zip1.focus();

    return(false);

  }   



  var zip1 = document.satei.zip1.value;

  var zip2 = document.satei.zip2.value;

  if (zip1.length != "3"){

    alert("正しい郵便番号を入力して下さい");

    document.satei.zip1.focus();

    return(false);

  }    

  if (zip2.length != "4"){

    alert("正しい郵便番号を入力して下さい");

    document.satei.zip2.focus();

    return(false);

  }    

  if (validateInteger(document.satei.zip1.value)==false) {

    alert("正しい郵便番号を入力してください");

    document.satei.zip1.focus();

    return(false);	  

  }

  if (validateInteger(document.satei.zip2.value)==false) {

    alert("正しい郵便番号を入力してください");

    document.satei.zip2.focus();

    return(false);	  

  }

  

  /*

  return false;

  if(get_ajax) {

  	

	checkZipcode(zip1 + zip2);

	return false;

  }

  

  get_ajax = true;

  if(zipcode_check != '1'){

    alert("正しい郵便番号を入力して下さい");

    document.satei.zip1.focus();

    return(false);

  }

  */
/*
  if(add_selected == null){

    alert("正しい郵便番号を入力して下さい");

    document.satei.zip1.focus();

    return(false);

  }

  */

  if (document.satei.add.selectedIndex == 0) {

    alert("住所を選択してください");

    document.satei.add.focus();

    return(false);

  } 

  if (add1.length < 2){

    alert("正しい住所をご入力下さい");

    document.satei.add1.focus();

    return(false);

  } else {



	var error_input = false;

	var count = 0;

	var old_str = "";



	for(var i=0; i<add1.length; i++) {





		char = add1.substring(i,(i+1));

		if (char == old_str && old_str !== ""){

			count++;

		}else{

			count = 0;

		}

		old_str = char;

		if (count >= 2) {

			error_input = true;

			break;

		}



	}

	if(error_input) {

	    alert("正しい住所をご入力下さい");

	    document.satei.add1.focus();

	    return(false);

	}

  }

  if (add2.length < 2){

    alert("正しい住所をご入力下さい");

    document.satei.add2.focus();

    return(false);

  } else {



	var error_input = false;

	var count = 0;

	var old_str = "";



	for(var i=0; i<add2.length; i++) {





		char = add2.substring(i,(i+1));

		if (char == old_str && old_str !== ""){

			count++;

		}else{

			count = 0;

		}

		old_str = char;

		if (count >= 2) {

			error_input = true;

			break;

		}



	}

	if(error_input) {

	    alert("正しい住所をご入力下さい");

	    document.satei.add2.focus();

	    return(false);

	}

  }

  if (document.satei.tel.value == ""){

    alert("電話番号を入力してください");

    document.satei.tel.focus();

    return(false);

  }   

  if (validatePhone(document.satei.tel.value)==false) {

    alert("正しい電話番号を入力してください");

    document.satei.tel.focus();

    return(false);	  

  }

  if (document.satei.e_mail.value == ""){

    alert("メールアドレスを入力してください");

    document.satei.e_mail.focus();

    return(false);

  } else { 

    if (reg.test(emailaddress) == false) {

      alert("正しいメールアドレスを入力してください");

      document.satei.e_mail.focus();

      return(false);	  

	}

  }

  

  return(true);

}





// calculate the ASCII code of the given character

function CalcKeyCode(aChar) {

  var character = aChar.substring(0,1);

  var code = aChar.charCodeAt(0);

  return code;

}





function checkNumber(val) {

  var strPass = val.value;

  var strLength = strPass.length;

  var lchar = val.value.charAt((strLength) - 1);

  var cCode = CalcKeyCode(lchar);



  /* Check if the keyed in character is a number

     do you want alphabetic UPPERCASE only ?

     or lower case only just check their respective

     codes and replace the 48 and 57 */



  if (cCode < 48 || cCode > 57 ) { 

    var myNumber = val.value.substring(0, (strLength) - 1);

    val.value = myNumber;

  }

  return false;

}



function checkTelephone(val) {

  var strPass = val.value;

  var strLength = strPass.length;

  var lchar = val.value.charAt((strLength) - 1);

  var cCode = CalcKeyCode(lchar);



  if ((cCode < 48 && cCode != 45) || cCode > 57 ) {  // 45: allow hyphen(-)

    var myNumber = val.value.substring(0, (strLength) - 1);

    val.value = myNumber;

  }

  return false;

}





function validateInteger( strValue ) {

  var objRegExp  = /(^-?\d\d*$)/;

  //check for integer characters

  return objRegExp.test(strValue);

}





function validatePhone(tel) { 



     rePhoneNumber = new RegExp(/^[0-9]+[0-9\-]*[0-9]+$/); // allow [0-9] and hyphen(-)



     if (!rePhoneNumber.test(tel)) {

          return false;

     }

	 if (tel.length < 8 || tel.length > 11) {

          return false;		 

	 }

	 

	 return true;

  

}



function validateName(name) { 



 //    reName = new RegExp(/(.)\1+/gi); // Duplicate 1 Chars from a String

     reName = new RegExp(/(.)\1{2,}/); // Duplicate 3 Chars from a String



     if (reName.test(name)) {

          return false;

     }

	 return true;

  

}



function gup( name ){

  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");

  var regexS = "[\\?&]"+name+"=([^&#]*)";

  var regex = new RegExp( regexS );

  var results = regex.exec( window.location.href );

  if( results == null )

    return "";

  else

    return results[1];

}



function checkZipcode(zip){

	

	

	var url = "check_zipcode.php?zipcode=" + zip + "&sid="+ Math.random();	

	

    xmlhttp=new XMLHttpRequest();

    xmlhttp.onreadystatechange= function() { 

        if (xmlhttp.readyState==4)

            if (xmlhttp.status==200){

			 	callzipcode(xmlhttp);

			}

    }



    xmlhttp.open("GET",url,true);

    xmlhttp.send(null);

}

function callzipcode(text){

   zipcode_check = text.responseText;

   get_ajax = false;

   checkvalid();

}






