/* 
 * Scripts related to mobile facing views go here.
 */
/** MYAR-905 functions needed for registration forms **/
function checkProfession(profession) {
    $('.spinner').hide();
    if (profession == null || profession == "") {
        // MYAR-1156 - reg. form usability update - show practice phone initially, when there is no profession
        $('#practice_details').hide();
        $('#school_fieldset').hide();
    } else if ((profession.indexOf('Student') > -1 || profession.indexOf('Faculty') > -1)) {
        $('#practice_fieldset').hide();
        $('#practice_details').hide();
        $('#school_fieldset').show();
        // MYAR-1156 - reg. form usability update
        // only show practice address fields: if phone# is entered, if not; hide all fields so phone# is the only field required
        if ($('#schoolName').val().length > 0) { $('#school_details').show(); } else { $('#school_details').hide(); }
        // MYAR-1156 - reg. form usability update - don't reset phone field
        //$('#practicePhone').val('');
        clearPracticeInfo();
        $('#student').val('true');
        $('label[for="email"]').html($('label[for="email"]').html().replace("Personal ",""));
        $('label[for="email"]').html($('label[for="email"]').html().replace("Email","Personal Email"));
        // facutly hide graduationDate; student show
        if (profession.indexOf('Faculty') > -1) { $('div.graduationDate').hide(); } else {$('div.graduationDate').show();}
    } else { // else practice info is needed
        $('#school_fieldset').hide();
        $('#school_details').hide();
        $('#practice_fieldset').show();
        // MYAR-1156 - reg. form usability update
        // only show practice address fields: if phone# is entered, if not; hide all fields so phone# is the only field required
        if ($('#practicePhone').val().length > 0) { $('#practice_details').show(); } else { $('#practice_details').hide(); }
        // MYAR-1156 - reg. form usability update - don't reset schoolName
        //$('#schoolName').val('');
        clearSchoolInfo();
        $('#student').val('false');
        $('label[for="email"]').html($('label[for="email"]').html().replace("Personal Email","Email"));
    }
}

function clearPracticeInfo() {
    //$('#practicePhone').val('');
    $('.ro').unbind('focus');
    // MYAR-1156 - reg. form usability update - don't reset for validation errors
    if (formHasErrors == true) { return; /* no clear */}
    $('#practiceName').val('').removeClass('ro').removeAttr('readonly');
    $('#practiceAddress\\.street1').val('').removeClass('ro').removeAttr('readonly');
    $('#practiceAddress\\.street2').val('').removeClass('ro').removeAttr('readonly');
    $('#practiceAddress\\.city').val('').removeClass('ro').removeAttr('readonly');
    $('#practiceAddress\\.region').val('').removeClass('ro').removeAttr('readonly');
    $('#practiceAddress\\.postalCode').val('').removeClass('ro').removeAttr('readonly');
}

function clearSchoolInfo() {
    //$('#schoolName').val('');
    $('.ro').unbind('focus');
    // MYAR-1156 - reg. form usability update - don't reset for validation errors
    if (formHasErrors == true) { return; /* no clear */}
    $('#schoolAddress\\.street1').val('').removeClass('ro').removeAttr('readonly');
    $('#schoolAddress\\.street2').val('').removeClass('ro').removeAttr('readonly');
    $('#schoolAddress\\.city').val('').removeClass('ro').removeAttr('readonly');
    $('#schoolAddress\\.region').val('').removeClass('ro').removeAttr('readonly');
    $('#schoolAddress\\.postalCode').val('').removeClass('ro').removeAttr('readonly');
}

function foundOrganization(data) {
    handleFoundOrganization(data, true, 0);
}
function foundSchool(data) {
    handleFoundOrganization(data, false, 0);
}
function handleFoundOrganization(data, isOrganization, level) {
    if (data != null) {
        //http://willcode4beer.com/tips.jsp?set=jsonInvalidLabel
        var obj = eval('(' + data + ')');
        if (obj != null && obj.organization != null) {
            if (isOrganization) {
                $('#practiceName').val(obj.organization.name).addClass('ro').attr('readonly', true);
                $('#practiceAddress\\.street1').val(obj.organization.street1).addClass('ro').attr('readonly', true);
                $('#practiceAddress\\.street2').val(obj.organization.street2).addClass('ro').attr('readonly', true);
                $('#practiceAddress\\.city').val(obj.organization.city).addClass('ro').attr('readonly', true);
                $('#practiceAddress\\.region').val(obj.organization.region).addClass('ro').attr('readonly', true);
                $('#practiceAddress\\.postalCode').val(obj.organization.postalCode).addClass('ro').attr('readonly', true);
                // if street1 is missing, enable all fields so address can be edited
                if ($('#practiceAddress\\.street1').val()==""){
                    $('#practice_details input, #practice_details select').each(function(){
                        $(this).removeClass('ro').removeAttr('readonly');
                    });
                }
                // set same values in student address fields
                if (level==0) handleFoundOrganization(data, false, 1);
            } else if (!isOrganization) {
                $('#schoolAddress\\.street1').val(obj.organization.street1)/*.addClass('ro').attr('readonly', true)*/;
                $('#schoolAddress\\.street2').val(obj.organization.street2)/*.addClass('ro').attr('readonly', true)*/;
                $('#schoolAddress\\.city').val(obj.organization.city)/*.addClass('ro').attr('readonly', true)*/;
                $('#schoolAddress\\.region').val(obj.organization.region)/*.addClass('ro').attr('readonly', true)*/;
                $('#schoolAddress\\.postalCode').val(obj.organization.postalCode)/*.addClass('ro').attr('readonly', true)*/;
                // if street1 is missing, enable all fields so address can be edited
                if ($('#schoolAddress\\.street1').val()==""){
                    $('#school_details input, #school_details select').each(function(){
                        $(this).removeClass('ro').removeAttr('readonly');
                    });
                }
                // set same values in student address fields
                if (level==0) handleFoundOrganization(data, true, 1);
            }
            //if the practice was found, the fields are marked READ-ONLY
            $('.ro').focus(function(){$(this).blur()});
        } else {
            if (isOrganization) {clearPracticeInfo();}
            if (!isOrganization) {clearSchoolInfo();}
        }
    } else {
    	if (isOrganization && !formHasErrors) {clearPracticeInfo();}
        if (!isOrganization && !formHasErrors) {clearSchoolInfo();}
        $('.ro').removeAttr('readonly');
    }
    if (isOrganization) {$('#practice_details').show();}
    if (!isOrganization) {$('#school_details').show();}
    $('.spinner').hide();
}

function checkPhone(phone) {
    if (phone == null) {
        phone = $('#practicePhone').val();
    } else {
        phone = $(phone.target).val();
    }
    var result = validatePhone(phone);
    if (result) {
        //find the organization with the given phone number
        $('.spinner', $('#practicePhone').parent()).show();
        $.get('/m/api/organization/find', { phone: phone }, foundOrganization);
    } else {
        $('#practice_details').hide();
    }
}

function checkSchoolName(name) {
    if (name == null) {
        name = $('#schoolName').val();
    } else {
        name = $(name.target).val();
    }
    if (name != null && name.trim() != '') {
        $('.spinner', $('#schoolName').parent()).show();
        $.get('/m/api/organization/find', { name: name }, foundSchool);
    } else {
        $('#school_details').hide();
    }
}
/** END functions needed for registration forms **/

$(document).ready(function() {
    $('form#register_form').submit(function(){
        if ($('#practice_details:visible').length != 0) {
            // copy practice info to student form
            $('#schoolAddress\\.street1').val($('#practiceAddress\\.street1').val());
            $('#schoolAddress\\.street2').val($('#practiceAddress\\.street2').val());
            $('#schoolAddress\\.city').val($('#practiceAddress\\.city').val());
            $('#schoolAddress\\.region').val($('#practiceAddress\\.region').val());
            $('#schoolAddress\\.postalCode').val($('#practiceAddress\\.postalCode').val());

        } else if ($('#school_details:visible').length != 0) {
            // copy school info to practice form
            $('#practiceAddress\\.street1').val($('#schoolAddress\\.street2').val());
            $('#practiceAddress\\.street2').val(obj.organization.street2).addClass('ro').attr('readonly', true);
            $('#practiceAddress\\.city').val($('#schoolAddress\\.city').val());
            $('#practiceAddress\\.region').val($('#schoolAddress\\.region').val());
            $('#practiceAddress\\.postalCode').val($('#schoolAddress\\.postalCode').val());
        }
    });

    $('a, div, ul').each(function() {
        $(this).html(handleReg($(this).html()));
    });

    /**
     *  Nifty trick to move the page down a little bit so the address bar looks like its hidden;
     *  and the web page looks like an app on the device
     */
    setTimeout(function() {
        window.scrollTo(0, 1)
    }, 100);

    //Exit Disclaimer
    $("a[href^=http]").click(function() {
        var href=$(this).attr("href");
        if (href != null && href.indexOf('kazaam') == -1 &&  href.indexOf('myarestin') == -1 && href.indexOf('arestin') == -1 && href.indexOf('rackspacecloud.com') == -1 && href.indexOf('mosso.com') == -1) {
            jQuery.blockUI({
                message: "<div class=\"exitPopup p_10\"><p class=\"exitSpan\"><b>" + href + "</b></p><p class=\"exitTxt mt_10\">You will be redirected to a Web site to which the OraPharma privacy policy does not apply. We encourage you to read the privacy policy of every Web site you visit.</p><p class=\"exitRight mt_10\"><a href=\"javascript:closePopup();\"><img src='/images/v3/exit_btn_cancel.png'></a> <a href=\"" + href + "\" target=\"_blank\" onclick=\"closePopup();\"><img src='/images/v3/exit_btn_continue.png'></a></p></div>",

                css: {
                    width:          '280px',
                    padding:        '0px',
                    margin:         0,
                    color:          '#333',
                    textAlign:      'left',
                    border:         '1px solid #999',
                    backgroundColor:'#F2F2F2',
                    cursor:         'wait',
                    left:			'12px',
                    top:            '25%'
                },

                // styles for the overlay
                overlayCSS:  {
                    backgroundColor:'#F2F2F2',
                    opacity:        '0.1',
                    width:			'280px'
                }
            });
            return false;
        }
        // return false; in IE6, all <a href=""/> are resolved to start with http[s]://; full url
        // make an exception for localserver
        return (href.indexOf(appUrl)>=0  || href.indexOf(secureAppUrl)>=0);
    });
});

function closePopup() {
    jQuery.unblockUI();
}

function handleReg(htmlText) {
    var rExp = htmlText.replace('®','<sup>&#174;</sup>');
    if(rExp.indexOf('®') >= 0) {
        rExp = handleReg(rExp);
    }
    return rExp;
}

