var Call = {
	params: function(params){
		this.params = params;
	},

	init: function(){
		var $Ca = this;
		this.initTextPopups($('a.__callTextPopup'));

		// information in popup
		$('body .callInPopup')
			.unbind('click')
			.click(function(){
				var width = $(this).attr('width') || $(this).attr('rel');
				$Ca.callTextInPopup(this, width);
				return false;
			});
	},

	callPopup: function(width, content){
		var self = this;
		self._popup(width, content);
	},

	callTextInPopup: function(obj, width){
		var $Ca = this;
		var $obj = $(obj);
		var item = $obj.attr('id');
		var uri = fullBase + lang + '/c/json/' + encodeURI(item);

		if(item)
			$.getJSON(uri, function(data){
				$Ca._popup(
					width,
					'<div id="addonPopup">'
					+ '<a href="javascript:;" class="close" onclick="$.unblockUI();">'
					+ '<img src="images/common/close.green.gif" alt="" />'
					+ '</a>'
					+ '<p>'
					+ data
					+ '</p>'
					+ '</div>'
				);
			});
	},

	_popup: function(width, content)
	{
		$.blockUI({
			css: {
				left:'50%',
				marginLeft: -(width/2) + 'px',
				marginTop:0,
				position:'absolute',
				top:'200px',
				padding:0,
				width: width + 'px',
				textAlign:'left',
				color:'#000',
				border:0,
				backgroundColor:'transparent',
				cursor:'default',
				zIndex:9999999
			},
			overlayCSS: {
				backgroundColor:'#000',
				opacity:'0.3',
				cursor: 'default',
				zIndex:999999
			},
			message: content
		});
	},


	popupCache: {},
	initTextPopups: function($links){
		var self = this;
		
		var $popup = $(document.createElement('div'))
			.attr('id', 'textPopupBlock')
			.hide()
			.appendTo('body');
		
		$links
			.click(function(e){
				var $obj 	= $(this);
				var cord 	= {x: e.pageX, y: e.pageY};
				var id 		= $obj.attr('id');
				var width 	= $obj.attr('rev') || '300px';
				var uri		= (fullBase + lang + '/c/text_popups/' + encodeURI(id));
				
				$popup
					.css({left: cord.x, top: cord.y, width: width});
				
				if (self.popupCache[id])
					$popup
						.show()
						.html(
							self._redrawTextPopup(self.popupCache[id])
						);
				else
					$.getJSON(uri, function(data){
						self.popupCache[id] = data;
						
						$popup
							.show()
							.html(
								self._redrawTextPopup(data)
							);
					});

                $('html,body').animate({scrollTop: $obj.offset().top - 100}, 500);

				return false;
			});
	},
	
	_redrawTextPopup: function(data){
		var self = this;
		
		return self.
			_textPopupHtml()
			.replace(/\$([\w_]+\b)/g, function(a, i){
				return data[i];
			})
		
	},
	
	_textPopupHtml: function(){
		var html = [];
			html.push('<div class="greenTop">');
				html.push('<a id="textPopupBlockClose" href="javascript:;" onclick="$(\'#textPopupBlock\').hide();" class="close">');
				html.push('<img src="images/common/mobile/baloon.x.gif" alt="x" />');
				html.push('</a>');
				html.push('<div class="textPopupBlockTitle">$title</div>');
			html.push('</div>');
			html.push('<div class="textPopupBlockBody">$text</div>');
		
		return html.join('');
	}

};

$(document).ready(function(){window.Call.init();});