jQuery(document).ready(	function() {

	jQuery('.response').hide();
	
	function doSuccess(element) {
		jQuery('#' + element + '_img').attr('src',submitL10n.admin_images + '/yes.png');
		jQuery('#' + element).removeClass('warning');
		jQuery('#' + element).addClass('success');
	}
	function doError(element) {
		jQuery('#' + element + '_img').attr('src',submitL10n.admin_images + '/no.png');
		jQuery('#' + element).removeClass('success');
		jQuery('#' + element).addClass('error');
	}
	function doLoading(element) {
		jQuery('#' + element).removeClass('success');
		jQuery('#' + element).removeClass('warning');
		jQuery('#' + element + '_img').attr('src',submitL10n.admin_images + '/loading.gif');
	}
	function checkForm() {
		if (jQuery('#link_url').hasClass('success') && jQuery('#link_name').hasClass('success') 
				// && jQuery('#link_email').hasClass('success')
				) {
			jQuery('#site_submit_submit').attr('disabled', '');
			return 1;
		} else {
			jQuery('#site_submit_submit').attr('disabled','disabled');
			return 0;
		}
	}

	// switch to ajax submit (no javascript = direct submit)
	jQuery('#site_submit').attr('action',submitL10n.ajax_submit);
	checkForm();
	
	//jQuery(document).keyup(checkForm());
	
	jQuery('#link_category').focus(function(e) {
		checkForm();
	});
	
	jQuery('#link_category').blur(function(e) {
		doLoading('link_category');
		jQuery('#link_category_response').html();
		if (jQuery('#link_category').val() > 0) { doSuccess('link_category'); } 
		else { doError('link_category'); jQuery('#link_category_response').html(submitL10n.text_category_not_valid); }
		checkForm();
	});

	jQuery('#link_name').blur(function(e) {
		doLoading('link_name');
		jQuery('#link_name_response').html('');
		if (jQuery('#link_name').val().length > 5) { doSuccess('link_name'); } 
		else { doError('link_name'); jQuery('#link_name_response').html(submitL10n.text_name_not_valid); }
		checkForm();
	});

	// check for known link
	jQuery("#link_url").focus( function(e) {
		jQuery('#link_url_response').html('');
		jQuery('#link_url_response').removeClass('success');
		jQuery('#link_url_response').removeClass('warning');
		jQuery('#link_url_response').hide();
	});
	
	jQuery("#link_url").blur( function(e) {
		if(jQuery('#link_url').val().length < 5) return false;
		doLoading('link_url');
		jQuery('#link_url').attr('disabled', 'disabled');
		
		jQuery.ajax({
			type: 'POST',
			url: submitL10n.ajax_submit,
			data: {
				action : 'check_url',
				type: 'url',
				_ajax_nonce : jQuery('#check_url').val(),
				url : jQuery('#link_url').val()
			},
			dataType: 'json',
			success: function(response) {
				if(response == -1) {
					doError('link_url');
				}
				else if(response.ok) {
					doSuccess('link_url');
					if(response.url) jQuery('#link_url').val(response.url);
				}
				else {
					doError('link_url'); 
					jQuery('#link_url_response').addClass('warning');
				}
				
				if(response.data) {
					jQuery('#link_url_response').html(response.data);
					jQuery('#link_url_response').show();
				}
				},
			error: function(response) {
				doError('link_url');
				if(response && response.responseText) {
					jQuery('#link_url_response').html(response.responseText);
					jQuery('#link_url_response').show();
				}
			}
		});
		jQuery('#link_url').attr('disabled', '');
		checkForm();
	});
	
	jQuery('#site_submit_submit').click(function(e) {
		if(jQuery('#link_url').val().length < 5) return false;
		jQuery('#site_submit_submit').attr('disabled','disabled');
		jQuery('#site_submit_response').html();
		if(checkForm() == 0) {
			jQuery('#site_submit_response').html(submitL10n.text_missing_field);
		}
		else {
			
			var link_url = jQuery('#link_url').val();
			var link_name = jQuery('#link_name').val();
			var link_category = jQuery('#link_url').val();
			var nonce = jQuery('#_wpnonce').val();
			var response_class = '';
						
			jQuery.ajax({
				type: 'POST',
				url: submitL10n.ajax_submit,
				data: {
					action : 'create_link',
					_ajax_nonce : nonce,
					link_url : link_url,
					link_category : link_category,
					link_name : link_name
				},
				dataType: 'json',
				success: function(response) {
					if(response == '-1'   || response.warning == 1) {  
						response_class = "warning";
					} 
					else {
						response_class = "success";
						jQuery('#site_submit_submit').remove();
						jQuery('#site_submit fieldset').slideUp();
					}
					jQuery('#site_submit_response').addClass(response_class);
					if(response.data) jQuery('#site_submit_response').html(response.data);
					if(response.redirect) { jQuery(location).attr('href',response.redirect); }
					
					jQuery('#link_url_response').html(response.data);
					},
				error: function(response) {
					if(response && response.responseText) jQuery('#site_submit_response').html(response.responseText);
				}
			});
		jQuery('#site_submit_response').show();
		jQuery('#site_submit_submit').attr('disabled','');
		}
		return false;
	});
});
