/** 	$Id: 18.09.2006 18:45:21 krass $ **/
/* BLOG FUNCTIONS */

var selection, last_selection; // Selection data
var last_selected_post = 0;
var last_selected_comment = 0;
var citeHintBalloonStateOn = 0;

function ShowPostCiteButton(id_post)
{
  catchSelection();
  var citePostButton = document.getElementById('cite_post_button_'+id_post);	
	var citePostButtonExternal = document.getElementById('cite_post_button_external_'+id_post);
	var citePostButtonExternal2 = document.getElementById('cite_post_button_external2_'+id_post);
	if (selection)
	{
    if (citePostButton)
    {
    	if (citePostButton.className != "inline")
    	{
			citePostButton.style.display = "block";
    	} else
    	{
			citePostButton.style.display = "inline";
    	}
    }
		if (citePostButtonExternal)
			turnExternalCiteButton(citePostButtonExternal, 1);
		if (citePostButtonExternal2)
			turnExternalCiteButton(citePostButtonExternal2, 1);				
  }
  else
  {
    if (citePostButton)
			citePostButton.style.display = "none";
		if (citePostButtonExternal)
			turnExternalCiteButton(citePostButtonExternal, 0);
		if (citePostButtonExternal2)
			turnExternalCiteButton(citePostButtonExternal2, 0);	
  }
  if (last_selected_post && last_selected_post != id_post)
  {
		var lastPostCiteButton = document.getElementById('cite_post_button_'+last_selected_post);
		var lastPostCiteButtonExternal = document.getElementById('cite_post_button_external_'+last_selected_post);
		var lastPostCiteButtonExternal2 = document.getElementById('cite_post_button_external2_'+last_selected_post); 
    if (lastPostCiteButton)
			lastPostCiteButton.style.display = "none";
		if (lastPostCiteButtonExternal)
			turnExternalCiteButton(lastPostCiteButtonExternal, 0);
		if (lastPostCiteButtonExternal2)
			turnExternalCiteButton(lastPostCiteButtonExternal2, 0);		
  }
  last_selected_post = id_post;
  if (last_selected_comment)
  {
    var lastCommentCiteButton = document.getElementById('cite_comment_button_'+last_selected_comment); 
		if (lastCommentCiteButton)
			lastCommentCiteButton.style.visibility = "hidden";
  }
}



function ShowCommentCiteButton(id_comment){
  catchSelection();
  if (selection)
  {
    document.getElementById('cite_comment_button_'+id_comment).style.visibility = "visible";
  }else
  {
    document.getElementById('cite_comment_button_'+id_comment).style.visibility = "hidden";
  }
  if (last_selected_comment && last_selected_comment != id_comment)
  {
    document.getElementById('cite_comment_button_'+last_selected_comment).style.visibility = "hidden";
  }
  last_selected_comment = id_comment;
  if (last_selected_post)
  {
    var lastPostCiteButton = document.getElementById('cite_post_button_'+last_selected_post); 
		if (lastPostCiteButton)
			lastPostCiteButton.style.display = "none";
		var lastPostCiteExternalButton = document.getElementById('cite_post_button_external_'+last_selected_post);
		if (lastPostCiteExternalButton)
			turnExternalCiteButton(lastPostCiteExternalButton, 0);
		var lastPostCiteExternalButton2 = document.getElementById('cite_post_button_external2_'+last_selected_post);
			turnExternalCiteButton(lastPostCiteExternalButton2, 0);
  }
}


var selection, last_selection; // Selection data
var last_selected_post = 0;
var last_selected_comment = 0;

function quotePostSelection(id_post, j_link)
{
  //alert('id_post='+id_post+"\ncurr_comment="+curr_comment)
  
  if ('undefined'!=typeof(curr_comment)) 
  {
		//if (opened_form!=0) 
		if (curr_comment!=id_post) 
			show_hide_comment_form(id_post)
			//document.getElementById("add-comment"+curr_comment).style.display = 'none';
			//document.getElementById("add-comment"+opened_form).style.display = 'none';
  }
  
  if (selection || last_selection)
  {    
    if (!selection)
      selection = last_selection;
    var set_text = '[quote]\n'+selection+'\n[/quote]\n';
    var citePostButton = document.getElementById('cite_post_button_'+id_post);
		if (citePostButton) 
			citePostButton.style.display = "block";
  	var commentForm = document.getElementById("add-comment"+id_post);
	if(document.getElementById('post_comment_form'))
    {
	  if (commentForm.style.display != 'block')
      {
		show_hide_comment_form(id_post);
      }
	  var inputText = document.getElementById('id_input_text');
      if (inputText)
      {
      	inputText.value+=set_text;
      	inputText.focus();
      }
    }
    else
    {
      // get post form from post list
      send_cite_from_post(id_post, j_link, set_text);
    }
    return;
  }
  else
  {
    alert("no selection");
    return;
  }
}

function quoteCommentSelection(id_comment)
{ 
	
  //if (opened_form) 
  if (curr_comment) 
  {
		//if (opened_form!=id_comment) 
		if (curr_comment!=id_comment) 
			show_hide_comment_form(id_comment)
			//document.getElementById("add-comment"+curr_comment).style.display = 'none';	
			//document.getElementById("add-comment"+opened_form).style.display = 'none';
  }
  //opened_form = id_comment;
  //curr_comment = id_comment;
  if (selection || last_selection)
  {

    if (!selection)
      selection = last_selection;

    var set_text = '[quote]\n'+selection+'\n[/quote]\n';
	//alert(id_comment+"\n\n"+set_text);

    document.getElementById('cite_comment_button_'+id_comment).style.visibility = "visible";

    if (document.getElementById('create-comment'+id_comment)){
      commentForm = document.getElementById("add-comment"+id_comment);
      // js comment form
      if (commentForm.style.display != 'block')
      {
        show_hide_comment_form(id_comment);
      }
      //var inputText = document.getElementById('id_input_text'+id_comment);
	  var inputText = document.getElementById('id_input_text');
      if (inputText)
      {
      	inputText.value+=set_text;
      	inputText.focus();
      }
    }
    return;
  }
  else
  {
    alert(select_cite);
    return;
  }
}

function catchSelection()
{
  //alert('catchSelection');
  if (window.getSelection)
  {
    selection = window.getSelection().toString();
  }
  else if (document.getSelection)
  {
    selection = document.getSelection();
  }
  else if (document.selection)
  {
    selection = document.selection.createRange().text;
  }
  if (selection)
    last_selection = selection;

}

function send_cite_from_post(id_post, j_link, cite_text)
{
	var str='';
	var int_hidden_form_div=CEAC('div');
	str += '<form id="cite_form" name="cite_form" action="'+j_link+'/?reply=1#comments" method="post">';
	str += '<input type="hidden" name="cite_text" id="id_cite_text" value="">';
	str += '</form>';
	int_hidden_form_div.innerHTML = str;
	document.getElementById("id_cite_text").value = cite_text;
	document.cite_form.submit();
}


function blogDeletePost(link,id,guid)
{
	if (confirm(jslBlogConfirmDelete))
		//document.location = link+'?delete_confirm=1';
		blogDeleteRequest(id,guid,'post');
	return false;
}

var commentData = {};
function blogDeleteComment(commentId)
{
	if (!confirm(jslBlogCommentConfirmDelete))
		return false;

	var data = commentData[commentId];
	ajaxLoadText(
	{
		url:		'/ajax/blog/comment/delete',
		method:		'GET',
		unique:		data['htmlId'],
		force:		1,
		args:		data['ajaxArgs'],
		onwait:		function(){},
		onerror:	function(){},
		onready:	function(text)
		{
			if (text)
			{
				var container = E(data['htmlId']);
				container.innerHTML = text;

				// for 'art' skin only
				var parent = container.parentNode;
				if (parent && parent.tagName.toUpperCase()=='LI')
					parent.className = 'deleted';
			}
		}
	});
	return true;

}

function postFormAddTag()
{
  var si, name, old_value;
  if (document.getElementById('id_form_tags').value)
  {
    si = document.getElementById('id_form_tags').selectedIndex;
    name = document.getElementById('id_form_tags').options[si].text;

    old_value = document.getElementById('id_tags').value;
    if (old_value == '' || old_value == ' ' || old_value == '  ')
      document.getElementById('id_tags').value = name;
    else
      document.getElementById('id_tags').value = old_value + ', ' + name;
    document.getElementById('id_form_tags').options[0].selected = true;


    document.getElementById('id_tags').value = document.getElementById('id_tags').value;
    document.getElementById('id_tags').focus();
  }
}

function editorModeSwitch()
{
	var tabVisualMode		= E('redactor-container');
	var tabHtmlMode			= E('code-container');
	var tabNameVisualMode	= E('tabname-visual-mode');
	var tabNameHtmlMode		= E('tabname-html-mode');
	var divVisualMode		= E('redactor-visual');
	var divHtmlMode			= E('redactor-html');

	var	htmlEditor			= E('htmlEditorForm');
	var	htmlTitle			= E('htmlEditorTitle');
	var	wysiwygTitle		= E('postRow_title');

	var content = '';

	if (divVisualMode.style.display == 'none')
	{
		if (isSafari)
		{
			alert('Safari unsupported. Use some cool alternative browser.');
			return editorMode;
		}	
		tabVisualMode.className		= 'open-folder';
		tabHtmlMode.className		= 'close-folder';
		tabNameVisualMode.className	= 'open-header';
		tabNameHtmlMode.className	= 'close-header';
		divVisualMode.style.display = 'block';
		divHtmlMode.style.display	= 'none';
		//draftsSetContent(htmlEditor.value);
		content = nl2br(htmlEditor.value);
		tinyMCE.setContent(content);
		wysiwygTitle.value			= htmlTitle.value;
		editorMode					= 'wysiwyg';
		document.getElementById('editor_mode').value = 'wysiwyg';
		
	}
	else 
	{
		tabVisualMode.className		= 'close-folder';
		tabHtmlMode.className		= 'open-folder';
		tabNameVisualMode.className	= 'close-header';
		tabNameHtmlMode.className	= 'open-header';
		divVisualMode.style.display = 'none';
		divHtmlMode.style.display	= 'block';
		//htmlEditor.value	= draftsGetContent();
		content = br2nl(tinyMCE.getContent());
		htmlEditor.value	= content;
		htmlTitle.value		= wysiwygTitle.value;
		editorMode			= 'html';
		document.getElementById('editor_mode').value = 'html';
	}
}
function addPublicTag(a)
{
	/** 
	@todo	scroll text if need;
	*/
	var inputTags = E("id_tags");
	var tag = a.innerHTML.replace(/\n/,' ');
	var match_tag = new RegExp("\\,?\\s?("+tag+"((\\,\s?)|$))");
	
	if (!inputTags.value.match(match_tag)) //add
	{
		if (''!=inputTags.value && 0>inputTags.value.search(/\,\s*$/i))
		{
			inputTags.value += ', ';
		}
		inputTags.value += tag;
	}
	else //del
	{
		inputTags.value = inputTags.value.replace(match_tag, ",");
		commas = /,,|, ,/;
		inputTags.value = inputTags.value.replace(commas, ',');
		edge_comma = /^, |^,|^	|,$|, $/;
		inputTags.value = inputTags.value.replace(edge_comma, '');
	}
}
function setBlogPostTarget(idtype)
{
	//alert(idtype.value);
	var arr = idtype.value.split('_',2);
	var id = arr[1];
	var type = arr[0];
	var post_form = E('big_fckn_form');
	var t = '';
	var blog_url = '';

	switch (type)
	{
	case 'u':
		post_form.action = post_form.action.replace('/community/blog/post_save/', '/user/blog/post_save/');
		t = tag_user_guid_type;
		blog_url = 'user.blog';
		E('id_tags').disabled = false;
		break;

	case 'c':
		post_form.action = post_form.action.replace('/user/blog/post_save/', '/community/blog/post_save/');
		t = tag_community_guid_type;
		blog_url = 'community.blog';
		E('id_tags').disabled = true;
		break;
	default:
		return;
		break;
	}
	E('id_blog').value = id;
	E('id_tags').value = '';
	requestTagsCloud(id, t, blog_url);
}
function requestTagsCloud(id, type, blog_url)
{
	var URL='/ajax/tags/cloud';
 
	var params_str = '';    
	params_str += "&url_id="+escape(blog_url);
	params_str += "&tag_owner_guid_type="+escape(type); //$obBlog->owner_guid_type
	params_str += "&tag_owner_guid_id="+id; 
	params_str += "&tag_group="+escape(tag_group); // <?=MC('Blog')->getTagGroup()?>  
	params_str += "&limit="+tag_cloud_limit; // <?=C('blog.postform_cloud_tags_count')?>
	params_str += "&extra="+'onClick="addPublicTag(this); return false;"';
 
	E('tag_cloud_indicator').style.display = "";
	LoadData(URL, "getTagsCloud", 'TagsCloud', 'POST', params_str);
}
var tmp_content;
function safaryHandler()
{
	if (isSafari)
	{
		//alert(isSafari+", isSafari!");
		if ('undefined' == typeof(editorMode)) var editorMode = 'wysiwyg';
		if ('wysiwyg' == editorMode)
		{
			editorModeSwitch();
		}
		document.getElementById('tabname-visual-mode').style.color='#999';
		document.getElementById('htmlEditorForm').value=br2nl(document.getElementById('mce_editor_content').value);
		document.getElementById('mce_editor_content').name = 'postRow[off]';
		document.getElementById('htmlEditorForm').name = 'postRow[body]';
		//alert('"'+E('mce_editor_content').value+'" name='+E('mce_editor_content').name + "\n\"" +E('htmlEditorForm').value+'" name='+E('htmlEditorForm').name);
		document.getElementById('mce_editor_content').id = 'mce_editor_content_off';
		document.getElementById('htmlEditorForm').id = 'mce_editor_content';
		//alert('"'+E('mce_editor_content').value+'" name='+E('mce_editor_content').name + "\n\"" +E('mce_editor_content_off').value+'" name='+E('mce_editor_content_off').name);
	}
	else 
	{
		if ('undefined' == typeof(editorMode)) var editorMode = 'wysiwyg';
		if (document.getElementById('editor_mode').value != editorMode)
		{
			tmp_content = br2nl(document.getElementById('mce_editor_content').value);
			modeEditorSwitcher();
		}

	}
}
var repeats = 0;
var modeEditorSwitcherTimer=null;
function modeEditorSwitcher()
{
	if (null==tinyMCE.getContent() && repeats<100)
	{
		modeEditorSwitcherTimer = setTimeout('modeEditorSwitcher()', 50);
		repeats++;
	}
	else 
	{
		clearTimeout(modeEditorSwitcherTimer);
		editorModeSwitch();
		document.getElementById('htmlEditorForm').value = tmp_content;
	}

}

function turnCiteHitnBalloon(on)
{

	if (document.getElementById('id_post_balloon').isOn)
		return;	
	citeHintBalloonStateOn = on;
	if (!on)
	{		
		setTimeout('_turnOffCiteHitnBalloon()', 3000);
	}else{				
		var postBalloon = document.getElementById('id_post_balloon');
		var postBalloon2 = document.getElementById('id_post_balloon2');
		if (postBalloon)
			postBalloon.style.display='block';
		if (postBalloon2)
			postBalloon2.style.display='block';
	}			
}

function _turnOffCiteHitnBalloon(force)
{	
	if (citeHintBalloonStateOn == 0 || force)
	{
		var postBalloon = document.getElementById('id_post_balloon');
		var postBalloon2 = document.getElementById('id_post_balloon2');
		if (postBalloon)
			postBalloon.style.display='none';
		if (postBalloon2)
			postBalloon2.style.display='none';	
		citeHintBalloonStateOn = 1;
	}
}

function switchToCurrentOrAnotherUser(num, id)
{	
	id = !id?0:id;
	document.getElementById('id_what_user'+num+'_'+id).checked = true;
	if (num == 1)
		checkSetLoginFieldsVisibility(id);
		
}

function checkSetLoginFieldsVisibility(id)
{

	/* --- Blog.ru user --- */
	var memberRadio = document.getElementById('id_what_user2_'+id);
	if (!memberRadio)
		return;
	var checked = memberRadio.checked;
	var loginForm = document.getElementById('id_log-pass-box_'+id);
	if (checked && loginForm)
	{
		if (loginForm.parentNode.getElementsByTagName('a').length < 2)
		{
			loginForm.style.display = 'block';
			var el = document.getElementById('id_login_field_comment_'+id);
			if (el)
				el.focus();
		}

	} 
	else 
	{
		loginForm.style.display = 'none';
	}
	
	/* --- OpenID --- */
	var openidRadio = document.getElementById('id_what_user4_'+id);
	if (openidRadio)
	{
		var checked = document.getElementById('id_what_user4_'+id).checked;
		document.getElementById('id_openid_fields_'+id).style.display = checked?'block':'none';
		if (checked)
		{
			var el = document.getElementById('id_open_id_'+id);
			if (el)
				el.focus();
		}	
	}
	
	/* --- LiveJournal --- */
	var ljRadio = document.getElementById('id_what_user5_'+id);
	if (ljRadio)
	{
		var checked = document.getElementById('id_what_user5_'+id).checked;
		document.getElementById('id_lj_fields_'+id).style.display = checked?'block':'none';
		if (checked)
		{
			var el = document.getElementById('id_lj_nick_'+id);
			if (el)
				el.focus();
		}
	}	
	 
	/* --- Anonimous --- */
	var anonRadio = document.getElementById('id_what_user3_'+id);
	if (anonRadio)
	{
		var checked = document.getElementById('id_what_user3_'+id).checked;
		document.getElementById('id_anon_fields_'+id).style.display = checked?'block':'none';
		if (checked)
		{
			var el = document.getElementById('id_anon_nick_'+id);
			if (el)
				el.focus();
		}
	}	
	document.getElementById('submit_buttton_'+id).style.display = 'block';
}		


function showLoginForm(id)
{
	var loginForm = document.getElementById('id_log-pass-box_'+id);
	if (loginForm)
	{
		var loginInput = document.getElementById('id_login_field_comment_'+id);
		var passwordInput = document.getElementById('id_password_field_comment_'+id);
		
		if (loginForm.style.display == 'block')	
		{
			loginInput.tmpValue = loginInput.value;
			passwordInput.tmpValue = passwordInput.value;
			loginInput.value = '';
			passwordInput.value = '';
			
			loginForm.style.display = 'none';
		} 
		else 
		{
			if (loginInput.tmpValue)
				loginInput.value = loginInput.tmpValue;
			if (passwordInput.tmpValue)	
				passwordInput.value = passwordInput.tmpValue; 
			loginForm.style.display = 'block';
		}
		var memberRadio = document.getElementById('id_what_user2_'+id);
		if (memberRadio)
			memberRadio.checked = true;
		checkSetLoginFieldsVisibility(id);
	}
}


function blogDeleteRequest(id,guid,objName)
{
	E('delbtn_'+guid+':'+id).firstChild.style.display = "inline";

	ajaxLoadText(
	{
		url:'/ajax/blog/delete',
		args:{
			id:escape(id),
			obj:escape(objName),
			delete_confirm:1
			},
		force:1,
		onwait:function( req )
		{
			onWaitCalled = true;
		},
		onready:function( text )
		{
			var result = eval( '(' + text + ')' );
			if ( 'success' == result['status'] )
			{
				// show success info
				E('delbtn_'+guid+':'+id).firstChild.style.display = "none";
				//alert(/*eval*/(result['content']));
				if ( !User.browser.msie && 6 >= User.browser.version )
				{
					shrinkDiv('id-post-'+id);
				}
				else 
				{
					var post = E('id-post-'+id);
					post.parentNode.removeChild( post );
				}
				if (E('create-comment-wrapper0'))
					E('create-comment-wrapper0').style.display = "none"
				if (E('create-comment-wrapper2'))
					E('create-comment-wrapper2').style.display = "none"
				if (E('post_comments_tree'))
					E('post_comments_tree').style.display = "none"
				//E('id-post-'+id).style.display = "none"
			}
			else if ('failure' == result['status'])
			{
				E('delbtn_'+guid+':'+id).firstChild.style.display = "none";
			}
		}
	});
}

function blogTagsRequest(login)
{
	ajaxLoadText(
	{
		url:'/ajax/blog/get_tags',
		args:{
			login:escape(login)
			},
		force:1,
		onwait:function( req )
		{
			onWaitCalled = true;
		},
		onready:function( text )
		{
			if (E('post_tags'))
				E('post_tags').innerHTML = text;
		}
	});
}

function blogGetNowPlaingRequest()
{
	ajaxLoadText(
	{
		url:'/ajax/blog/now_playing',
		args:{
			make_query:1
			},
		forse:1,
		onwait:function( req )
		{
			onWaitCalled = true;
		},
		onready:function( text )
		{
			if (E('now_playing'))
				E('now_playing').innerHTML = text;
		}
	});
}
function blogClearNowPlaingRequest()
{
	ajaxLoadText(
	{
		url:'/ajax/blog/now_playing',
		args:{
			make_query:0
			},
		forse:1,
		onwait:function( req )
		{
			onWaitCalled = true;
		},
		onready:function( text )
		{
			if (E('now_playing'))
				E('now_playing').innerHTML = text;
		}
	});
}

function nl2br (text)
{
	if (text)
	{
		var nl_exp = /\n/g;
		var br = "<br />";
		text = text.replace(nl_exp, br);
	}
	return text;
}

function br2nl (text)
{
	if (text)
	{
		var br_exp = /\<br *?\/?>/gi;
		var nl = "\n";
		text = text.replace(br_exp, nl);
	}
	return text;
}
