﻿// $Id: functAJAX.js 2833 2008-06-27 05:53:24Z devav $
var OpenYourStuff = 1;
var OpenSchools = 2;
var OpenMajors = 4;
var OpenCareers = 8;
var OpenCalendar = 16;
var OpenCommunity = 32;
var OpenSchoolsSuggested = 64;
var OpenSchoolsViewed = 128;


function isAlphaNumeric(aString) 
{
	var s = aString.toUpperCase();
	var ch;
	for (var i = 0; i < s.length; i++) 
	{
		ch = s.charAt(i);
		if (!((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') || (ch == ' '))) 
		{
			return false;
		}
	}
	return true;		
}


function OpenSizedWin(url, name, returnwin)
{    
	var win;
	//win = window.open(url,name,'toolbar=no,location=no,maximize=no,minimize=yes,directories=no,status=yes,menubar=no,resizable=yes,copyhistory=no,fullscreen=yes,scrollbars=yes,width='+ screen.width   + ',height=' + screen.height  + ',left=0,top=0');
	
	if (screen.height > 100)
	{
	    win = window.open(url,name,'toolbar=no,location=no,maximize=yes,minimize=yes,directories=no,status=yes,menubar=no,copyhistory=no,scrollbars=yes,width='+ screen.width   + ',height=' + (screen.height-100)  + ',left=0,top=0');
	}
	else
	{
	    win = window.open(url,name,'toolbar=no,location=no,maximize=yes,minimize=yes,directories=no,status=yes,menubar=no,copyhistory=no,scrollbars=yes,width='+ screen.width   + ',height=' + screen.height + ',left=0,top=0');
	}


	if (returnwin == true)    
		return win;

	win.focus();
}

function zipValid(aZip) 
{
	if (aZip == "Zip/Postal Code") {
		alert("Please enter full zip code (should be at least 5 characters long)");
		return false;
	}
	
	if (aZip.length < 5) {
		alert("Please enter full zip code (should be at least 5 characters long)");
		return false;
	}
	if (aZip.length > 7) {
		alert("Zip/Postal code can not be greater than 7 characters long");
		return false;
	}
	if (!isAlphaNumeric(aZip)) {
		alert("Please enter full zip code (should contain only alpha-numeric characters)");
		return false;
	}
	needsValidation = false;
	return true;			
}

function optionValid(aOption)
{
	if (aOption == "")
	{
		alert("Please select a test type");
		return false;
	}
	return true;
}

function validateBasic(itemCode, zipcode) 
{
	if (!optionValid(itemCode)) return false;
	if (!zipValid(zipcode)) return false;
	return true;
}

function clearDefault()
{
	if (document.aspnetForm.Zip.value == "Zip/Postal Code")
	 document.aspnetForm.Zip.value = "";
}

function sendCourseFind(testprepServer)
{
    itemCode = document.aspnetForm.itemCode.value;
    zipcode = document.aspnetForm.Zip.value;
    courseF = testprepServer + "/coursefinder/Search.asp?productType=C"+
        "&rid=1&Zip="+zipcode+"&itemCode="+itemCode;
    if(validateBasic(itemCode, zipcode))
        window.location=courseF;
}

function loader(target)
{
    document.getElementById(target).innerHTML = "<img src=\"/images/ajax-loader.gif\" alt=\"\">";
}

function unloader(target)
{
    document.getElementById(target).innerHTML = "";
}
    
function ShowMyStuff_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    target="mystuff_cont";
    document.getElementById(target).innerHTML = response;
}

function SendFormNAG (questionsPlusTypes, nextPage, survey, wantedQuestions){
    // questionsPlusTypes is a string formatted as "questionID1|typeQ1|questionID2|typeQ2|..."
    
    var answerVar = GetAnswersForNag(questionsPlusTypes);
    var multiAnswer = answerVar[0];
    //alert(multiAnswer);
    
    if (multiAnswer != "" && answerVar[1])
        AjaxService.GetQuestionForm(multiAnswer, nextPage, survey, wantedQuestions, SendFormAnswer_CallBack, OnAjaxTimeOut, OnAjaxError);
}

function GetAnswersForNagRegWall(questionsPlusTypes, target, surveyTarget, survey)
{
    var hiddenTarget = eval("document.getElementById('"+target+"')");
    var answerVar = GetAnswersForNag(questionsPlusTypes);
    hiddenTarget.value = answerVar[0];

    var hiddenSurveyTarget = eval("document.getElementById('"+surveyTarget+"')");
    hiddenSurveyTarget.value = survey;
    
    return answerVar[1];
}

function GetAnswersForNagRegWall2(questionsPlusTypes, target, prefixTarget, prefix)
{
	//alert("In AnswersForNagRegWall2");
    var hiddenTarget = document.getElementById(target);
	//alert(hiddenTarget);
    var answerVar = GetAnswersForNag(questionsPlusTypes);
	//alert(answerVar);
    hiddenTarget.value = answerVar[0];

    var hiddenPrefixTarget = document.getElementById(prefixTarget);
	//alert(hiddenPrefixTarget);
    hiddenPrefixTarget.value = prefix;
	//alert(prefix);
    return answerVar[1];
}

function GetAnswersForNagRegWall3(getAnswersTarget, prefixTarget, prefix)
{
	try 
	{
		var answersTarget = document.getElementById(getAnswersTarget);
		//var answersTarget = document.aspnetForm[getAnswersTarget];
		var answersTargetArr = answersTarget.value.split("|");
		
		var answerVar = ["", true];
		var answerVarTmp;
		
		for (answersIndex=0; answersIndex< answersTargetArr.length; answersIndex+=2)
		{
			try        
			{
				var target = answersTargetArr[answersIndex];
				//alert(target);
				var questionsPlusTypesTarget = document.getElementById(answersTargetArr[answersIndex+1]);
				//alert(questionsPlusTypesTarget);
				var questionsPlusTypes = questionsPlusTypesTarget.value;
				//alert("calling GetAnswersForNagRegWall2");
				answerVarTmp = GetAnswersForNagRegWall2(questionsPlusTypes, target, prefixTarget, prefix);
				//alert(answerVarTmp);
				if (answersIndex == 0)
					answerVar = answerVarTmp;
			}
			catch (err) 
			{
			//	if (answersIndex == 0)
				//{
					//alert("Error: " + err);
				//	return false;
				//}
			}
		}
		    
    } 
    catch (err) 
    {
//    	alert("Error: " + err);
	//	return false;
    }
    return answerVar;
}

function GetAnswersForNag(questionsPlusTypes)
{
	//alert("In GetAnswersForNag");
    // questionsPlusTypes is a string formatted as "questionID1|typeQ1|questionID2|typeQ2|..."    
    var multiAnswer = "";
    // getNAGAnswer is called for every questionID, typeQ and the returned answer is accumulated in multiAnswer
    var answers = questionsPlusTypes.split("|");
    var answerVar = ["", true];
    
    //alert("questionsPlusTypes: " + questionsPlusTypes);
    
    // Accumulate answers
    var oneAnswer = "";
    for (i=0; i < answers.length; i+=2)
    {
        answerVar = getNAGAnswer( answers[i], parseInt(answers[i+1]) );
        // If a validation error ocurred, stop parsing
        if (!answerVar[1])
            break;
        
        oneAnswer = answerVar[0];
        if (oneAnswer.length > 0)
            multiAnswer += "|" + oneAnswer;
    }
    multiAnswer = htmlEncode(multiAnswer);
    //alert ("SendNAG multianswer=" + multiAnswer);
    return [multiAnswer.substring(1, multiAnswer.length), answerVar[1]];
}

function SendNAG (questionsPlusTypes, survey, objectiveID){    
    var multiAnswer = "";
    var uid = document.aspnetForm.UserIDHidden.value;
    // getNAGAnswer is called for every questionID, typeQ and the returned answer is accumulated in multiAnswer
    var answers = questionsPlusTypes.split("|");
    var answerVar = ["", true];
    
    // Accumulate answers
    var oneAnswer = "";
    for (i=0; i < answers.length; i+=2)
    {
        answerVar = getNAGAnswer( answers[i], parseInt(answers[i+1]) );        
        if (!answerVar[1])
            return;
        
        oneAnswer = answerVar[0];
        if (oneAnswer.length > 0)
            multiAnswer += "|" + oneAnswer;
    }
    multiAnswer = htmlEncode(multiAnswer);
    if (multiAnswer != "")
            AjaxService.SendAnswer(multiAnswer.substring(1, multiAnswer.length), survey, uid, objectiveID, SendAnswer_CallBack, OnAjaxTimeOut, OnAjaxError);
//        personalizeleft.SendAnswer(multiAnswer.substring(1, multiAnswer.length), SendAnswer_CallBack);

    //var answer = getNAGAnswer (questionID, typeQ);    
    //if (answer != "")
    //    personalizeleft.SendAnswer(answer, SendAnswer_CallBack);    
}

function getQIdNoPrefix (questionID) {
    return questionID.substring(3);
}
function getNAGAnswer (questionID, typeQ){
    var answer = "";
    var valid = true;
	//alert(questionID);
    switch (typeQ)
    {
        case 0:     // SingleSelect
        case 10:    // SingleSelect vertical
            radiob = eval("document.aspnetForm."+questionID);
            for(var i = 0; i < radiob.length; i++) {
		        if(radiob[i].checked) {
			        answer = getQIdNoPrefix(questionID) + "|" + radiob[i].value;
			        break;
                //alert("radiob[i]: " + radiob[i] + ", i: " + i + ", value: " + radiob[i].value);
		        }
		        else  //LR fix radio button clear issue
		        {
		            answer = getQIdNoPrefix(questionID) + "|";
		        }
            }
            
        break;
        case 1:     // MultiSelect
            radiob = eval("document.aspnetForm."+questionID);
            //alert ("radiob=" + radiob.value + ", length=" + radiob.length);        
            var i=0;
            for(i = 0; i < radiob.length; i++) {
		        if(radiob[i].checked) {
			        answer += getQIdNoPrefix(questionID) + "_" + radiob[i].value + "|" + radiob[i].value + "|";
		        }
		        else  //LR fix checkbox clear issue
		        {
		            answer += getQIdNoPrefix(questionID) + "_" + radiob[i].value + "|-100|";
		        }
            }
            
            if ((i == 0) && (answer.length == 0) && (radiob.checked))
			    answer = getQIdNoPrefix(questionID) + "_" + radiob.value + "|" + radiob.value + "|";                
            
            if (answer.length > 0)
                answer = answer.substring(0, answer.length-1);
        break;
        case 3:     // RankOrder
            radiob = eval("document.aspnetForm."+questionID);
            for(var i = 0; i < radiob.length; i++) {
			    answer += getQIdNoPrefix(questionID) + "|" + radiob[i].value + "|";
            }
            if (answer.length > 0)
                answer = answer.substring(0, answer.length-1);
        break;
        case 4:     // Text
            
            radiob = eval("document.aspnetForm."+questionID);
            //alert("radiob: " + radiob + ", value: " + radiob.value);
		    answer = getQIdNoPrefix(questionID) + "|" + radiob.value;		    
		    
		    try
		    {
		        var re = eval("document.aspnetForm." + questionID + "Validation").value;
		        if (!ValidateNagAnswer(re, radiob.value))
		        {
		            alert("'" + radiob.value + "' is not formatted as expected");
		            radiob.focus();
		            answer = "";
		            valid = false;
		        }
		    }
		    catch (err) {}
        break;
        case 6:     // Numeric
            radiob = eval("document.aspnetForm."+questionID);
		    answer = getQIdNoPrefix(questionID) + "|" + radiob.value;

		    if (!ValidateNagAnswer("^(|\\d+|\\.\\d+|\\d+\\.\\d+)$", radiob.value))
		    {
		        alert("'" + radiob.value + "' is not a numeric value");
		        radiob.focus();
		        answer = "";
		        valid = false;
		    }
        break;
        case 7:     // Date
            radiob = eval("document.aspnetForm."+questionID);
		    answer = getQIdNoPrefix(questionID) + "|" + radiob.value;
        break;
        case 20:    // SingleSelect Pulldown
            radiob = eval("document.aspnetForm."+questionID);
		    answer = getQIdNoPrefix(questionID) + "|" + radiob.value;
        break;
        case 100:     // HTML Snippet
		    try
		    {
                radiob = eval("document.aspnetForm."+questionID);
                //alert("radiob: " + radiob + ", value: " + radiob.value);
		        answer = getQIdNoPrefix(questionID) + "|" + radiob.value;		    
		    }
		    catch (err) 
		    {
		        // HTML Snippets don't have to have a form element with its ID,
		        // so, if an error is found, simply ignore it.
                answer = "";
                valid = true;
		    }
        break;
    }
    
    //alert("Answer: '" + answer + "' question: '" + questionID + "'");
    return [answer, valid];
}

function ValidateNagAnswer(regExpression, testStr)
{
    //alert("Regexp: '" + regExpression + "', testStr: " + testStr + ", length: " + regExpression.length);
    if (regExpression.length == 0)
        return true;
        
    var re = new RegExp(regExpression);
    if (testStr.match(re))
        return true;
    else
        return false;
}

function AddNote (){
    var note = document.aspnetForm.note.value;
    var uid = document.aspnetForm.UserIDHidden.value;
    var iid = document.aspnetForm.InstitutionIDHidden.value;
    if ((uid != "") && (iid != ""))
    {
        loader("loading_note");
        AjaxService.AddANote(note, uid, iid, AddANote_CallBack, OnAjaxTimeOut, OnAjaxError);
    }
}

function ShowYourStuff (expand){
    var uid = document.aspnetForm.UserIDHidden.value;
    var iid = document.aspnetForm.InstitutionIDHidden.value;
    var vCookie = readCookie("yourstuff");
    var nCookie = 0;
    var url = document.forms['aspnetForm'].pgUrl.value;
    if (!expand)
        nCookie = OpenYourStuff;
    if (vCookie != null)
        nCookie ^= OpenYourStuff;
    createCookie("yourstuff", nCookie);
    AjaxService.ShowMyStuff(expand, iid, uid, url, ShowMyStuff_CallBack, OnAjaxTimeOut, OnAjaxError);
    return true;
}

function AddANote_CallBack(response){
    var uid = document.aspnetForm.UserIDHidden.value;
    var iid = document.aspnetForm.InstitutionIDHidden.value;
//    if (response.error != null){
//        return;
//    }
    target="notemsg";
    document.getElementById(target).innerHTML = response;
    ShowNoteJS(uid, iid);
    unloader("loading_note");
}

function SendAnswer_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    target="NagQuestion";
    document.getElementById(target).innerHTML = response;
//    document.getElementById(target).innerHTML = response.value;
}

function getQueryString() {
    var qsParm = new Array();
    var query = window.location.search.substring(1);
    var parms = query.split('&');
    for (var i=0; i<parms.length; i++) {
        var pos = parms[i].indexOf('=');
        if (pos > 0) {
            var key = parms[i].substring(0,pos);
            var val = parms[i].substring(pos+1);
            qsParm[key] = val;
        }
    }
    
    return qsParm;
}

function SendFormAnswer_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    
    var queryString = getQueryString();
    if (response.length == 0)
    {
        if (queryString["ret"] == undefined)
            //window.location.reload( true );
            //document.aspnetForm.submit();
            window.location = "StudentsHome.aspx";
        else
            window.location = queryString["ret"];
    }
    else
    {
	if(response.indexOf('Interested')!=-1)
        {
            target="NagFormQuestions2";
        }
        else
        {
            target="NagFormQuestions";
        }

	document.getElementById(target).innerHTML = response;
    }
}

function ShowNote_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    target="note_cont";
    document.getElementById(target).innerHTML = response;
    unloader("loading_note");
}

function ShowSSchoolsJS(view, uid){
    loader("loading_stuff");
    if (view)
        AjaxService.ShowSuggested(true, uid, 'en-us', ShowSuggested_CallBack, OnAjaxTimeOut, OnAjaxError);
    else
        {
            html = "<h1><span class=\"stuff_submenu\">" +
                "<a href=\"javascript:;\" onclick=\"ShowSSchoolsJS(true, " + uid + ");\">" +
                "<img src=\"/images/arrow_big.gif\" class=\"no_border\" alt=\"\" /> "+
                "Suggested Schools</a></span></h1>";
            ShowSuggested_CallBack(html);
        }
    return true;
}

function ShowVRSchoolsJS(view, uid){
    loader("loading_stuff");
    if (view)
        AjaxService.ShowViewed(true, uid, 'en-us', ShowViewed_CallBack, OnAjaxTimeOut, OnAjaxError)
    else
    {
        html = "<h1><span class=\"stuff_submenu\">" +
                "<a href=\"javascript:;\" onclick=\"ShowVRSchoolsJS(true, " + uid + ");\">" +
                "<img src=\"/images/arrow_big.gif\" class=\"no_border\" alt=\"\" /> "+
                "Viewed / Rated Schools</a></span></h1>";
        ShowViewed_CallBack(html);
    }
    return true;
}

function ShowMajorsJS(uid){
    loader("loading_stuff");
    AjaxService.ShowMajors(true, uid, ShowMajors_CallBack, OnAjaxTimeOut, OnAjaxError);
    return true;
}

function ShowCareersJS(uid){
    loader("loading_stuff");
    AjaxService.ShowCareers(true, uid, ShowCareers_CallBack, OnAjaxTimeOut, OnAjaxError);
    return true;
}

function ShowNoteJS(uid, iid){
    loader("loading_note");
    
    var url = document.forms['aspnetForm'].pgUrl.value;
    AjaxService.ShowNote(true, uid, iid, url, ShowNote_CallBack, OnAjaxTimeOut, OnAjaxError);
}

function ShowMajors_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    var nCookie = readCookie("yourstuff");
    nCookie ^= OpenMajors;
    createCookie("yourstuff", nCookie);
    target="stuff_majors";
    document.getElementById(target).innerHTML = response;
    unloader("loading_stuff");
}

function ShowCareers_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    var nCookie = readCookie("yourstuff");
    nCookie ^= OpenCareers;
    createCookie("yourstuff", nCookie);
    target="stuff_careers";
    document.getElementById(target).innerHTML = response;
    unloader("loading_stuff");
}

function ShowSchools_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    var nCookie = readCookie("yourstuff");
    nCookie ^= OpenSchools;
    createCookie("yourstuff", nCookie);
    target="stuff_schools";
    document.getElementById(target).innerHTML = response;
}

function ShowSuggested_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    var nCookie = readCookie("yourstuff");
    nCookie ^= OpenSchoolsSuggested;
    createCookie("yourstuff", nCookie);
    target="schools_suggest";
    document.getElementById(target).innerHTML = response;
    unloader("loading_stuff");
}

function ShowViewed_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    
    var nCookie = readCookie("yourstuff");
    nCookie ^= OpenSchoolsViewed;
    createCookie("yourstuff", nCookie);
    target="schools_viewed";
    document.getElementById(target).innerHTML = response;
    unloader("loading_stuff");
}
var confirmationID = null;
function AddMajors (idmajor)
{
    var uid = document.aspnetForm.UserIDHidden.value;
    if ((uid != "") && (idmajor != ""))
    {       
        confirmationID = "confirmation" + idmajor;
        setTimeout("AjaxService.AddMajor('"+idmajor+"', "+uid+", AddMajor_CallBack, OnAjaxTimeOut, OnAjaxError)", 1000);         }
}
function AddMajor_CallBack(response){
    
    if (confirmationID == null)    
           return;
    else
    {   
        target=confirmationID;
        if(response.error != null)       
            $get(target).innerHTML = response.error + ". Please try again later.";// Changed for YourStuff.aspx Jesusc 
        else
            $get(target).innerHTML = response;
             
    }

}

function DelMajors(majorid, uid){
    if ((uid != "") && (majorid != ""))
    {
        //loader("loading_stuff");// Changed for YourStuff.aspx Jesusc
        confirmationID = "div" + majorid;        
        AjaxService.DelMajor(majorid, uid, DelMajors_CallBack, OnAjaxTimeOut, OnAjaxError);
    }
}

function DelMajors_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    target=confirmationID;// Changed for YourStuff.aspx Jesusc    
    document.getElementById(target).style.display = "none";
//    unloader("loading_stuff");// Changed for YourStuff.aspx Jesusc
//    window.location ="/YourStuff.aspx"; // Added for YourStuff.aspx Jesusc
}

function AddGradPrograms(progID)
{
    var uid = document.aspnetForm.UserIDHidden.value;
    if ((uid != "") && (progID != ""))
    {
       setTimeout("AjaxService.AddGradProgram("+progID+", "+uid+", AddGradProgram_CallBack, OnAjaxTimeOut, OnAjaxError)", 1000);
    }
}

function AddGradProgram_CallBack(response)
{
    if(response.indexOf("Error")==-1)
    {
        var arrResponses = response.split("-");
        var progid = arrResponses[1];
        document.getElementById(progid).innerHTML = arrResponses[0];
    }
    else
    {
        var arrResponses = response.split("-");
        var progid = arrResponses[1];
        document.getElementById(progid).innerHTML = "Please try again later.";
    }
}

    function DelGradProgram(gradid, uid){
        if ((uid != "") && (gradid != ""))
        {
            //loader("loading_stuff");
            confirmationID = "div" + gradid;
            AjaxService.DeleteGradProgram(gradid, uid, DelGradProgram_CallBack, OnAjaxTimeOut, OnAjaxError);
        }
    }

    function DelGradProgram_CallBack(response){
    //    if (response.error != null){
    //        return;
    //    }
        target=confirmationID;// Changed for YourStuff.aspx Jesusc        
        document.getElementById(target).style.display = "none";
    //    unloader("loading_stuff");// Changed for YourStuff.aspx Jesusc
    //    window.location ="/YourStuff.aspx";
    }

function AddCareers (idcareer){
    var uid = document.aspnetForm.UserIDHidden.value;
    
    //alert("Uid" + uid + ":Career " + idcareer);
    
    if ((uid != "") && (idcareer != ""))
    {
//        if (ShowYourStuff(true))
  //      {
            //setTimeout("ShowCareersJS("+uid+")", 500);// Changed for YourStuff.aspx Jesusc
            //loader("loading_stuff");// Changed for YourStuff.aspx Jesusc
            confirmationID = "stuff_careers" + idcareer;
            setTimeout("AjaxService.AddCareer("+idcareer+", "+uid+", AddCareer_CallBack, OnAjaxTimeOut, OnAjaxError)", 1000);
    //    }
    }
}

function AddCareer_CallBack(response){
    if (response.error != null){
        return;
    }
    try
    {    
        target=confirmationID;
        document.getElementById(target).innerHTML = response;// Changed for YourStuff.aspx Jesusc
        //target="stuff_careers" + splitOutput[0];// Changed for YourStuff.aspx Jesusc        
        //unloader("loading_stuff");// Changed for YourStuff.aspx Jesusc
        //window.location ="/YourStuff.aspx";        
    }
    catch (err) {  } // Ignore errors
}

function DelCareers(careerid, uid){
    if ((uid != "") && (careerid != ""))
    {
        //loader("loading_stuff");
        confirmationID = "div" + careerid;
        AjaxService.DelCareer(careerid, uid, DelCareers_CallBack, OnAjaxTimeOut, OnAjaxError);
    }
}

function DelCareers_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    target=confirmationID;// Changed for YourStuff.aspx Jesusc    
    document.getElementById(target).style.display = "none";
//    unloader("loading_stuff");// Changed for YourStuff.aspx Jesusc
//    window.location ="/YourStuff.aspx";
}

function LinkGen(){
    var link = document.aspnetForm.pgUrl.value;
    AjaxService.GenerateLink(link, GenerateLink_CallBack, OnAjaxTimeOut, OnAjaxError);
    //printbox.GenerateLink(link, GenerateLink_CallBack);
    document.getElementById("linkgen").style.display = 'block';
}

function GenerateLink_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    target="linkgen";
    document.getElementById(target).innerHTML = response;
//    document.getElementById(target).innerHTML = response.value;
}

function MailPage(){
    var uid = document.aspnetForm.UserIDHidden.value;
    document.getElementById("errormail").innerHTML = "";
    AjaxService.MailThisPage(uid, MailThisPage_CallBack, OnAjaxTimeOut, OnAjaxError);
//    printbox.MailThisPage(uid, MailThisPage_CallBack);
}

function MailThisPage_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    target="mailpage";
    document.getElementById(target).innerHTML = response;
//    document.getElementById(target).innerHTML = response.value;
    document.aspnetForm.emailTo.focus();
}

function validateEmail(email) {
    // standard email regex
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    if (filter.test(email)) 
        validEmail = true;
    else 
        validEmail = false;
    return validEmail;
}

function SendMailGn(){
    var emailTo = document.aspnetForm.emailTo.value;
    var url = document.aspnetForm.pgUrl.value;
    document.getElementById("errormail").innerHTML = "";
    if (validateEmail(emailTo))
        AjaxService.SendMail(url, emailTo, SendMail_CallBack, OnAjaxTimeOut, OnAjaxError);
//        printbox.SendMail(url, emailTo, SendMail_CallBack);
    else
        document.getElementById("errormail").innerHTML = "<b>"+emailTo+" is not a valid email address.</b>";
}

function ClearErrorMsg()
{
    document.getElementById("errormail").innerHTML = "";
}

function SendMail_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    target="mailpage";
    document.getElementById(target).innerHTML = response;
//    document.getElementById(target).innerHTML = response.value;
}

function RateSchool(rating){
    var uid = document.aspnetForm.UserIDHidden.value;
    var iid = document.aspnetForm.InstitutionIDHidden.value;
    AjaxService.RateSchool(rating, uid, iid, RateSchool_CallBack, OnAjaxTimeOut, OnAjaxError);
//    fitrating.RateSchool(rating, uid, iid, RateSchool_CallBack);
}

function RateSchoolMS(rating, iid, ntrg){
    var uid = document.aspnetForm.UserIDHidden.value;
    if(uid==0 || uid==null)
    {
        //GetReturnURL(location.href)
        location.href="../../login3.aspx?RUN=" + GetReturnURL(location.href);
        return false;
    }
    var returnv = "<ul class=\"star-rating-sm\">" +
            "<li class=\"current-rating-sm\" style=\"width:" + (rating * 20) + "%;\"></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolMS(1, "+iid+", "+ntrg+")\" title=\"Rate this 1 out of 5\" class=\"one-star-sm\"></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolMS(2, "+iid+", "+ntrg+")\" title=\"Rate this 2 out of 5\" class=\"two-stars-sm\"></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolMS(3, "+iid+", "+ntrg+")\" title=\"Rate this 3 out of 5\" class=\"three-stars-sm\"></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolMS(4, "+iid+", "+ntrg+")\" title=\"Rate this 4 out of 5\" class=\"four-stars-sm\"></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolMS(5, "+iid+", "+ntrg+")\" title=\"Rate this 5 out of 5\" class=\"five-stars-sm\"></a></li>" +
            "</ul><div class=\"zero-rating-sm\"><a href=\"javascript:;\" onclick=\"RateSchoolMS(0, "+iid+", "+ntrg+")\" title=\"Rate this 0 out of 5\">" +
            "&nbsp;&nbsp;</a></div>";
    target="star-rating-smdiv"+ntrg;
    document.getElementById(target).innerHTML = returnv;
    AjaxService.RateSchoolMS(rating, uid, iid, RateSchoolMS_CallBack, OnAjaxTimeOut, OnAjaxError);
}

function RateSchool_CallBack(response){
//    if (response.error != null){
//        return;
//    }
    target="star_rating";
    document.getElementById(target).innerHTML = response;
//    document.getElementById(target).innerHTML = response.value;
}

function RateSchoolMS_CallBack(response){
    if (response.error != null){
        return;
    }
}

function RateSchoolSR(rating, iid, ntrg){
    var uid = document.aspnetForm.UserIDHidden.value;
//    var returnv = "<ul class=\"star-rating-sm\">" +
//            "<li class=\"current-rating-sm\" style=\"width:" + (rating * 20) + "%;\"></li>" +
//            "<li><a href=\"javascript:;\" onclick=\"RateSchoolSR(1, "+iid+", "+ntrg+")\" title=\"No, thanks!\" class=\"one-star-sm\"></a></li>" +
//            "<li><a href=\"javascript:;\" onclick=\"RateSchoolSR(2, "+iid+", "+ntrg+")\" title=\"Not so much\" class=\"two-stars-sm\"></a></li>" +
//            "<li><a href=\"javascript:;\" onclick=\"RateSchoolSR(3, "+iid+", "+ntrg+")\" title=\"On the fence\" class=\"three-stars-sm\"></a></li>" +
//            "<li><a href=\"javascript:;\" onclick=\"RateSchoolSR(4, "+iid+", "+ntrg+")\" title=\"On my list\" class=\"four-stars-sm\"></a></li>" +
//            "<li><a href=\"javascript:;\" onclick=\"RateSchoolSR(5, "+iid+", "+ntrg+")\" title=\"Dream School!\" class=\"five-stars-sm\"></a></li>" +
//            "</ul><div class=\"zero-rating-sm\"><a href=\"javascript:;\" onclick=\"RateSchoolSR(0, "+iid+", "+ntrg+")\" title=\"Rate this 0 out of 5\">" +
//            "&nbsp;&nbsp;</a></div>";
    var returnv = "<ul class=\"fit_rating\">" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolSR(1,"+iid+", "+ntrg+" )\" title=\"No, thanks!\" class=\"\">1</a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolSR(2,"+iid+", "+ntrg+" )\" title=\"Not so much\" class=\"\">2</a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolSR(3,"+iid+", "+ntrg+" )\" title=\"On the fence\" class=\"\">3</a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolSR(4,"+iid+", "+ntrg+" )\" title=\"On my list\" class=\"\">4</a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolSR(5,"+iid+", "+ntrg+" )\" title=\"Dream School!\" class=\"\">5</a></li>" +
            "</ul>"
    target="search_sc_yr"+ntrg;
    document.getElementById(target).innerHTML = returnv;
    AjaxService.RateSchoolMS(rating, uid, iid, RateSchoolMS_CallBack, OnAjaxTimeOut, OnAjaxError);
//    mystuff.RateSchoolMS(rating, uid, iid, RateSchoolMS_CallBack);    
}

/* Copied from RateSchoolSR which MAY be obsolete */
function RateSchoolHat(rating, iid, ntrg){
   
    var uid = document.aspnetForm.UserIDHidden.value;
    if(uid==0 || uid==null)
    {
        //GetReturnURL(location.href)
        location.href="login3.aspx?RUN=" + GetReturnURL(location.href);
        return false;
    }
    
    //var iid = document.aspnetForm.InstitutionIDHidden.value;
    var returnv = "<ul class=\"fit_rating\">" +
            "<!--<li class=\"current-mrating\" style=\"width:" + (rating * 20) + "%;\"></li>-->" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolHat(1, "+iid+", "+ntrg+")\" title=\"No, thanks!\"";
            if (rating>0) returnv=returnv+ " class=\"active\"";
            returnv = returnv + "></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolHat(2, "+iid+", "+ntrg+")\" title=\"Not so much\"";
            if (rating>1) returnv=returnv+ " class=\"active\"";
            returnv = returnv + "></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolHat(3, "+iid+", "+ntrg+")\" title=\"On the fence\"";
            if (rating>2) returnv=returnv+ " class=\"active\"";
            returnv = returnv + "></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolHat(4, "+iid+", "+ntrg+")\" title=\"On my list\"";
            if (rating>3) returnv=returnv+ " class=\"active\"";
            returnv = returnv + "></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolHat(5, "+iid+", "+ntrg+")\" title=\"Dream School!\""; 
            if (rating>4) returnv=returnv+ " class=\"active\"";
            returnv = returnv + "></a></li>" +
            "</ul>" ;
            // <div class=\"zero-rating-sm\"><a href=\"javascript:;\" onclick=\"RateSchoolSR(0, "+iid+", "+ntrg+")\" title=\"Rate this 0 out of 5\">" +
            // "&nbsp;&nbsp;</a></div>";
           
    target="search_sc_yr"+ntrg;
    document.getElementById(target).innerHTML = returnv;
    AjaxService.RateSchoolMS(rating, uid, iid, RateSchoolMS_CallBack, OnAjaxTimeOut, OnAjaxError);
//    mystuff.RateSchoolMS(rating, uid, iid, RateSchoolMS_CallBack);    
}

function RateSchoolHatProfile(rating, iid, ntrg){
    var uid = document.aspnetForm.UserIDHidden.value;
    if(uid==0 || uid==null)
    {
        //GetReturnURL(location.href)
        location.href="login3.aspx?RUN=" + GetReturnURL(location.href);
        return false;
    }
    //var iid = document.aspnetForm.InstitutionIDHidden.value;
    var returnv = "<ul class=\"star-rating-sm\">" +
            "<!--<li class=\"current-rating-sm\" style=\"width:" + (rating * 20) + "%;\"></li>-->" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolHatProfile(1, "+iid+", "+ntrg+")\" title=\"No, thanks!\"";
            if (rating>0) returnv=returnv+ " class=\"one-star-sm\"";
            returnv = returnv + "></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolHatProfile(2, "+iid+", "+ntrg+")\" title=\"Not so much\"";
            if (rating>1) returnv=returnv+ " class=\"two-star-sm\"";
            returnv = returnv + "></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolHatProfile(3, "+iid+", "+ntrg+")\" title=\"On the fence\"";
            if (rating>2) returnv=returnv+ " class=\"three-star-sm\"";
            returnv = returnv + "></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolHatProfile(4, "+iid+", "+ntrg+")\" title=\"On my list\"";
            if (rating>3) returnv=returnv+ " class=\"four-star-sm\"";
            returnv = returnv + "></a></li>" +
            "<li><a href=\"javascript:;\" onclick=\"RateSchoolHatProfile(5, "+iid+", "+ntrg+")\" title=\"Dream School!\""; 
            if (rating>4) returnv=returnv+ " class=\"five-star-sm\"";
            returnv = returnv + "></a></li>" +
            "</ul>" ;
            // <div class=\"zero-rating-sm\"><a href=\"javascript:;\" onclick=\"RateSchoolSR(0, "+iid+", "+ntrg+")\" title=\"Rate this 0 out of 5\">" +
            // "&nbsp;&nbsp;</a></div>";
           
    target="search_sc_yr"+ntrg;
    document.getElementById(target).innerHTML = returnv;
    AjaxService.RateSchoolMS(rating, uid, iid, RateSchoolMS_CallBack, OnAjaxTimeOut, OnAjaxError);
//    mystuff.RateSchoolMS(rating, uid, iid, RateSchoolMS_CallBack);    
}

function GetReturnURL(url)
{
    
    url = url.substring(url.indexOf(".com/")+4, url.length);
    return escape(url);
}

function sendCourseFinder(itemCode, zipcode,testprepServer)
{
    courseF = testprepServer + "/coursefinder/Search.asp?productType=C"+
        "&rid=1&Zip="+zipcode+"&itemCode="+itemCode;
    if(validateBasic(itemCode, zipcode))
    {
        document.aspnetForm.SearchFor.value = "site";
        window.location=courseF;
    }
}

function clearDefaultSearch()
{
	if (document.aspnetForm.topSearchKeyword.value == "Enter Zip/Postal Code")
	 document.aspnetForm.topSearchKeyword.value = "";
}

function htmlEncode(s) {
    var str = new String(s);
    str = str.replace(/&/g, "");
    str = str.replace(/</g, "");
    str = str.replace(/>/g, "");
    str = str.replace(/"/g, "");
    return str;
}

function topSearch(testprepServer){
    var search = document.aspnetForm.SearchFor.value;
    var keyword = htmlEncode(document.aspnetForm.topSearchKeyword.value);
    if (search == "schools")
    {
        document.aspnetForm.SearchFor.value = "site";
        window.location = "/Search.aspx?search=" + 
            search + "&keyword=" + keyword;
    }
    else if (search == "site")
    {
        window.location = "/SiteSearch.aspx?search=" + 
            search + "&keyword=" + keyword;
    }
    else
    {
        search = document.aspnetForm.topSearchCombo.value;
        sendCourseFinder(search, keyword,testprepServer);
    }
}

/* 4/26/08 -- this function seems to be obsolete? 
 no pages seem to be calling it?  */
function SwitchSearch(searchOpt)
{
    var options = new Array('courses', 'schools', 'site');
    
    if (searchOpt > 0)
    {
        if (searchOpt == 1)
        {
            document.getElementById("SearchTutorsSp").style.fontWeight = '300';
            document.getElementById("SearchSiteSp").style.fontWeight = '300';
            document.getElementById("SearchSchoolsSp").style.fontWeight = '900';
            clearDefaultSearch();
            document.aspnetForm.topSearchKeyword.focus();
            // Mantis(0003276)
            // CRNumber(29917)
            // 01/01/2008 - Fernando Aguilar
            // Add new Width for change selection
            document.aspnetForm.topSearchKeyword.style.width = '351px';
        }
        if (searchOpt == 2)
        {
            document.getElementById("SearchTutorsSp").style.fontWeight = '300';
            document.getElementById("SearchSiteSp").style.fontWeight = '900';
            document.getElementById("SearchSchoolsSp").style.fontWeight = '300';
            clearDefaultSearch();
            document.aspnetForm.topSearchKeyword.focus();
        }
        document.getElementById("topSearchComboSpan").style.display = 'none';
        document.aspnetForm.topSearchKeyword.style.width = '351px';
    }
    else
    {
        document.getElementById("SearchTutorsSp").style.fontWeight = '900';
        document.getElementById("SearchSiteSp").style.fontWeight = '300';
        document.getElementById("SearchSchoolsSp").style.fontWeight = '300';
        document.getElementById("topSearchComboSpan").style.display = 'inline';
        document.aspnetForm.topSearchKeyword.style.width = '170px';
        if (document.aspnetForm.topSearchKeyword.value == "")
            document.aspnetForm.topSearchKeyword.value = "Enter Zip/Postal Code";
    }
    document.aspnetForm.SearchFor.value = options[searchOpt];        

}

function RequestBrochure(link){
    var iframe = "<iframe id=\"inquiryForm\" src=\""+link+"\" width=\"100%\" "+
            "height=\"1000\" scrolling=\"yes\" frameborder=\"0\" ></iframe>";
    target="center";
    if (link != "")
        document.getElementById(target).innerHTML = iframe;
}

function enterKeySendSearch(e){
    var KeyPress;
    if(e && e.which)
    {
        e = e;
        KeyPress = e.which;
    }
    else
    {
        e = event;
        KeyPress = e.keyCode;
    }
    if(KeyPress == 13)
    {
        if (document.aspnetForm.topSearchKeyword.focus)
        {
            topSearch();
            return false;
        }
        else
            return true;
    }
    else
        return true;
}

function enterKeySendLogin(e, LogSign){
    var KeyPress;
    if(e && e.which)
    {
        e = e;
        KeyPress = e.which;
    }
    else
    {
        e = event;
        KeyPress = e.keyCode;
    }
    if(KeyPress == 13)
    {
        if (LogSign == 0)
        {
            if (document.aspnetForm.wsb1.focus)
            {
                if(GetAnswersForNagRegWall('wsb0|4|wsb1|4|wsb5|1', 'ctl00$ContentPlaceHolder1$NagAnswers', 'ctl00$ContentPlaceHolder1$NagSurvey', 'loginsurvey'))
                    __doPostBack('__Page','');
                return false;
            }
            else
                return true;
        }
        else if (LogSign == 1)
        {
            if (document.aspnetForm.wsb4.focus)
            {
                if(GetAnswersForNagRegWall('wsb3|4|wsb4|4|wsb2|1', 'ctl00$ContentPlaceHolder1$NagAnswers', 'ctl00$ContentPlaceHolder1$NagSurvey', 'signupsurvey'))
                    __doPostBack('__Page','');
                return false;
            }
            else
                return true;
        }
    }
    else
        return true;
}

function enterCoursrFinder(e){
    var KeyPress;
    if(e && e.which)
    {
        e = e;
        KeyPress = e.which;
    }
    else
    {
        e = event;
        KeyPress = e.keyCode;
    }
    if(KeyPress == 13)
    {
        if (document.aspnetForm.Zip.focus)
        {
            sendCourseFind();
            return false;
        }
        else
            return true;
    }
    else
        return true;
}

function openPrintPage(url)
{
    if(url != '')
    {
        if(url.indexOf("?") > 0)
            window.open(url+"&style=print",'printpg','scrollbars=yes,menubar=no,height=600,width=800,resizable=yes,toolbar=no,location=no,status=no');
        else
            window.open(url+"?style=print",'printpg','scrollbars=yes,menubar=no,height=600,width=800,resizable=yes,toolbar=no,location=no,status=no');
     }
}

function internalSearch(textID, comboID){
    var keyword = document.getElementById(textID).value;
    var search = document.getElementById(comboID).value;
    if (search == "schools")
    {
        window.location = "/Search.aspx?search=" + 
            search + "&keyword=" + keyword;
    }
    if (search == "site")
    {
        window.location = "/SiteSearch.aspx?search=" + 
            search + "&keyword=" + keyword;
    }
}

function NextContent(divID)
{
    try
    {
        var currcont = eval("document.aspnetForm."+divID+"currcont").value;
        var maxcont = eval("document.aspnetForm."+divID+"maxcont").value;
        if(currcont == 0)
            currcont = 1;
        var nextcont = parseInt(currcont) + 1;
        if (parseInt(nextcont) > parseInt(maxcont))
            nextcont = 1;
        eval("document.aspnetForm."+divID+"currcont").value = nextcont;
        target = divID+"Numbers";
        document.getElementById(target).innerHTML = " <b>"+nextcont+"</b> of "+maxcont+" ";
        nextcont ++;
        if (parseInt(nextcont) > parseInt(maxcont))
            nextcont = 1;
        target = divID+"Next";
        document.getElementById(target).innerHTML = eval("document.aspnetForm.title"+divID+nextcont).value;
        idcc = divID+currcont;
        idnc = divID+nextcont;
        for (i=1; i<=maxcont; i++)
        {
            idcc = divID+i;
            document.getElementById(idcc).style.display = 'none';
        }
        document.getElementById(idnc).style.display = 'block';
		
		
		
		
		if (divID == "spot" ){
		addEventsToLinks2(idnc);}
		else {
		addEventsToLinks(divID + (nextcont -1));}
    }
    catch (err) {  } // Ignore errors
}

function PrevContent(divID)
{
    var currcont = eval("document.aspnetForm."+divID+"currcont").value;
    var maxcont = eval("document.aspnetForm."+divID+"maxcont").value;
    if(currcont == 0)
        currcont = 1;
    var nextcont = parseInt(currcont);
    var prevcont = parseInt(currcont) - 1;
    if (parseInt(prevcont) == 0)
        prevcont = parseInt(maxcont);
    eval("document.aspnetForm."+divID+"currcont").value = prevcont;
    target = divID+"Numbers";
    document.getElementById(target).innerHTML = " <b>"+prevcont+"</b> of "+maxcont+" ";
    target = divID+"Next";
    document.getElementById(target).innerHTML = eval("document.aspnetForm.title"+divID+nextcont).value;
    idcc = divID+currcont;
    idnc = divID+prevcont;
    for (i=1; i<=maxcont; i++)
    {
        idcc = divID+i;
        document.getElementById(idcc).style.display = 'none';
    }
    document.getElementById(idnc).style.display = 'block';
}

function ChangeSchoolPhoto(PrevNext)
{
    var curr = document.aspnetForm.currPhoto.value;
    var max = document.aspnetForm.maxPhoto.value;
    var nextcont = 0;
    if (PrevNext == 0)
    {
        nextcont = parseInt(curr) + 1;
        if (nextcont > max)
            nextcont = 0;
    }
    else
    {
        nextcont = parseInt(curr) - 1;
        if (nextcont < 0)
            nextcont = max;
    }
    idnc = "schoolPhoto"+nextcont;
    for (i=0; i<=max; i++)
    {
        idcc = "schoolPhoto"+i;
        document.getElementById(idcc).style.display = 'none';
    }
    document.aspnetForm.currPhoto.value = nextcont;
    document.getElementById(idnc).style.display = 'block';
}

function SetInitialContent(divID)
{
    ContId = eval("document.aspnetForm."+divID+"currcont");
    ContId.value = 1;
}

function SearchSelectChange(testprepServer)
{
    var search = document.aspnetForm.topSearchCombo.value;
    var keyword = document.aspnetForm.topSearchKeyword.value;
    if (search == "schools" || search == "site")
        clearDefaultSearch();
    else
    {
        if (search == "MORE")
        {
            clearDefaultSearch();
            document.aspnetForm.SearchFor.value = "site";
            window.location = testprepServer + "/coursesearch/AdvancedSearch.aspx";
        }
        else if (keyword == "")
            document.aspnetForm.topSearchKeyword.value = "Enter Zip/Postal Code";
    }
}

function ChangeCounsPage(FieldId, PageNo, run, sname, qid)
{
    var Npage = parseInt(PageNo)-1;
    document.getElementById(FieldId).value = Npage;
    link = "COMLogin.aspx?RUN="+run+"&SNAME="+sname+"&PAGE="+Npage+"&PHASE=-1&QID="+qid;
    window.location = link;
    //document.getElementById('submitCOM').click();
}

function GotoCOMPage(pageField, page)
{
    try
    {
        pField = eval("document.aspnetForm." + pageField);
        pField.value = page
    }
    catch (err) {}
}

function ExpandSchool(DivHidden)
{
     document.getElementById(DivHidden).style.display = 'block';
}

function CollapseSchool(DivHidden)
{
     document.getElementById(DivHidden).style.display = 'none';
}

function CloseLinkGen()
{
    document.getElementById("linkgen").style.display = 'none';
}

function OnAjaxTimeOut(arg) {
    alert("TimeOut encountered.");
}

function OnAjaxError(arg) {
    alert("Error encountered.");
}

function createCookie(name, value) {
	document.cookie = name+"="+value+";";
}

function readCookie(name)
{
	var nameCk = name + "=";
	var ck = document.cookie.split(';');
	for(var i=0;i < ck.length;i++) {
		var c = ck[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameCk) == 0) 
		    //return parseInt(c.substring(nameCk.length,c.length));
		    return c.substring(nameCk.length,c.length);
	}
	return 0;
}

function openMenuYourStuff()
{
    var uid = document.aspnetForm.UserIDHidden.value;
    var flags = readCookie("yourstuff");
    if (flags & OpenYourStuff)
        ShowYourStuff(false);
    if (uid > 0)
    {
        if (flags & OpenSchools)
            setTimeout("AjaxService.ShowSchools(true, "+uid+", ShowSchools_CallBack, OnAjaxTimeOut, OnAjaxError)", 1000);
        if (flags & OpenMajors)
            setTimeout("ShowMajorsJS("+uid+")", 1400);
        if (flags & OpenCareers)
            setTimeout("ShowCareersJS("+uid+")", 1400);
        if (flags & OpenSchoolsSuggested)
            setTimeout("ShowSSchoolsJS(true, "+uid+")", 1600);
        if (flags & OpenSchoolsViewed)
            setTimeout("ShowVRSchoolsJS(true, "+uid+")", 1600);
    }
    return true;
}


function DisplayTopLogin(disp)
{
    if (disp == 1)
    {
        document.getElementById("TopSignUpTitle").style.display = 'none';
        document.getElementById("LoginUserTop").style.display = 'inline';
        document.getElementById("TopLoginTitle").innerHTML = "<a href=\"javascript:DisplayTopLogin(0);\"> Login</a> |";
    }
    else
    {
        document.getElementById("TopSignUpTitle").style.display = 'inline';
        document.getElementById("LoginUserTop").style.display = 'none';
        document.getElementById("TopLoginTitle").innerHTML = "<a href=\"javascript:DisplayTopLogin(1);\"> Login</a> |";
    }
}

function AddTags()
{
    var tag = document.aspnetForm.addTag.value;
    var uid = document.aspnetForm.UserIDHidden.value;
    var articleID = document.aspnetForm.articleIDHidden.value;
    tag = htmlEncode(tag);
    if (tag == "")
        return;
    else
    {
        AjaxService.AddTag(tag, articleID, uid, addTags_CallBack, OnAjaxTimeOut, OnAjaxError );
    }
}

function EditTags()
{
    document.aspnetForm.editTag.value = document.aspnetForm.yourTagsHidden.value;
    document.getElementById("yourtagsLinks").style.display = 'none';
    document.getElementById("AddTagTextbox").style.display = 'none';
    document.getElementById("EditTagTextbox").style.display = 'inline';
}

function UpdateTags()
{
    var tags = document.aspnetForm.editTag.value;
    var uid = document.aspnetForm.UserIDHidden.value;
    var articleID = document.aspnetForm.articleIDHidden.value;
    tags = htmlEncode(tags);
    AjaxService.UpdateTags(tags, articleID, uid, addTags_CallBack, OnAjaxTimeOut, OnAjaxError );
}

function CancelTags()
{
    document.getElementById("EditTagTextbox").style.display = 'none';
    document.getElementById("yourtagsLinks").style.display = 'inline';
    document.getElementById("AddTagTextbox").style.display = 'inline';
}

function addTags_CallBack(response){
    var msg = response;
    target = "TagsCallback";
    if (msg == "")
        window.location = "Register.aspx";
    else
        document.getElementById(target).innerHTML = msg;
}

function updateTags_CallBack(response){
    var msg = response;
    target = "TagsCallback";
    if (msg == "")
        window.location = "Register.aspx";
    else
        document.getElementById(target).innerHTML = msg;
}

function addCeeb(ceeb, name) {
    var searchBox = document.getElementById('ceebSearchBox');
    var launchBox = document.getElementById('ceebSearchLaunch');
    launchBox.innerHTML = "<a href='javascript:;' onclick='openCEEBSearch();'>" + name + "</a><br /><span class='ceebHint'>(click name to change)</span>";
    launchBox.style.display = 'inline';
    document.forms['aspnetForm'].elements['wsb122'].value = ceeb + '|' + name;
    closeCEEBSearch();
}

function gpaChartInit() {
    document.getElementById('gpaChart').style.display = 'none';
}

function launchGPAChart() {
    document.getElementById('gpaChart').style.display = 'block';
}

function openPandP(productCode) 

{
var newWindow = window.open("http://testprep.princetonreview.com/cms/crackingPandP.asp?productCode="+ productCode,"","status,scrollbars,resizable,width=700,height=400"); 
}

function updateTags_CallBack(response){
    var msg = response;
    target = "TagsCallback";
    if (msg == "")
        window.location = "Register.aspx";
    else
        document.getElementById(target).innerHTML = msg;
}

function addCeeb(ceeb, name) {
    var searchBox = document.getElementById('ceebSearchBox');
    var launchBox = document.getElementById('ceebSearchLaunch');
    launchBox.innerHTML = "<a href='javascript:;' onclick='openCEEBSearch();'>" + name + "</a><br /> <span class='ceebHint'>(click name to change)</span>";
    launchBox.style.display = 'inline';
    document.forms['aspnetForm'].elements['wsb122'].value = ceeb + '|' + name;
    closeCEEBSearch();
}

function gpaChartInit() {
    document.getElementById('gpaChart').style.display = 'none';
}

function launchGPAChart() {
    document.getElementById('gpaChart').style.display = 'block';
}

function closeGPAChart() {
    document.getElementById('gpaChart').style.display = 'none';
}

var controlComResults = function(){
   var _orientation = "Desc";
   var _lastOrderField ="";
   var _page,_IdUser,_localId;
   var _currentPage=1;
   var _element,_category;
   var _myWidth=0;
   var _IsReachMatchSafety=false;
   var _pageSize=25;
   
   var getValues = function(){
      _page=parseInt(document.getElementById("inputPage").value);
      _IdUser=parseInt(document.getElementById("inputUserId").value);
      _localId=document.getElementById("localId").value
      _IdUser = _IdUser || 0;
      _page = _page || 1;
   };
   
   var getElements = function(){
      _element = document.getElementById("SchoolsContentList");
	 
   };
   
   var wait = function(){
      getElements();
      //_myWidth = _element.firstChild.firstChild.clientWidth - 11 ;
	  _myWidth = 500;
      _element.innerHTML = "<div style=\"width:" + _myWidth + "px;\"><img src=\"/images/ajax-loader.gif\" alt=\"\"></div>";
   };
   
   return{
      Sort : function(orderByField,records){
         wait();
         if (_lastOrderField==orderByField) _orientation = _orientation=="Desc" ? "Asc" : "Desc";
         if (_page==null || _IdUser==null) getValues();
         orderByField = orderByField || _lastOrderField || "";
         records = records || _pageSize;
         AjaxService.Sort(_currentPage,_page,_IdUser,orderByField,_orientation,_localId,records,this.Sort_callBack, OnAjaxTimeOut, OnAjaxError);
         _lastOrderField =  orderByField;
      },
      Sort_callBack : function(value){
         _element.innerHTML=value;
         _currentPage = _page;
      },
      changePage : function(page){
         _page = page;
         document.getElementById("inputPage").value=page;
      },
      goPage : function(page){
         this.changePage(page);
         this.Sort(null);
      },
      showAllReachMatchSafety : function(category,page,orderByField){
         wait();
         getValues();
         _category = category || _category;
         _page=page || 1;
         orderByField = orderByField || "";
         _IdUser= _IdUser || parseInt(document.getElementById("inputUserId").value);
         AjaxService.getAllInMatchReachAndSafety(category,_page,_IdUser,orderByField,_orientation,_localId,_pageSize,this.Sort_callBack, OnAjaxTimeOut, OnAjaxError);         
      }
   };
}();
