// Global variables
// timerFlag is a global timer set to clear the add2Tour's message window
var timerAdd2Tour;
// timerAjaxFlag is a global timer set to keep track of how long it is
// taking for the Geogad server to respond. If it is longer than some
// prefered value, the program redirects the user input to another operation.
var timerAjaxAdd2Tour;


function isAjaxSupportedAdd2Tour() {
// Check if request can be created by is not used
   var request = null;
   if(typeof window.XMLHttpRequest != 'undefined')
   {
     request = new XMLHttpRequest();
   }
   else if(typeof window.ActiveXObject != 'undefined')
   {
     try { request = new ActiveXObject('Microsoft.XMLHTTP'); }
     catch(err) { request = null; }
   }
   if (request != null)
   	return(true); 
   else 
   	return(false); 

}

function add2TourSuccess(link, id) {
	window.clearTimeout(timerAdd2Tour);
	var rt = document.getElementById(id);
	rt.innerHTML = '<div class="add2TourBox"><div style="text-align: center" ><span class="blueText">This tour stop has been added to your <a href="'+link+'">tour</a>.</span></div></div>';
	timerAdd2Tour = window.setTimeout('add2TourClearMessage("'+id+'")', 7000); 

}

function add2TourWaitMessage(id) {
	window.clearTimeout(timerAdd2Tour);
	var rt = document.getElementById(id);
	rt.innerHTML = '<div class="add2TourBox"><div style="text-align: center" >Sending....</span></div></div>';
}

function add2TourProblemMessage(id) {
	window.clearTimeout(timerAdd2Tour);
	var rt = document.getElementById(id);
	rt.innerHTML = '<div class="add2TourBox"><div style="text-align: center" ><span class="yellowBackground redfont">Problem adding tour stop. Please try again later.</span></div></div>';
	timerAdd2Tour = window.setTimeout('add2TourClearMessage("'+id+'")', 7000); 
}

function add2TourSelectMessage() {
	var rt = document.getElementById("dynamicMenuBox_error");
	rt.innerHTML = 'Select the reason for flagging.';
}


function add2TourClearMessage(id) {
	var rt = document.getElementById(id);
	rt.innerHTML = '';
}

function add2TourClearTimers() {
// free callback timer here
   window.clearTimeout(timerAdd2Tour);
   window.clearTimeout(timerAjaxAdd2Tour);
}

function ChangeFocusAdd2Tour(switchFocus2, value) {
   if (value != null) {
	// User has selected a valid value; Switch focus to first MP3 file
        setfocus(switchFocus2);
   }
}

// Handler function for AJAX call
function print2DynamicMenuBox4Add2Tour(data) {

// free callback timer here
   window.clearTimeout(timerAjaxAdd2Tour);
// check for returned data
   if ((data == "") || (data == null)) {
   	add2TourProblemMessage("dynamicMenuBox");
   }  else {
   	add2TourSuccess(data, "dynamicMenuBox")
   }

return false;

}

function sendAdd2Tour(nickname, tsID, box) { 

   // old browsers technique - seems to work fine
   var selectBox = document.getElementById("add2TourSelect");
   var add2TourSelected = selectBox.options[selectBox.selectedIndex].value;

   if (add2TourSelected == null) {
	add2TourSelectMessage();
	return false;
   }
   if (add2TourSelected.indexOf("Select") > -1)  {
	add2TourSelectMessage();
	return false;
   } 
   if (add2TourSelected.indexOf("newTour") > -1)  {
	return true;
   } 

   	if (isAjaxSupportedAdd2Tour()) {
		window.clearTimeout(timerAjaxAdd2Tour);
   		JGetCTInfo.addTourStopJS(nickname, tsID, add2TourSelected, print2DynamicMenuBox4Add2Tour);
		timerAjaxAdd2Tour = window.setTimeout('add2TourProblemMessage("'+box+'")', 30000); 
		add2TourWaitMessage(box);
		return false;
	} else { 
		return true ; 
	} 

}

function print2DisplayAdd2TourBoxDynamic(data) {

// check for returned data
   if ((data == "") || (data == null)) {
   	//Don't worry about it
	return;
   }  else {
                var text = "<select name='add2TourSelect' id='add2TourSelect' "+
                	"onChange='ChangeFocusAdd2Tour(sendAdd2TourButton, this.value);' >"+
                	"<option value='Select'>--Select a Tour--</option>";

// data comes in as a JSON object
//		var str = eval( "(" + data + ")" );
		var str = data;
   		var i;
   		for (i in str.Results) {
   			var customTourName = str.Results[i].Name;
	   		var customTourID = str.Results[i].CustomTourID;
            		if (customTourName.length > 50)
                		customTourName = customTourName.substring(0,49);
   			var tsNumSelect = str.Results[i].NumberTS;
            		if (tsNumSelect > 1) {
                		text += "<option value='"+customTourID+"'>"+customTourName+" ("+tsNumSelect+" Tour Stops)</option>";
	            	} else {
        	        	text += "<option value='"+customTourID+"'>"+customTourName+" ("+tsNumSelect+" Tour Stop)</option>";
            		}
	   	}	
        	text += "<option value='newTour'>[New Tour]</option>";
	        text += "</select>";
		var box = document.getElementById("displaySelectBox");
		box.innerHTML = text;   
   }

}

// Don't worry about AJAX timer
function DisplayAdd2TourBoxDynamic(thisNickname, thisTSID, elem) {

   var box = document.getElementById(elem);

   var add2TourBoxInfo = "<div class='add2TourBox'>"+
		"<div style='text-align: right' >(<a class='easyLink' title='Close this box' href='#' onclick='add2TourClearMessage(\"dynamicMenuBox\"); return false;' >Close</a>)</div>"+
                "<div style='text-align: center' >"+
                "<span class='add2TourTitle'>Add Tour Stop to Tour</span></div>"+
		"<div style='text-align: left' >"+                
                "<FORM  ENCTYPE='application/x-www-form-urlencoded' ACTION='./NewAdd2Tour' METHOD=POST name='Add2TourForm' id='Add2TourForm' "+
		" onsubmit='return sendAdd2Tour(\""+thisNickname+"\", \""+thisTSID+"\", \""+elem+"\"); return false;' >"+    
                "<div style='text-align: center' >"+
                "<span id='dynamicMenuBox_error' name='dynamicMenuBox_error' class='loudred'> "+
                "</span><br/>"+
		"<div id='displaySelectBox' name='displaySelectBox'>"+
                "<select name='add2TourSelect' id='add2TourSelect' "+
                "onChange='ChangeFocusAdd2Tour(sendAdd2TourButton, this.value);' >"+
                "<option value='Select'>--Select a Tour--</option>"+
                "<option value='newTour'>[New Tour]</option>"+
                "</select>"+
		"</div>"+
                "<INPUT TYPE='submit' VALUE='Send Select' name='sendAdd2TourButton' id='sendAdd2TourButton'  style='margin:1em 0em 1em 0em' />"+
                "<div style='text-align: left'></div>"+
                "</div>"+
                "<INPUT TYPE=hidden NAME='tsidAdd2Tour' id='tsidAdd2Tour' VALUE="+thisTSID+">"+
                "<INPUT TYPE=hidden NAME='cidAdd2Tour' id='cidAdd2Tour' VALUE='"+thisNickname+"'>"+
                "</FORM> </div>";		
   box.innerHTML = add2TourBoxInfo;
		
   JGetCTInfo.getCustomTour4UserJS(thisNickname, print2DisplayAdd2TourBoxDynamic);

}