wmo.site = new Class ({

	Implements: [Options, Events],
	
	options: {
		url: '',
		sectionId: 0,
		articleId: 0
	},
	
	initialize: function(options) {
		this.setOptions(options);
		//this.message=new wmo.box({
		//	padding: 10,
		//	className: 'message',
		//	resizeOnShow: true
		//});
		this.articleId=options.articleId;
		if (this.options.sectionId==2)
			{this._setLeden();}
	},
		
	_setLeden: function() {
		if ($('ledenlijst'))
			{
			$('ledenlijst').addEvent('click',this.onClickLeden.bindWithEvent(this));
			this.request = new Request.HTML({
				url: 'presentatie_ajax.php',
				onSuccess: function(html) {
					$('presentatie').removeClass('loading').set('text', '').adopt(html);
				},
				onFailure: function() {
					$('presentatie').removeClass('loading').set('text', 'Fout in de communicatie. Probeer het nogmaals.');
				}
			}); 		
			}
	},
	
	onClickLeden: function(e) {
		e.stop();
		var el=$(e.target);
		if (el.getTag()=='a')
			{
			var id=el.get('href').substr(1);
			this.getPresentation(id);
			el.addClass('selected');
			}
		return false;
	},
	
	getPresentation: function(id) {
		$('presentatie').empty().addClass('loading');
		$$('#ledenlijst a').removeClass('selected');
		this.request.get({'ID': id});
	},
	
	showMessage: function(options) {
		if (options.post && !$defined(options.url)) {options.url=this.options.url;}
		this.message.show(options);
	},
	
	addMessage: function(id) {
		var post='A=addMessage&ArticleID='+this.articleId;
		this.message.show({url: this.options.url, post: post, title: 'Reactie plaatsen', width: 470, height: 390});
		this.message.form=new wmo.form('wmo_comment');
		$('wmo_comment').set('send', {url: this.options.url, async: false, onComplete: this._afterAddMessage.bind(this)});
		this.message.form.setFocus();	
	},
	
	sendForm: function(id) {
		if (this.message.form.validate())
			{$(id).send();}
	},
	
	_afterAddMessage: function(result) {
		result=JSON.decode(result);
		var el=$('site_comments_clone').clone();
		el.set({id: 'message_'+result.id});
		var html=el.getHTML();
		el.set({styles: {'display': 'block'}, 'html': html.substitute(result)});
		el.inject($('site_comments'),'top');
		this.message.hide();
	},
	
	addSubscribtion: function(caption,id) {
		var post='A=subscribeAgenda&AgendaID='+id+'&Titel='+caption;
		this.message.show({url: this.options.url, post: post, title: 'Aanmelden '+caption,width: 360, height: 600});
		this.message.form=new wmo.form('wmo_agenda');
		$('wmo_agenda').set('send', {url: this.options.url, async: false, onComplete: this._afterSubscription.bind(this)});
		this.message.form.setFocus();	
	},
	
	_afterSubscription: function(result) {
		result=JSON.decode(result);
		$('attendees_'+result.id).set({'text': result.count});
		this.message.hide();
	}
	
});

function ellipsise(handle,tag) {

	handle=handle ? handle : 'ul.ellipsise';
	tag=tag ? tag : 'a';
	var text="";
	var length=false;
  $$(handle).each(function(item) {
  	var width;
		var parent='';
		var cl;
  	//length=item.get('rel').toInt();
  	item.getElements(tag).each(function(el){
  		//length=length ? length : ellipsise_size(item);
  		if ($type(parent)=='string')
  			{
  			parent=item.getFirst('li').clone();
  			parent.setStyle('visibility','hidden');
  			parent.injectInside(item);
		 		cl=parent.getFirst('a');
		 		cl.setStyle('visibility','hidden').injectInside(parent);
				width=cl.getSize().x-10;
				cl.setStyles({'overflow': 'auto', 'display': 'inline'});
				}
			cl.set('text',el.getText());
  		length=ellipsise_size(cl,width);
  		if (length!=0)
  			{
  			text=el.getText();
  			{el.set({'text': (text.substr(0, length) + '\u2026'), title: text});}
  			}
  		else
  			{el.set({title: text});}
  	});
  	cl.dispose();
  	parent.dispose();
  });					

};

function ellipsise_size(el,width) {
	var i=0;
	//console.log(el.getText()+' '+el.getSize().x+' '+width);
	if (el.getSize().x>width)
		{
		//var width=el.getSize().x;
		var text=el.getText();
		el.setText('');
		for(i=text.length;i>0;i--)
			{
			//text=text+'a';
			el.setText(text.substr(0,i));
			
			if (el.getSize().x<width)
				{
				break;
				}
			}
		}
	return i;
};

window.addEvent('domready', function() {

	site=new wmo.site({url: '/include/site_ajax.php', sectionId: site.sectionId, articleId: site.articleId});
	ellipsise();	
	var myAccordion = new Accordion($('accordion'), 'td.toggler', 'div.element', {
		alwaysHide: true,
		opacity: false,
		show: true,
		onActive: function(toggler, element){
			toggler.setStyle('color', '#3d6db5');
			toggler.getElement('span.toggler').setStyle('background-position', '-57px 0px');
		},
		onBackground: function(toggler, element){
			toggler.setStyle('color', '#41464D');
			toggler.getElement('span.toggler').setStyle('background-position', '-38px 0px');
		}
	});
	if ($('accordion')) {$('accordion').setStyle('display','block');}

});
