window.addEvent('domready', function(){
	init();
});

function init(){
/*
	if($('experts')){// на главной
		new PopUp({
			popbox: 'popup_box',//id
			textbox: 'temp_text',//id
			linkname: '.uname',//className,
			popsize: {x: 470, y: 380}
		});
	}
	*/
	
	if($('experts2')){// на главной
		var callback = function(result){
			$('experts2').set('html',result);
			if($('experts')){// на главной
				new PopUp({
					popbox: 'popup_box',//id
					textbox: 'temp_text',//id
					linkname: '.uname',//className,
					popsize: {x: 470, y: 380}
				});
			}
		}
		var url = '/inc/experts/experts.php';
		
		var request = new umiRequest({
			url: url,
			callback: callback
		});
		request.commit();
	}
		
}


var PopUp = new Class({
	Implements: [Events, Options],
	options: {
		settings: {
			tl: { radius: 20 },
			tr: { radius: 20 },
			bl: { radius: 20 },
			br: { radius: 20 },
			antiAlias: true
		},
		popbox: 'popup_box',//className; id is genereatet by system
		textbox: 'abouttext',//id
		linkname: '.popup',//className,
		popsize: {x: 800, y: 600},
		close: 'popup_close',
		callbackLoad: $empty
	},
	initialize: function (){
		var params = Array.link(arguments, {options: Object.type, elements: $defined});
		this.setOptions(params.options || null);

		//создаем контейнер
		var id =  'popBox' + Math.floor(Math.random()*100);
		this.popbox = new Element ('div', {
			'class': this.options.popbox,
			id: id
		});
		this.popbox.inject(document.body);
		
		this.closeButton = new Element('a', {
			'class': this.options.close
		});
		this.closeButton.inject(this.popbox);
	
		//var s_textbox = this.options.textbox;
		var s_linkname = this.options.linkname;
		
		
		//this.textbox = $(s_textbox);
		
		this.textbox = new Element ('div', {
			'class': 'popup_text',
			id: 'temp_text'
		});
		this.textbox.inject(document.body);
		
		//alert(this.textbox.getStyle('width'));
		
		this.linkname = $$(s_linkname);
		
		this.resize();
		
		if(!Browser.Engine.trident){
			var s_box = '#' + id;
			if(this.popbox) curvyCorners(this.options.settings, s_box);
		}
		
		
		this.build_popup();
		this.close();
	},
	
	resize: function(){
		this.popbox.setStyles({width: this.options.popsize.x, height: this.options.popsize.y});
		this.textbox.setStyles({width: this.options.popsize.x - 20, height: this.options.popsize.y - 20});

	},
	
	build_popup: function(){
		if(this.linkname.length > 0){
			var _self = this;
			this.linkname.addEvent('click', function(e){
				e.stop();
				//myMask.show();
				
				//получаем текст
				var html = this.getParent('.text').getNext('.hidden_text').get('html');
				_self.textbox.set('html', html);

				var dim = _self.popbox.getCoordinates();
				
				var w = window.getSize();
				var wscroll = window.getScroll();

				//позиционируем блок
				//_self.popbox.setStyle('left',(w.x - dim.width) / 2);
				_self.popbox.setStyle('left',200);
				_self.popbox.setStyle('top',((w.y - dim.height - 80) / 2) + wscroll.y);
			
				var dim = _self.popbox.getCoordinates();
				_self.textbox.setStyles({
					width: dim.width - 40,
					height: dim.height - 60,
					top: dim.top + 40,
					left: dim.left + 20
				});
				_self.popbox.setStyle('z-index', 1000);
				_self.textbox.setStyle('z-index', 1001);

				var myFx = new Fx.Tween(_self.popbox, {
					property: 'opacity',
					onComplete: function(){
						var myFx = new Fx.Tween(_self.textbox, {
							property: 'opacity',
							onComplete: function(){
								_self.closeButton.setStyle('z-index', 1011);
								_self.options.callbackLoad(_self.textbox);
							}
						});
						myFx.start(0,1);
					}
				});
				myFx.start(0,1);
			
				
			});
		}
	},
	
	close: function(){
		if(this.closeButton){
			var _self = this;
			_self.closeButton.addEvent('click', function(e){
				e.stop();
			

				_self.closeButton.setStyle('z-index', -1);
				var myFx = new Fx.Tween(_self.textbox, {
					property: 'opacity',
					onComplete: function(){
						var myFx = new Fx.Tween(_self.popbox, {
							property: 'opacity',
							onComplete: function(){
								_self.popbox.setStyle('z-index', -1);
								_self.textbox.setStyle('z-index', -1);
								//myMask.hide();
							}
						});
						myFx.start(1,0);
					}
				});
				myFx.start(1,0);
				
				
				//this.setStyle('z-index', -1);
				
			});
		}
	}
	

});



var umiRequest = new Class({
     Implements: [Events, Options],
     options: {
         url: '/content/get_ajax_content/',
         method: 'post',
         callback: function(text){return text},
         params: new Object({}),
         mode: 'update' //update or result
     },
     initialize: function (){
         var params = Array.link(arguments, {options: Object.type, elements: $defined});
         this.setOptions(params.options || null);
     },
     setValue: function(key, value){
         this.options.params[key] = value;
     },
     setValues: function(values){//must be an object
         this.options.params.append(values);
     },
     send: function (request){
         this.cook = document.cookie;//получаем все куки
         request.setHeader('Cookie', this.cook);
         request.send();
     },
     commit: function(){
         if(!this.options.url) alert('Не указан целевой адрес!');
         var _self = this;
         var data = Object.toQueryString(this.options.params);

         var request = new Request({
             method: this.options.method,
             url: this.options.url,
             data: data,
             evalScripts: true,
             onComplete: function(text){
                 if(_self.options.mode == 'result') return text;
                 else _self.options.callback(text);
             }
         });
         this.send(request);
     }
 });
 
