var instructionFontPath = '/servlet/ImageServlet?type=renderText&f=poodlepushernf%20plain%2049&b1=ffffff&b2=ffffff&c1=f8a8cd&c2=e2027c&bw=1.0&xo=4&yo=0&b=0&str=';
var leagueCreationContents;
var leagueCreationInstructions;
var leagueCreationData;
var leagueRecruitmentFields = 1;
var leagueRecruitmentData;
var contextPath = '/sandbox2/testRun/';


function initLeagueRecruitment()
{

	dojo.debug('leagueRecruitment');
	
//	var existingTab = dojo.widget.byId('recruitmentTab');
	
	//if( !existingTab )
	//	leagueCreationTabs.addChild( dojo.widget.createWidget('dojo:ContentPane',{ id: 'recruitmentTab', label:'Step 3', href: '/beta/testRun/leagueRecruitment.jsp'} ));
}



function gotoLeagueHomePage(id)
{
		var tabs = dojo.widget.byId('mainTabContainer');	
	tabs.selectChild(dojo.widget.byId('league_tab'));
	//dojo.widget.byId('leagueCreationContainer').setUrl('/beta/concept/leagueHome2.jsp');
	setTimeout( 'leagueHome.loadLeague(' + id + ');' ,1000);

}


function searchLeagues()
{
	var term = dojo.byId('searchLeagueField').value;
	dojo.debug('getting leagues with term ' + term);
	
	if( term.length <= 0 )
	{
		loadLeagues();
		return;
	}
	
	LeagueOps.searchLeagues( userOps.user.userId, term , function(data)
	{
		dojo.debug( 'searched available leagues' );
		var tgt = dojo.byId('leagueTableBody');
		dojo.debug( 'league table is ' + tgt );
		dojo.dom.removeChildren( tgt );	
		var rows = tgt.getElementsByTagName('TR');
		for( var  i = 0; i < rows.length; i+= 1)
		{
			dojo.debug( 'removing row ' + i );
		//	tgt.removeChild( rows[i] );
			tgt.deleteRow( i );
		}
		
	/*	var hRow = tgt.insertRow(0);
		var c1 = hRow.insertCell(0);
		c1.innerHTML = 'Team Name';
		var c2 = hRow.insertCell(1);
		c2.innerHTML = '# of Managers';
		var c3 = hRow.insertCell(2);
		c3.innerHTML = 'Start Date';
		var c4 = hRow.insertCell(3);
		c4.innerHTML = 'Join';
		*/
		
		if( data.length <= 0 )
		{
			var row = tgt.insertRow( 0  );
			c1 = row.insertCell(0);
			c1.innerHTML = '<span style="font-family: arial; color: #e4007b;">Sorry! Your query did not return any available leagues.</span><br>'
			+	'<a style="font-weight: bold; font-size: 14px; " onclick="loadLeagues();" ><u>Click here to view available leagues.</u></a>';
			row.className = 'joinLeagueRow'
			return;
		}
		
		for( var i = 0; i < data.length; i += 1 )
		{
			var row = tgt.insertRow( i  );
			c1 = row.insertCell(0);
			c2 = row.insertCell(1);
			c3 = row.insertCell(2);
			c4 = row.insertCell(3);
			
			c1.innerHTML ='<a onclick="javascript:gameOps.loadLeague(' + data[i].leagueId + ');">' + data[i].name +'</a>';
			
				if( data[i].size == 1 )
			{
			c2.innerHTML = data[i].size + ' Team Manager';
			
			}
			else
			{
			c2.innerHTML = data[i].size + ' Team Managers';
			}
			
			
			c3.innerHTML = data[i].drafts[0].dateString;
			
			
				
		//	if( data[i].teams != null )
		//	{
			//	dojo.debug( 'data[i].teams : ' + data[i].teams );
				
				if( data[i].size >= 8 )
				{
				dojo.debug( 'data[i].teams.length : ' + data[i].size );
				c4.innerHTML = '<span style="font-family: arial; color: #e4007b;">This league is currently full.</span>';
				}
			else
			{
				c4.innerHTML = '<a style="font-family: arial; color: #e4007b;" onclick="javascript:leagueOps.joinLeague(' + data[i].leagueId + ');">Join Now!</a>';
			}			
		
			
			if( i % 2 == 0 )
			{
				row.className = 'joinLeagueRowAlt'
			} else row.className = 'joinLeagueRow';
			
			
		}
		
	});
	

}


function loadLeagues()
{
	dojo.debug('getting leagues');
	LeagueOps.getAvailableLeagues( userOps.user.userId, 1, 80 , function(data)
	{
		dojo.debug( 'got available leagues' );
		var tgt = dojo.byId('leagueTableBody');
		dojo.debug( 'league table is ' + tgt );
		dojo.dom.removeChildren( tgt );	
		var rows = tgt.getElementsByTagName('TR');
		for( var  i = 0; i < rows.length; i+= 1)
		{
			dojo.debug( 'removing row ' + i );
			tgt.deleteRow( i );
		}
		
		if( data.length <= 0 )
		{
			var row = tgt.insertRow( 0  );
			c1 = row.insertCell(0);
			c1.innerHTML = '<span style="font-family: arial; color: #e4007b;">Sorry! There are no available leagues at this time.</span>';
			row.className = 'joinLeagueRow'
			return;
		}
		
	/*	var hRow = tgt.insertRow(0);
		var c1 = hRow.insertCell(0);
		c1.innerHTML = 'Team Name';
		var c2 = hRow.insertCell(1);
		c2.innerHTML = '# of Managers';
		var c3 = hRow.insertCell(2);
		c3.innerHTML = 'Start Date';
		var c4 = hRow.insertCell(3);
		c4.innerHTML = 'Join';
		*/
		for( var i = 0; i < data.length; i += 1 )
		{
		
		 
			
			var row = tgt.insertRow( i  );
			c1 = row.insertCell(0);
			c2 = row.insertCell(1);
			c3 = row.insertCell(2);
			c4 = row.insertCell(3);
			
			c1.innerHTML ='<a onclick="javascript:gameOps.loadLeague(' + data[i].leagueId + ');">' + data[i].name +'</a>';
			
			if( data[i].size == 1 )
			{
			c2.innerHTML = data[i].size + ' Team Manager';
			
			}
			else
			{
			c2.innerHTML = data[i].size + ' Team Managers';
			}
			
			c3.innerHTML = data[i].drafts[0].dateString;
			
				if( data[i].size >= 8 )
				{
				dojo.debug( 'data[i].teams.length : ' + data[i].size );
				c4.innerHTML = '<span style="font-family: arial; color: #e4007b;">This league is currently full.</span>';
				}
			else
			{
				c4.innerHTML = '<a style="font-family: arial; color: #e4007b;" onclick="javascript:leagueOps.joinLeague(' + data[i].leagueId + ');">Join Now!</a>';
			}			
		
			
			if( i % 2 == 0 )
			{
				row.className = 'joinLeagueRowAlt'
			} else row.className = 'joinLeagueRow';
			
			
		}
		
	});
	

}


function initPrivateLeagueContent()
{
	var lpass2 = dojo.widget.byId('league2PasswordField');
	
	lpass2.isValid = function()
	{
			var lpass1 = dojo.byId('league1PasswordField');
			var lpass2 = dojo.byId('league2PasswordField');

			if( lpass1.value == lpass2.value )
			{
				return true;
			}
			else return false;
	};		
}


function appendLeagueRecruitmentField(data)
{
	dojo.debug('appendLeagueRecruitmentField');
	
	if( leagueRecruitmentFields > 7 )
	{
		alert('Sorry you may only invite 8 friends to your league...');
		return;
	}
	
	leagueRecruitmentFields +=1 ;

	var list = dojo.byId('leagueRecruitmentList');

	var li = document.createElement('li');
	
	
	var newField = document.createElement('div');
	
	newField.setAttribute('class','leagueFormAnswer');
	
	
	newField.innerHTML += '#' + leagueRecruitmentFields;
	
	var input = document.createElement('input');
	
	newField.appendChild(input);
	
	li.appendChild(newField);
	
	list.appendChild(li);
	
	var newId = 'email' + leagueRecruitmentFields + 'Field';
	var newIdName =  'email' + leagueRecruitmentFields;
	
	var newValidator = dojo.widget.createWidget('dojo:EmailTextbox', { id: newId, name: newIdName, trim: true,  maxLength: 64, 
			invalidMessage: "Invalid Email Address.", required: false }, input );
			
	input.focus();
}


function updateLeagueCreationPreviewTable(data)
{
	var table = dojo.byId('leagueCreationPreviewTable');
	
	var size = data.length;
	
	for( var i = 0; i < size; i+=1)
	{
		var row = document.createElement('tr');
		
		var td1 = document.createElement('tr');
		var td2 = document.createElement('tr');
		
		td1.innerHTML = data[i].name;
		td2.innerHTML = data[i].value;
		
		row.appendChild(td1);
		row.appendChild(td2);
		
		table.appendChild(row);
	}	

}


var leagueCreationTabs;

function initLeagueCreationTabs()
{
dojo.debug( 'initLeagueCreationTabs');
	leagueCreationTabs = dojo.widget.byId('leagueCreationTabContainer');
	leagueCreationManager.init();
	//leagueCreationTabs.addChild( dojo.widget.createWidget('dojo:ContentPane',{id:'leagueTypeTab', label:'Step 1', href: '/sandbox2/testRun/selectLeagueType.jsp'} ));
}

	
var leagueCreationManager = 
{
	currentStep: 1,
	leagueData: null,
	inviteData: null,
	leagueType: 'PUBLIC_LEAGUE',
	recruitmentFields: 1,
	tabController: null,
	
	handleTabSelection: function(data)
	{
		dojo.debug( 'leagueCreationManager.handleTabSelection');
		dojo.debug(data);
	},
	init: function()
	{
		dojo.event.topic.subscribe("leagueCreationTabContainer-selectChild", this, this.handleTabSelection);
		dojo.event.topic.subscribe("leagueCreationTabContainer-addChild", this, this.handleTabSelection);
		this.tabController = dojo.widget.byId('leagueCreationTabController');
	//	dojo.widget.byId('leagueCreationContainer').setUrl('/beta/testRun/leagueCreationManager.jsp');
		
	},
	
	
	
	validatePrivateLeague: function(data)
	{
		dojo.debug('leagueCreationManager.validatePrivateLeague');
		
		this.leagueData = data;
		
		dojo.debug( 'leagueCreationManager.leagueData: ' + dojo.json.serialize(this.leagueData) );
		
		this.currentStep = 2;
		
		this.leagueType = 'PRIVATE_LEAGUE';
		
		this.initRecruitment();
		
	
	},
	
	validatePublicLeague: function(data)
	{
		dojo.debug('leagueCreationManager.validatePublicLeague');
		
		this.leagueData = data;
		
		dojo.debug( 'leagueCreationManager.leagueData: ' + dojo.json.serialize(this.leagueData) );
		
		this.currentStep = 2;
		
		this.leagueType = 'PUBLIC_LEAGUE';
		
		this.initRecruitment();
		
	},
	
	validateRecruitment: function(data)
	{
		dojo.debug('leagueCreationManager.validateRecruitment');
		
		this.inviteData = data;
		
		dojo.debug( 'leagueCreationManager.inviteData: ' + dojo.json.serialize(this.inviteData) );
		
		dojo.debug('leagueCreationManager.DONE');
		
		this.currentStep = 3;
		
		this.submitLeagueCreationRequest();
		
	},
	
	initRecruitment: function()
	{
		dojo.debug('leagueCreationManager.leagueRecruitment');
	
		var existingTab = dojo.widget.byId('recruitmentTab');
		
		leagueCreationTabs = dojo.widget.byId('leagueCreationTabContainer');
	
	//	if( !existingTab )
		//	leagueCreationTabs.addChild( dojo.widget.createWidget('dojo:ContentPane',{ id: 'recruitmentTab', label:'Step 3', style: 'display: none;' ,  href: '/beta/testRun/leagueRecruitment.jsp'} ));
		
		dojo.widget.byId('recruitmentTab').controlButton.onClick();
	},
	
	initPrivateLeague: function()
	{
		dojo.debug('leagueCreationManager.initPrivateLeague');
		
		var conflictingTab = dojo.widget.byId('publicLeagueTab');
		
		if( conflictingTab )
		{
			leagueCreationTabs.removeChild( conflictingTab );
			conflictingTab.destroy();
		}
	
		var existingTab = dojo.widget.byId('privateLeagueTab');
		
		leagueCreationTabs = dojo.widget.byId('leagueCreationTabContainer');
		
	//	if( !existingTab )
		//	leagueCreationTabs.addChild( dojo.widget.createWidget('dojo:ContentPane',{ id: 'privateLeagueTab', label:'Step 2',  style: 'display: none;' , href:  '/beta/testRun/createPrivateLeague.jsp'} ));
	
		setTimeout(initPrivateLeagueContent,600);
		
		dojo.widget.byId('privateLeagueTab').controlButton.onClick();
	
	},
	
	initPublicLeague: function()
	{
		dojo.debug('leagueCreationManager.initPublicLeague');
		
		var conflictingTab = dojo.widget.byId('privateLeagueTab');
		
		if( conflictingTab )
		{
			leagueCreationTabs.removeChild( conflictingTab );
			conflictingTab.destroy();
		}
		
		var existingTab = dojo.widget.byId('publicLeagueTab');
		
		leagueCreationTabs = dojo.widget.byId('leagueCreationTabContainer');
		
	//	if( !existingTab )
	//		leagueCreationTabs.addChild( dojo.widget.createWidget('dojo:ContentPane',{ id: 'publicLeagueTab', style: 'display: none;' , label:'Step 2', href: '/beta/testRun/createPublicLeague.jsp'} ));
		
		dojo.widget.byId('publicLeagueTab').controlButton.onClick();
	},
	
	submitLeagueCreationRequest: function()
	{
		
		dojo.debug("leagueCreationManager.submitLeagueCreationRequest");
  		var req = dojo.string.escape('html',"/servlet/LeagueCreationServlet?");
 	
  		var bindArgs = 
  		{ 
			url:req,
			load: function(type,data,evt)
			{
				leagueCreationManager.leagueCreationCallback(data);
			},
			error: function(type,error)
			{
				dojo.debug("ERROR: submitLeagueCreationRequest: " + error.message );
			},
			mimetype: "text/json",
			transport: "XMLHTTPTransport",
			content: 
			{
				"type": this.leagueType,
				"leagueData" : dojo.json.serialize(this.leagueData),
				"inviteData" : dojo.json.serialize(this.inviteData)
			}
		};	
		
		dojo.io.bind(bindArgs);
	},
	
	leagueCreationCallback: function(data)
	{
		var queryStatus = data.queryStatus;
		
		if( queryStatus == 'error' )
		{
			var errorType = data.error;
			
			if( errorType == 'invalid' )
			{
				alert('Invalid session! Login and try again...');
			}
			
			else if( errorType == 'exists' )
			{
				alert('Sorry, a league with that name already exists...');
				
				if( this.leagueType == 'PUBLIC_LEAGUE' )
				{
					dojo.widget.byId('publicLeagueTab').controlButton.onClick();
				}
				else if( this.leagueType == 'PRIVATE_LEAGUE' )
				{
					dojo.widget.byId('privateLeagueTab').controlButton.onClick();
				}
			
			}
		
		}
		else if( queryStatus == 'success' )
		{
			alert('You have successfully created a new league!');
		
		}
	
	}
	
};

