/*
 * General classes and functions
 * 
 * http://www.kreni.com
 *
 * Copyright (c) 2009 Zoran Juric
 * Licensed under the GPL license
 * http://www.gnu.org/licenses/gpl.html
 *
 */

//
// dependencies: jQuery.js
//

var BASE_PATH = '';
var AVATAR_PATH = '';

var LOADER_IMG = '<img id="loader" src="img/loadinfo.gif" alt=""/>';

var KRENI_SECONDS_IN_MINUTE = 60;
var KRENI_SECONDS_IN_HOUR = KRENI_SECONDS_IN_MINUTE * 60;
var KRENI_SECONDS_IN_DAY = KRENI_SECONDS_IN_HOUR * 24;
var KRENI_SECONDS_IN_WEEK = KRENI_SECONDS_IN_DAY * 7;
var KRENI_SECONDS_IN_MONTH = KRENI_SECONDS_IN_DAY * 30;
var KRENI_SECONDS_IN_YEAR = KRENI_SECONDS_IN_DAY * 365;
var KRENI_SECONDS_IN_DECADE = KRENI_SECONDS_IN_YEAR * 10;

function getCT() {
	var now = new Date();
	return parseInt(Date.UTC(now.getUTCFullYear(),now.getUTCMonth(),now.getUTCDate(),now.getUTCHours(),now.getUTCMinutes(),now.getUTCSeconds(),now.getUTCMilliseconds())/1000)
}

function get_age(seconds) {
	ret = new Array(0,0);

	seconds = getCT() - seconds;

    if (seconds < KRENI_SECONDS_IN_MINUTE) {
    	cnt = seconds;
        return new Array(cnt, KRENI_SECOND_STRING);
    } else if (seconds < KRENI_SECONDS_IN_HOUR) {
	    cnt = (seconds / KRENI_SECONDS_IN_MINUTE);
        ret = new Array(cnt, KRENI_MINUTE_STRING);
    } else if (seconds < KRENI_SECONDS_IN_DAY) {
    	cnt = (seconds / KRENI_SECONDS_IN_HOUR);
        ret = new Array(cnt, KRENI_HOUR_STRING);
    } else if (seconds < KRENI_SECONDS_IN_WEEK) {
    	cnt = (seconds / KRENI_SECONDS_IN_DAY);
        ret = (cnt < 2) ? new Array(0, KRENI_YESTERDAY_STRING) : new Array(cnt, KRENI_DAY_STRING);
    } else if (seconds < KRENI_SECONDS_IN_MONTH) {
    	cnt = (seconds / KRENI_SECONDS_IN_WEEK);
        ret = new Array(cnt, KRENI_WEEK_STRING);
    } else if (seconds < KRENI_SECONDS_IN_YEAR) {
    	cnt = (seconds / KRENI_SECONDS_IN_MONTH);
        ret = new Array(cnt, KRENI_MONTH_STRING);
    } else if (seconds < KRENI_SECONDS_IN_DECADE) {
    	cnt = (seconds / KRENI_SECONDS_IN_YEAR);
        ret = new Array(cnt, KRENI_YEAR_STRING);
	}

	return ret;
}

function format_timestamp(seconds) {
	age = get_age(seconds);
	if ((age[0] == 0) && (age[1] == 0)) return '';
	if (parseInt(age[0]) < 0) return "-";
	return (age[0] == 0) ? age[1] : __LNG['AGE'] + parseInt(age[0]) + " " + age[1];
} 

function format_job_timestamp(seconds) {
    if (is_today(seconds)) return KRENI_TODAY_STRING;
	age = get_age(seconds);
	if ((age[0] == 0) && (age[1] == 0)) return '';
	if (parseInt(age[0]) < 0) return '';
	return (age[0] == 0) ? age[1] : __LNG['AGE'] + parseInt(age[0]) + " " + age[1];
} 

function is_today(seconds) {
	secs = getCT() - seconds;
    return ((secs < KRENI_SECONDS_IN_DAY) && (secs > 0));
}

function escapeRegExp (string){
	return string.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
}

function trim( text ) {
	return (text || "").replace( /^\s+|\s+$/g, "" );
} 

function tooltipShow(element){	
	var offsets = $(element).offset();
	var text = $(element).attr('rel');
	
	var de = document.documentElement;
	var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var hasArea = w - offsets.left;
		
    var width = 250;

	if(hasArea > (width + 75)){
		$("body").append("<div class='titletip' style='z-index: 10000; max-width:"+width+"px'><strong>"+text+"</strong></div>");
		var elementx = offsets.left;
	}else{
		$("body").append("<div class='titletip tipRight' style='max-width:"+width+"px'><strong>"+text+"</strong></div>");
		var elementx = offsets.left - $('.titletip').width() + $(element).width(); 
	}
	var elementy = ($(element).children().length) ?
		getChildrenTop(element) - $('.titletip').height() - 6
		:
		clickElementy = offsets.top - $('.titletip').height() - 6;

	$('.titletip').css({left: elementx+"px", top: elementy+"px"}).fadeIn('fast');

}

function getChildrenTop(element) {
	var top = 65536;
	$(element).children().each(function(i){
		var o = $(this).offset();
		if (top > o.top) top = o.top;
	});
	return top;
}

var tooltiptimer;

/* preload */
imageObj = new Image();
imgs = ["img/loadinfo.gif", "img/popup-bg.png"];
for(i=0; i<=imgs.length; i++) { imageObj.src=imgs[i]; }

if(!KRENI){
	var KRENI = {}
}

KRENI.showInfo = function(text){
		jQuery.facebox(text, '', __LNG['INFOBOX']);
}
KRENI.showError = function(text){
		jQuery.facebox(text, 'errorbody', __LNG['ERRORBOX']);
}

$(document).ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError) {
		$('#loader').remove();
	    KRENI.showError(__LNG['AJAX_ERROR']);
});

KRENI.formatTimestamps = function() {
	$('span.timestamp').each(function(i){
		$(this).text(format_timestamp($(this).text())).removeClass('timestamp').show();
	});
}

KRENI.setTooltips = function(){
		$("a[title]").each(function() {
			$(this).attr('rel', $(this).attr('title'));
			$(this).removeAttr('title');
			this.alt = '';
		});
		$("a[rel]").hover(
			function() { 
				tooltipShow(this); 
				if (tooltiptimer) clearTimeout(tooltiptimer);
				tooltiptimer = setTimeout(function() { $('.titletip').hide(); }, 5000); 
			},
			function() { $('.titletip').remove(); }
		);
		$("div[title],span[title]").each(function() {
			$(this).attr('rel', $(this).attr('title'));
			$(this).removeAttr('title');
		});
		$("div[rel],span[rel]").hover(
			function() { 
				tooltipShow(this); 
				if (tooltiptimer) clearTimeout(tooltiptimer);
				tooltiptimer = setTimeout(function() { $('.titletip').hide(); }, 5000); 
			},
			function() { $('.titletip').remove(); }
		);
}

KRENI.setUPclicks = function() {
		$('a.up').click(function() {
			var id = this.id.match(/up_([0-9]+)/);
			if (id) id = id[1]; else return false;
			return KRENI.getUserProfile(id);
		});
}

KRENI.onReadyState = function(){	
		$('a').click(function(){$(this).blur();});
		
		if ($.browser.safari) $('html').addClass('safari');
		if ($.browser.mozilla) $('html').addClass('firefox');
		if ($.browser.opera) $('html').addClass('opera');
		//if ($.browser.msie) $('html').addClass('msie');

		$(".btn-slide").click(function(){
			$("#panel").toggle();
			$(this).toggleClass("active"); return false;
		});
		
		KRENI.setTooltips();
		$('img').attr('alt', '');
		KRENI.setUPclicks();		
}

KRENI.initEntryPage = function(){
		jQuery("div#slider1").entrySlider()
		
		$('#search_tabs a').click(function(){
			$('#search_tabs > li').removeClass('selected');
			$('#search_tabs').find('em').remove();
			$(this).parent().addClass('selected').append('<em></em>');
			var id = this.id.match(/st_(.+)/);
			if (id) search_tab = id[1]; else return false;
			as_json.oP.script = "request.php?r=epas&st=" + search_tab + "&";
			as_json.sInp = "";
			as_json.getSuggestions($('#q').val());
			return false;
		});
		
		$('#go').click(function(){
			var q = $('#q').val();
			if (q.length) {
				var href;
				switch (search_tab) {
					case "news":
						href = 'naslovi/pretraga/?q=';
						break;
					case "blog":
						href = 'blogosfera/pretraga/?q=';
						break;
					case "dir":
						href = 'direktorijum/pretraga/?q=';
						break;
					case "jobs":
						href = 'poslovi/pretraga/?q=';
						break;
				}
				document.location.href = href + encodeURIComponent(q);
			}
		});

			
		setEpplNum = function(n) {
			var lis = $('ul#dir_pages').children('li');			
			for (var i=0;i<lis.length;i++) {
				if (i < n) {
					$(lis[i]).show('slow');
				} else {
					$(lis[i]).hide('fast');
				}
			}
			KRENI.Cookies.set('epplnum', n, {duration: 30, path: '/'});
			epplnum = n;
			$('#epplnum > a').removeClass('selected');
			$('#epplnum').find('a:eq(' + (n / 3 - 1) + ')').addClass('selected');
			return false;
		}	
		$('#rbtn-dir a').click(function(){
			if (!initEntryPage) $('#dir_pages').block(LOADER_IMG, { backgroundColor: '#007CC3' });
			$('#rbtn-dir > li').removeClass('selected');
			$(this).parent().addClass('selected'); 
			var id = this.id.match(/rbtn\-dir\-(.+)/);
			if (id) id = id[1]; else return false;
			$.get('request.php', {'r': 'eppl', 'id': id}, function(data) { 
				if (!initEntryPage) $('#dir_pages').unblock();
				$('ul#dir_pages').empty().append(data).fadeIn('fast');
				KRENI.Cookies.set('eppl', id, {duration: 30, path: '/'});
				KRENI.formatTimestamps();
				setEpplNum(epplnum);
				KRENI.setUPclicks();
			})
			return false;
		});
		var eppl = KRENI.Cookies.get('eppl');
		if (eppl == "") eppl = 'top';
		var epplnum = KRENI.Cookies.get('epplnum');
		if ((epplnum < 3) || (epplnum > 9)) epplnum = 6;
		$('#rbtn-dir-' + eppl).click();
		
		$('#rbtn-news a').click(function(){
			if (!initEntryPage) $('#epnl_container').block(LOADER_IMG, { backgroundColor: '#007CC3' });
			$('#rbtn-news > li').removeClass('selected');
			$(this).parent().addClass('selected'); 
			var id = this.id.match(/rbtn\-news\-(.+)/);
			if (id) id = id[1]; else return false;
			$.get('request.php', {'r': 'epnl', 'id': id}, function(data) { 
				if (!initEntryPage) $('#epnl_container').unblock();
				$('#epnl_container').empty().append(data).fadeIn('fast');
				KRENI.Cookies.set('epnl', id, {duration: 30, path: '/'});
				$('.carousel ul').cycle({prev:'.previous',next:'.next',pause: 1});
			})
			return false;
		});
		var epnl = KRENI.Cookies.get('epnl');
		if (epnl == "") epnl = '{$lg}';
		$('#rbtn-news-' + epnl).click();
		
		var wCity = 0;
		var wCityNum = $('ul#wslider').find("li").size();
		var weather_timer;
		var weatherSlider = function() {
			$('#next_city').hide();
			$('ul#wslider').find("li").hide();
			$('ul#wslider').find("li:eq(" + (wCity) + ")").fadeIn();
			if (++wCity == wCityNum) wCity = 0;
			weather_timer = setTimeout(weatherSlider, weatherScrollTime);
			$('#next_city').show();
		}
		$('#next_city').click(function(){
			clearTimeout(weather_timer);
			weatherSlider();
			return false;
		});
		weatherSlider();

		KRENI.formatTimestamps();
		
		var autosuggest_options = {
			script:"request.php?r=epas&st=" + search_tab + "&",
			varname:"q",
			json:true,
			shownoresults:true,
			noresults:'---',
			maxresults:10,
			cache:false,
			minchars:3,
			timeout:100000,
			callback: function (obj) {	
				document.location.href = obj.link;
			}
		};
		var as_json = new bsn.AutoSuggest('q', autosuggest_options);
		initEntryPage = false;
}

KRENI.Cookies = function(){
	var self = this;

    self.options = {
		domain: false,
		path: false,
		duration: false
    }
	
	return { 
			set: function(key, value, options){
				$.extend(self.options, options);
				value = encodeURIComponent(value);
				if (self.options.domain) value += '; domain=' + self.options.domain;
				if (self.options.path) value += '; path=' + self.options.path;
				if (self.options.duration){
					var date = new Date();
					date.setTime(date.getTime() + self.options.duration * 24 * 60 * 60 * 1000);
					value += '; expires=' + date.toGMTString();
				}
				document.cookie = key + '=' + value;
				//return $extend(options, {'key': key, 'value': value});
				return true;
			},

			get: function(key){
				var value = document.cookie.match('(?:^|;)\\s*' + escapeRegExp(key) + '=([^;]*)');
				return value ? decodeURIComponent(value[1]) : false;
			},

			remove: function(cookie, options){
				this.set(cookie, '', $.extend(options, {duration: -1}));
			}
	}
}();

KRENI.createDiv = function(el, c, text){
		$(el).append('<div class="' + c + '">' + text + '</div>');
}

KRENI.validateContactForm = function(){
	
		var form = $('#contact_form');
		var el_name = $('input#name');
		var el_email = $('input#email');
		var el_comment = $('textarea#comment');
		var el_captcha = $('input#captcha');
		
		var name_val = trim(el_name.val());
		var email_val = trim(el_email.val());
		var comment_val = trim(el_comment.val());
		var captcha_val = trim(el_captcha.val());

		$(form).find('li').removeClass('err');
		$(form).find('p.err').remove();		
		
		if (name_val == '') {
			$('li#li_name').addClass('err').append('<p class="err">'+__LNG['CONTACTFORM_ERROR_NAME']+'</p>');
			return false;
		}
		if (email_val == '') {
			$('li#li_email').addClass('err').append('<p class="err">'+__LNG['CONTACTFORM_ERROR_EMAIL']+'</p>');
			return false;
		}
		if (comment_val == '') {
			$('li#li_comment').addClass('err').append('<p class="err">'+__LNG['CONTACTFORM_ERROR_COMMENT']+'</p>');
			return false;
		}
		if (captcha_val == '') {
			$('li#li_captcha').addClass('err').append('<p class="err">'+__LNG['CONTACTFORM_ERROR_CAPTCHA']+'</p>');
			return false;
		}
		
		$('.button').hide();
		$('.buttons').append(LOADER_IMG);
		$.ajax({
			type: "POST",
			url: "request.php",
			data: 'r=contact&name=' + name_val + '&email=' + email_val + '&comment=' + comment_val + '&captcha=' + captcha_val,
			dataType: 'json',
			success: function(msg){
				$('#loader').remove();
				if (msg['success']) {
					$(form).hide();
					KRENI.createDiv('#form-container', 'success', __LNG['CONTACTFORM_SUCCESS']);
				} else {
					$('.button').show();
					$('li#li_' + msg['field']).addClass('err').append('<p class="err">' + msg['error'] + '</p>');
				}
			}
		});
		
}

KRENI.validateLoginForm = function(){
	
		var form = $('#login_form');
		var el_pass = $('input#password');
		var el_email = $('input#email');
		
		var pass_val = el_pass.val();
		var email_val = trim(el_email.val());
		var remember_val = rememberBtn.readValue();

		$(form).find('li').removeClass('err');
		$(form).find('p.err').remove();		
		
		if (email_val == '') {
			$('li#li_email').addClass('err').append('<p class="err">'+__LNG['LOGINFORM_ERROR_EMAIL']+'</p>');
			return false;
		}
		if (pass_val == '') {
			$('li#li_password').addClass('err').append('<p class="err">'+__LNG['LOGINFORM_ERROR_PASSWORD']+'</p>');
			return false;
		}
		
		$('.button').hide();
		$('#form-container').append(LOADER_IMG);
		$.ajax({
			type: "POST",
			url: "request.php",
			data: 'r=login&pass=' + hex_md5(pass_val) + '&email=' + email_val,
			dataType: 'json',
			success: function(msg){
				$('#loader').remove();
				if (msg['success']) {
					//$(form).hide();
					if (remember_val) {
						KRENI.Cookies.set("auth", msg['user_id'], {duration: 30, path: '/'});
						KRENI.Cookies.set("hash", msg['hash'], {duration: 30, path: '/'});
					}
					document.location.href = "my";
				} else {
					$('.button').show();
					$('li#li_' + msg['field']).addClass('err').append('<p class="err">' + msg['error'] + '</p>');
				}
			}
		});
		
}

KRENI.initWebSearch = function(){
		
		$('#q').focus(function() {
			this.style.background = '#FFFFFF'; 
		});
		
		$('#q').blur(function() {
			if ($(this).val() == '') this.style.background = '#FFFFFF url(img/google_custom_search_watermark.gif) 3px 10px no-repeat';
		});
		
		if (!/[&?]q=[^&]/.test(location.search)) $('#q').blur();
				
		$("#tabbedContainer").tabbedBtn({hide: false});
		
		var $$ = $('ul.secontainer');

		$("a.setypes").click(function() {
			if ($('#tabbedContainer ul').is(":hidden")) KRENI.csePanelToggle($('#tabbedContainer').find('span > a'), $(this).attr('name'));
			var li = $$.find('li:visible');
			if ($(li).html() == '') {
				$(li).html(LOADER_IMG);
				KRENI.requestCSEList($(this).attr('name'));
			}
		});
		
		if (!cseID) {
			if (KRENI.Cookies.get("auth")) 
				$("a.setypes").eq(0).click();
			else
				$("a.setypes").eq(1).click();
		}
		
		$('.resizeHandle').bind("mousedown", function(e) {
			var h = $$.height(), y = e.clientY, mouseMove, mouseUp;
			mouseMove = function(e) {
				$$.css("height", e.clientY+h-y + "px");
				return false;
			};
			mouseUp = function(e) {
				$("html").unbind("mousemove", mouseMove).unbind("mouseup", mouseUp);
				return false;
			};
			$("html").bind("mousemove", mouseMove).bind("mouseup", mouseUp);
		}); 

}

KRENI.requestCSEList = function(type){
		
		$.ajax({
			type: "POST",
			url: "request.php",
			data: "r=serl&type=" + type,
			dataType: 'json',
			success: function(msg){
				$('#loader').remove();
				if (msg['error'] == '') {
					var data = msg['items'];
					var items = [];
					var column = 0;
					for (var i = 0; i < data.length; i++) {
						var el = '<dd><a href="javascript: //;" name="'+data[i]['id']+'">'+data[i]['name']+'</a> <small>('+data[i]['links']+')</small></dd>';
						items[column] = (items[column] == undefined) ? el : (items[column] + el);
						if (++column == 6) column = 0;
						cseList[data[i]['id']] = data[i];
					} 	
					var itemshtml = '';
					for (var i = 0; i < items.length; i++) {
							itemshtml += '<dl>' + items[i] + '</dl>';
					}
					if (type == 'my') {
						$('#count-my').text('('+data.length+')');
						if (!itemshtml) itemshtml = '<p>'+__LNG['CSE_NOITEMS_TXT']+'<a class="button" href="my/cse/new">'+__LNG['CSE_NOITEMS_LINK']+'</a></p>';
					} else if (type == 'all') {
						$('#count-all').text('('+data.length+')');
					}
					$('ul.secontainer').find('li:visible').html(itemshtml);				
					$('dd').find('a').click(function() {
						$('#avatarDiv').html('');
						var seForm = $('#seform');
						cseID = $(this).attr('name');
						$(seForm).find('h2').text(cseList[cseID]['name']);
						if (cseList[cseID]['description']) {
							$('#cseDesc').html('<div class="quote"><img class="q" src="img/q-open.gif" alt=""/>' + cseList[cseID]['description'] + '</div>');
						} else {
							$('#cseDesc').text('');
						}
						var url = BASE_PATH + 'web/' + cseID + '/' + cseList[cseID]['url_name'];
						$('#cseURL').html('<a href="' + url + '">' + url + '</a>');
						$('#cref').val(BASE_PATH + 'CSEDefinition-' + cseID + '.xml');
						$('#cref_iframe').attr('action', 'web/' + cseID + '/' + cseList[cseID]['url_name'] + '/');
						$(seForm).show();
						var avatar = (cseList[cseID]['avatar'] == 1) ? (AVATAR_PATH + cseList[cseID]['editor'] + '.jpg') : (BASE_PATH + 'img/silhouette.gif');
						$('#avatarDiv').html('<a href="javascript: //;" class="up" id="up_' + cseList[cseID]['editor'] + '" title="'+__LNG['CSE_AUTHOR']+': ' + cseList[cseID]['username'] + '"><img src="' + avatar + '" alt=""/></a>');
						$('#resultBox').hide();
						KRENI.setTooltips();
						KRENI.setUPclicks();
						return false;
					});
				} else {
					KRENI.showError(msg['error']);
				}
			}
		});		

}

KRENI.csePanelToggle = function(el, item) {
		if ($('#tabbedContainer ul').is(":hidden")) {
			$(el).find('img').attr("src", "img/toggle_minus.gif"); 
			$('#tabbedContainer ul').show();
			$('.resizeFooter').show();
			if (item == undefined) item = 0;
			if ($('a.tabbedBtn[class*=selected]').text() == '') $("a.setypes").eq(item).click();
		} else {
			$(el).find('img').attr("src", "img/toggle_plus.gif"); 
			$('.resizeFooter').hide();
			$('#tabbedContainer ul').hide();
		}
		return false;
}

KRENI.showSuggestCSEForm = function() {
	jQuery.facebox(function(){
		$.get('request.php', {r: 'sess', cse: cseID}, function(data) { $.facebox.reveal(data, '', __LNG['CSE_SUGGEST_TITLE']); })
	});
	return false;
}

KRENI.suggestURLsForCSE = function() {
		$('div.error').remove();
		$('button#btnadd').hide();
		$('#li_button').append(LOADER_IMG);
		var links = $('#links').val();
		var email = $('#guestemail').val();
		var fullname = $('#fullname').val();
		var captcha = $('#captcha').val();
		$.ajax({
			type: "POST",
			url: "request.php",
			data: "r=sesg&links=" + encodeURIComponent(links) + '&email=' + encodeURIComponent(email) + '&fullname=' + encodeURIComponent(fullname) + '&captcha=' + captcha,
			dataType: 'json',
			success: function(msg){
				$('#loader').remove();
				if (msg['error'] == '') {
					$('#addform').hide();
					KRENI.createDiv('div.content', 'success', __LNG['CSE_SUGGEST_SUCCESS']);
				} else {
					$('button#btnadd').show();
					KRENI.createDiv('div.content', 'error', msg['error']);
				}
			}
		});
		return false;
}

KRENI.favorizeHeadline = function(){
		if (!KRENI.Cookies.get("auth")) return false;
		$('div.error').remove();
		if (headline_id == undefined) {
			KRENI.createDiv('div.content', 'error', __LNG['FAVH_ERROR_ID']);
			return false;
		}
		$('button#btnhfav').hide();
		$('#li_hfav').append(LOADER_IMG);
		var f_desc = $('#fav_desc').val();
		var f_tags = $('#fav_tags').val();
		$.ajax({
			type: "POST",
			url: "request.php",
			data: "r=fna&id=" + headline_id + '&desc=' + f_desc + '&tags=' + f_tags,
			dataType: 'json',
			success: function(msg){
				$('#loader').remove();
				if (msg['error'] == '') {
					$('#af_' + headline_id).removeClass().addClass('favorite-added').attr('rel', __LNG['FAVH_ADDED_TXT']);
					$('#favform').hide();
					KRENI.createDiv('div.content', 'success', __LNG['FAVH_SUCCESS']);
					KRENI.createDiv('div.content', '', '<a href="my/favorites/headlines">'+__LNG['FAVH_LINK']+'</a>');
				} else {
					if (msg['hide']) $('#favform').hide(); 
					else $('button#btnhfav').show();
					KRENI.createDiv('div.content', 'error', msg['error']);
				}
			}
		});
		return false;
}

KRENI.favorizeBlogPost = function(){
		if (!KRENI.Cookies.get("auth")) return false;
		$('div.error').remove();
		if (headline_id == undefined) {
			KRENI.createDiv('div.content', 'error', __LNG['FAVB_ERROR_ID']);
			return false;
		}
		$('button#btnhfav').hide();
		$('#li_hfav').append(LOADER_IMG);
		var f_desc = $('#fav_desc').val();
		var f_tags = $('#fav_tags').val();
		$.ajax({
			type: "POST",
			url: "request.php",
			data: "r=fba&id=" + headline_id + '&desc=' + f_desc + '&tags=' + f_tags,
			dataType: 'json',
			success: function(msg){
				$('#loader').remove();
				if (msg['error'] == '') {
					$('#af_' + headline_id).removeClass().addClass('favorite-added').attr('rel', __LNG['FAVB_ADDED_TXT']);
					$('#favform').hide();
					KRENI.createDiv('div.content', 'success', __LNG['FAVB_SUCCESS']);
					KRENI.createDiv('div.content', '', '<a href="my/favorites/blogosphere">'+__LNG['FAVB_LINK']+'</a>');
				} else {
					if (msg['hide']) $('#favform').hide(); 
					else $('button#btnhfav').show();
					KRENI.createDiv('div.content', 'error', msg['error']);
				}
			}
		});
		return false;
}

KRENI.favorizePage = function(){
		if (!KRENI.Cookies.get("auth")) return false;
		$('div.error').remove();
		if (page_id == undefined) {
			KRENI.createDiv('div.content', 'error', __LNG['FAVP_ERROR_ID']);
			return false;
		}
		$('button#btnpfav').hide();
		$('#li_pfav').append(LOADER_IMG);
		var f_desc = $('#fav_desc').val();
		var f_tags = $('#fav_tags').val();
		$.ajax({
			type: "POST",
			url: "request.php",
			data: "r=fpa&id=" + page_id + '&desc=' + f_desc + '&tags=' + f_tags,
			dataType: 'json',
			success: function(msg){
				$('#loader').remove();
				if (msg['error'] == '') {
					$('#af_' + page_id).removeClass().addClass('favorite-added').attr('rel', __LNG['FAVP_ADDED_TXT']);
					$('#favform').hide();
					KRENI.createDiv('div.content', 'success', __LNG['FAVP_SUCCESS']);
					KRENI.createDiv('div.content', '', '<a href="my/favorites/pages">'+__LNG['FAVP_LINK']+'</a>');
				} else {
					if (msg['hide']) $('#favform').hide(); 
					else $('button#btnpfav').show();
					KRENI.createDiv('div.content', 'error', msg['error']);
				}
			}
		});
		return false;
}

KRENI.favorizeJob = function(){
		if (!KRENI.Cookies.get("auth")) return false;
		$('div.error').remove();
		if (job_id == undefined) {
			KRENI.createDiv('div.content', 'error', __LNG['FAVJ_ERROR_ID']);
			return false;
		}
		$('button#btnhfav').hide();
		$('#li_hfav').append(LOADER_IMG);
		var f_desc = $('#fav_desc').val();
		var f_tags = $('#fav_tags').val();
		$.ajax({
			type: "POST",
			url: "request.php",
			data: "r=fja&id=" + job_id + '&desc=' + f_desc + '&tags=' + f_tags,
			dataType: 'json',
			success: function(msg){
				$('#loader').remove();
				if (msg['error'] == '') {
					if ($('#af_' + job_id).hasClass('apply')) {
						$('#af_' + job_id).remove();
						$('.apply-container').append('<span class="apply">' + __LNG['FAVJ_ADDED_TXT'] + '</span>');
					} else {
						$('#af_' + job_id).removeClass().addClass('favorite-added').attr('rel', __LNG['FAVJ_ADDED_TXT']);
					}
					$('#favform').hide();
					KRENI.createDiv('div.content', 'success', __LNG['FAVJ_SUCCESS']);
					KRENI.createDiv('div.content', '', '<a href="my/favorites/jobs">'+__LNG['FAVJ_LINK']+'</a>');
				} else {
					if (msg['hide']) $('#favform').hide(); 
					else $('button#btnhfav').show();
					KRENI.createDiv('div.content', 'error', msg['error']);
				}
			}
		});
		return false;
}

KRENI.suggestHAlarm = function(q, nlg) {
		if (!KRENI.Cookies.get("auth")) {
			KRENI.showInfo(__LNG['LOGIN_REGISTER_1']+'<a href="login">'+__LNG['LOGIN_REGISTER_2']+'</a>/<a href="register">'+__LNG['LOGIN_REGISTER_3']+'</a>'+__LNG['LOGIN_REGISTER_4']);
			return false;
		}
		document.location.href = "my/alarms/headlines/?q=" + encodeURIComponent(q) + '&l=' + nlg;
		return false;
}
KRENI.suggestBAlarm = function(q) {
		if (!KRENI.Cookies.get("auth")) {
			KRENI.showInfo(__LNG['LOGIN_REGISTER_1']+'<a href="login">'+__LNG['LOGIN_REGISTER_2']+'</a>/<a href="register">'+__LNG['LOGIN_REGISTER_3']+'</a>'+__LNG['LOGIN_REGISTER_4']);
			return false;
		}
		document.location.href = "my/alarms/blogosphere/?q=" + encodeURIComponent(q);
		return false;
}
KRENI.suggestJAlarm = function(q, loc, cat) {
		if (!KRENI.Cookies.get("auth")) {
			KRENI.showInfo(__LNG['LOGIN_REGISTER_1']+'<a href="login">'+__LNG['LOGIN_REGISTER_2']+'</a>/<a href="register">'+__LNG['LOGIN_REGISTER_3']+'</a>'+__LNG['LOGIN_REGISTER_4']);
			return false;
		}
		document.location.href = "my/alarms/jobs/?q=" + encodeURIComponent(q) + '&l=' + encodeURIComponent(loc) + '&cid=' + cat;
		return false;
}

KRENI.addFirefoxSE = function(name, type) {
		if ((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function")) {
			if (type == 'cse') {
				window.sidebar.addSearchEngine(BASE_PATH + "CSEFirefox-" + name + ".src", BASE_PATH + "img/favicons/kreni.png", '', '');
			} else {
				window.sidebar.addSearchEngine(BASE_PATH + "firefox/" + name + ".src", BASE_PATH + "firefox/" + name + ".png", name, '');
			}
		} else {
			KRENI.showError(__LNG['FIREFOX_ADD']);
		}
		return false;
}

KRENI.getUserProfile = function(user) {
		jQuery.facebox(function(){
			$.get('request.php', {r: 'up', id: user}, function(data) { $.facebox.reveal(data, '', __LNG['UP_TITLE']); })
		});
		return false;
}

KRENI.requestNewPwdForm = function(user) {
		jQuery.facebox(function(){
			$.get('request.php', {r: 'rnpf'}, function(data) { $.facebox.reveal(data, '', __LNG['NEWPASSWORD_TITLE']); })
		});
		return false;
}

KRENI.requestNewPwd = function() {
		$('div.error').remove();
		$('button#btnrequest').hide();
		$('#li_button').append(LOADER_IMG);
		var email = $('#regemail').val();
		var username = $('#username').val();
		$.ajax({
			type: "POST",
			url: "request.php",
			data: "r=rnp&email=" + encodeURIComponent(email) + '&username=' + encodeURIComponent(username),
			dataType: 'json',
			success: function(msg){
				$('#loader').remove();
				if (msg['error'] == '') {
					$('#requestform').hide();
					KRENI.createDiv('div.content', 'success', __LNG['NEWPASSWORD_SUCCESS'] + email);
				} else {
					$('button#btnrequest').show();
					KRENI.createDiv('div.content', 'error', msg['error']);
				}
			}
		});
		return false;
}

KRENI.registerAccount = function(){
	
		var form = $('#regform');
		var el_email = $('input#newemail');
		var el_username = $('input#newusername');
		var el_fullname = $('input#fullname');
		var el_captcha = $('input#captcha');
		
		var email_val = trim(el_email.val());
		var username_val = trim(el_username.val());
		var fullname_val = trim(el_fullname.val());
		var captcha_val = trim(el_captcha.val());
		var terms_val = termsBtn.readValue();

		$(form).find('li').removeClass('err');
		$(form).find('p.err').remove();		
		
		if (fullname_val == '') {
			$('li#li_fullname').addClass('err').append('<p class="err">'+__LNG['REGISTER_ERROR_NAME']+'</p>');
			return false;
		}
		if (username_val == '') {
			$('li#li_newusername').addClass('err').append('<p class="err">'+__LNG['REGISTER_ERROR_USERNAME']+'</p>');
			return false;
		}
		if (email_val == '') {
			$('li#li_newemail').addClass('err').append('<p class="err">'+__LNG['REGISTER_ERROR_EMAIL']+'</p>');
			return false;
		}
		if (terms_val == 0) {
			$('li#li_terms').addClass('err').append('<p class="err">'+__LNG['REGISTER_ERROR_TERMS']+'</p>');
			return false;
		}
		if (captcha_val == '') {
			$('li#li_captcha').addClass('err').append('<p class="err">'+__LNG['REGISTER_ERROR_CAPTCHA']+'</p>');
			return false;
		}
		
		$('.button').hide();
		$('#form-container').append(LOADER_IMG);
		$.ajax({
			type: "POST",
			url: "request.php",
			data: 'r=register&email=' + encodeURIComponent(email_val) + '&username=' + encodeURIComponent(username_val) + '&name=' + encodeURIComponent(fullname_val) + '&terms=' + terms_val + '&captcha=' + captcha_val,
			dataType: 'json',
			success: function(msg){
				$('#loader').remove();
				if (msg['error'] == '') {
					$(form).hide();
					KRENI.createDiv('form-container', 'success', __LNG['REGISTER_SUCCESS'] + email_val);
				} else {
					$('.button').show();
					$('li#li_' + msg['field']).addClass('err').append('<p class="err">' + msg['error'] + '</p>');
				}
			}
		});
		
}

KRENI.upgradeProfileForm = function(user) {
		jQuery.facebox(function(){
			$.get('request.php', {r: 'supf'}, function(data) { $.facebox.reveal(data, '', __LNG['UPGRADE_TITLE']); })
		});
		return false;
}
