
//Java Script for FilmsandTV.com Actor Connect
//Update Jan 2007

var pageName;
var actorName4Hint = '';

//Capture Kbd Event
var nav = window.Event ? true : false;
if (nav) {
   window.captureEvents(Event.KEYDOWN);
   window.onkeydown = NetscapeEventHandler_KeyDown;
} else {
   document.onkeydown = MicrosoftEventHandler_KeyDown;
}

function NetscapeEventHandler_KeyDown(e) {
  if (e.which == 13 && e.target.type != 'textarea' && e.target.type != 'submit') { return false; }
  return true;
}

function MicrosoftEventHandler_KeyDown() {
  if (event.keyCode == 13 && event.srcElement.type != 'textarea' && event.srcElement.type != 'submit') return false;
  return true;
}


//***** Startup from PageLoad Event
function startup(inPageName) {
  pageName = inPageName;
 
  switch(inPageName) {
    case 'index':   
	    window.status = "Actor Connect [Home Page]";
		document.getElementById("txtHdnCheck4Java").value = "1";
		window.status = "Actor Connect [Game Setup]";
		break;
	
	case 'gamerun':
	 	//if (document.getElementById('hintHeader')) document.getElementById('hintHeader').style.display = 'none';
	    window.status = "Actor Connect [Play Game]";
		break;
  }
}


//**************************************************************************
//************************* G A M E   R U N ********************************
//**************************************************************************
function movieChanged() {
  var moviePkey = '0';
  
  //clear actor list box
  document.forms[0].cboActorName.options.length = 0;
  moviePkey = frmMain.cboMovieName[frmMain.cboMovieName.selectedIndex].value;
  wait(200);
  if (moviePkey != 0) {
	document.getElementById("cboActorName").disabled = false;
	document.body.style.backgroundColor = '#FFFF33';
	document.getElementById('cboActorName').className = 'cboSelect';
	ajaxSearch4MovieWithActors (moviePkey);
  } else {
	document.getElementById("panelMovie").innerHTML = '';
	frmMain.cboActorName.options[0] = new Option('-- Select an Actor --', '0', false, false);
	document.getElementById('cboActorName').className = 'cboSelectDis';
	document.getElementById("cboActorName").disabled = true;
  }
}


//***** Ajax for movies
var editNum = 0;
var numItems = 0;
var allowKey = 1;

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}
var httpObj = createRequestObject();


function ajaxSearch4MovieWithActors(inSearchStr) {
  var randNumber = 5;
  httpObj.open('get', 'http://connect.filmsandtv.com/ajaxActx.php?nocache=' + randNumber + '&ajq=' + inSearchStr + '&inOp=1');
  httpObj.onreadystatechange = handleResponse4MovieWithActors;
  httpObj.send(null);
}

function handleResponse4MovieWithActors() {
  var numItems;
  var numArrItems;
  var loopCount;

  showhide('divBusy');
  document.body.style.cursor = 'wait';
  if ((httpObj.readyState == 4) && (httpObj.status == 200)) {
    var retArr = httpObj.responseText.split("|");

    //Set number items and Mode
	numReturned = retArr[0];
	numArrItems = retArr.length;
	
	//Show movie Detail
	document.getElementById("panelMovie").innerHTML = retArr[numArrItems -2];
 
	//Populate Actor listbox
    frmMain.cboActorName.options[0] = new Option('-- Select an Actor --', '0', false, false);
	
	loopCount = 1;
	nameKey = 0;
	for (var ii=1; ii<numArrItems -1; ii++) {
	  if (nameKey == 0) {
		actPkey = retArr[ii];
		nameKey = 1;
	  } else {
		actName = retArr[ii];
		nameKey = 0;
		frmMain.cboActorName.options[loopCount] = new Option(actName, actPkey, false, false);
		loopCount ++;
	  }
	}
	document.body.style.cursor = 'default';
  }
}



//***** Ajax for hints
function closeHints () {
  document.getElementById('gamehelp').style.display = 'none';
  document.getElementById('hintHeader').style.display = 'none';
  document.getElementById('scrollClipHint').style.display = 'none';
}

function ajaxSearch4Hints(inSearchStr,inSortOrder) {
  var randNumber = 5;
  
  showhide('divBusy');
  closeHints();
  
  //Get hint name from local var if 0
  if (inSearchStr == 0) inSearchStr = actorName4Hint; else actorName4Hint = inSearchStr;
  
  //Set hint top header bar
  if (document.getElementById){ 
    document.getElementById('hintHeader').style.display = '';
    document.getElementById('scrollClipHint').style.display = '';
	document.getElementById('txtHintHeader').value = "Movie Listings for " + inSearchStr;
  }
  httpObj.open('get', 'http://connect.filmsandtv.com/ajaxActx.php?nocache=' + randNumber + '&ajq=' + inSearchStr + '&inOp=3&inso=' + inSortOrder);
  httpObj.onreadystatechange = handleResponse4Hints;
  httpObj.send(null);
}

function handleResponse4Hints() {
  document.body.style.cursor = 'wait';
  if ((httpObj.readyState == 4) && (httpObj.status == 200)) {
    var retArr = httpObj.responseText.split("|");

	//Setup hint array
	var numArrItems = retArr.length;
	var movieNames = '';
	var divID = '';
	var linkClass = 'linkHint';
	var detailClass = 'hintDetail';
	for (var ii=0; ii<numArrItems -1; ii++) {
	  divID = 'mh' +  ii ;
	  var movieHintArr = retArr[ii].split("^");
	  movieNames += '<a href="#" class="' + linkClass +'" onclick=showhide("' + divID + '")>' + movieHintArr[0] + "</a><br />";
	  movieNames += '<div class="' + detailClass + '" id="' + divID + '" style="display:none">' + movieHintArr[1] + '</div>';
	  
	  if (linkClass == 'linkHint2') linkClass = 'linkHint'; else linkClass = 'linkHint2';
	  if (detailClass == 'hintDetail2') detailClass = 'hintDetail'; else detailClass = 'hintDetail2';
	}
	//Display hint
	document.getElementById('scrollClipHint').innerHTML = movieNames;
	document.body.style.cursor = 'default';
	showhide('divBusy');
  }
}



//**************************************************************************
//************************ G A M E   S E T U P *****************************
//**************************************************************************

var editNumMovieStartActor = 0;
var editNumMovieEndActor = 0;
var editNumMovieKBActor = 0;

var numItems = 0;
var waitingForReply = false;


function itemClick(inEle, inStartEndActor) {
  var actName = '';
  
  //clear actor pulldown
  document.getElementById(inEle).style.backgroundColor = "transparent";
  document.getElementById(inEle).style.color = "whitesmoke";
  
  if (document.getElementById(inEle).value != "") {
	actName = document.getElementById(inEle).value;
    if (inStartEndActor == 1) document.getElementById("txtActSS1").value  = actName;
    if (inStartEndActor == 2) document.getElementById("txtActSS2").value  = actName;
	if (inStartEndActor == 3) document.getElementById("txtActKB").value  = actName;
  }
}


function mOver(inEle, inStartEndActor) {
  if (inStartEndActor == 1) {
    mOut('txtss1');
    mOut('txtss2');
    mOut('txtss3');
    mOut('txtss4');
  }
  if (inStartEndActor == 2) {
    mOut('txtss1a');
    mOut('txtss2a');
    mOut('txtss3a');
    mOut('txtss4a');
  }
  if (inStartEndActor == 3) {
    mOut('txtkb1');
    mOut('txtkb2');
    mOut('txtkb3');
    mOut('txtkb4');
  }

  if (document.getElementById(inEle).value != "") {
    document.getElementById(inEle).style.backgroundColor = "navy";
    document.getElementById(inEle).style.color = "yellow";
  }  
}

function mOut(inEle) {
  if (document.getElementById(inEle).value != "") {
    document.getElementById(inEle).style.backgroundColor = "transparent";
    document.getElementById(inEle).style.color = "whitesmoke";
  }
}


function KeyUp(e, inStartEndActor) {
	var key = window.event ? e.keyCode : e.which;
    var submitSearch = 1;
	
	if (key == 13 ||key == 27 ||key == 33 ||key == 34 ||key == 38 ||key == 48) submitSearch = 0;
	
    //Set actor autoselect to human for bacon game
	if (inStartEndActor == 3) {
	  objCustomAutoSelectRadio1 = document.getElementById('radKBAutoActor1');
	  objCustomAutoSelectRadio1.checked = true;
	}

    //Set actor autoselect to human for custom game
	if (inStartEndActor == 1 || inStartEndActor == 2) {
	  objCustomAutoSelectRadio1 = document.getElementById('radAutoActor1');
	  objCustomAutoSelectRadio1.checked = true;
	}

  document.getElementById('txtss1').style.backgroundColor = "transparent";
  document.getElementById('txtss2').style.backgroundColor = "transparent";
  document.getElementById('txtss3').style.backgroundColor = "transparent";
  document.getElementById('txtss4').style.backgroundColor = "transparent";
  
  document.getElementById('txtss1a').style.backgroundColor = "transparent";
  document.getElementById('txtss2a').style.backgroundColor = "transparent";
  document.getElementById('txtss3a').style.backgroundColor = "transparent";
  document.getElementById('txtss4a').style.backgroundColor = "transparent";
  
  document.getElementById('txtkb1').style.backgroundColor = "transparent";
  document.getElementById('txtkb2').style.backgroundColor = "transparent";
  document.getElementById('txtkb3').style.backgroundColor = "transparent";
  document.getElementById('txtkb4').style.backgroundColor = "transparent";
  
  document.getElementById('txtss1').style.color = "whitesmoke";
  document.getElementById('txtss2').style.color = "whitesmoke";
  document.getElementById('txtss3').style.color = "whitesmoke";
  document.getElementById('txtss4').style.color = "whitesmoke";
  
  document.getElementById('txtss1a').style.color = "whitesmoke";
  document.getElementById('txtss2a').style.color = "whitesmoke";
  document.getElementById('txtss3a').style.color = "whitesmoke";
  document.getElementById('txtss4a').style.color = "whitesmoke";
  
  document.getElementById('txtkb1').style.color = "whitesmoke";
  document.getElementById('txtkb2').style.color = "whitesmoke";
  document.getElementById('txtkb3').style.color = "whitesmoke";
  document.getElementById('txtkb4').style.color = "whitesmoke";

  //enter
  if (key == 13) {
	if (inStartEndActor == 1 && editNumMovieStartActor >= 0) {
      if (editNumMovieStartActor == 0) itemClick("txtActSS1", '1');
      if (editNumMovieStartActor == 1) itemClick("txtss1", '1');
  	  if (editNumMovieStartActor == 2) itemClick("txtss2", '1');
  	  if (editNumMovieStartActor == 3) itemClick("txtss3", '1');
  	  if (editNumMovieStartActor == 4) itemClick("txtss4", '1');
	}	
	if (inStartEndActor == 2 && editNumMovieEndActor >= 0) {
      if (editNumMovieEndActor == 0) itemClick("txtActSS2", '2');
      if (editNumMovieEndActor == 1) itemClick("txtss1a", '2');
  	  if (editNumMovieEndActor == 2) itemClick("txtss1a", '2');
  	  if (editNumMovieEndActor == 3) itemClick("txtss1a", '2');
  	  if (editNumMovieEndActor == 4) itemClick("txtss1a", '2');
	}	
	if (inStartEndActor == 3 && editNumMovieKBActor >= 0) {
      if (editNumMovieKBActor == 0) itemClick("txtActkb", '3');
      if (editNumMovieKBActor == 1) itemClick("txtkb1", '3');
  	  if (editNumMovieKBActor == 2) itemClick("txtkb2", '3');
  	  if (editNumMovieKBActor == 3) itemClick("txtkb3", '3');
  	  if (editNumMovieKBActor == 4) itemClick("txtkb4", '3');
	}
  }
  
  if (inStartEndActor == 1) {
    if (key == 34) { // page down
    	newKey = document.getElementById("txtss4").value;
	    if (newKey != "") ajaxSearch(newKey, inStartEndActor);
	  }  
    if (key == 33) { // page up
  	  newKey = document.getElementById("txtss1").value;
	  ajaxSearch(newKey, inStartEndActor);
	}  
	if (key == 38 || key == 40) {
      mOut("txtss1", '1');
  	  mOut("txtss2", '1');
  	  mOut("txtss3", '1');
  	  mOut("txtss4", '1');
  	  if (key == 38) editNumMovieStartActor--;  // up arrow
      if (key == 40) editNumMovieStartActor++;  // down arrow
      if (editNumMovieStartActor > numItemsActAj1) editNumMovieStartActor = numItemsActAj1;
      if (editNumMovieStartActor < 1) editNumMovieStartActor = 0;
  	  if (editNumMovieStartActor == 1) mOver("txtss1", 1);
  	  if (editNumMovieStartActor == 2) mOver("txtss2", 1);
  	  if (editNumMovieStartActor == 3) mOver("txtss3", 1);
  	  if (editNumMovieStartActor == 4) mOver("txtss4", 1);
    }
  }
  if (inStartEndActor == 2) {
  	if (key == 34) { // page down
  		newKey = document.getElementById("txtss4a").value;
	    if (newKey != "") ajaxSearch(newKey, inStartEndActor);
	  }  
 	  if (key == 33) { // page up
        newKey = document.getElementById("txtss1a").value;
	    ajaxSearch(newKey, inStartEndActor);
	  }  
	  if (key == 38 || key == 40) {
      mOut("txtss1a", '2');
  	  mOut("txtss2a", '2');
  	  mOut("txtss3a", '2');
  	  mOut("txtss4a", '2');
  	  if (key == 38) editNumMovieEndActor--;  // up arrow
      if (key == 40) editNumMovieEndActor++;  // down arrow
      if (editNumMovieEndActor > numItemsActAj2) editNumMovieEndActor = numItemsActAj2;
      if (editNumMovieEndActor < 1) editNumMovieEndActor = 0;
  	  if (editNumMovieEndActor == 1) mOver("txtss1a", 2);
  	  if (editNumMovieEndActor == 2) mOver("txtss2a", 2);
  	  if (editNumMovieEndActor == 3) mOver("txtss3a", 2);
  	  if (editNumMovieEndActor == 4) mOver("txtss4a", 2);
    }
  }
  
  if (inStartEndActor == 3) {
  	if (key == 34) { // page down
  		newKey = document.getElementById("txtActKB").value;
	    if (newKey != "")  ajaxSearch(newKey, inStartEndActor);
	  }  
 	  if (key == 33) { // page up
        newKey = document.getElementById("txtkb1").value;
	    ajaxSearch(newKey, inStartEndActor);
	  }  
	  if (key == 38 || key == 40) {
      mOut("txtkb1", '3');
  	  mOut("txtkb2", '3');
  	  mOut("txtkb3", '3');
  	  mOut("txtkb4", '3');
  	  if (key == 38) editNumMovieKBActor--;  // up arrow
      if (key == 40) editNumMovieKBActor++;  // down arrow
      if (editNumMovieKBActor > numItemsActAj3) editNumMovieKBActor = numItemsActAj3;
      if (editNumMovieKBActor < 1) editNumMovieKBActor = 0;
  	  if (editNumMovieKBActor == 1) mOver("txtkb1", 3);
  	  if (editNumMovieKBActor == 2) mOver("txtkb2", 3);
  	  if (editNumMovieKBActor == 3) mOver("txtkb3", 3);
  	  if (editNumMovieKBActor == 4) mOver("txtkb4", 3);
    }
  }
  
  if (submitSearch == 1) {
    if (inStartEndActor == 1) newKey = document.getElementById("txtActSS1").value;
	if (inStartEndActor == 2) newKey = document.getElementById("txtActSS2").value;
	if (inStartEndActor == 3) newKey = document.getElementById("txtActKB").value;
    if (newKey == '') newKey = "a";
	ajaxSearch(newKey, inStartEndActor);
  }
	
  //var srcObjName = event.srcElement.id;
  //if (srcObjName == 'txtActKB' && key == 13) {
	//document.getElementById('btnPlayKB').focus();
    //document.getElementById('frmDefault').submit();
	//return true;
  //}

  
}

var StartEndActor;
var numItemsActAj1;
var numItemsActAj2;
var numItemsActAj3;

function ajaxSearch (inSearchStr, inStartEndActor) {
  var randNumber = 5;
  var gameLevelNum = 0;
  var gameDecadeNum = 0;
  var gameGenreNum = 0;
  
  //Decade
  if (document.getElementById){ 
    decadeObj = document.getElementById("cboDecade");
    gameDecadeNum = decadeObj.options[decadeObj.selectedIndex].value; 
  }
  //cboDecade
  if (document.getElementById){ 
    genreObj = document.getElementById("cboGenre");
    gameGenreNum = genreObj.options[genreObj.selectedIndex].value; 
  }
  
  if (waitingForReply == false) {
	StartEndActor = inStartEndActor;
  	waitingForReply = true;
	httpObj.open('get', 'http://connect.filmsandtv.com/ajaxActx.php?nocache=' + randNumber + '&ajq=' + inSearchStr + '&inOp=2' + '&inlevel=' + gameLevelNum + '&indecade=' + gameDecadeNum + '&ingenre=' + gameGenreNum  );
	//httpObj.open('get', 'ajaxActx.php?nocache=' + randNumber + '&ajq=' + inSearchStr + '&inOp=2');
    httpObj.onreadystatechange = handleResponse4ActorDropdown;
    httpObj.send(null);
  }  
}

function handleResponse4ActorDropdown() {
  if ((httpObj.readyState == 4) && (httpObj.status == 200)) {
    var retArr = httpObj.responseText.split("|");
	
	if (StartEndActor == 1 || StartEndActor == 99) {
	  numItemsActAj1 = retArr[0];	  
	  document.getElementById("txtss1").value = '';
      document.getElementById("txtss2").value = '';
      document.getElementById("txtss3").value = '';
      document.getElementById("txtss4").value = '';
      if (retArr.length > 1) document.getElementById("txtss1").value = retArr[1];
      if (retArr.length > 2) document.getElementById("txtss2").value = retArr[2];
      if (retArr.length > 3) document.getElementById("txtss3").value = retArr[3];
      if (retArr.length > 4) document.getElementById("txtss4").value = retArr[4];
	}
	if (StartEndActor == 2) {
	  numItemsActAj2 = retArr[0];	  
	  document.getElementById("txtss1a").value = '';
      document.getElementById("txtss2a").value = '';
      document.getElementById("txtss3a").value = '';
      document.getElementById("txtss4a").value = '';
      if (retArr.length > 1) document.getElementById("txtss1a").value = retArr[1];
      if (retArr.length > 2) document.getElementById("txtss2a").value = retArr[2];
      if (retArr.length > 3) document.getElementById("txtss3a").value = retArr[3];
      if (retArr.length > 4) document.getElementById("txtss4a").value = retArr[4];
	}
	
	if (StartEndActor == 3) {
	  numItemsActAj3 = retArr[0];	  
	  document.getElementById("txtkb1").value = '';
      document.getElementById("txtkb2").value = '';
      document.getElementById("txtkb3").value = '';
      document.getElementById("txtkb4").value = '';
      if (retArr.length > 1) document.getElementById("txtkb1").value = retArr[1];
      if (retArr.length > 2) document.getElementById("txtkb2").value = retArr[2];
      if (retArr.length > 3) document.getElementById("txtkb3").value = retArr[3];
      if (retArr.length > 4) document.getElementById("txtkb4").value = retArr[4];
	}
	
	//For page load
	if (StartEndActor == 99) {
	  document.getElementById("txtss1a").value = document.getElementById("txtss1").value;
	  document.getElementById("txtss2a").value = document.getElementById("txtss2").value;
	  document.getElementById("txtss3a").value = document.getElementById("txtss3").value;
	  document.getElementById("txtss4a").value = document.getElementById("txtss4").value;
	  
	  document.getElementById("txtkb1").value = document.getElementById("txtss1").value;
	  document.getElementById("txtkb2").value = document.getElementById("txtss2").value;
	  document.getElementById("txtkb3").value = document.getElementById("txtss3").value;
	  document.getElementById("txtkb4").value = document.getElementById("txtss4").value;
	}
	
	//alert ('numItemsActAj1=' + numItemsActAj1);
	
	waitingForReply = false;
  }
}


//Set Genre or Decade
function SetGenreDecade (inOperType) {
  if (inOperType == 1) document.getElementById("cboGenre").selectedIndex = 0;
  if (inOperType == 2) document.getElementById("cboDecade").selectedIndex = 0;
}

//showhide bacon setup
function shBaconSetup (inID) {
    showhide('setupBK1');
	showhide('setupBK0');
	if (inID == 'setupBK1') {
	  if (document.getElementById("txtActKB").value == "")
        ajaxSearch("a",99);
      else
        ajaxSearch(document.getElementById("txtActKB").value,99);
	}
}


//showhide custom setup
function shCustomSetup (inID) {
    showhide('setupC1');
	showhide('setupC0');
	if (inID == 'setupC1') {
	  if (document.getElementById("txtActSS1").value == "")
        ajaxSearch("a",99);
      else
        ajaxSearch(document.getElementById("txtActSS1").value,99);
	  
	  //wait(2100);
	  if (document.getElementById("txtActSS2").value == "")
        ajaxSearch("a",2);
      else
        ajaxSearch(document.getElementById("txtActSS2").value,2);
	}
	
}


//Check user selected a movie and actor
function checkInput() {
  var movieID;
  var actorID;
  var errMsg = '';

  showhide('divBusy');
  
  movieID = document.getElementById("cboMovieName").selectedIndex;
  actorID = document.getElementById("cboActorName").selectedIndex;
  
  if (movieID == 0) errMsg = 'Please Select a Movie';
  if (actorID == 0) {
    if (errMsg == '') errMsg = 'Please Select an Actor'; else errMsg += '\nPlease Select an Actor';
  }
  if (errMsg != '') {
	alert (errMsg);
	showhide('divBusy');
	return false;
  }
  if (movieID == 0) document.getElementById("cboMovieName").focus();
  
}

//show/Hide help
function showHideHelp() {
  document.getElementById('hintHeader').style.display = 'none';
  document.getElementById('scrollClipHint').style.display = 'none';
  showhide('gamehelp');
}

//Show hide object
function showhide(id){ 
  if (document.getElementById){ 
    obj = document.getElementById(id); 
    if (obj.style.display == "none"){ 
      obj.style.display = "";
    } else { 
      obj.style.display = "none"; 
    } 
  }
} 

function wait(millis) 
{
  var date = new Date();
  var curDate = null;

  do { curDate = new Date(); } 
  while(curDate-date < millis);
} 


function bookmark() {
  var yep = confirm("Would you like to add this game to your favorites?\n\n URL:www.connectfilmsandtv.com");
  if (yep) {
    if (window.external) 
	  window.external.AddFavorite('http://www.connect.filmsandtv.com','6 Degrees Game');
	else
      alert ("Sorry! Your browser doesn't support auto bookmarks. \nYou may add the link manually.");
  }
}