function submission(event) {
    var success = validateFields();
    if (! success) {
        event.stop();
    }
}
function markError(objName){
    $(objName).setStyle('border-top-color: red');
    $(objName).setStyle('border-bottom-color: red');
    $(objName).setStyle('border-left-color: red');
    $(objName).setStyle('border-right-color: red');
}
function markError2(objName){

    $(objName).setStyle('color: #FF0000'); // 1px solid #ff0000');
}
function clearError(objName){

    $(objName).setStyle('color: black');
}

function validateFields() {
    var returnVal = true;
    var errorMessage = "";
    errors = false;

    //var regexEmail = "/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/";
    if (!$('email').getValue().match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/gi)) {
        errorMessage = "<br/>Email must be a valid.<br/>";
        markError('email');
        $('emailError').update(errorMessage);
        returnVal = false;
    }


    if (errorMessage.length > 0) {
        window.scrollTo(0,0);

    }
    return returnVal;
}

function checkEmail() {


    var email = $('email').getValue();
    if (! email.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/gi)) {
        $('memberEmailMessage').update("<br/>Please enter a valid email.")
    //$('memberEmailMessage').setStyle('color: red');
    } else {
        var url = '/diabetes/streams/checkEmail.html?email=' + email;
        new Ajax.Request(url,
        {
            method:'get',
            onSuccess: function(transport){
                var response = transport.responseText || "no response text";
                handleEmail(response);
            },
            onFailure: function(){
                alert("Unable to check email.");
            }
        });
    }
}

function handleEmail(response) {
    var email =  response.evalJSON();
    if (email.available == 'true') {
        $('memberEmailMessage').update('<br/>Available.');
        $('memberEmailMessage').setStyle('color: green');
    }
    else {
        $('memberEmailMessage').update('<br/>Not available.');
        $('memberEmailMessage').setStyle('color: red');
    }
}

function isSpecial(e) {


    if (e.target.checked == false) {
        $('specialMessage').update("");
    }

    else {
        $('specialMessage').update("<input type='checkbox' name='educator_newsletter' />Yes, I would like to receive the FREE dLife educator newsletter.'");
    }
}
function getSpecialPreference(name) {
    var url = '/diabetes/streams/newsletterPreference.html?offer_name='+name+'&email='+$('memberEmail').value;
    new Ajax.Request(url,
    {
        method:'get',
        onSuccess: function(transport){
            var response = transport.responseText || "no response text";
            handleResponse(response);
            displayEducator();


        },
        onFailure: function(){
            displayEducator();
            alert("Unable to get preference.");
        }
    });
}

function displayEducator() {
    if ($('educator').value == 'true') {
        $('specialBenefits').style.display = 'block';
    }
    else {
        $('specialBenefits').style.display = 'none';
    }

}

function checkEducatorBox(e) {
    // loop through child elements and see if checkbox is checked
    var array = $('specialMessage').getElementsByTagName('input');
    for (i=0;i<array.length;i++) {
        alert("element:"+array[i].checked);
        if (array[i].checked) {
            $('educator_newsletter').value="true";
            alert(array[i].getAttribute('id'));
        }
    }



}

function showSpecial() {
    if (specialChecked()) {
        $('specialBenefits').style.display = 'block';
    }
    else {
        $('specialBenefits').style.display = 'none';
    }
}

function isSpecial(e) {
    if (specialChecked()) {
        $('specialBenefits').style.display = 'block';
    }
    else {
        $('specialBenefits').style.display = 'none';
        $('preferenceSection').preferences.checked = false;
    }
}

function specialChecked() {
    if ($('MTdiabetesEducator').checked == true||$('MTdietarianNutritionist').checked == true||$('MThealthcareProfessional').checked == true) {
        return true;
    }
    else {
        return false;
    }
}


function showEducator() {
    $('specialBenefits').style.display = 'block';
}
function handleResponse(response) {
    var preference =  response.evalJSON();
    var checked = preference.checked;
    var educator = preference.educator;
    if (checked == 'true') {
        $('preferenceSection').update("<input type='checkbox' checked='true' id='pref' name='special_pref' value='"+preference.prefId+"' prefName='"+preference.prefName+"' />&nbsp;&nbsp;"+preference.dispText);
    }
    else {
        $('preferenceSection').update("<input type='checkbox' id='pref' name='special_pref' value='"+preference.prefId+"' prefName='"+preference.prefName+"' />&nbsp;&nbsp;"+preference.dispText);
    }

    // append hidden variable named educator
    $('educator_hidden').update("<input type='hidden' name='educator' id='educator' value='"+preference.educator+"' />");

    return false;
}

function addBasicMember(formName) {
    var email = $(formName+"_email").value;
    if (! email.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/gi)) {
        $(formName+'_memberEmailMessage').update("Please enter a valid email.")
        return false;

    }
    if (email != '') {
        var url = '/diabetes/streams/addBasic.html?email=' + email+'&prefName='+formName;
        new Ajax.Request(url,
        {
            method:'get',
            onSuccess: function(transport){
                var response = transport.responseText || "no response text";
                isValidEmail = hanldeResultBasicMember(response,formName);
                return isValidEmail;

            },
            onFailure: function(){
                isValidEmail = false;
                return isValidEmail;
                alert("Unable to check email.");
            }
        });
    }
    return false;


}

function hanldeResultBasicMember(response,formName) {
    var email =  response.evalJSON();
    $(formName+'_memberEmailMessage').update(email.message);
    return false;
}

function validatePhone(isPhoneRequired) {
    var returnVal = true;
    if (!isPhoneRequired) {
        return true;
    }
    if ($('area').value.length<3||isNaN($('area').value)) {
        markError($('area'));

        returnVal = false;

    }
    if ($('exchange').value.length<3||isNaN($('exchange').value)) {
        markError($('exchange'));
        returnVal = false;
    }
    if ($('phone').value.length<4||isNaN($('phone').value)) {
        markError($('phone'));
        returnVal = false;
    }
    return returnVal;
}

function validateZip() {
    var returnVal = true;
    if ($('zip')== null) {
        return true;
    }
    if (isNaN($('zip').value)) {
        markError($('zip'));
        returnVal = false;
    }
    return returnVal;
}

function validateAge() {
    var returnVal = true;
    var pmonth = $('month').value;
    var pday = $('day').value;
    var pyear = $('year').value;

    // Today info
    today = new Date();
    year = today.getFullYear() ;
    month = today.getMonth()+1;
    day = today.getDate();

    if ( pmonth < month ){
        age = year - pyear ;
    }
    else if ( pmonth > month ){
        age = year - pyear-1;
    }
    else if ( month == pmonth ){
        if ( pday < day ){
            age = year - pyear ;
        }
        else if ( pday > day ){
            age = year - pyear-1;
        }
        else if ( day == pday ){
            age = year - pyear;
        }
    }

    if(age < 17){

        returnValue = false;

    }
    else {
        returnValue = true;
    }
    return returnValue;


}

function formSubmit(event,isPhoneRequired) {
    var target = event.getAttribute('id');
    var successAge = validateAge();
    var successPhone = validatePhone(isPhoneRequired);
    var successZip = validateZip();
    if (successPhone && successZip && successAge ) {
        $(target).submit();
    }

    if (!successAge) {
        $('ageError').setStyle('color: red;font-size:12px;font-weight: bold;');
        $('ageError').update("<br/>You need to be 18 years or older to qualify.");
    }
    if (!successPhone) {
        $('phoneError').setStyle('color: red;font-size:12px;font-weight: bold;');
        $('phoneError').update("Phone number can only be numbers.");
    }

    if (!successZip) {
        $('zipError').setStyle('color: red;font-size:12px;font-weight: bold;');
        $('zipError').update("Zip code can only be numbers.");
    }

    /*
                    else {
                        $('zipError').setStyle('color: red;font-size:12px;font-weight: bold;');
                        $('zipError').update("Zip can only be numbers.");
                    }*/

    return false;
}

function processEvent(question,referrer_question) {
    /*
    var style = $('Q'+referrer_question).getStyle("display");
    if (style == 'block' && referrer_question !== null) {
        $('Q'+referrer_question).setStyle("display:none");

    }
    else if (referrer_question != null) {
        $('Q'+referrer_question).setStyle("display:block");
    }
    */
   return;
}


function submitFunction(i,form) {
    if (i==2) {
        // set skipped value to true
        $('skipped').value = 'true';

    }

    $(form).submit();



}
function submitOffer(i,formName) {
    var affiliate = $('affiliate').value;
    var email = $('email').value; 
    var programName = $('programName').value;
    var viewName = $('viewName').value;
    var programId = $('programId').value;
    var takeInsulin = $('QAtakeInsulinDiabetes').select('select')[0].value;
    var insulinName = $('QAtakeInsulinDiabetes').select('select')[0].name; 

    var bloodGlucoseMeter = $('QAmeter_name').select('select')[0].value;
    var bloodGlucoseName = $('QAmeter_name').select('select')[0].name;

    var testBloodGlucose = $('QAhowLong').select('select')[0].value;
    var testBloodGlucoseName = $('QAhowLong').select('select')[0].name;

    var insurance = $('QAinsuranceType').select('select')[0].value;
    var insuranceName = $('QAinsuranceType').select('select')[0].name;
    var optin = $('optin').checked;
    if (optin) {
      optin = 'ON'
    }
    else {
      optin = '';
    } 
    if (viewName != '') {

        var url = '/diabetes/offers/submit.html?affiliate='+affiliate+"&programName="+programName+"&viewName="+viewName+"&programId="+programId+"&"+insulinName+"="+takeInsulin+"&"+
        bloodGlucoseName+"="+bloodGlucoseMeter+"&"+testBloodGlucoseName+"="+testBloodGlucose+"&"+insuranceName+"="+insurance+"&challenge=true&email="+email+"&optin="+optin;
        if (i==2) {
            url += "&Skip.x=true";
        }
        new Ajax.Request(url,
        {
            method:'get',
            onSuccess: function(transport){
                var response = transport.responseText || "no response text";
                isValidEmail = hanldeResultOffer(response,formName);
                return isValidEmail;

            },
            onFailure: function(){
                isValidEmail = false;
                return isValidEmail;
                alert("Unable to check email.");
            }
        });
    }
    return false;


}

function hanldeResultOffer(response,formName) {
    var target = $(formName);
    var offer =  response.evalJSON();
    var checked = offer.outcome;
    var skipped = offer.skipped;
    if (skipped == 'true') {
        $j('#skip').overlay({
            "load":true
        });
        setTimeout('redirectPage()',5000);
    }
    else if (checked == 'true') {
        $j('#enroll').overlay({
            "load":true
        });
        setTimeout('redirectPage()',5000);
    }
    else {
        handleJSON(response);
    }

    
   

    return false;
}

function redirectPage() {
  window.location = "/diabetes/challenge/home";
}

function handleJSON(response) {
    clearMessageDiv();
    var obj = $j.parseJSON(response);
    $j.each (obj, function (bb) {
        if (bb.indexOf("Q") >= 0) {
            var message = $('M'+bb);
            if (message == null) {}
            else {
                // clear message
                $('M'+bb).replace("<div id="+messageId+' style=color:red></div>');
            }
            var messageId = "M"+bb;

            $(bb).insert("<div id="+messageId+' style=color:red>'+obj[bb]+"</div>");
        }
    });


}

function clearMessageDiv() {

    $$('div').each(function(bb) {
        var divId = bb.id;
      
        if (divId.indexOf("M") >= 0) {           
            $(divId).replace("<div id="+divId+' style=color:red></div>');
        }


    });

}



