South Hopkins High School
1956 - 1996

40 years of memories

School Song:    


OH SOUTH HOPKINS

This song was written by two members of the Senior Class,
Bobby Campbell, and Debbie Pulley.

As one of their gifts, The Class of '69 dedicates
"Oh South Hopkins" as the official song of

South Hopkins High School.


copied from 1969 Yearbook

To hear the tune, click on image or see the You tube below,


 

 

Halls of learning, lamps of knowledge

 

light our paths to happiness,

 

As we face the unknown future

 

may each find his own success

 

Blue and white, strength and courage,

 

all these things will guide our way

 

Halls of learning, lamps of knowledge

 

will inspire us every day.

 

Oh South Hopkins, Oh South Hopkins

 

school that means so much to me

 

Memories of happy moments fill our hearts

 

and souls with glee

 

Truth and Honor, Justice and Loyalty

 

all these things we've learned from thee

 

Oh South Hopkins, Oh South Hopkins

 

school that means so much to me.

 

Tune: In the glooming

<Div><Script Language="Javascript" Type="Text/Javascript"> 
//  Js Saved In Case The  Page Gets Overlayed Again.  Oct. 1 2017 After 67  Cr
  Var Dimages=New Array();   // For Acr Nametags
Var Numimages=85;

  Var Cr_Dimages=New Array();   // For 50Th Class Reunion Photos
Var Cr_Numimages=25;

 
  // >> This Code Is Used To Load The Preset Image Numbers From A Dir For A Slide Show. 
For (I=0; I<Numimages; I++)
{
  Dimages[I]=New Image();
  Dimages[I].Src="Nametag/Image"+(I+1)+".Jpg";

Var Curimage=-1;  
Console.Log("Images Loaded");
Function Swappicture()
{
  If (Document.Images)
  {

    Var Nextimage=Curimage+1;
    If (Nextimage>=Numimages)
      Nextimage=0;
    If (Dimages[Nextimage] && Dimages[Nextimage].Complete)
    {
      Var Target=0;
      If (Document.Images.Myimage)
        Target=Document.Images.Myimage;
      If (Document.All && Document.Getelementbyid("Myimage"))
        Target=Document.Getelementbyid("Myimage");
  
      // Make Sure Target Is Valid.  It Might Not Be Valid
      //   If The Page Has Not Finished Loading
      If (Target)
      {
        Target.Src=Dimages[Nextimage].Src;
        Curimage=Nextimage;
        //Console.Log(Dimages[Nextimage]);
      }
      Settimeout("Swappicture()", 5000);
    }
    Else
    {
      Settimeout("Swappicture()", 500);
    }
  }
// End Of Js To Display The Random Name Tags 
//
// >> This Code Is Used To Load The Class Reunion 
  // Photos For Attending Classmates.
  // Same Js Function With A Cr_ In Front. 
For (I=0; I< Cr_Numimages; I++)
{
  Cr_Dimages[I]=New Image();
  Cr_Dimages[I].Src="Images/Shhs/1967/Cr/Image"+(I+1)+".Jpg";

Var Cr_Curimage=-1;  
Console.Log("Cr_Images Loaded");
Function Cr_Swappicture()
{
  If (Document.Images)
  {

    Var Cr_Nextimage=Cr_Curimage+1;
    If (Cr_Nextimage>=Cr_Numimages)
      Cr_Nextimage=0;
    If (Cr_Dimages[Cr_Nextimage] && Cr_Dimages[Cr_Nextimage].Complete)
    {
      Var Cr_Target=0;
      If (Document.Images.Cr_Myimage)
        Cr_Target=Document.Images.Cr_Myimage;
      If (Document.All && Document.Getelementbyid("Cr_Myimage"))
        Cr_Target=Document.Getelementbyid("Cr_Myimage");
  
      // Make Sure Target Is Valid.  It Might Not Be Valid
      //   If The Page Has Not Finished Loading
      If (Cr_Target)
      {
        Cr_Target.Src=Cr_Dimages[Cr_Nextimage].Src;
        Cr_Curimage=Cr_Nextimage;
        //Console.Log(Cr_Dimages[Cr_Nextimage]);
      }
      Settimeout("Cr_Swappicture()", 5000);
    }
    Else
    {
      Settimeout("Cr_Swappicture()", 500);
    }
  }
 



Function Processmyrequest1 (Fileurl, Reqid){
  If (Ajaxreq[Reqid].Readystate == 4){
      If (Ajaxreq[Reqid].Status == 200){
         //Do Something With The Ajaxreq[Reqid] Object Here, E.G.:
         //Alert(Ajaxreq[Reqid].Responsetext);
         Console.Log("Processmyrequest1");
         Document.Getelementbyid("Multireturn-1").Innerhtml = Ajaxreq[Reqid].Responsetext
         Var Selected25  = Json.Parse(Ajaxreq[Reqid].Responsetext);
         Document.Getelementbyid("Multireturn-1").Innerhtml = " "; // Clear Out The Spinner If Running
          
         
         //Document.Getelementbyid("Multireturn-1").Innerhtml = Ajaxreq[Reqid].Responsetext
         //Document.Getelementbyid('multireturn-1').Innerhtml =("<Br>" + "0  " + Selected25[0] + "<Br>");
      Console.Log("Selected25 Is");
    Console.Log(Selected25);

 
      }
  }
  If (Ajaxreq[Reqid].Readystate == 1) {
  Document.Getelementbyid("Multireturn-1").Innerhtml ='<Img Src="../Ajax-Loader.Gif" Title="Loading..." Alt="Loading1..">';
  } 
}
      
    Function Processmyrequest2(Fileurl, Reqid){
  If (Ajaxreq[Reqid].Readystate == 4){
      If (Ajaxreq[Reqid].Status == 200){
         //Do Something With The Ajaxreq[Reqid] Object Here, E.G.:
         Console.Log("Processmyrequest2");
         Document.Getelementbyid("Multireturn-2").Innerhtml = Ajaxreq[Reqid].Responsetext
      }
   }
  If (Ajaxreq[Reqid].Readystate == 1) {
  Document.Getelementbyid("Multireturn-2").Innerhtml ='<Img Src="../Ajax-Loader.Gif" Title="Loading..." Alt="Loading2..">';
  } 
}

    Function Processmyrequest3(Fileurl, Reqid){
  If (Ajaxreq[Reqid].Readystate == 4){
      If (Ajaxreq[Reqid].Status == 200){
         //Do Something With The Ajaxreq[Reqid] Object Here, E.G.:
         Console.Log("Processmyrequest3");
         Var Cr_Selected25  = Json.Parse(Ajaxreq[Reqid].Responsetext);
         //Document.Getelementbyid("Multireturn-3").Innerhtml = Ajaxreq[Reqid].Responsetext
         Document.Getelementbyid("Multireturn-3").Innerhtml = " "; // Clear Out The Spinner If Running
      }
   }
  If (Ajaxreq[Reqid].Readystate == 1) {
  Document.Getelementbyid("Multireturn-3").Innerhtml ='<Img Src="../Ajax-Loader.Gif" Title="Loading..." Alt="Loading3..">';
  } 
}
    Function Processmyrequest4(Fileurl, Reqid){
  If (Ajaxreq[Reqid].Readystate == 4){
      If (Ajaxreq[Reqid].Status == 200){
         //Do Something With The Ajaxreq[Reqid] Object Here, E.G.:
         Console.Log("Processmyrequest4");
         Document.Getelementbyid("Multireturn-4").Innerhtml = Ajaxreq[Reqid].Responsetext
      }
   }
If (Ajaxreq[Reqid].Readystate == 1) {
  Document.Getelementbyid("Multireturn-4").Innerhtml ='<Img Src="../Ajax-Loader.Gif" Title="Loading..." Alt="Loading1..">';
  } 
}
 
Function Just_Alert(){
Console.Log("Just Alert Test");
}

Function Ajaht_Call(Fileurl, Reqid, Handlerfunc){
Console.Log("Ajaht_Call Function Is Here");
   If(Typeof(Ajaxreq) == "Undefined"){
      Ajaxreq = New Array();
   }
   //Ie
   If (Window.Activexobject){
      Ajaxreq[Reqid] = New Activexobject('microsoft.Xmlhttp');
      If (Ajaxreq[Reqid]){
         Ajaxreq[Reqid].Onreadystatechange
            = Function(){Handlerfunc(Fileurl, Reqid);};
         Ajaxreq[Reqid].Open('get', Fileurl, True);
         Ajaxreq[Reqid].Send();
      }
   }
   //Real Browsers
   Else If (Window.Xmlhttprequest) {
      Ajaxreq[Reqid] = New Xmlhttprequest();
      Ajaxreq[Reqid].Onreadystatechange
           = Function(){Handlerfunc(Fileurl, Reqid);};
      Ajaxreq[Reqid].Open('get', Fileurl, True);
      Ajaxreq[Reqid].Send(Null);
   }
}
// Var For Ip Address And Browser Write:
  Var Userip;  // Userip Address
  Var Vars; // Varables To Send To Php 
  Var Rpt; // Complete Useragent
  Var Brn2 = '-';
Var Brv2 = '-';
  // Usage To Get Browser Version: Http://Www.Gregoryvarghese.Com/How-To-Get-Browser-Name-And-Version-Via-Javascript/
  Var Browser=Get_Browser_Info();

  Brn1 = Browser.Name;
Brv1 = Browser.Version;
// Function To Report What Browser Is Being Used. 
Function Get_Browser_Info(){
    Var Ua=Navigator.Useragent,Tem,M=Ua.Match(/(Opera|Chrome|Safari|Firefox|Msie|Trident(?=/))/?S*(D+)/I) || []; 
    Rpt = Navigator.Useragent;
    //Console.Log(Navigator.Useragent);
    If(/Trident/I.Test(M[1])){
        Tem=/Rv[ :]+(D+)/G.Exec(Ua) || []; 
        Return {Name:'ie ',Version:(Tem[1]||'')};
        }   
    If(M[1]==='chrome'){
        Tem=Ua.Match(/Opr/(D+)/)
        If(Tem!=Null)   {Return {Name:'opera', Version:Tem[1]};}
        }   
    M=M[2]? [M[1], M[2]]: [Navigator.Appname, Navigator.Appversion, '-?'];
    If((Tem=Ua.Match(/Version/(D+)/I))!=Null) {M.Splice(1,1,Tem[1]);}
    Return {
      Name: M[0],
      Version: M[1]
      
    };
}

// Https://Www.Developphp.Com/Video/Javascript/Ajax-Post-To-Php-File-Xmlhttprequest-Object-Return-Data-Tutorial
Function Ajax_Post(){
    // Create Our Xmlhttprequest Object
    Var Hr = New Xmlhttprequest();
    
   If(Window.Xmlhttprequest) { // For Forefox, Ie7+, Opera, Safari, ...
    Hr = New Xmlhttprequest();
  }
  Else If(Window.Activexobject) { // For Internet Explorer 5 Or 6
    Hr = New Activexobject("Microsoft.Xmlhttp");
  }
        
    // Create Some Variables We Need To Send To Our Php File

    Var Url = "Codeblock_Getbrowser.Php";

    Vars = "Bname1="+Brn1+"&Bver1="+Brv1+"&Bname2="+Brn2+"&Bver2="+Brv2+"&Ip="+Userip+"&Report="+Rpt;
    //Console.Log(Vars);
    Hr.Open("Post", Url, True);
    // Set Content Type Header Information For Sending Url Encoded Variables In The Request
    Hr.Setrequestheader("Content-Type", "Application/X-Www-Form-Urlencoded");
    // Access The Onreadystatechange Event For The Xmlhttprequest Object
    Hr.Onreadystatechange = Function() {
    If(Hr.Readystate == 4 && Hr.Status == 200) {
    Var Return_Data = Hr.Responsetext;
Console.Log(Return_Data);
    }
    }
    // Send The Data To Php Now... And Wait For Response To Update The Status Div
    Hr.Send(Vars); // Actually Execute The Request
    // Document.Getelementbyid("Multireturn-8").Innerhtml = "Processing...";
    Console.Log('ajax Post Processing');
 
</Script>
<Script Type="Text/Javascript" Src="Https://Www.L2.Io/Ip.Js?Var=Userip"></Script>
<Script Type="Text/Javascript">
Ajaht_Call("Codeblock_Attendacrbadge.Php", 10, Processmyrequest1);
Ajaht_Call("Codeblock_Totalregistered.Php", 20, Processmyrequest2);
Ajaht_Call("Codeblock_Cr_Images.Php", 30, Processmyrequest3);
Ajaht_Call("Codeblock_Recentobits.Php", 40, Processmyrequest4); 
Settimeout("Swappicture()", 3000);
Settimeout("Cr_Swappicture()", 3000);
Ajax_Post(); // Send Browser , Version And Ip Address To Php
   
</Script></Div>
<Div><Script Language="Javascript" Type="Text/Javascript"> 
//  Js Saved In Case The  Page Gets Overlayed Again.  Oct. 1 2017 After 67  Cr
  Var Dimages=New Array();   // For Acr Nametags
Var Numimages=85;

  Var Cr_Dimages=New Array();   // For 50Th Class Reunion Photos
Var Cr_Numimages=25;

 
  // >> This Code Is Used To Load The Preset Image Numbers From A Dir For A Slide Show. 
For (I=0; I<Numimages; I++)
{
  Dimages[I]=New Image();
  Dimages[I].Src="Nametag/Image"+(I+1)+".Jpg";

Var Curimage=-1;  
Console.Log("Images Loaded");
Function Swappicture()
{
  If (Document.Images)
  {

    Var Nextimage=Curimage+1;
    If (Nextimage>=Numimages)
      Nextimage=0;
    If (Dimages[Nextimage] && Dimages[Nextimage].Complete)
    {
      Var Target=0;
      If (Document.Images.Myimage)
        Target=Document.Images.Myimage;
      If (Document.All && Document.Getelementbyid("Myimage"))
        Target=Document.Getelementbyid("Myimage");
  
      // Make Sure Target Is Valid.  It Might Not Be Valid
      //   If The Page Has Not Finished Loading
      If (Target)
      {
        Target.Src=Dimages[Nextimage].Src;
        Curimage=Nextimage;
        //Console.Log(Dimages[Nextimage]);
      }
      Settimeout("Swappicture()", 5000);
    }
    Else
    {
      Settimeout("Swappicture()", 500);
    }
  }
// End Of Js To Display The Random Name Tags 
//
// >> This Code Is Used To Load The Class Reunion 
  // Photos For Attending Classmates.
  // Same Js Function With A Cr_ In Front. 
For (I=0; I< Cr_Numimages; I++)
{
  Cr_Dimages[I]=New Image();
  Cr_Dimages[I].Src="Images/Shhs/1967/Cr/Image"+(I+1)+".Jpg";

Var Cr_Curimage=-1;  
Console.Log("Cr_Images Loaded");
Function Cr_Swappicture()
{
  If (Document.Images)
  {

    Var Cr_Nextimage=Cr_Curimage+1;
    If (Cr_Nextimage>=Cr_Numimages)
      Cr_Nextimage=0;
    If (Cr_Dimages[Cr_Nextimage] && Cr_Dimages[Cr_Nextimage].Complete)
    {
      Var Cr_Target=0;
      If (Document.Images.Cr_Myimage)
        Cr_Target=Document.Images.Cr_Myimage;
      If (Document.All && Document.Getelementbyid("Cr_Myimage"))
        Cr_Target=Document.Getelementbyid("Cr_Myimage");
  
      // Make Sure Target Is Valid.  It Might Not Be Valid
      //   If The Page Has Not Finished Loading
      If (Cr_Target)
      {
        Cr_Target.Src=Cr_Dimages[Cr_Nextimage].Src;
        Cr_Curimage=Cr_Nextimage;
        //Console.Log(Cr_Dimages[Cr_Nextimage]);
      }
      Settimeout("Cr_Swappicture()", 5000);
    }
    Else
    {
      Settimeout("Cr_Swappicture()", 500);
    }
  }
 



Function Processmyrequest1 (Fileurl, Reqid){
  If (Ajaxreq[Reqid].Readystate == 4){
      If (Ajaxreq[Reqid].Status == 200){
         //Do Something With The Ajaxreq[Reqid] Object Here, E.G.:
         //Alert(Ajaxreq[Reqid].Responsetext);
         Console.Log("Processmyrequest1");
         Document.Getelementbyid("Multireturn-1").Innerhtml = Ajaxreq[Reqid].Responsetext
         Var Selected25  = Json.Parse(Ajaxreq[Reqid].Responsetext);
         Document.Getelementbyid("Multireturn-1").Innerhtml = " "; // Clear Out The Spinner If Running
          
         
         //Document.Getelementbyid("Multireturn-1").Innerhtml = Ajaxreq[Reqid].Responsetext
         //Document.Getelementbyid('multireturn-1').Innerhtml =("<Br>" + "0  " + Selected25[0] + "<Br>");
      Console.Log("Selected25 Is");
    Console.Log(Selected25);

 
      }
  }
  If (Ajaxreq[Reqid].Readystate == 1) {
  Document.Getelementbyid("Multireturn-1").Innerhtml ='<Img Src="../Ajax-Loader.Gif" Title="Loading..." Alt="Loading1..">';
  } 
}
      
    Function Processmyrequest2(Fileurl, Reqid){
  If (Ajaxreq[Reqid].Readystate == 4){
      If (Ajaxreq[Reqid].Status == 200){
         //Do Something With The Ajaxreq[Reqid] Object Here, E.G.:
         Console.Log("Processmyrequest2");
         Document.Getelementbyid("Multireturn-2").Innerhtml = Ajaxreq[Reqid].Responsetext
      }
   }
  If (Ajaxreq[Reqid].Readystate == 1) {
  Document.Getelementbyid("Multireturn-2").Innerhtml ='<Img Src="../Ajax-Loader.Gif" Title="Loading..." Alt="Loading2..">';
  } 
}

    Function Processmyrequest3(Fileurl, Reqid){
  If (Ajaxreq[Reqid].Readystate == 4){
      If (Ajaxreq[Reqid].Status == 200){
         //Do Something With The Ajaxreq[Reqid] Object Here, E.G.:
         Console.Log("Processmyrequest3");
         Var Cr_Selected25  = Json.Parse(Ajaxreq[Reqid].Responsetext);
         //Document.Getelementbyid("Multireturn-3").Innerhtml = Ajaxreq[Reqid].Responsetext
         Document.Getelementbyid("Multireturn-3").Innerhtml = " "; // Clear Out The Spinner If Running
      }
   }
  If (Ajaxreq[Reqid].Readystate == 1) {
  Document.Getelementbyid("Multireturn-3").Innerhtml ='<Img Src="../Ajax-Loader.Gif" Title="Loading..." Alt="Loading3..">';
  } 
}
    Function Processmyrequest4(Fileurl, Reqid){
  If (Ajaxreq[Reqid].Readystate == 4){
      If (Ajaxreq[Reqid].Status == 200){
         //Do Something With The Ajaxreq[Reqid] Object Here, E.G.:
         Console.Log("Processmyrequest4");
         Document.Getelementbyid("Multireturn-4").Innerhtml = Ajaxreq[Reqid].Responsetext
      }
   }
If (Ajaxreq[Reqid].Readystate == 1) {
  Document.Getelementbyid("Multireturn-4").Innerhtml ='<Img Src="../Ajax-Loader.Gif" Title="Loading..." Alt="Loading1..">';
  } 
}
 
Function Just_Alert(){
Console.Log("Just Alert Test");
}

Function Ajaht_Call(Fileurl, Reqid, Handlerfunc){
Console.Log("Ajaht_Call Function Is Here");
   If(Typeof(Ajaxreq) == "Undefined"){
      Ajaxreq = New Array();
   }
   //Ie
   If (Window.Activexobject){
      Ajaxreq[Reqid] = New Activexobject('microsoft.Xmlhttp');
      If (Ajaxreq[Reqid]){
         Ajaxreq[Reqid].Onreadystatechange
            = Function(){Handlerfunc(Fileurl, Reqid);};
         Ajaxreq[Reqid].Open('get', Fileurl, True);
         Ajaxreq[Reqid].Send();
      }
   }
   //Real Browsers
   Else If (Window.Xmlhttprequest) {
      Ajaxreq[Reqid] = New Xmlhttprequest();
      Ajaxreq[Reqid].Onreadystatechange
           = Function(){Handlerfunc(Fileurl, Reqid);};
      Ajaxreq[Reqid].Open('get', Fileurl, True);
      Ajaxreq[Reqid].Send(Null);
   }
}
// Var For Ip Address And Browser Write:
  Var Userip;  // Userip Address
  Var Vars; // Varables To Send To Php 
  Var Rpt; // Complete Useragent
  Var Brn2 = '-';
Var Brv2 = '-';
  // Usage To Get Browser Version: Http://Www.Gregoryvarghese.Com/How-To-Get-Browser-Name-And-Version-Via-Javascript/
  Var Browser=Get_Browser_Info();

  Brn1 = Browser.Name;
Brv1 = Browser.Version;
// Function To Report What Browser Is Being Used. 
Function Get_Browser_Info(){
    Var Ua=Navigator.Useragent,Tem,M=Ua.Match(/(Opera|Chrome|Safari|Firefox|Msie|Trident(?=/))/?S*(D+)/I) || []; 
    Rpt = Navigator.Useragent;
    //Console.Log(Navigator.Useragent);
    If(/Trident/I.Test(M[1])){
        Tem=/Rv[ :]+(D+)/G.Exec(Ua) || []; 
        Return {Name:'ie ',Version:(Tem[1]||'')};
        }   
    If(M[1]==='chrome'){
        Tem=Ua.Match(/Opr/(D+)/)
        If(Tem!=Null)   {Return {Name:'opera', Version:Tem[1]};}
        }   
    M=M[2]? [M[1], M[2]]: [Navigator.Appname, Navigator.Appversion, '-?'];
    If((Tem=Ua.Match(/Version/(D+)/I))!=Null) {M.Splice(1,1,Tem[1]);}
    Return {
      Name: M[0],
      Version: M[1]
      
    };
}

// Https://Www.Developphp.Com/Video/Javascript/Ajax-Post-To-Php-File-Xmlhttprequest-Object-Return-Data-Tutorial
Function Ajax_Post(){
    // Create Our Xmlhttprequest Object
    Var Hr = New Xmlhttprequest();
    
   If(Window.Xmlhttprequest) { // For Forefox, Ie7+, Opera, Safari, ...
    Hr = New Xmlhttprequest();
  }
  Else If(Window.Activexobject) { // For Internet Explorer 5 Or 6
    Hr = New Activexobject("Microsoft.Xmlhttp");
  }
        
    // Create Some Variables We Need To Send To Our Php File

    Var Url = "Codeblock_Getbrowser.Php";

    Vars = "Bname1="+Brn1+"&Bver1="+Brv1+"&Bname2="+Brn2+"&Bver2="+Brv2+"&Ip="+Userip+"&Report="+Rpt;
    //Console.Log(Vars);
    Hr.Open("Post", Url, True);
    // Set Content Type Header Information For Sending Url Encoded Variables In The Request
    Hr.Setrequestheader("Content-Type", "Application/X-Www-Form-Urlencoded");
    // Access The Onreadystatechange Event For The Xmlhttprequest Object
    Hr.Onreadystatechange = Function() {
    If(Hr.Readystate == 4 && Hr.Status == 200) {
    Var Return_Data = Hr.Responsetext;
Console.Log(Return_Data);
    }
    }
    // Send The Data To Php Now... And Wait For Response To Update The Status Div
    Hr.Send(Vars); // Actually Execute The Request
    // Document.Getelementbyid("Multireturn-8").Innerhtml = "Processing...";
    Console.Log('ajax Post Processing');
 
</Script>
<Script Type="Text/Javascript" Src="Https://Www.L2.Io/Ip.Js?Var=Userip"></Script>
<Script Type="Text/Javascript">
Ajaht_Call("Codeblock_Attendacrbadge.Php", 10, Processmyrequest1);
Ajaht_Call("Codeblock_Totalregistered.Php", 20, Processmyrequest2);
Ajaht_Call("Codeblock_Cr_Images.Php", 30, Processmyrequest3);
Ajaht_Call("Codeblock_Recentobits.Php", 40, Processmyrequest4); 
Settimeout("Swappicture()", 3000);
Settimeout("Cr_Swappicture()", 3000);
Ajax_Post(); // Send Browser , Version And Ip Address To Php
   
</Script></Div>