$(function() {
	// =========================================================
	//submit a dish form
	$('#modifyDishForm').jvalidate({
		watermark: true, 
		useSummary: true, 
		useTitles: true,
		styleParent:true,
		showValidation: false,
		attach:'top', 
		formCallback: function() {
			var v = $('input[name="UserId"]').val();
			if(v <= 0 || v == '')
			{
				__fromSubmit = true;
				$('.loginButton').colorbox({inline:true, href:'.loginBox', open:true});
				return false;
			}
			var fdata = $('#modifyDishForm').serialize();
			$('.submitDishCase div.loading').animate({top:'0px'});
			$('.submitDishCase div.submitDishForm').animate({top:'-340px'});
			$.ajax({
				url: 'modifyDish.php',
				type: 'POST',
				dataType: 'json',
				data: fdata+'&ssid='+SSID,
				success: function(data) {
					if(data.error == 0)
					{
						var currentTime = new Date();
						var month = currentTime.getMonth() + 1;
						var day = currentTime.getDate();
						var year = currentTime.getFullYear();
						var city = '';
						if(data.dish.city != 'undefined')
						{
							var city = data.dish.city;
						}
						
						$('.showcaseReel').prepend('<li class="name="'+data.dish.id+'" style="display:none;"><h3>'+cleanAnds(data.dish.name)+' <span>('+cleanAnds(data.dish.course)+')</span></h3><h5>'+cleanAnds(data.dish.resturant)+' | '+cleanAnds(data.dish.city)+' '+data.dish.state+'</h5><p><span>Submitted on '+month + "/" + day + "/" + year+' by You.</span></p></li>');
						setReelStyles();
						$('.showcaseReel li:hidden').show('slow');
						setTimeout(function() {removeOldDishes();}, 2000);
						$('.shareDish').attr('name', cleanAnds(data.dish.name));
						$('.shareDish').attr('rel', cleanAnds(data.dish.resturant) + ' in ' + cleanAnds(data.dish.city) + ' ' + cleanAnds(data.dish.state));
						$('.shareDish').attr('rev', removeE(data.dish.course));
						$('.shareDish').unbind().click(function() {shareFacebook();});
						$('.shareTwitter').attr('href', 'http://twitter.com/home?status=' + encodeURI('I just submitted '+$('.shareDish').attr('name')+' as my favorite '+$('.shareDish').attr('rev')+' at '+$('.shareDish').attr('rel')+'. Check it out at http://www.dishkarma.com'));
						$('.shareEmailDish').attr('href', 'mailto:?subject=FW:I just submitted '+$('.shareDish').attr('name')+' as my favorite '+$('.shareDish').attr('rev')+'.&body=Check it out at http://www.dishkarma.com');
						$('.submitDishCase div.loading').animate({top:'-340px'});
						$('.submitDishCase div.share').animate({top:'0px'});
					}
					else
					{
						$('.submitDishCase div.loading').animate({top:'340px'});
						$('.submitDishCase div.submitDishForm').animate({top:'0px'});
						$('.submitDishCase div.submitDishForm .submitDishForm').html('<ul class="validation-summary"><li>'+data.message+'</li></ul>').find('ul').delay(2000).slideUp();	
					}
				},
				error: function(XMLHttpRequest, textStatus, errorThrown) {
					$('.submitDishCase div.loading').animate({top:'340px'});
					$('.submitDishCase div.submitDishForm').animate({top:'0px'});
					$('.submitDishCase div.submitDishForm .invalidData').html('<ul class="validation-summary"><li>Something went wrong. Please try again.</li></ul>').find('ul').delay(2000).slideUp();
				}
			});
			return false;
		}
	});
	
	new AjaxUpload('uploadFileButton', {
		action: 'uploadFile.php',
		onSubmit: function() {
    		this.disable();
			$('.uploadFileText').html('Uploading Image...');	
			$('input[name="SubmitADish"]').fadeOut();
			$('.uploadFileButton').fadeOut();
		},
		onComplete: function(file, response){
			$('.formSubmit').fadeIn();
			
			var data = response.split('|');
			if(data[0] == '')
			{
				this.enable();
				$('input[name="SubmitADish"]').fadeIn();
				$('.uploadFileButton').fadeIn();
				$('.submitDishCase div.submitDishForm .invalidData').html('<ul class="validation-summary"><li>'+data[1]+'</li></ul>').find('ul').delay(2000).slideUp();
				$('.uploadFileText').html('Image?');	
			}
			else
			{
				$('input[name="SubmitADish"]').fadeIn();
				$('.uploadFileText').html('Image Uploaded!');	
				// add file to the list
				$('input[name="image"]').val(data[0]);
				this.enable();
			}
		}
	});
	
	$('.selectBox[name=courses]').sSelect({ddMaxHeight: '180px'});
	$('.selectBox[name=state]').sSelect({ddMaxHeight: '120px'});

	// =========================================================
	
	
	
	$('a.findResturant').colorbox({inline:true, href:'.resturantPopup'});
	$('.findResturant').click(function() { preloadResturants(); });
	$('.shareAnotherDish').click(function() { 
		$('.submitDishCase div.share').animate({top:'340px'});
		$('.submitDishCase div.submitDishForm').animate({top:'0px'});
		$.each($('#modifyDishForm .textBox input'), function() {
			var $o = $(this);
			var w = $o.attr('watermark');
			$o.val(w).parent().addClass('validation-watermark');
			$('#uploadFileButton').show();
		});
		$('.selectBox:first').getSetSSValue('Course');
		$('.selectBox:first').val('Course');
		$('.newListSelected:first .selectedTxt').text('Course');
		
		$('.selectBox:last').getSetSSValue('State');
		$('.selectBox:last').val('State');
		$('.newListSelected:last .selectedTxt').text('State');
		$('.submitDishCase .validation-passed').removeClass('validation-passed');
	});
	
	$('.resturantPopup .resturantList li').live('click', function() {
		$t = $(this);
		if($t.hasClass('resturant'))
		{
			ttitle = $t.find('.resturantTitle').text();
			tstate = $t.find('.resturantDetails').text();
			tname = $t.attr('name');
			$('input[name=resturantyahooid]').val(tname);
			$('input[name=resturantname]').val(ttitle);
			$('select[name="state"]').getSetSSValue(tstate);
			$.fn.colorbox.close();
		}
		return false;
	});
	
	$('.addResturant').click(function() {
		stateVal = $('select[name=state]').val();
		cityVal = $('input[name=city]').val();
		nameVal = $('input[name=resturantname]').val();
		stateVal = stateVal == '' ? '' : stateVal;
		nameVal = nameVal == '' ? '' : nameVal;
		cityVal = cityVal == '' ? '' : cityVal;
		$.ajax({
			url:'findResturant.php',
			type: 'GET',
			dataType: 'json',
			data:{addNew:1,state:stateVal,name:nameVal,city:cityVal},
			success: function(data) {
				if(data.error == 0)
				{
					$('input[name=resturantyahooid]').val('-'+data.resturantid);
					$.fn.colorbox.close();
				}
				else
				{
					$.fn.colorbox.close();
				}
			},
			error: function(XMLHttpRequest, textStatus, errorThrown) {
				//alert(XMLHttpRequest+' '+textStatus+' '+errorThrown);
				$.fn.colorbox.close();
			}
		});
		
		return false;
	});
	
	$('.userdish:not(.ultimatedish)').click(function() {
		alert($(this).attr("id"));
		$.ajax({
			url:'updateUltimate.php',
			type: 'GET',
			data:$(this).attr("id"),
			success: function(data) {
				
			},
			error: function(XMLHttpRequest, textStatus, errorThrown) {
				//alert(XMLHttpRequest+' '+textStatus+' '+errorThrown);
			}
			});
	});
	pullNewDishes(false);
	setInterval("pullNewDishes(false)", 10000);
});

function cleanAnds(s) {
	if(s != undefined)
		return s.replace('&amp;', '&');	
}

function removeE(s) {
	return s.replace('&amp;eacute;', 'e');
}

function pullNewDishes(oneOff) {
	l = $('.showcaseReel li:first').attr('name');
	$.ajax({
		type:'GET',
		data:{last:l},
		dataType: 'json',
		url:'newDishes.php',
		success: function(data) {
			for(var o in data.dishes)
			{
				var city = '';
				if(data.dishes[o].city == 'undefined')
				{
					city = '';
				} else {
					city = data.dishes[o].city + ',';
				}
				$('<li name="'+data.dishes[o].id+'" style="display:none;"><h3>'+cleanAnds(data.dishes[o].name)+' <span>('+cleanAnds(data.dishes[o].course)+')</span></h3><h5>'+cleanAnds(data.dishes[o].resturant)+' | '+cleanAnds(city)+' '+data.dishes[o].state+'</h5><p><span>Submitted on '+data.dishes[o].sub+' by '+cleanAnds(data.dishes[o].submitter)+'</span></p></li>').prependTo('.showcaseReel');
			}
			setReelStyles();
			$('.showcaseReel li:hidden').show('slow');
			//setTimeout(function() {removeOldDishes();}, 2000);
			//if(!oneOff)
				//setTimeout(function() {pullNewDishes(false);}, 1000);
		},
		error: function(sent, data) {
			//silent error
		}
	});
}

function setReelStyles()
{
	var ct = 0;
	$('.showcaseReel li').each(function()
		{		
			switch(ct)
			{
			case 0:
				$(this).addClass('firstDish');
			break;
			case 1:
				$(this).addClass('secondDish');
			break;
			case 2:
				$(this).addClass('thirdDish');
			break;
			}
			ct++;
				
		});
}
function removeOldDishes()
{
	var l = $('.showcaseReel li').length - 3;
	for(var i = 0; i < l; i++)
		$('.showcaseReel li:last').remove();
}



// =========================================================
// resturant popup
function preloadResturants() {
	$('.resturantPopup .resturantList').html('<li style="text-align:center"><img src="App_Images/Colorbox/loading.gif" alt="Loading..." /></li>');
	stateVal = $('select[name=state]').val();
	cityVal = $('input[name=city]').val();
	nameVal = $('input[name=resturantname]').val();
	stateVal = stateVal == '' ? '' : stateVal;
	cityVal = cityVal == '' ? '' : cityVal;
	nameVal = nameVal == '' ? '' : nameVal;
	$.ajax({
		type:'GET',
		data:{state:stateVal,name:nameVal,city:cityVal},
		url:'findResturant.php',
		success: function(data) {
			$('.resturantPopup .resturantList').html(data);
		},
		error: function(sent, data) {
			//console.info(data,sent);
			$('.resturantPopup .resturantList').html("There was an error retriving the resturants. Please try again.");
		}
	});
}
// =========================================================

function shareFacebook() 
{
	actionLinks = [{ "text": "Submit a Dish", "href": "http://www.dishkarma.com/"}];
	FB.Connect.streamPublish('I just submitted '+$('.shareDish').attr('name')+' as my favorite '+$('.shareDish').attr('rev')+' at '+$('.shareDish').attr('rel')+' . Check it out at http://www.dishkarma.com', '', actionLinks, null, 'Share?', null);
}

function showAll(courseid)
{
	$('#' + courseid + ' .userdish:hidden').show('slow');
}

function collapse(courseid)
{
	$('#' + courseid + ' .userdish:not(.ultimatedish)').hide('slow');
}
