﻿// Common javascript functions

function showhideControl(field_name, flag) {
    var obj = document.getElementById(field_name);

    if (obj) {
        if (flag == "show") {
            obj.style.display = "inline";
        }
        else {
            obj.style.display = "none";
        }
    }
}

function setCSSClassName(field_name, class_name) {
    var obj = document.getElementById(field_name);
    if (obj) {
        obj.setAttribute("class", class_name);
        obj.setAttribute("className", class_name);
    }
}


function setCSSandImage(CSSobj, CSS, imgObj, img) {
    var obj = document.getElementById(CSSobj);
    if (obj) {
        obj.setAttribute("class", CSS);
        obj.setAttribute("className", CSS);
    }
    var objImg = document.getElementById(imgObj);
    if (objImg) {
        objImg.src = img;
    }
}

function clearText(obj) {
    var defaultVal = "";
    if (obj.attributes["defaultValue"] != null) {
        defaultVal = obj.attributes["defaultValue"].value;
    } else {
        defaultVal = obj.defaultValue;
    }

    if (defaultVal == obj.value)
        obj.value = '';
    else if (obj.value == '')
        obj.value = defaultVal;

    return true;
}

function showblockControl(field_name, flag) {
    var obj = document.getElementById(field_name);

    if (obj) {
        if (flag == "block") {
            obj.style.display = "block";
        }
        else {
            obj.style.display = "none";
        }
    }
}

// from http://www.dynamic-tools.net/toolbox/isMouseLeaveOrEnter/
// this function determines whether the event is the equivalent of the microsoft 
// mouseleave or mouseenter events.
function isMouseLeaveOrEnter(e, handler) {
    if (e.type != 'mouseout' && e.type != 'mouseover') return false;
    var reltg = e.relatedTarget ? e.relatedTarget :
	e.type == 'mouseout' ? e.toElement : e.fromElement;
    while (reltg && reltg != handler) reltg = reltg.parentNode;
    return (reltg != handler);
}
function openWindow(field_name) {
    var obj = document.getElementById(field_name);
    if (obj) {

        //window.open('/wip.html?txt=' + obj.value);     
        window.location = '/wip.html?txt=' + obj.value;
    }
    return false;
}

function openWindow_TwoValues(field_name1, field_name2) {
    var obj1 = document.getElementById(field_name1);
    var obj2 = document.getElementById(field_name2);
    if (obj1 && obj2) {
        //window.open('/wip.html?txt=' + obj1.value + '&value=' + obj2.value);
        window.location = '/wip.html?txt=' + obj1.value + '&value=' + obj2.value;
    }
}


function ChooseSchool(field_name1, field_name2) {

    var txtPrep = document.getElementById(field_name1);
    var txtZip = document.getElementById(field_name2);

    //    var prepValue;
    //    if (txtPrep.value == "SAT")
    //    { prepValue = "TAA" }
    //    if (txtPrep.value == "PSAT")
    //    { prepValue = "TAD" }
    //    if (txtPrep.value == "AP")
    //    { prepValue = "TAL" }
    //    if (txtPrep.value == "ACT")
    //    { prepValue = "TBA" }
    //    if (txtPrep.value == "SSAT")
    //    { prepValue = "TAF" }
    //    if (txtPrep.value == "ISEE")
    //    { prepValue = "TAG" }
    //    if (txtPrep.value == "SHSAT")
    //    { prepValue = "TAI" }
    //    if (txtPrep.value == "SSAT")
    //    { prepValue = "TAF" }
    //    if (txtPrep.value == "ISEE")
    //    { prepValue = "TAG" }
    //    if (txtPrep.value == "TOEFL")
    //    { prepValue = "TIA" }
    //    if (txtPrep.value == "GMAT")
    //    { prepValue = "TDA" }
    //    if (txtPrep.value == "LSAT")
    //    { prepValue = "TFA" }
    //    if (txtPrep.value == "GRE")
    //    { prepValue = "TCA" }
    //    if (txtPrep.value == "DAT")
    //    { prepValue = "TGA" }
    //    if (txtPrep.value == "OAT")
    //    { prepValue = "TGB" }
    //    if (txtPrep.value == "MCAT")
    //    { prepValue = "TEA" }
    //    if (txtPrep.value == "USMLE")
    //    { prepValue = "THA" }


    if (txtPrep && txtZip) {

        if (txtPrep.value != "Choose your prep course") {
            txtZip.value = txtZip.value.replace(/[^a-zA-Z 0-9]+/g, '');

            if (txtZip.value != "Enter Zip Code" && txtZip.value != '') {
                window.location = '/ChooseProducts.aspx?testtype=' + document.getElementById('hdnTestCode').value + '&zipcode=' + txtZip.value;
            }
            else {
                alert("Please enter a ZIP/Postal Code");
                //window.location = '/ChooseProducts.aspx?testtype=' + document.getElementById('hdnTestCode').value;

            }
        }


    }
    else if (txtPrep) {
        window.location = '/ChooseProducts.aspx?testtype=' + document.getElementById('hdnTestCode').value;
    }

}

function textBoxvalue(id) {

    var txtBox = document.getElementById("PrepCourse");
    //var TestCode = document.getElementById('<%=hdnTestCode.ClientID%>');
    var arrIdCode = id.split('_');
    txtBox.value = arrIdCode[0];
    document.getElementById('hdnTestCode').value = arrIdCode[1];
    showblockControl('TPR_ddown_course', 'none');

}


function loadQueryStrings() {
    var str = location.search.substring(1);
    var pairs = str.split("&");
    for (var i = 0; i < pairs.length; i++) {
        var pos = pairs[i].indexOf('=');
        if (pos == -1) continue;
        //        var argname = pairs[i].substring(0, pos);
        //        var value = pairs[i].substring(pos + 1);
        var obj = document.getElementById("heading");
        obj.innerHTML = obj.innerHTML + pairs[i] + '<br>';

    }
}

function KeyDownHandler(evnt, btn) {
    // process only the Enter key
    var key = (document.all) ? evnt.keyCode : evnt.which;
    if (key == 13) {
        // cancel the default submit
        evnt.returnValue = false;
        evnt.cancel = true;
        var obj = document.getElementById(btn);
        // submit the form by programmatically clicking the specified button

        if (obj) {
            if (obj.nodeName == "A")
                obj.onclick.apply(obj);
            else if (obj.nodeName == "INPUT" &&
            (obj.type == "text" || obj.type == "password")) {
                obj.focus();
            }
            else
                obj.click();
        }
    }
}

function RedirectToURL(URL) {
    var redirectURL = URL;
    var URLLength = redirectURL.length;
    if (URLLength > 0) {
        window.location = redirectURL;
    }
    return false;
}

function RenderProgressBar(Date1, Date2) {

    var dt1 = document.getElementById('ctl00_body_ActionPlanProgressBarControl1_hdnDate1').value;
    var dt2 = document.getElementById('ctl00_body_ActionPlanProgressBarControl1_hdnDate2').value;
    var today = new Date();
    var date_registered = new Date(dt1);
    var date_entrance = new Date(dt2);

    //Set 1 day in milliseconds
    var one_day = 1000 * 60 * 60 * 24;

    //Set 1 month 
    var one_month = one_day * 30.4166;

    //Calculate difference btw the two dates, and convert to months

    var total = (Math.ceil((date_entrance.getTime() - date_registered.getTime()) / (one_month)));
    var passed = (Math.ceil((today.getTime() - date_registered.getTime()) / (one_month)));
    var remaining = (Math.ceil((date_entrance.getTime() - today.getTime()) / (one_month)));

    var perMonth = 400 / total;
    var barwidth = perMonth * passed;
    barwidth = Math.ceil(barwidth);

    if (barwidth > 0 && barwidth <= 400) {
        barwidth = barwidth + 'px';
        document.getElementById("bar_prog").style.width = barwidth;
    }
    else if (barwidth > 400) {
        document.getElementById("bar_prog").style.width = '400px';
    }
    if (document.getElementById("dateStatusDiv").style.position > '380px')
    { document.getElementById("dateStatusDiv").style.left = '-130px' }
}

// not animated collapse/expand

function togglePannelStatus(content) {

    var expand = (content.style.display == "none");
    content.style.display = (expand ? "block" : "none");
    toggleChevronIcon(content);
}

// current animated collapsible panel content
var currentContent = null;

function togglePannelAnimatedStatus(content, interval, step) {
    // wait for another animated expand/collapse action to end
    if (currentContent == null) {
        currentContent = content;
        var expand = (content.style.display == "none");
        if (expand)
            content.style.display = "block";
        var max_height = content.offsetHeight;

        var step_height = step + (expand ? 0 : -max_height);
        toggleChevronIcon(content);

        // schedule first animated collapse/expand event
        content.style.height = Math.abs(step_height) + "px";
        setTimeout("togglePannelAnimatingStatus(" + interval + "," + step + "," + max_height + "," + step_height + ")", interval);
    }
}
function togglePannelAnimatingStatus(interval, step, max_height, step_height) {
    var step_height_abs = Math.abs(step_height);

    // schedule next animated collapse/expand event
    if (step_height_abs >= step && step_height_abs <= (max_height - step)) {
        step_height += step;
        currentContent.style.height = Math.abs(step_height) + "px";
        setTimeout("togglePannelAnimatingStatus(" + interval + "," + step + "," + max_height + "," + step_height + ")", interval);
    }
    // animated expand/collapse done
    else {
        if (step_height_abs < step)
            currentContent.style.display = "none";
        currentContent.style.height = "";
        currentContent = null;
    }
}

function toggleChevronIcon(content) {

    var chevron = content.parentNode.firstChild.childNodes[1].childNodes[0];
    var expand = (chevron.src.indexOf("ico_expand_black.gif") > 0);
    chevron.src = chevron.src.split(expand ? "ico_expand_black.gif" : "ico_collapse_black.gif").join(expand ? "ico_collapse_black.gif" : "ico_expand_black.gif");
}

function toggleImages(objField, image1, image2) {
    var imgsrc = document.getElementById(objField).src;
    var index = imgsrc.indexOf("images");
    var str = imgsrc.substring(index, imgsrc.length);
    //alert(str);
    imgsrc = imgsrc.replace('http://localhost/PrincetonReview/', '');
    if (imgsrc == image2) {
        document.getElementById(objField).src = image1;
    }
    else {
        document.getElementById(objField).src = image2;
    }
}

function PrintTaskList() {
    var hdnUserLevel = document.getElementById("ctl00_body_ActionPlanTaskListControl1_UserLevelHiddenField");
    var hdnSchoolType = document.getElementById("ctl00_body_ActionPlanTaskListControl1_SchoolTypeHiddenField");
    if (hdnUserLevel && hdnSchoolType) {
        var ul = hdnUserLevel.value;
        var sch = hdnSchoolType.value;
        var popupurl = '/PrintTaskList.aspx?mode=print&level=' + ul + '&sch=' + sch;
        window.open(popupurl, "PrintTaskList", "toolbar=no,menubar=no,width=500,height=600,location=no,directories=no,scrollbars=yes,left=0,top=0,resizable=no");
    }
    return false;
}

function SetHiddenFieldValues(userlevel, schooltype) {

    var hdnUserLevel = document.getElementById("ctl00_body_ActionPlanTaskListControl1_UserLevelHiddenField");
    var hdnSchoolType = document.getElementById("ctl00_body_ActionPlanTaskListControl1_SchoolTypeHiddenField");

    if (hdnUserLevel && hdnSchoolType) {
        hdnUserLevel.value = userlevel;
        hdnSchoolType.value = schooltype;
    }
}

//Student Portal

function ShowTestScores() {

    //var DrillScoreHeading = document.getElementById("ctl00_body_StudentPortalTestScores1_DrillScoresHeading");
    //var TestScoreHeading = document.getElementById("ctl00_body_StudentPortalTestScores1_TestScoresHeading");
    var DrillScoreHeading = document.getElementById("ctl00_body_StudentPortalTestScores1_DrillScoresDiv");
    var TestScoreHeading = document.getElementById("ctl00_body_StudentPortalTestScores1_TestScoresDiv");
    var DrillScoreDiv = document.getElementById("ctl00_body_StudentPortalTestScores1_DrillScoresDiv");
    var TestScoreDiv = document.getElementById("ctl00_body_StudentPortalTestScores1_TestScoresDiv");

    if (DrillScoreHeading && TestScoreHeading && DrillScoreDiv && TestScoreDiv) {

        DrillScoreHeading.style.display = 'none';
        DrillScoreDiv.style.display = 'none';
        TestScoreHeading.style.display = 'inline';
        TestScoreDiv.style.display = 'inline';
    }
    setCSSClassName('testdiv', 'TPR_SP_tab_blue');
    setCSSClassName('drilldiv', 'TPR_SP_tab');
    setCSSClassName('tabext', 'TPR_SP_tab_ext_blue')
    return false;
};

function ShowDrillScores() {

    //var DrillScoreHeading = document.getElementById("ctl00_body_StudentPortalTestScores1_DrillScoresHeading");
    //var TestScoreHeading = document.getElementById("ctl00_body_StudentPortalTestScores1_TestScoresHeading");
    var DrillScoreHeading = document.getElementById("ctl00_body_StudentPortalTestScores1_DrillScoresDiv");
    var TestScoreHeading = document.getElementById("ctl00_body_StudentPortalTestScores1_TestScoresDiv");
    var DrillScoreDiv = document.getElementById("ctl00_body_StudentPortalTestScores1_DrillScoresDiv");
    var TestScoreDiv = document.getElementById("ctl00_body_StudentPortalTestScores1_TestScoresDiv");

    if (DrillScoreHeading && TestScoreHeading && DrillScoreDiv && TestScoreDiv) {

        DrillScoreHeading.style.display = 'inline';
        DrillScoreDiv.style.display = 'inline';
        TestScoreHeading.style.display = 'none';
        TestScoreDiv.style.display = 'none';
    }
    setCSSClassName('testdiv', 'TPR_SP_tab');
    setCSSClassName('drilldiv', 'TPR_SP_tab_green');
    setCSSClassName('tabext', 'TPR_SP_tab_ext_green')
    return false;
};

function ShowCurrentTestPrepEnrollments() {

    var CurrentTestPrepDiv = document.getElementById("ctl00_body_StudentPortalCourses1_CurrentTestPrepDiv");
    var UpcomingTestPrepDiv = document.getElementById("ctl00_body_StudentPortalCourses1_UpcomingTestPrepDiv");
    var CompletedTestPrepDiv = document.getElementById("ctl00_body_StudentPortalCourses1_CompletedTestPrepDiv");

    if (CurrentTestPrepDiv && UpcomingTestPrepDiv && CompletedTestPrepDiv) {

        CurrentTestPrepDiv.style.display = 'inline';
        UpcomingTestPrepDiv.style.display = 'none';
        CompletedTestPrepDiv.style.display = 'none';
    }
    setCSSClassName('currentdiv', 'TPR_SP_tab_pink');
    setCSSClassName('upcomingdiv', 'TPR_SP_tab');
    setCSSClassName('completeddiv', 'TPR_SP_tab');
    setCSSClassName('tabext', 'TPR_SP_tab_ext_pink');
    return false;
};

function ShowUpcomingTestPrepEnrollments() {

    var CurrentTestPrepDiv = document.getElementById("ctl00_body_StudentPortalCourses1_CurrentTestPrepDiv");
    var UpcomingTestPrepDiv = document.getElementById("ctl00_body_StudentPortalCourses1_UpcomingTestPrepDiv");
    var CompletedTestPrepDiv = document.getElementById("ctl00_body_StudentPortalCourses1_CompletedTestPrepDiv");

    if (CurrentTestPrepDiv && UpcomingTestPrepDiv && CompletedTestPrepDiv) {

        CurrentTestPrepDiv.style.display = 'none';
        UpcomingTestPrepDiv.style.display = 'inline';
        CompletedTestPrepDiv.style.display = 'none';
    }
    setCSSClassName('currentdiv', 'TPR_SP_tab');
    setCSSClassName('upcomingdiv', 'TPR_SP_tab_orange');
    setCSSClassName('completeddiv', 'TPR_SP_tab');
    setCSSClassName('tabext', 'TPR_SP_tab_ext_orange');
    return false;
};

function ShowCompletedTestPrepEnrollments() {

    var CurrentTestPrepDiv = document.getElementById("ctl00_body_StudentPortalCourses1_CurrentTestPrepDiv");
    var UpcomingTestPrepDiv = document.getElementById("ctl00_body_StudentPortalCourses1_UpcomingTestPrepDiv");
    var CompletedTestPrepDiv = document.getElementById("ctl00_body_StudentPortalCourses1_CompletedTestPrepDiv");

    if (CurrentTestPrepDiv && UpcomingTestPrepDiv && CompletedTestPrepDiv) {

        CurrentTestPrepDiv.style.display = 'none';
        UpcomingTestPrepDiv.style.display = 'none';
        CompletedTestPrepDiv.style.display = 'inline';
    }
    setCSSClassName('currentdiv', 'TPR_SP_tab');
    setCSSClassName('upcomingdiv', 'TPR_SP_tab');
    setCSSClassName('completeddiv', 'TPR_SP_tab_yellow');
    setCSSClassName('tabext', 'TPR_SP_tab_ext_yellow');

    return false;
};

function really_over(src) {
    if (!window.event) return true;
    var event = window.event;
    var from = event.fromElement;
    var to = event.toElement;
    return (to == src || src.contains(to)) && !src.contains(from) && src != from;
}

function really_out(src) {
    if (!window.event) return true;
    var event = window.event;
    var from = event.fromElement;
    var to = event.toElement;
    return (src == from || src.contains(from)) && !src.contains(to) && src != to;
}

function CollapseExpand(object, obj) {
    var img = document.getElementById(obj);
    var imgSrc = img.src;
    var div = document.getElementById(object);
    if (div.style.display == "none") {
        div.style.display = "inline";
        img.src = "/images/ico_collapse_black.gif";
    }
    else {
        div.style.display = "none";
        img.src = "/images/ico_expand_black.gif";
    }
}

function LettersNumbersOnly(obj) {
    var agt = navigator.userAgent.toLowerCase();
    var is_ie = (agt.indexOf("msie") != -1);

    if (!is_ie) {
        var temp = obj.value.replace(/[^0-9 A-Za-z]/g, "");
        obj.value = temp;
        return true;
    }
    else {
        if (window.event.keyCode != 9 && window.event.keyCode != 16) {
            var temp = obj.value.replace(/[^0-9 A-Za-z]/g, "");
            obj.value = temp;
            return true;
        }
    }
}

/*
CSS Browser Selector v0.4.0 (Nov 02, 2010)
Rafael Lima (http://rafael.adm.br)
http://rafael.adm.br/css_browser_selector/
License: http://creativecommons.org/licenses/by/2.5/
Contributors: http://rafael.adm.br/css_browser_selector#contributors
*/
function css_browser_selector(u) { var ua = u.toLowerCase(), is = function(t) { return ua.indexOf(t) > -1 }, g = 'gecko', w = 'webkit', s = 'safari', o = 'opera', m = 'mobile', h = document.documentElement, b = [(!(/opera|webtv/i.test(ua)) && /msie\s(\d)/.test(ua)) ? ('ie ie' + RegExp.$1) : is('firefox/2') ? g + ' ff2' : is('firefox/3.5') ? g + ' ff3 ff3_5' : is('firefox/3.6') ? g + ' ff3 ff3_6' : is('firefox/3') ? g + ' ff3' : is('gecko/') ? g : is('opera') ? o + (/version\/(\d+)/.test(ua) ? ' ' + o + RegExp.$1 : (/opera(\s|\/)(\d+)/.test(ua) ? ' ' + o + RegExp.$2 : '')) : is('konqueror') ? 'konqueror' : is('blackberry') ? m + ' blackberry' : is('android') ? m + ' android' : is('chrome') ? w + ' chrome' : is('iron') ? w + ' iron' : is('applewebkit/') ? w + ' ' + s + (/version\/(\d+)/.test(ua) ? ' ' + s + RegExp.$1 : '') : is('mozilla/') ? g : '', is('j2me') ? m + ' j2me' : is('iphone') ? m + ' iphone' : is('ipod') ? m + ' ipod' : is('ipad') ? m + ' ipad' : is('mac') ? 'mac' : is('darwin') ? 'mac' : is('webtv') ? 'webtv' : is('win') ? 'win' + (is('windows nt 6.0') ? ' vista' : '') : is('freebsd') ? 'freebsd' : (is('x11') || is('linux')) ? 'linux' : '', 'js']; c = b.join(' '); h.className += ' ' + c; return c; }; css_browser_selector(navigator.userAgent);
