$.extend({
  toQueryParams: function(str) {
    var pairs = str.match(/^\??(.*)$/)[1].split('&');
    return $.inject(pairs, {}, function(params, pairString) {
      var pair = pairString.split('=');
      params[pair[0]] = decodeURIComponent(pair[1]);
      return params;
    });
  },
  inject: function(arrays, memo, iterator) {
    arrays.each(function(value, index) {
      memo = iterator(memo, value, index);
    });
    return memo;
  }
});

Array.prototype.each = function (fn) {
  var len = this.length;
  var result = new Array();
  for (var i=0; i < len; i++) {
    var ret = fn.apply(this, [this[i], i]);
    if (ret != null) result.push(ret);
  }
  return result; // method chain
}

function validate(mode){
	var error = 0;
	if (mode == 'btn' && $('blog_no').value == '') {
		$('#blog_no_error').show();
		$('#blog_no_error2').hide();
		error = 1;
	} else if (mode == 'ipt' && $('#blog_no2').val() == '') {
		$('#blog_no_error2').show();
		$('#blog_no_error').hide();
		error = 1;
	} else {
		$('#blog_no_error').hide();
		$('#blog_no_error2').hide();
	}
	if (mode == 'ipt') {

		if (! /^(http|https):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test($('#article_url').val())) {
			$('#article_url_error').show();
			error = 1;
		} else {
			$('article_url_error').hide();
		}
	}
	if (error == 0) {
		$('#blog_no_error').hide();
		if (mode == 'ipt') {
			$('#article_url_error').hide();
		}
	}
	return error;
}
function execute(kind, input, mode) {
	var postData = "";
	if (validate(mode)) return false;
	if (mode == 'ipt') {
		postData += 'blog_no=' + $('#blog_no').val();
		postData += '&article_url=' + encodeURIComponent($('#article_url').val());
		postData += '&kind=' + kind;
		postData += '&item_id=' +  $("input:hidden[name='item_id']").eq(0).val();
		if (input) {
			postData += '&article_title=' + encodeURIComponent($('#article_title').val());
			postData += '&article_description=' + encodeURIComponent($('#article_description').val());
			postData += '&article_date=' + encodeURIComponent($('#article_date').val());
		}
	} else {
		postData += 'blog_no=' + $('#blog_no').val();
		postData += '&kind=' + kind;
		postData += '&item_id=' +  $("input:hidden[name='item_id']").eq(0).val();
	}
	var ajaxTarget = (mode == 'ipt') ? "/ajax_get_article.php" : "/ajax_get_article2.php";
	$.ajax({
		url: ajaxTarget,
		type: "POST",
		data: postData,
		beforeSend: function(){
			view_loading();
		},
		success: function(res){
		//	alert(res);
			var res_arr = $.toQueryParams(res);
			switch (res_arr["result"]) {
				case 'input':
					view_input_err(res_arr);
					view_input(res_arr);
					break;
				case 'success':
					view_success(kind);
					break;
				case 'success2':
					view_success2(res_arr);
					break;
				case 'noget':
					view_noget();
					break;
				case 'error':
					view_error(res_arr);
					break;
				default:
					view_default();
					break;
			}
		}
	});
}
function view_loading(){
	$('#send_article_btn').hide();
	$('#send_article').hide();
	$('#send_article_input').hide();
//	$('#input_article').hide();
//	$('#success_message').hide();
//	$('#message_noget').hide();
	$('#loading').show();
}
function view_default(){
	$('#send_article_btn').show();
	$('#send_article').hide();
	$('#input_article').hide();
	$('#loading').hide();
	$('#init_message').hide();
	$('#success_message').hide();
	$('#message_noget').hide();
}
function view_article_url(){
	$('#send_article_btn').hide();
	$('#send_article').show();
	$('#input_article').hide();
	$('#loading').hide();
	$('#success_message').hide();
	$('#message_noget').hide();
	$('#article_url_display_link').hide();
}
function view_error(res_arr){
	var msg = 'msg_error';
	view_article_url();
	$('#message_area').show();

	if (res_arr[msg] != undefined) {
		$('#'+msg).show();
		$('#'+msg).html(res_arr[msg]);
	} else {
		$('#'+msg).hide();
	}
}
function view_input(res_arr){
	$('#send_article').hide();
	$('#article_url_area').hide();
	$('#init_message').hide();
	$('#message_noget').hide();
	$('#send_article_input').show();
	$('#input_article').show();
	$('#loading').hide();
	$('#article_url_display_switch').hide();
	$('#msg_error').hide();
	

	var url = 'article_url';
	var title = 'article_title';
	var date = 'article_date';
	var desc = 'article_description';
	var view_url = 'input_article_url';
	if (res_arr[url] != undefined) {
		$('#'+url).val(res_arr[url]);
	}
	if (res_arr[title] != undefined) {
		$('#'+title).val(res_arr[title]).show();
	}
	if (res_arr[date] != undefined) {
		$('#'+date).val(res_arr[date]).show();
	}
	if (res_arr[desc] != undefined) {
		$('#'+desc).val(res_arr[desc]).show();
	}
	if ($('#'+url).val() != undefined) {
		$('#'+view_url).html($('#'+url).val()).attr("href",$('#'+url).val());
	}

}
function view_input_err(res_arr){
	var title = 'article_title_error';
	var date = 'article_date_error';
	var desc = 'article_description_error';	

	if (res_arr[title] != undefined) {
		$('#'+title).html(res_arr[title]).show();
	} else {
		$('#'+title).hide();
	}
	if (res_arr[date] != undefined) {
		$('#'+date).html(res_arr[date]).show();
	} else {
		$('#'+date).hide();
	}
	if (res_arr[desc] != undefined) {
		$('#'+desc).html(res_arr[desc]).show();
	} else {
		$('#'+desc).hide();
	}
}
function view_success(kind){
	location.href = document.URL.match(/^[^#]+/) + '?fin=1#finish';

}
function view_success2(res_arr){
	location.href = document.URL.match(/^[^#]+/) + '?fin=1#finish';

}
function view_noget(){
	view_default();
	$('#message_noget').show();
}


