// JavaScript Document - Fraiser Therapy Session Page - Session Main Routines

// Other routines called are in 'zcommon.js'

// ************** Data *************************************************

   
var FName = ""						// Name
var SFName = ""						// Name with quotes around it fot output
var Sjunk = ""						// Used if user enters an invalid name
									
var doNext = 0						// what to do next indicator

var PCrane = "Dr. Crane> \n "		// Dr. Crame Pefix
var PRoz = "Roz> \n "				// Roz Pefix


var cvalue = null					// value of Caller textbox (document.tsform.Caller.value)
var dvalue = null					// value of Display textbox (document.tsform.Display.value)

var ecnt = 0						// Error msg counter
										

var Nflg = false					// got name = true - set in DoName() cookie routine
									// NOTE: Nflg not used in Fraier Fan Site


// *********************************************************************

// Caller Response Routine
// "value" = textarea caller response value - string
function SendCaller() {  
	switch (doNext)  {
		case 0:
			alert("Error in SendCaller() case: "+doNext)
			break;
			
		case 1:							// Name typed in
			NameIn()
			break;
			
		case 2:							// In Session !
			Session()
			break;
			
		default:
			alert("Error in SendCaller() in default block.")
			break;
	
	}  // end switch

} // end function

// *************************************************************************

// Caller Entered Name Routine
function NameIn() {  // doNext = 1
    FName        = cvalue.value			// Fname is string entered by Caller
	dvalue.value = CheckIt(FName)		// Check input then output response
	cvalue.value = ""					// Clear Caller textarea
} // end function

// ************************************************************************

function  alphaInput(pValue)  {  // verify alpha input
 var results = true
 var acnt = 0
 var flen
 
 Sjunk = pValue
 
 if (pValue == "" ) {
  Sjunk = "<nothing>"
  return false
 }
 
 var cTemp = pValue.toLowerCase()   // convert to lower case for testing
 
 if (cTemp.length > 20) flen = 20
 else flen = cTemp.length
 
 
 for (var i=0; i<flen; i++)  {
   acnt += 1  // character position
   if ( cTemp.charAt(i) < 'a' || cTemp.charAt(i) > 'z'  ) {  // not a - z
	    
	     if ( !((cTemp.charAt(i) == ".")  && (acnt != 1)) ) {  // not . 
		     
		     if ( !( (cTemp.charAt(i) == " ")  ) ) {  //  not space
		       results = false                          // indicate an error found
		     }
		}
    }  // end if  not a - z
	
 } // end for
 
   
return results 
} // end function
// **********************************************************************


function CheckIt(FName) {				//check Name Input
 var msg = PRoz							// Roz is speaking
 
 //var msg = "You typed: "+SFName+SFName+s2+sEnd
 
 if (FName == "")  {				// Caller hit button without entering name
     FName = 'Shy One'
	 SFName = '"Shy One"'
	 msg += nameA[1]+SFName+s2+'\n\n'+PCrane+introDr+SFName+sEnd
	 SetName(FName)					// Save "Shy One" to cookie
 }
 else {  // not blank
  var result = alphaInput(FName)  // result is either "true" or "false" (junk entered for name)
  
  if (result == false) {  // not alpha
	   FName =  'Careful One'
	   SFName = '"Careful One"'
	   msg += 'What\'s with the "'+Sjunk+'" ?  '+nameA[2]+'Frasier, '+SFName+s2+'\n\n'+PCrane+
	           introDr+SFName+sEnd
	   SetName(FName)							// Save "Careful One" to cookie
	}
	else if (result != false) {
	  SFName = '"'+FName+'"'					// put quotes around name
	  msg += 'Frasier, we have '+SFName+s2+'\n\n'+PCrane+
	          introDr+SFName+sEnd
	  SetName(FName)  							// not junk so, save name to cookie
	}
 } // end else not blank

 doNext = 2										// Session time
								
 
return msg
} // end function


// *************************************************************************

// Roz Requests Caller Name
function NamePrompt()  {
	doNext = 1							// expecting name
	dvalue.value = PRoz + nameA[0]
}	// end  function


// **************************************************************************


function WelcomeF() { //check Name Input
 var s1 = "  See how good my memory is?  You're from Cyberspace, right?  OK.  "
 SFName = '"'+FName+'"'  // put quotes around name
 var msg = '\n\nFrasier, we have '+SFName+s2+'\n\n'+PCrane+
            introDr+SFName+sEnd
 
 if ( FName == "Shy One" || FName == "Careful One" ) {
   dvalue.value = PRoz+"Welcome back "+SFName+", !"+s1+" Are you feeling more outgoing yet?\n\n"+
                  nameA[3]
   doNext = 1			// Process name prompt from Roz
 }
 else {
   dvalue.value = PRoz+"Welcome back "+SFName+", !"+s1+msg
   doNext = 2			// Session time
 }
 

 return 
} // end function

// *********************************************************************


function Session()  {
	var eFlag
	var msg = PCrane
	var Rmsg = ""						// Roz response
	
			
	var Slen = startA.length - 1		//  start array
	var Elen = endA.length - 1			//  end array
	var Rlen = rozA.length - 1			//  Roz array
	
	
	// Roz response
	
   	eFlag = getRandom(30)				// random number in 'ans'
	if ( eFlag == false ) return
	if ( parseInt(ans/2) == parseFloat(ans/2) )  {  // Randomize it kindof
		eFlag = getRandom(Rlen)				// random number in 'ans'
		if ( eFlag == false ) return
		Rmsg = '\n\n'+PRoz+rozA[ans]		// once and a while Roz says something
	} 

	
	if ( cvalue.value == "" )  {
	  ecnt += 1
	  if (ecnt >= 4)  {
	     dvalue.value = msg + msgE1 + SFName + "!"+Rmsg
		 ecnt = 0
	  }
	  else {
	    dvalue.value = msg + msgE + ', ' + SFName + "."+Rmsg
	  }
	  
	  return
	} // end if blank
	
	var result = alphaInput(cvalue.value)  // result is either "true" or "false" (junk entered for name)
	if (result == false) {  // not alpha
	   dvalue.value = msg+'Why the "' +Sjunk+ '" ?  Why the anger, '+SFName+'? \n\n'+msgE+'!'+Rmsg
	   return
	}	
	
 
 	eFlag = getRandom(Slen)				// random number in 'ans'
    if ( eFlag == false ) return
 	msg += startA[ans]+'  '
 
 	eFlag = getRandom(Elen)				// random number in 'ans'
    if ( eFlag == false ) return
 	msg += endA[ans]+' '+SFName+"."
	
		
	
 	dvalue.value = msg+Rmsg				// Display output
	
 	return true
} // end function
// *********************************************************************


// NOTE:  Need routines ' NamePrompt()' and 'WelcomeF()' to process info

function LoadName()  {
 DoName()										// Get Name Cookie - FName == returned name
 
 if ( FName == "" )  {							//  No name stored on this PC yet
   NamePrompt()									// Send name prompt from Page
 }

 else  {										// the user was here before
   WelcomeF()									// Send 1st display without prompting for name again
  }
 
 
 return
} // end function
// **********************************************************************


// 1st Routine called upon load
function Loaded()  {							// ***** Main Routine *****
 cvalue = window.document.tsform.Caller			// cvalue.value = Caller textarea
 dvalue = window.document.tsform.Display		// dvalue.value = Roz/Dr textarea
 dvalue.value = ""								// clear Roz/Dr.display area
 cvalue.value = ""								// clear Caller display area
 
 LoadName()										// Get stored name in cookie

} // end function
// *********************************************************************