var Mediapopup = Class.create();
var Mediapopuptype;
Mediapopup.prototype ={
	items: [],
	settings: {},

	initialize: function(settings) {
		this.settings  = settings;
	},

	getpage: function(n) {
		var c = this.getInnerElement('in' + this.settings.popupdiv);
		new Ajax.Request(this.settings.getUrl, {
			method: 'get',
			parameters: {
				'page': n,
				'type': this.settings.type
			},
			onCreate: function() {
				c.update('Loading...');
			}.bind(this.dialog),
			onComplete: function(originalRequest) {
				c.update(originalRequest.responseText);
				this.show();
			}.bind(this.dialog)
		});
	},
	
	getInnerElement: function(id) {
		if (this.dialog) {
			return $(this.dialog.bodyId).down('#' + id);
		} else {
			return $(id);
		}
	},
	
	show: function(e) {
		Mediapopuptype = this.settings.type;
		
		this.dialog = DialogManager.createDialog({
			withTitle: true,
			titleBackgroundColor: '#222222',
			closeImage: "/i/mail/actions/delete.gif",
			openRollImage: "/i/mail/actions/edit.gif",
			closeRollImage: "/i/mail/actions/stop.gif",
			isModal: false
		});
		
		with ($('uplmdbtn')) {
			this.settings.uploadUrl ? show() : hide();
		}
		
		$('titletype').update(this.settings.type);
		
		this.dialog.setTitle('Add media');
		this.dialog.setContent($(this.settings.popupdiv).innerHTML);
		
		this.getpage(this.settings.page);
		return false;
	},
	
	video: function (id, type, description, title){
		var pars2 = description;
		var pars = id+'_'+type;
		if (!this.items[pars]){
			$(pars).style.backgroundColor = '#00f';
		this.items[pars] = pars;
			node = document.createElement("input");
			node.setAttribute('type', 'hidden');
			node.setAttribute('name', 'items[]');
			node.setAttribute('value', pars2);
			node.setAttribute('id', 'i'+pars);
			this.getInnerElement(this.settings.popupdiv + 'form').appendChild(node);
			inode = document.createElement("p");
			inode.style.width = '7%';
			inode.innerHTML = '<img src="'+$(pars).src+'" width="30" height="30" onclick="Mediapopup'+this.settings.type+'.remove(\''+pars+'\')" title="remove">';
			inode.setAttribute('id', 'p'+pars);
			this.getInnerElement('out' + this.settings.popupdiv).appendChild(inode);
		}else{
			this.remove(pars);
		}
		return false;
	},
	
	add: function (id, type){
		var pars = id+'_'+type;
		if (!this.items[pars]){
			$(pars).style.backgroundColor = '#00f';
			this.items[pars] = pars;
			node = document.createElement("input");
			node.setAttribute('type', 'hidden');
			node.setAttribute('name', 'items[]');
			node.setAttribute('value', pars);
			node.setAttribute('id', 'i'+pars);
			this.getInnerElement(this.settings.popupdiv + 'form').appendChild(node);
			inode = document.createElement("p");
			inode.style.width = '7%';
			inode.innerHTML = '<img src="'+$(pars).src+'" width="30" height="30" onclick="Mediapopup'+this.settings.type+'.remove(\''+pars+'\')" title="remove">';
			inode.setAttribute('id', 'p'+pars);
			this.getInnerElement('out' + this.settings.popupdiv).appendChild(inode);
		}else{
			this.remove(pars);
		}
		return false;
	},
	
	remove: function (pars){
		if ($(pars)){
			$(pars).style.backgroundColor = '#fff';
		}
		delete this.items[pars] ;
		$('i'+pars).remove();
		$('p'+pars).remove();
		return false;
	},
	
	search_video: function (loading) {
		var loading_text = typeof(loading) != 'undefined' ? loading : 'Loading ...';
		var pars = (this.getInnerElement('searchextmedia')) ? 'search=' + this.getInnerElement('searchextmedia').getValue() : '';
		
		if ($('extmediares')) {
			$('extmediares').innerHTML = loading_text;
		} else {
			this.getInnerElement('in'+this.settings.popupdiv).update(loading_text);
		}
		
		new Ajax.Request(this.settings.getextUrl, {
			method: 'post',
			parameters: pars,
			onComplete: function(originalRequest) {
				this.getInnerElement('inmediapopup').update(originalRequest.responseText);
			}.bind(this)
		});
	},
	
	search_video_more: function(site, loading) {
		var loading_text = typeof(loading) != 'undefined' ? loading : 'Loading...';
		this.getInnerElement('extmediares').update(loading_text);
		var pars = (this.getInnerElement('searchextmedia')) ? 'search=' + this.getInnerElement('searchextmedia').getValue() + '&all=1&site=' + site : '';
		new Ajax.Request(this.settings.getextUrl, {
			method: 'post',
			parameters: pars,
			onComplete: function(originalRequest) {
				this.getInnerElement('extmediares').update(originalRequest.responseText);
			}
		});
	}
}

function mediaupload(){
	var s = 'Mediapopup'+Mediapopuptype+'.settings.uploadUrl';
	eval('document.location.href='+s+';');
	return false;
}


