// JavaScript Document

var TheGangGreen = {};

TheGangGreen.init = function(){
	if($('headline-image') && galleryFlag != ''){
		$('headline-image').setStyle('cursor', 'pointer');
		$('headline-image').addEvent('click', function(){
			Slimbox.open(galleryImages, 0, {loop:true});								   
		});
		if($('gallery-trigger')){
			$('gallery-trigger').addEvent('click', function(){
				Slimbox.open(galleryImages, 0, {loop:true});								   
			});
		}
		$('headline-image').addEvent('mouseover', function(){
			if($('gallery-alert'))
				$('gallery-alert').removeClass('hidden');
		});
		$('headline-image').addEvent('mouseout', function(){
			if($('gallery-alert'))
				$('gallery-alert').addClass('hidden');
		});
	}
	
	if($('contact-us') && $('submit-contact')){
		$('submit-contact').addEvent('click', TheGangGreen.submitContact);	
	}
	
	if($('list-comments') && $('submit-comment')){
		$('submit-comment').addEvent('click', TheGangGreen.submitComment);
	}
	
	if($('join-pool')){
		$('join-pool').addEvent('click', TheGangGreen.joinFootballPool);
	}
	
	if($('add-matchup')){
		$('add-matchup').addEvent('click', TheGangGreen.addFootballPoolMatchup);
	}
	
	if($('submit-picks')){
		$('submit-picks').addEvent('click', TheGangGreen.submitFootballPoolPicks);
	}
	
	if($('process-week')){
		$('process-week').addEvent('click', TheGangGreen.processFootballPoolPicks);
	}
	
	$$('a.external').addEvent('click', function(){
		window.open(this.href);
		return false;
	});
}

TheGangGreen.submitContact = function(){
	var flag = true;
	//clear alerts
	var submitString = '';
	$('contact-us').getElements('input[type=text]').each(function(el){
		el.removeClass('alert');
	});
	$('contact-us').getElements('textarea').each(function(el){
		el.removeClass('alert');
	});
	if($('contact-hint'))
		$('contact-hint').removeClass('alert');
	
	//start checking fields
	$('contact-us').getElements('input[type=text]').each(function(el){
		if(el.value == ''){
			flag = false;
			el.addClass('alert');
		}
		else{
			submitString += '&' + el.name + '=' + encodeURIComponent(el.value);
		}
	});
	$('contact-us').getElements('textarea').each(function(el){
		if(el.value == ''){
			flag = false;
			el.addClass('alert');
		}
		else{
			submitString += '&' + el.name + '=' + encodeURIComponent(el.value);
		}
	});
	if(!flag){
		if($('contact-hint'))
			$('contact-hint').addClass('alert');
	}
	else{
		var myRequest = new Request({method: 'post', url: '/services/contact-email.php', onSuccess: TheGangGreen.submitContactResponse});
		myRequest.send(submitString);
	}
	return false;
}

TheGangGreen.submitContactResponse = function(req, xml){
	if(TheGangGreen.getXmlElementText(xml, 'error') != ''){
		$('email').addClass('alert');
		if($('contact-hint'))
			$('contact-hint').addClass('alert');
	}
	if(TheGangGreen.getXmlElementText(xml, 'message') != ''){
		if($('contact-us')){
			$('contact-us').set('html', '<div class="contact-feedback">' + TheGangGreen.getXmlElementText(xml, 'message') + '</div>');
		}
	}
}

TheGangGreen.submitComment = function(){
	if($('comment') && blogID != undefined){
		if($('comment').value == ''){
			$('comment').addClass('alert');
		}
		else{
			var submitString = 'comment=' + encodeURIComponent($('comment').value) + '&blogID=' + blogID;
			var myRequest = new Request({method: 'post', url: '/services/post-comment.php', onSuccess: TheGangGreen.submitCommentResponse});
			myRequest.send(submitString);
		}	
	}
	
	return false;
}

TheGangGreen.submitCommentResponse = function(req, xml){
	if(TheGangGreen.getXmlElementText(xml, 'comments') != '' && $('list-comments')){
		$('list-comments').set('html', TheGangGreen.getXmlElementText(xml, 'comments')); 
	}
	if(TheGangGreen.getXmlElementText(xml, 'numComments') != '' && $('num-comments')){
		$('num-comments').set('html', TheGangGreen.getXmlElementText(xml, 'numComments')); 
	}
	if($('comment'))
		$('comment').value = '';
}

TheGangGreen.joinFootballPool = function(){
	var submitString = 'userID=' + userID;
	var myRequest = new Request({method: 'post', url: '/services/pool/join-pool.php', onSuccess: TheGangGreen.joinFootballPoolResponse});
	myRequest.send(submitString);
	return false;
}

TheGangGreen.joinFootballPoolResponse = function(req, xml){
	if(TheGangGreen.getXmlElementText(xml, 'message') == 'SUCCESS'){
		window.location.reload(true);
	}
	else{
		alert('An error has occurred while attempting to add you to the Football Pool');
	}
}

TheGangGreen.addFootballPoolMatchup = function(){
	if($('home-team').value == $('visitor-team').value){
		alert('Please, select different teams');
	}
	else{
		var submitString = 'week=' + week + '&home-team=' + encodeURIComponent($('home-team').value) + '&visitor-team=' + encodeURIComponent($('visitor-team').value) + '&gow=' + $('gow').checked;
		var myRequest = new Request({method: 'post', url: '/services/pool/add-matchup.php', onSuccess: TheGangGreen.addFootballPoolMatchupResponse});
		myRequest.send(submitString);
	}
	return false;
}

TheGangGreen.addFootballPoolMatchupResponse = function(req, xml){
	if(TheGangGreen.getXmlElementText(xml, 'error') !== ''){
		alert(TheGangGreen.getXmlElementText(xml, 'error'));
	}
	else{
		if($('matchups') && TheGangGreen.getXmlElementText(xml, 'content') !== '')
			$('matchups').set('html', TheGangGreen.getXmlElementText(xml, 'content'));
	}
}

TheGangGreen.submitFootballPoolPicks = function(){
	var flag = true;
	var picks = new Array();
	for(var i = 1; i <= numMatchups; i++){
		var obj = eval('document.matchups.matchup'+i);
		if(!obj[0].checked && !obj[1].checked){
			flag = false;
		}
		else{
			if(obj[0].checked){
				picks[i-1] = obj[0].value;
			}
			else if(obj[1].checked){
				picks[i-1] = obj[1].value;
			}
		}
	}
	
	if(flag){
		var submitString = 'week=' + week + '&userID=' + userID + '&picks=' + encodeURIComponent(picks);
		var myRequest = new Request({method: 'post', url: '/services/pool/make-picks.php', onSuccess: TheGangGreen.submitFootballPoolPicksResponse});
		myRequest.send(submitString);
	}
	else
		alert('Please make your pick for every matchup');
	return false;
}

TheGangGreen.submitFootballPoolPicksResponse = function(req, xml){
	if(TheGangGreen.getXmlElementText(xml, 'error') !== ''){
		alert(TheGangGreen.getXmlElementText(xml, 'error'));
	}
	else{
		if($('pool-content') && TheGangGreen.getXmlElementText(xml, 'content') !== '')
			$('pool-content').set('html', TheGangGreen.getXmlElementText(xml, 'content'));
	}
}

TheGangGreen.processFootballPoolPicks = function(){
	var flag = true;
	var picks = new Array();
	for(var i = 1; i <= numMatchups; i++){
		var obj = eval('document.matchups.matchup'+i);
		if(!obj[0].checked && !obj[1].checked && !obj[2].checked){
			flag = false;
		}
		else{
			if(obj[0].checked){
				picks[i-1] = obj[0].value;
			}
			else if(obj[1].checked){
				picks[i-1] = obj[1].value;
			}
			else if(obj[2].checked){
				picks[i-1] = obj[2].value;
			}
		}
	}
	
	if(flag){
		var submitString = 'week=' + week + '&userID=' + userID + '&picks=' + encodeURIComponent(picks);
		var myRequest = new Request({method: 'post', url: '/services/pool/process-week.php', onSuccess: TheGangGreen.processFootballPoolPicksResponse});
		myRequest.send(submitString);
	}
	else
		alert('Please enter outcome for every matchup');
	return false;
}

TheGangGreen.processFootballPoolPicksResponse = function(req, xml){
	if(TheGangGreen.getXmlElementText(xml, 'error') !== ''){
		alert(TheGangGreen.getXmlElementText(xml, 'error'));
	}
	else{
		if($('pool-content') && TheGangGreen.getXmlElementText(xml, 'content') !== '')
			$('pool-content').set('html', TheGangGreen.getXmlElementText(xml, 'content'));
	}
}

TheGangGreen.getXmlElementText = function(context, elementname){	
	var ret = "";
	var e = context.getElementsByTagName(elementname);
	if( e != null ){
		var i0 = e.item(0);
		if( i0 != null ){
			var fc = i0.firstChild;
			if( fc != null ){
				ret = fc.data;
			}
		}
	}
	return ret;
}

window.addEvent('domready', TheGangGreen.init);