
var http = getXMLHTTPRequest();

function getXMLHTTPRequest() {
  try {
    req = new XMLHttpRequest();
  } catch(err1) {
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (err2) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (err3) {
        alert("Your browser does not support AJAX!");
        req = false;
      }
    }
  }
  return req;
}
//////////////////////////////////////////////////////////////////////////////////////////////

function Step_0 ( flag ) {

    if ( document.getElementById('step_0_feedback') ) {
        document.getElementById('step_0_feedback').innerHTML = 'All values with an * are required.' ;
    }
    var errorString = '' ;
    var Divs = document.getElementsByTagName('div') ;
    var CheckId = new Array() ;
    var AttrList = '' ;
    var a = 0 ;
    var b = 1 ;
    var errorCount = 0 ;
    for ( i = 0 ; i < Divs.length ; i++ ) {
        if ( Divs[i].id.substr(0,2) == 'F_' ) {
            CheckId[a] = Divs[i].id.substr(2) ;
            a++ ;
            document.getElementById( Divs[i].id )
        } 
    }
    
    for ( i = 0 ; i < CheckId.length ; i++ ) {

         if ( document.getElementById(CheckId[i]) == undefined )  {

		 } else if ( document.getElementById(CheckId[i]).type == 'checkbox' ) {
             if ( document.getElementById(CheckId[i]).checked ) {
                 AttrList += '&F_'+ b + '_'+CheckId[i] +'=Yes' ;
                 b++ ;
             }
         } else if ( document.getElementById(CheckId[i]).value.length == 0 ) {

            if ( document.getElementById(CheckId[i]).options ) {
                if ( document.getElementById(CheckId[i]).selectedIndex == 0 ) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = 'Required' ;
                    errorCount++ ;
                } else {
                    document.getElementById('F_'+CheckId[i]).innerHTML = '' ;
                    var IDValue = document.getElementById(CheckId[i]).options[ document.getElementById(CheckId[i]).selectedIndex ].innerHTML ;

                    AttrList += '&F_'+ b + '_'+CheckId[i] +'='+ escape(IDValue ) ;
                    b++ ;
                }
            }
        } else {
            document.getElementById('F_'+CheckId[i]).innerHTML = '' ;
            AttrList += '&F_'+ b + '_'+CheckId[i] +'='+ escape(document.getElementById(CheckId[i]).value) ;
            b++ ;
        }

    }

    var myurl = '';
    if ( flag == 'button' ) {
        if ( errorCount == 0 ) {

                var attrs = 'Action=Step_1'+AttrList
                myurl = './Registration.cgi';
// alert(AttrList);
                http.open("POST", myurl, true);

                http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                http.setRequestHeader("Content-length", attrs.length);
                http.setRequestHeader("Connection", "close");

                http.onreadystatechange = useHttpResponse;
                http.send(attrs);

        } else {
            document.getElementById('step_0_feedback').innerHTML = 'Please correct any noted issues in your form.' ;
            alert ('Please correct the noted issues in your data.');
        }
    }
    if ( errorCount == 0 && myurl.length == 0 ) {
        if ( document.getElementById('step_0_feedback') ) {
            document.getElementById('step_0_feedback').innerHTML = 'This form can now be submitted.' ;
        }
    }
}
//////////////////////////////////////////////////////////////////////////////////////////////

function Step_1 ( flag ) {

    if ( document.getElementById('step_1_feedback') ) {
        document.getElementById('step_1_feedback').innerHTML = 'All values with an * are required.' ;
    }
    var errorString = '' ;
    var Divs = document.getElementsByTagName('div') ;
    var CheckId = new Array() ;
    var AttrList = '' ;
    var a = 0 ;
    var b = 1 ;
    var errorCount = 0 ;
    for ( i = 0 ; i < Divs.length ; i++ ) {
        if ( Divs[i].id.substr(0,2) == 'F_' ) {
            CheckId[a] = Divs[i].id.substr(2) ;
            a++ ;
            document.getElementById( Divs[i].id )
        } 
    }
    
    for ( i = 0 ; i < CheckId.length ; i++ ) {

         if ( document.getElementById(CheckId[i]) == undefined )  {

		 } else if ( document.getElementById(CheckId[i]).type == 'checkbox' ) {
             if ( document.getElementById(CheckId[i]).checked ) {
                 AttrList += '&F_'+ b + '_'+CheckId[i] +'=Yes' ;
                 b++ ;
             }
         } else if ( document.getElementById(CheckId[i]).value.length == 0 ) {

            if ( document.getElementById(CheckId[i]).options ) {
                if ( document.getElementById(CheckId[i]).selectedIndex == 0 ) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = 'Required' ;
                    errorCount++ ;
                } else {
                    document.getElementById('F_'+CheckId[i]).innerHTML = '' ;
                    var IDValue = document.getElementById(CheckId[i]).options[ document.getElementById(CheckId[i]).selectedIndex ].innerHTML ;

                    AttrList += '&F_'+ b + '_'+CheckId[i] +'='+ escape(IDValue ) ;
                    b++ ;
                }
            } else {
                if ( CheckId[i] == 'Address_1' ) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = '' ;
                } else if ( CheckId[i] == 'Address_2' ) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = '' ;
                } else if ( CheckId[i] == 'Country' ) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = '' ;
                } else if ( CheckId[i] == 'City' ) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = '' ;
                } else if ( CheckId[i] == 'Phone_Number' ) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = '' ;
                } else if ( CheckId[i] == 'Zip_Code' ) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = '' ;
                } else if ( CheckId[i] == 'State' ) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = '' ;
                } else {
                    document.getElementById('F_'+CheckId[i]).innerHTML = 'Required' ;
                    errorCount++ ;
                }
            }
        } else {
            document.getElementById('F_'+CheckId[i]).innerHTML = '' ;
            AttrList += '&F_'+ b + '_'+CheckId[i] +'='+ escape(document.getElementById(CheckId[i]).value) ;
            b++ ;
        }

        if ( CheckId[i] == 'Date_Purchased' ) {
            if ( document.getElementById('Date_Purchased').value == 'Future' )  {
					document.getElementById('F_Date_Purchased').innerHTML = 'Purchased date cannot be in the future!' ;
                    errorCount++ ;
            }
        }

        if ( CheckId[i] == 'Zip_Code' ) {
            if ( document.getElementById( CheckId[i] ).value.length > 0 )  {

                strng = document.getElementById( CheckId[i] ).value ;

                if ( strng.length < 5 ) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = "Please enter a proper code";
                    errorCount++ ;
                } 

            }   
            
        }
        if ( CheckId[i] == 'Email' ) {
            if ( document.getElementById( CheckId[i] ).value.length > 0 )  {

                strng =  document.getElementById( CheckId[i] ).value ;
                // var email_regex = new RegExp("^(([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}){0,1}$");
                 var email_regex = new RegExp("^(([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z_]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}){0,1}$");

                if (!(email_regex.test(strng))) { 
                    document.getElementById('F_'+CheckId[i]).innerHTML = "Email Format ______@____.___" ;
                    errorCount++ ;
                } else {
                    AttrList += '&Email='+ escape( strng ) ;
                }
            }   
        }
        if ( CheckId[i] == 'V_Email' ) {
            if ( document.getElementById( CheckId[i] ).value.length > 0 )  {
                if (!( document.getElementById( CheckId[i] ).value == document.getElementById( 'Email' ).value )) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = "Must match Email Address" ;
                    errorCount++ ;
                }
            }   
        }

        if ( CheckId[i] == 'Phone_Number' ) {
            if ( document.getElementById( CheckId[i] ).value.length > 0 )  {

                strng =  document.getElementById( CheckId[i] ).value ;

                var valid = "0123456789-";
                var stripped = strng.replace(/[\(\)\.\-\ ]/g, '');
                //strip out acceptable non-numeric characters
                if (isNaN(parseInt(stripped))) {
                    document.getElementById('F_'+CheckId[i]).innerHTML =  "The phone number contains illegal characters.";
                    errorCount++ ;
                }

                if (!(stripped.length == 10)) {
                    document.getElementById('F_'+CheckId[i]).innerHTML = 
                         "Phone Number format<br />(123) 456-7890<br />"+
        "  We do not sell, rent, or trade your personal information to third parties."+
        '  Please review our <a class="underline" target="new" href="/privacy-policy.html">privacy policy</a> for details.';
                    errorCount++ ;
                }
            }   
        }
    }

    var myurl = '';
    if ( flag == 'button' ) {
        if ( errorCount == 0 ) {

                var attrs = 'Action=FinalData'+AttrList
                myurl = './Registration.cgi';

                http.open("POST", myurl, true);

                http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                http.setRequestHeader("Content-length", attrs.length);
                http.setRequestHeader("Connection", "close");

                http.onreadystatechange = useHttpResponse;
                http.send(attrs);

        } else {
            document.getElementById('step_1_feedback').innerHTML = 'Please correct any noted issues in your form.' ;
            alert ('Please correct the noted issues in your data.');
        }
    }
    if ( errorCount == 0 && myurl.length == 0 ) {
        if ( document.getElementById('step_1_feedback') ) {
            document.getElementById('step_1_feedback').innerHTML = 'This form can now be submitted.' ;
        }
    }
}

function OptInJS( cbox ) {
    if ( cbox.id == 'Opt_In_All' ) {
        if ( cbox.checked ) {
            document.getElementById('Opt_In_OralHealth').checked = true ;
            document.getElementById('Opt_In_Showers').checked =  true ;
            document.getElementById('Opt_In_Sinus').checked =  true ;
        } else {
            document.getElementById('Opt_In_OralHealth').checked = false ;
            document.getElementById('Opt_In_Showers').checked =  false ;
            document.getElementById('Opt_In_Sinus').checked =  false ;
        }
    } else if ( cbox.id == 'Opt_In_Showers' ) {
        if ( cbox.checked ) {
            if ( document.getElementById('Opt_In_OralHealth').checked &&
				document.getElementById('Opt_In_Sinus').checked ) {
                document.getElementById('Opt_In_All').checked =  true ;
            }
        } else {
            document.getElementById('Opt_In_All').checked = false ;
        }
    } else if ( cbox.id == 'Opt_In_OralHealth' ) {
        if ( cbox.checked ) {
            if ( document.getElementById('Opt_In_Showers').checked  &&
				document.getElementById('Opt_In_Sinus').checked  ) {
                document.getElementById('Opt_In_All').checked =  true ;
            }
        } else {
            document.getElementById('Opt_In_All').checked = false ;
        }
    } else if ( cbox.id == 'Opt_In_Sinus' ) {
        if ( cbox.checked ) {
            if ( document.getElementById('Opt_In_Showers').checked && 
				 document.getElementById('Opt_In_OralHealth').checked ) {
                document.getElementById('Opt_In_All').checked =  true ;
            }
        } else {
            document.getElementById('Opt_In_All').checked = false ;
        }
    }
    // alert( cbox.id +' '+cbox.checked);
    Step_1();
}


function useHttpResponse() {
    document.getElementById('RegistrationFeedback').innerHTML = 'in useHttpResponse' ;
    if (http.readyState == 4) {
        if(http.status == 200) {
            if ( http.responseText == null ) {
                document.getElementById('RegistrationFeedback').innerHTML = 'server error'
            } else {
                document.getElementById('RegistrationFeedback').innerHTML = http.responseText ;
            }
        }
    } else {
        document.getElementById('RegistrationFeedback').innerHTML = '<img src="/images/wait20trans.gif">';
    }
}


function Reset_1 () {
    window.acInit0=false;
    window.acInit=false;
	var attr ;
	if ( document.getElementById('Product_Type').value == 'Oral Health' ) {
		attr = ';Product_Type=Oral+Health' ;
	} else if ( document.getElementById('Product_Type').value == 'Sinus Health' ) {
		attr = ';Product_Type=Sinus+Health' ;
	}
    var myurl = './Registration.cgi?Action=Step_0'+attr;

    myRand = parseInt(Math.random()*999999999999999);

    var modurl = myurl+";r="+myRand;

    http.open("GET", modurl, true);
    http.onreadystatechange = useHttpResponse;
    http.send(null);

}

function WBO_JS() {

    if ( document.getElementById('Why_Buy_Prompt').value == 'Other' ) {
        document.getElementById('Why_Buy').value = '' ; 
        document.getElementById('WBO').className = 'WBO_Show' ; 
    } else {
        document.getElementById('Why_Buy').value = document.getElementById('Why_Buy_Prompt').value ; 
        document.getElementById('WBO').className = 'WBO_Hide';
    };
}


function ValidateDay() {

	var A_Month = ["0","JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC","13"];
	var iMonth ;

//alert ( document.getElementById('Date_Purchased_Month').value +'.'+document.getElementById('Date_Purchased_Month').value.length+' - '+
//		document.getElementById('Date_Purchased_Day').value +'.'+document.getElementById('Date_Purchased_Day').value.length+' - '+
//		document.getElementById('Date_Purchased_Year').value + '.'+document.getElementById('Date_Purchased_Year').value.length );

	document.getElementById('Date_Purchased').value = '' ;

	if ( document.getElementById('Date_Purchased_Month').value.length > 0 &&  
		document.getElementById('Date_Purchased_Day').value.length > 0 &&
		document.getElementById('Date_Purchased_Year').value.length > 0 )	{

		var Month = ( document.getElementById('Date_Purchased_Month').value );
		var Day    = ( document.getElementById('Date_Purchased_Day').value );
		var Year   = ( document.getElementById('Date_Purchased_Year').value );

		if ( Day.substr(0,1) == "0" ) {
			Day = Day.substr(1,1) ;
		}
		Day = parseInt(Day)  ;
		for ( i = 1 ; i <= 12 ; i++ ) {
			if ( A_Month[i] == Month ) {
				iMonth = parseInt(i) ;
			}
		}

		var ValiDate = new Date( parseInt(Year), parseInt(iMonth) - parseInt(1), parseInt(Day) ) ;
		var TodayDate = new Date( ) ;
		Day = ValiDate.getDate();
		if ( parseInt(Day) < 10 ) {
			Day = "0" + Day;
		}
		var NewDate = A_Month[ValiDate.getMonth()+1]+"-"+Day+"-"+ValiDate.getFullYear() ;

		document.getElementById('Date_Purchased_Month').value = A_Month[ValiDate.getMonth()+1] ;
		document.getElementById('Date_Purchased_Day').selectedIndex  =  ValiDate.getDate() ;
		document.getElementById('Date_Purchased_Year').value  = ValiDate.getFullYear() ;

		if ( ValiDate.getTime() > TodayDate.getTime()  ) {
			document.getElementById('Date_Purchased').value = 'Future' ;
		} else {
			document.getElementById('Date_Purchased').value = NewDate ;
		}

	} else {
		// alert('need more data');
		document.getElementById('Date_Purchased').value = '' ;
	}

}
