$(document).ready(function(){

	if ($('#standard_config').length > 0) {
		setup_configs();	
	}
	
	$('ul.accordion li a.cord').click(function(){
		var clicked = $(this);
		accordion_slide(clicked, 'slow');
		return false;
	});

	$('#content.faq .question').hover(function(){
		$(this).css('background', '#E9F7FF');
	}, function(){
		$(this).css('background', '');
	});
	
	$('#content.faq h3').toggle(function(){
		var question = $(this).parent('.question');
		$(this).animate({
			'margin-left':'-20px',
			'padding-left':'20px'
		}).next('p').slideDown();
		question.stop().animate({
			    'padding-top' : '20px',
			    'padding-right' : '20px',
			    'padding-bottom' : '20px',
			    'padding-left' : '20px',		    
		}).addClass('glow');
	},function(){
		var question = $(this).parent('.glow');
		$(this).animate({
			'margin-left':'20px',
			'padding-left':'0px'			
		}).next('p').slideUp();		
		question.stop().animate({
			    'padding-top' : 0,
			    'padding-right' : 0,
			    'padding-bottom' : 0,
			    'padding-left' : 0,
		  }).removeClass('glow');
	});
	
	
	$('#examples_slider, #examples_box').height($('.example:first').height() + 40);	
	$('ul#examples_menu li a').click(function(){
		var speed = 1000;
		var slider = $('#examples_slider');
		var clicked_title = $(this).text();
		var clicked = $(this).parent().index();
		var active_example = $('#examples_slider .example:eq('+clicked+')');
		var new_left = clicked * -790;
		$('ul#examples_menu li a').removeClass('active');
		$(this).addClass('active');
		slider.fadeOut('fast',function(){
			$(this).css("left", new_left+'px');
			$(this).fadeIn('slow');		
		});
		$('#examples_slider, #examples_box').height(active_example.height() + 40);
		clicky.log('/examples/#'+clicked_title, clicked_title);

	});
	
	if (location.hash != '') {
		hash = location.hash.replace('#', '');
		$('ul#examples_menu li a[rel='+hash+']').click();
	}
	
	// Prompt for save
	$('#GroupAddForm input, #GroupAddForm textarea').click(function(){
		$(this).addClass('changed');
	});
	
	// Config tabs
	$('ul.tab_menu li a').click(function(){
		if (!$(this).hasClass('upgrade')) {
			var wizard_flag = true;
			if ($(this).hasClass('step_2') || $(this).hasClass('step_3')) {
				wizard_flag = check_for_wizard_errors($(this).attr('class'));
			}
			if (wizard_flag != false) {
				var clicked = $(this).parent();
				var clicked_title = $(this).text();
				var clicked_index = clicked.index();
				
				var current_tab_index = $('ul.tab_menu li.active').index();
				var admin_email = $('#GroupAdministrator').val();
				
				var switch_flag = true;
				
				if (current_tab_index == 0 && admin_email == '') {
					switch_flag = false;
					nice_alert("Please fill out the administrator email before proceeding. While important, it is only used for very rare and important system update messages. Expect less than 5 emails per year. We will never sell your email address.");
				} else if ($('#GroupAddForm input.changed, #GroupAddForm textarea.changed').length > 0) {
					nice_alert("We noticed you changed something in this tab. Don't forget to click the 'Save Settings' button at the bottom when you are done making changes!");
				}
				
				if (switch_flag == true) {
					$('.tab_content.active').fadeOut('fast', function(){
						$(this).removeClass('active');
						$('.tabs .tab_content:eq('+clicked_index+')').addClass('active').fadeIn('fast');
						clicked.addClass('active');
					});
					
					$('ul.tab_menu li').removeClass('active');
					$('form .changed').removeClass('changed');
					
					clicky.log('/config/#'+clicked_title, clicked_title);
				}
			}
		}
	});
	
	// check for hashtag error before allowing master form submission
	$('#GroupAddForm').submit(function(e){
		var hashtag_error = $('#hashtag_validation_error');
		if (hashtag_error.length > 0) {
			e.preventDefault();
			nice_alert("Please enter a valid hashtag before saving");
		}	
	})	
	
});

$(window).load(function(){
	var first_cord = $('ul.accordion li a.cord:first');
	accordion_slide(first_cord, 'slow');
});

function accordion_slide(clicked, speed)
{
	$('ul.accordion li a').removeClass('active');
	clicked.addClass('active');	
	var reveal = clicked.next('div.acc_content');
	$('div.acc_content').not(reveal).slideUp(speed);
	reveal.slideDown(speed);
	return false;
}

function setup_configs(){
	
	 inputFilter($('#add_contributor_input'));
	 inputFilter($('#CustomHashtag'));	
	
	// make sure proper template drop down is selected
	verify_template_dropdown();
	
	//switch contributor list to commas
	
	var contributor_textarea = $('textarea.contributor_master').val();
	contr_to_commas = contributor_textarea.replace(/(\r\n|\n|\r)/gm,",");
	$('textarea.contributor_master').html(contr_to_commas);
	
	var add_contr_button = $('.add_contributor .button');
	var contr_input = $('.add_contributor input');

	add_contr_button.click(function(){
		
		// see if their is a validation error
		validation_error = $('#contributor_validation_error');
		
		if (validation_error.length == 0 ) {	
			
			var flag = $('.contributor_list.flag');
			
			if (flag != '') {
				var user_count = $('.contributor_list tr').length;
				if (user_count == 4) {
				// COMMENTED OUT FOR NOW - MAY COME BACK TO THIS RESTRICTION
				//	nice_alert("Sorry, only 3 contributors allowed. Upgrade to Premium for unlimited contributors");
				//	return false;
				}			
			}
			
			var user = $('.add_contributor input').val();
			
			if (user[0] == '@') {
				nice_alert("Please do not include the '@' symbol before the Twitter username");
			} else if (user != '') {
				$('.contributor_list').append('<tr><td>'+user+'</td><td><a class="remove_contributor"></a></td></tr>');
				current = $('textarea.contributor_master').val();
				if (current == '') {
					new_line = '';
				} else {
					new_line = ',';
				}
				$('textarea.contributor_master').html(current+new_line+user);
				$('.contributor_warning:visible').hide();
				$('table.contributor_list:hidden').show();
				$('.add_contributor input').val('');
			} else {
				nice_alert("Please Enter a Twitter Username to Add");
			}
		}
	});
	
    var code =null;
    contr_input.keypress(function(e){
        code= (e.keyCode ? e.keyCode : e.which);
        if (code == 13) {
        	add_contr_button.click();
        	contr_input.blur();
        }
    });
    
    contr_input.blur(function(){
    	$('#add_contributor_input_status').slideUp();
    });
	
	$('a.remove_contributor').live('click', function(){
		var user = $(this).parent('td').prev('td').text();
		$(this).closest('tr').remove();
		current = $('textarea.contributor_master').val();
		if (current.search(user+',') != -1) {
			user_replace = user+',';
		} else {
			user_replace = user;
		}
		new_list = current.replace(user_replace, '');
		
		// remove trailing comma if exists
		if (new_list.charAt(new_list.length-1) == ',') {
			new_list = new_list.substring(0, new_list.length-1);		
		}		
		
		$('textarea.contributor_master').html(new_list);
		if (new_list == '') {
			$('#contributor_warning').show();
			$('#contributor_list').hide();
		}

	});
	
	// Make sure user entered valid email address
	$('#GroupModerationNotifications').blur(function(){
		var email_flag = true;
		var emails = $(this).val();
		var email_list = emails.split('\n');
		for (var i = 0; i < email_list.length; i++) {
			email_test = isValidEmail(email_list[i]);
			if (email_test == false) {
				email_flag = false;
			}
		}
		
		if (email_flag == false) {
			nice_alert('Please make sure you have entered valid email addresses in the Moderation Notification box');
		}	
		
	});
	
	$('.tab_content .note').each(function(){
		var text = $(this).html();
		var help_link = "<a class='help_me'>Help Me</a>";
		$(this).html('<span class="hide">'+text+'</span>').prepend(help_link);
	});
	
	$('.tab_content .help_me').live('click', function(){
		$(this).next('span').slideToggle();
	});
	
	$('#broadcast_select').change(function(){
		var template = $(this).val();
		
		if (template == 'custom') {
			if ($(this).hasClass('not_premium')){
				nice_alert('Sorry, custom templates are for Premium accounts only.');
			} else {
				$('.custom_template').slideDown();
			}
		} else {
			$('.custom_template').slideUp().hide();
			$('#broadcast_textarea').val(template);		
		}
		
	});
}

function isValidEmail(str) {
   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}

function inputFilter(inputObject){
	inputObject.live('keyup',function() { 
	
	var input_id = inputObject.attr('id');
	var status = $("#"+input_id+"_status");
	
	var current_contributor = $('#add_contributor_input').val();
	var CustomHashtag = $('#CustomHashtag').val();	
	var usr = $('#screen_name').val();
	
	var checking = '';
	var user_input = inputObject.val();
	var hash_fail_msg = "This hashtag is already in use by contributors to your account, please change your hashtag to fix this issue.";
	var contributor_fail_msg = "This contributor is using the same hashtag as other contributors and cannot be used."
	if (input_id == 'add_contributor_input') {
		fail_msg = contributor_fail_msg;
		checking = 'contributor';
	} else {
		fail_msg = hash_fail_msg;
		checking = 'hashtag';
		current_contributor = $('#GroupAllowedAuthors').val();
	}
	
	// clear status
	status.html('');
	
	if((inputObject.val().length >= 1))
	{
		
		//if (current_contributor.length != 0 && isAlphanumeric(current_contributor))
		status.html('<img align="absmiddle" src="http://www.grouptweet.com/images/loader.gif" /> Checking availability…').slideDown();
		
		$.ajax({ 
			type: "POST", 
			url: "/check.php", 
			data: {
				contributor:current_contributor,
				custom_hashtag:CustomHashtag,
				group:usr,
				checking:checking
			}, 
			success: function(msg){ 
						
				status.ajaxComplete(function(event, request, settings){ 
					if (msg == 'true') { 
						inputObject.removeClass('object_ok'); // if necessary
						inputObject.addClass("object_error");
						$(this).html('<span id="'+checking+'_validation_error" style="color: red;">' + fail_msg + '</span>');
						disable_button(checking);
					} 
					else 
					{ 
						inputObject.removeClass('object_error'); // if necessary
						inputObject.addClass("object_ok");
						$(this).html(' <img style="position:relative;top:4px" src="http://www.grouptweet.com/images/accepted.png" /> Available ');
						enable_button(checking);
					}
				});
			
			}
		});
	}
	else {
		//status.html('The username should have at least 3 characters.');
		inputObject.removeClass('object_ok'); // if necessary
		inputObject.addClass("object_error");
	}});
}

function disable_button(checking){
	if (checking == 'hashtag') {
		//$('#save_settings').fadeOut('fast');
	} else if (checking == 'contributor') {
		$('#add_contributor a.button').css('opacity', 0.3);
	}
}

function enable_button(checking){
	if (checking == 'hashtag') {
		//$('#save_settings').fadeOut('fast');
	} else if (checking == 'contributor') {
		$('#add_contributor a.button').css('opacity', 1);
	}
}

function nice_alert(message){
	
	if (typeof message != "undefined") {
		
		var nice_alert = $('#nice_alert');
		nice_alert.slideUp('fast', function(){
			nice_alert.find('div.message span').text(message)
			nice_alert.slideDown();	
			$('#close_alert').click(function(){
				nice_alert.slideUp();
			});
		});
	
	}
	
}

function isAlphanumeric(theString){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(theString.match(alphaExp)){
		return true;
	}else{
		return false;
	}
}

function check_for_wizard_errors(tab_class){
		
	var flag = true;
		
	if (tab_class == 'step_2') {
		//check for contributor option
		var contributors_checked = $('#contributors_check:checked').length;
		if (contributors_checked > 0) {
			// check for blank contributurs
			var contributor_list = $('#GroupAllowedAuthors').val();
			if (contributor_list == '' || contributor_list.length < 2) {
				nice_alert('Please add at least one contributor.');
				flag = false;
			} 
		} else {
			all_tweets_checked = $('#all_tweets:checked');
			if ($('#all_tweets:checked').length < 1) {
				nice_alert('Please complete step 1 before proceeding.');
				flag = false;
			}
		}
	} else if (tab_class == 'step_3') {
		var dm_check = $('#tweet_dm:checked').length;
		var hash_check = $('#tweet_hashtag:checked').length;
		var mention_check = $('#tweet_mention:checked').length;
		if (dm_check < 1 && hash_check < 1 && mention_check < 1) {
			nice_alert('Please complete step 2 before proceeding.');
			flag = false;
		}
	}
	
	return flag;
	
}

function verify_template_dropdown(){
	var template_input = $('#broadcast_textarea').val();
	var template_dd = $('#broadcast_select option[value="'+template_input+'"]');
	if (template_dd.length > 0) {
		template_dd.attr('selected','selected');
	}
}
