/**
*suggest_link javascript
*@version $Id:  $
*@author Mr.Baker - mr.baker@blogter.hu
*@owner Blogter kft.
*/

//-------------------------------------------------------------------//

var fade_time = 1000;
var is_link_valid = false;
var is_title_valid = false;
var is_desc_valid = false;
var is_cat_valid = false;
var check_link = 0;
var added_link;

var is_IE = navigator.appName.indexOf('Microsoft') != -1;
var is_Safari = navigator.userAgent.indexOf('Safari') != -1;
var is_Opera = navigator.userAgent.indexOf('Opera') != -1;

Event.observe(window, 'load', init, false);

//-------------------------------------------------------------------//

function init() {
	Form.focusFirstElement('form');	
}

//-------------------------------------------------------------------//

function checkSuggestedLinkInput(param) {
	$('other-links').innerHTML = '';
	$('link-url-span').innerHTML = '';

	if(param.lenbgth != 0) check_link = param;

	//Empty input
	if($F('link-url').length == 0) {
		is_link_valid = false;
		$('link-url-span').innerHTML = g_language['suggest-box-nourl'];
		$('link-submit').disabled = false;
	}
	else {
		//Previously valid URL
		if(is_link_valid == true) {
			if(is_title_valid == false) {
				checkLinkTitle();
			}
			if(is_desc_valid == false) {
				checkLinkDesc();
			}
			if(is_cat_valid == false) {
				checkLinkCat();
			}

			if(is_link_valid && is_title_valid && is_desc_valid && is_cat_valid) {
				makeSuggestLink();
			}		
		}
		else {
			//Set cursors
			document.body.style.cursor = 'wait';
			$('link-submit').style.cursor = 'wait';
			$('link-submit').disabled = true;

			if($F('link-url').indexOf("http://") > -1) {
				$('link-url-span').innerHTML = g_language['suggest-check-in-progress'];
				isLinkAlreadySuggested($F('link-url'));
			}
			else {
				$('link-url').value = 'http://'+$F('link-url');//+'/';
				$('link-url-span').innerHTML = g_language['suggest-check-in-progress'];
				isLinkAlreadySuggested($F('link-url'));
			}
		}
	}
}

//-------------------------------------------------------------------//

function checkLinkTitle() {
	if($F('link-title').length == 0) {
		is_title_valid = false;
		$('link-title-span').innerHTML = g_language['suggest-box-notitle'];
		$('link-submit').disabled = false;
	}
	else {
		is_title_valid = true;
		$('link-title-span').innerHTML = '';		
	}
}

//-------------------------------------------------------------------//

function checkLinkDesc() {
	if($F('link-desc').length == 0) {
		is_desc_valid = false;
		$('link-desc-span').innerHTML = g_language['suggest-box-nodesc'];
		$('link-submit').disabled = false;
	}
	else {
		is_desc_valid = true;
		$('link-desc-span').innerHTML = '';			
	}
}

//-------------------------------------------------------------------//

function checkLinkCat() {
	if($F('link-cat') == 0) {
		is_cat_valid = false;
		$('link-cat-span').innerHTML = g_language['suggest-box-nocat'];
		$('link-submit').disabled = false;
	}
	else {
		is_cat_valid = true;
		$('link-cat-span').innerHTML = '';
	}
}

//-------------------------------------------------------------------//

function initCatSelect() {
	if($('link-cat').selectedIndex == 0){
		is_cat_valid = false;
	}
}

//-------------------------------------------------------------------//

function showLink() {
	if($F('link-url').length == 0) {
		$('link-url-span').innerHTML = g_language['suggest-box-nourl'];	
		return;
	}

	if($F('link-url').indexOf("http://") > -1) {
		window.open($F('link-url'));
	}
	else {
		window.open('http://'+$F('link-url'));
	}
}

//-------------------------------------------------------------------//

function resetFields(param) {
	$('link-url').value = '';
	$('link-title').value = '';
	$('link-desc').value = '';
	$('link-tag').value = '';
	$('link-cat').selectedIndex = 0;
	$('link-submit').disabled = false;

	$('link-url-span').innerHTML = '';
	$('link-title-span').innerHTML = '';			
	$('link-desc-span').innerHTML = '';
	
	if(param == 1) {
		$('other-links').innerHTML = '';
	}
}

//-------------------------------------------------------------------//

function doLinkSuggest() {
	$('link-submit').disabled = true;

	checkSuggestedLinkInput(0);
}

//-------------------------------------------------------------------//

function makeSuggestLink() {
	var link_url = escape($F('link-url'));
	var title = $F('link-title').stripTags();
	var desc = $F('link-desc').stripTags();
	var tag = $F('link-tag').stripTags();
	var cat_id = $F('link-cat');
	
	document.body.style.cursor = 'wait';
	$('link-submit').style.cursor = 'wait';
	$('other-links').innerHTML = '<h2><img id="indicator" src="images/general/indicator.gif" />&nbsp;&nbsp;'+g_language['suggest-box-suggest-in-progress']+'</h2>';

	var url = '/index.php?action=suggest_link';
	var params = 'add_link=1&js=1&title='
							 +title.stripScripts()
							 +'&desc='
							 +desc.stripScripts()
							 +'&tag='+tag.stripScripts()
							 +'&cat_id='+cat_id
							 +'&url='+link_url.stripScripts()

	var linkAjax = new Ajax.Request(
											url,
											{
												method: 'post',
												parameters: params,
												onComplete: showSuggestLinkResult
											}
											);	
}

//-------------------------------------------------------------------//

function showSuggestLinkResult(originalRequest) {
	if(originalRequest.responseText == 1) {
		alert(g_language['suggest-box-good-suggest2']);
		document.location.href = 'http://cimlap.blogter.hu/friss';
	}
}

//-------------------------------------------------------------------//

function isLinkAlreadySuggested(link_url) {
	var url = '/index.php?action=suggest_link';
	var params = 'js=1&check_url='+escape(link_url);

	var linkAjax = new Ajax.Request(
											url,
											{
												method: 'post',
												parameters: params,
												onComplete: showAlreadySuggestedLink
											}
											);	
}

//-------------------------------------------------------------------//

function showAlreadySuggestedLink(originalRequest) {
	var link_activity = new Array();

	eval('link_activity = ('+originalRequest.responseText+')');

	switch(parseInt(link_activity[0].RESULT)) {
		//Not Blogter Post
		case -3 : $('link-url-span').innerHTML = g_language['suggest-box-noblogterurl'];
			is_link_valid = false;
		break;
		//Bad Link
		case -2 : $('link-url-span').innerHTML = g_language['suggest-box-badurl'];
			is_link_valid = false;
		break;
		//Suggested by someone else
		case -1 : $('link-url-span').innerHTML = g_language['suggest-box-suggest-someone'];
			var link_values = new Array();
			var str = '';
			var add_link = '';
			var days_ago = '';
			var tag_text = '';

			is_link_valid = false;

			//global variables
			link_values = link_activity[0].LINK_VALUES;
			added_link_values = link_activity[0].LINK_VALUES;
			added_link_id = link_values[0].ID;

			if(link_values[0].TAGS.length == 0) {
				tag_text = '-';
			}
			else {
				for(n=0; n < link_values[0].TAGS.length; n++) {
					tag_text += '<a href="/index.php?action=view_tag&tag_id='+link_values[0].TAGS[n].ID+'">'+link_values[0].TAGS[n].TITLE.toLowerCase()+'</a> '
				}
			}

			if(link_values[0].IS_ADDED == 1) {
				digg_class = 'class="off"';

			}
			else {
				digg_class = 'class="on"';
			}

			if(link_values[0].IS_ADDED == 0) {
				if(login_status == 0)	{
					click = 'showLoginPage()';
				}
				else {
					click = 'addLinkToUserListExt('+link_values[0].ID+')';
				}
				add_link = '<a id="link-digg-'+link_values[0].ID+'" class="on" href="javascript:void(0)" onClick="'+click+'"><span></span>'+g_language['link-digg-it']+'</a>';
			}
			else {
				add_link = '<a id="link-digg-'+link_values[0].ID+'" class="off" href="javascript:void(0)" onClick="#"><span></span>'+g_language['link-dugg']+'</a>';
			}		

			if(parseInt(link_values[0].DAYS_AGO.DAY) > 0) {
				days_ago = link_values[0].DAYS_AGO.DAY+' '+g_language['link-days-ago']+' '+link_values[0].DAYS_AGO.HOUR+' '+g_language['link-hours-ago'];
			}
			else {
				days_ago = link_values[0].DAYS_AGO.HOUR+' '+g_language['link-hours-ago']+' '+link_values[0].DAYS_AGO.MIN+' '+g_language['link-min-ago'];		
			}

			str += '<div id="link-'+link_values[0].ID+'" class="link_item first">';
			str += '	<div id="link-info-'+link_values[0].ID+'" class="link_info">';
			str += '	<h2><div id="link-votenum-'+link_values[0].ID+'" style="width: 60px;"><div id="link-votenum-div-'+link_values[0].ID+'">'+link_values[0].VOTE_NUM+'</div></div> <span>'+g_language['link-vote-num']+'</span></h2>';
			str += '	'+add_link;
			str += '	</div>';
			str += '	<div class="link_data">';
			str += '		<div class="rating"><!--7.7 <span>pont</span>--></div>';
			str += '			<h2><a href="redirect.php?id='+link_values[0].ID+'&url='+link_values[0].URL+'" target="_blank">'+link_values[0].TITLE+'</a></h2>';
			str += '			<span class="info">'+g_language['link-suggester']+': <a href="/index.php?action=view_profile&amp;user_id='+link_values[0].USER_ID+'">'+link_values[0].LOGIN_NAME+'</a>, '+days_ago+' |<span> '+g_language['link-tags']+': '+tag_text+'</span></span>';
			str += '			<p>'+link_values[0].DESC+'</p>';
			str += '			<span class="info left"><a id="report-bad-'+link_values[0].ID+'" href="/index.php?action=link_actions&amp;report_link=bad&amp;link_id='+link_values[0].ID+'" onClick="reportLinkStates(\'bad\','+link_values[0].ID+'); return false;">'+g_language['link-bad']+'</a> | <a id="report-old-'+link_values[0].ID+'" href="/index.php?action=link_actions&amp;report_link=old&amp;link_id='+link_values[0].ID+'" onClick="reportLinkStates(\'old\','+link_values[0].ID+'); return false;">'+g_language['link-old']+'</a> | <a id="report-spam-'+link_values[0].ID+'" href="/index.php?action=link_actions&amp;report_link=spam&amp;link_id='+link_values[0].ID+'" onClick="reportLinkStates(\'spam\','+link_values[0].ID+'); return false;">'+g_language['link-spam']+'</a></span>';
			str += '			<span class="info right"><span>'+g_language['link-category']+': <a href="/index.php?action=link_site&amp;cat_id='+link_values[0].CATEGORY.ID+'">'+link_values[0].CATEGORY.TITLE+'</a></span> |  <a href="/index.php?action=link_site&amp;link_id='+link_values[0].ID+'">'+link_values[0].COMM_NUM+' '+g_language['link-comment']+'</a></span>';
			str += '		</div>';
			str += '	</div>';
			str += '</div>';

			if(is_IE) {
				$('other-links').style.display = 'block';
			}
			else {
				$('other-links').style.display = 'none';
				appearObject('other-links');
			}

			$('other-links').innerHTML = str;

		break;
		//Already on his/her list
		case 0 : $('link-url-span').innerHTML = g_language['suggest-box-already-on-list'];
			is_link_valid = false;
		break;
		//Proper link
		case 1 : $('link-url-span').innerHTML = g_language['suggest-box-good-url'];
			is_link_valid = true;
		break;
		case 2 : $('link-url-span').innerHTML = g_language['suggest-box-suggest-you'];
			is_link_valid = false;
		break;
	}
	//Link chekcing
	if(check_link == 0) {
		if(is_title_valid == false) {
			checkLinkTitle();
		}
		if(is_desc_valid == false) {
			checkLinkDesc();
		}
		if(is_cat_valid == false) {
			checkLinkCat();
		}

		if(is_link_valid && is_title_valid && is_desc_valid && is_cat_valid) {
			makeSuggestLink();
		}
	}

	//Set cursors
	document.body.style.cursor = 'default';
	$('link-submit').style.cursor = 'default';
	$('link-submit').disabled = false;
}

//-------------------------------------------------------------------//

function addLinkToUserListExt(link_id) {
	addLinkToUserList(link_id);

	if(is_IE) {
		resetDIVinnerHTML('other-links');
	}
	else {
		fadeObject('other-links');
	}
	window.setTimeout("resetFields(0)",fade_time+200);
}

//-------------------------------------------------------------------//

function myRemoveChild(link_id) {
	$('link-stream').removeChild($('link-'+link_id));
}

//-------------------------------------------------------------------//

function myRemoveChildExt(link_id,parent) {
	$(parent).removeChild($('link-'+link_id));
}

//-------------------------------------------------------------------//

function myInsertBefore(before, str) {
	new Insertion.Before(before, str);
}

//-------------------------------------------------------------------//

function appearObject(object) {
	Effect.Appear(object);
	return false;
}

//-------------------------------------------------------------------//

function fadeObject(object) {
	Effect.Fade(object);
	return false;
}

//-------------------------------------------------------------------//

function resetDIVinnerHTML(parent) {
	$(parent).innerHTML = '';
}

//-------------------------------------------------------------------//

