/*
 * videoServers.js
 *
 * a set of funcstions and globals that manages which the server on which certain data is available
 *
 */

function vServer(name,ip0,ip1,ip2,ip3,mask0,mask1,mask2,mask3,availCode)
{
  this.name = name;
  this.ip = new Array(ip0,ip1,ip2,ip3);
  this.mask = new Array(mask0,mask1,mask2,mask3);
  this.availCode = availCode;
}



var videoOnServersCode = 0;
var picsOnServerCode = 0;
var vServers = new Array();
var globalPicsPath = "";
var slideData = new Array();

/*
vServers[0] = new vServer("movies.lovinghonors.com",206,28,50,202,255,255,255,255,1);
vServers[1] = new vServer("movies1.lovinghonors.com",68,208,154,160,255,255,255,224,2);
vServers[2] = new vServer("movies2.lovinghonors.com",142,179,222,136,255,255,255,248,4);
*/
vServers[0] = new vServer("movies.lovinghonors.com",206,28,50,202,255,255,255,255,1);
vServers[1] = new vServer("movies.lovinghonors.com",68,208,154,160,255,255,255,224,2);
vServers[2] = new vServer("movies.lovinghonors.com",142,179,222,136,255,255,255,248,4);
vServers[3] = new vServer("movies3.lovinghonors.com",142,179,222,136,255,255,255,248,8);


function setVideoOnServerCode(s){
  videoOnServersCode = s;
}


function setPicsOnServerCode(s){
  picsOnServersCode = s;
}
/*
function setSlideData(lineNum,picName,textContent)
{
  this.lineNum = lineNum;
  this.picName = picName;
  this.textContent = textContent;
  if (picName.length > 0) this.img = new Image();
  this.img.src = getCompletePicsPath() + picName;
}


function sortSlideData(a,b)
{
  if (a.lineNum < b.lineNum) return(-1);
  if (a.lineNum > b.lineNum) return(1);
  return(0);
}


function choosePicsServer(agencyNum)
{
  var i;
  var j = 0;
  var servers = new Array();
  var t;


  for (i=0;i<vServers.length;i++){
    if ((picsOnServersCode & vServers[i].availCode) != 0) servers[j++] = vServers[i].name;
  }
  if (servers.length == 0) return("");
  i = Math.round(Math.random() * servers.length);
  if (i == servers.length) i--;
  t = "http://" + servers[i] + "/" + getPartialPath(agencyNum) + "/videoTribute/";
  return(t);
}

*/

function chooseDownloadServer(agencyNum)
{
  var i;
  var j = 0;
  var servers = new Array();
  var t;


  for (i=0;i<vServers.length;i++){
    if ((videoOnServersCode & vServers[i].availCode) != 0) servers[j++] = vServers[i].name;
  }
  if (servers.length == 0) return("");
  i = Math.round(Math.random() * servers.length);
  if (i == servers.length) i--;
  t = "http://" + servers[i] + "/" + getPartialPath(agencyNum) + "/videoTribute/";
  return(t);
}


function getPartialPath(agencyNum)
{
  switch(agencyNum.toLowerCase().slice(0,1)){
    case 'a':
    case 'b':
    case 'c':
    case 'd':
    case 'e':
      return("a-e/" + agencyNum);
    case 'f':
    case 'g':
    case 'h':
    case 'i':
    case 'j':
      return("f-j/" + agencyNum);
    case 'k':
    case 'l':
    case 'm':
    case 'n':
    case 'o':
      return("k-o/" + agencyNum);
    case 'p':
    case 'q':
    case 'r':
    case 's':
    case 't':
      return("p-t/" + agencyNum);
    default:
      return("u-z/" + agencyNum);
  }
}


/*

function checkVDGLogin(tf)
{
  var i = whichMovieServer(tf.ip.value);
  if (tf.demandedServer.value > 0) i = tf.demandedServer.value;
alert(i);
  tf.suggestedServer.value = "" + vServers[i].availCode;
  tf.action = "http://" + vServers[i].name + "/cgi-bin/videoTribue";
//  return(false);
  return(true);
}



function setCompletePicsPath(agencyNum,obitNum)
{
  globalPicsPath = choosePicsServer(agencyNum) + obitNum + "/";
}

function getCompletePicsPath()
{
  return(globalPicsPath);
}


*/



function viewVideo(connection,agencyNum,obitNum)
{
  var h;

  h = chooseDownloadServer(agencyNum) + obitNum + "/" + obitNum + connection + ".wmv";
  window.location = h;
  return(false);
}


/*

function ipInRange(serverIP,serverMask,remoteIP)
{
  var i = remoteIP - serverIP;
  if (i < 0) return(false);
  i = (serverMask ^ 255) >= i;
  return(i);
}



function whichMovieServer(remoteIP)
{
  var i;
  var rIP = remoteIP.split(".");
  var vs = vServers;
  var b0,b1,b2,b3;
  for (i=0;i<vs.length;i++) {
    if (ipInRange(vs[i].ip0,vs[i].mask0,rIP[0]) && ipInRange(vs[i].ip1,vs[i].mask1,rIP[1]) && ipInRange(vs[i].ip2,vs[i].mask2,rIP!
  }
  if (i < vs.length) return(i);
  i = Math.floor(vs.length * Math.random());
  if (i == vs.length) i--;
  return(i);
}

*/
