if (typeof(base_url) != "undefined"){
	var basepath = base_url;
}
else { var basepath = ''; } // Is set in main page, or passed as parameter from within FCK
var storedForm = ''; // initialize

// prototype's serialize doesnt work in chrome
function serizalize_form( form ) {
	Element.extend(form);
	
}

// mode: 'publish','preview','save'(default),'edit'
function richtext_send( element, cmd ) {
	// type, richid, uidto_chid set in page
	// disable submit/preview button
	element.disabled = true;
	// check subject field
	var subject_value = $('fckeditor_subject').value;
	if (subject_value == '')	{
		alert('Onderwerp is verplicht');
		element.disabled = false;
		return false;
	}
	else if (subject_value.length > 250)	{
		alert('Onderwerp mag maximaal uit 250 karakters bestaan');
		element.disabled = false;
		return false;
	}
	// FCKeditor get instance
	var FCK = FCKeditorAPI.GetInstance('fckeditor');
	FCK.UpdateLinkedField(); // update input field
	var param = 'save'; // set default
	if (cmd == 'publish'){
		// storedForm should already be set and should be used to post
		if (storedForm == ''){
			alert('javascript error');
			return false;
		}
	}
	else if (cmd == 'preview'){
		storedForm = Form.serialize($('fckeditor_form'),true);//$('fckeditor_form').serialize(true);
		if (mode != 'edit'){
			param = 'preview';
		}
		else	{
			param = 'editpreview';
		}
		Lightview.show({
			href: basepath+'blogpost/addpost/'+param,
			rel: 'ajax',
			title: 'Preview Blog',
			options: {
				autosize: false,
				topclose: false,
				ajax: {
					method: 'post',
					parameters: storedForm,
					onSuccess: function(transport){ }
				},
				width: 500,
				height: 350
			}
		});
		$('preview_but').disabled = false; // re-enable preview button
	}
	else {
		storedForm = Form.serialize($('fckeditor_form'),true);//$('fckeditor_form').serialize(true);
	}
	
	// ajax request
	if ( cmd != 'preview' )	{
		if (mode != 'edit'){
			var url = basepath+'blogpost/addpost/'+param+'/'+type+'/'+uidto_chid;
		}
		else if (mode == 'edit'){
			var url = basepath+'blogpost/editpost/'+richid;
		}
		new Ajax.Request(url, {
			method: 'post',
			parameters: storedForm,
			onSuccess: function(transport) {
				var response = transport.responseText;
				if (response == ''){
					alert("geen inhoud toegevoegd!");
					$('submit_but').disabled = false; // re-enable submit button
				}
				else {
					// redirect back to userpage or channelpage
					Lightview.hide();
					window.location = response;
				}
			},
			onFailure: function(){ alert("er is iets misgegaan");}
		});
	}
	return false; // cancel submit/click event
}

function deleteBlog(type,richid,id){
	// modal sure
	confirmed = false;
	modalboxsurejs("confirmed=true",'Deze blog definitief verwijderen?');
	var obj = {
		exec: function(ev) {
			if (!confirmed)
			return;
			// ajax remove
			if (type == 'channel'){
				url = "blogs/deletechannelblog/"+richid;
			}
			else if (type == 'user'){
				url = "blogs/deleteuserblog/"+richid;
			}
			new Ajax.Request(basepath+url, {
				method: 'post',
				onSuccess: function(transport) {
					var response = transport.responseText;
					if (typeof(id) != "undefined") {
						// redirect mode:
						// javascript remove effect
						if (response == "ok")	{
							// construct redirect
							if ( type == 'channel' )
								var redirect = basepath+"channel/player/"+id;
							else
								var redirect = basepath+"users/show/"+id;
							// redirect
							window.location = redirect;
						}
						else
							alert("kan post niet verwijderen!");
					}
					else {
						// javascript remove effect
						if (response == "ok") {
							Effect.Shrink("blogitem_"+richid);
						}
						else {
							alert("kan post niet verwijderen!");
						}
					}
				},
				onFailure: function(){ alert("er is iets misgegaan");}
			});
			document.stopObserving("lightview:hidden", obj.execx);
		}
	};
	obj.execx = obj.exec.bindAsEventListener(obj);
	document.observe("lightview:hidden", obj.execx);
	return false; // cancel click
}

function doSaveImage( url, title, basepath ) {
	
	new Ajax.Request(basepath+'blogpost/addimage/', {
	  	method: 'post',
		parameters: {'url': url, 'title': title},
      onSuccess: function(transport) {
			var response = transport.responseText; // =ok
			if ( response != "ok" )
				alert("er is iets misgegaan met uploaden");
		},
		onFailure: function(){ alert("er is iets misgegaan");}
	});
	return true;
}

function getImageWidth( imgurl, basepath ) {
	// sets max imagewidth in FCK to 580
	new Ajax.Request(basepath+'blogpost/getimgsize/width', {
	  	method: 'post',
		parameters: {'imgurl': imgurl},
      onSuccess: function(transport) {
			var response = parseInt(transport.responseText);
			if (response > 580){
				$('txtWidth').value = '';
				$('txtHeight').value = '';
				OnSizeChanged('Width', '580');
			}
		},
		onFailure: function(){ alert("er is iets misgegaan");}
	});
	return true;
}

function getImageBrowser( basepath ) {
	var el = $('divBrowse');
	el.innerHTML = '<img src="'+basepath+'img/spinner.gif" border="0" style="display:block;margin-left:auto;margin-right:auto;text-align:center;no-repeat;">';
	var type = FCKConfig.blogtype;
	if (type == 'channel'){
		var id = FCKConfig.chid;
	}
	else {
		var id = '';
	}
	new Ajax.Request(basepath+'blogpost/loadImageBrowser/'+type+'/0/'+id, {
	  	method: 'post',
      onSuccess: function(transport) {
			var response = transport.responseText;
			var el = $('divBrowse');
			el.innerHTML = response;
			imgbrowser_markup();
	  	},
		onFailure: function(){ alert("er is iets misgegaan");}
	});
	return false;
}

function getChannelImgs( basepath ) {
	var el = $('imagelist');
	var chid = $('ch_select_id').value;
	el.innerHTML = '<img src="'+basepath+'img/spinner.gif" border="0" style="display:block; margin-left:auto; margin-right:auto; text-align:center; no-repeat;">';
	var type = FCKConfig.blogtype;
	new Ajax.Request(basepath+'blogpost/loadImageBrowser/'+type+'/'+chid, {
	  	method: 'post',
      onSuccess: function(transport) {
			var response = transport.responseText;
			var el = $('imagelist');
			el.replace(response);
			imgbrowser_markup();
	  	},
		onFailure: function(){ alert("er is iets misgegaan");}
	});
	return false;
}


function getVideoBrowser( basepath) {
	var el = $('divBrowse');
	el.innerHTML = '<img src="'+basepath+'img/spinner.gif" border="0" style="display:block;margin-left:auto;margin-right:auto;text-align:center;no-repeat;">';
	var type = FCKConfig.blogtype;
	new Ajax.Request(basepath+'blogpost/loadVideoBrowser/'+type, {
	  	method: 'post',
      onSuccess: function(transport) {
			var response = transport.responseText;
			var el = $('divBrowse');
			el.innerHTML = response;
			if (type == 'channel'){
				// load video list
				getChannelVids( basepath, FCKConfig.chid);
			}
	  	},
		onFailure: function(){ alert("er is iets misgegaan");}
	});
	return false;
}

function getChannelVids( basepath, chid ) {
	var el = $('imagelist');
	if (!chid){
		var chid = $('ch_select_id').value;
	}
	if ( chid == -1 )
		return;
	el.innerHTML = '<img src="'+basepath+'img/spinner.gif" border="0" style="display:block;margin-left:auto;margin-right:auto;text-align:center;no-repeat;">';
	var type = FCKConfig.blogtype;
	new Ajax.Request(basepath+'blogpost/loadVideoBrowser/'+type+'/'+chid, {
	  	method: 'post',
      onSuccess: function(transport) {
			var response = transport.responseText;
			var el = $('imagelist');
			//el.innerHTML = response;
			el.replace(response);
			vidbrowser_markup()
	  	},
		onFailure: function(){ alert("er is iets misgegaan");}
	});
	return false;
}

// used by imgbrowser_markup when image is loaded to center it
function centerImage(img,div){
	var h = img.getHeight();
	var w = img.getWidth();
	//var ratio = h/w;
	if (h > 90){
		var top = Math.round((h-90)/2);
		var left = 0;
	}
	else if (w > 160){
		var left = Math.round((w-160)/2);
		var top = 0;
	}
	else return; // no scolling needed, ideal ratio
	div.scrollLeft = left;
	div.scrollTop = top;
}

// used by imgbrowser_markup when image is loaded to center it
function centerVidThumb(img,div){
	var h = img.getHeight();
	var w = img.getWidth();
	//var ratio = h/w;
	if (h > 90){
		var top = Math.round((h-90)/2);
		var left = 0;
	}
	else if (w > 160){
		var left = Math.round((w-160)/2);
		var top = 0;
	}
	else return; // no scolling needed, ideal ratio
	div.scrollLeft = left;
	div.scrollTop = top;
}

function vidbrowser_markup(){
	var imagelist_h = 265 - $("listselector").getHeight(); 
	$('imagelist').setStyle("height:"+imagelist_h); //set correct height for imagelist
	var items = $$('div.imgitem');
	var hiddenitems = $$('div.hiddenimgitem');
	// hide hidden images
	hiddenitems.each(function(el){
		el.hide();
	});
	var intersection = items.findAll( function(token){ 
		return !hiddenitems.include(token);
	});
	intersection.each(function(el,nr){
		// show element in case it's hidden
		el.show();
		//var el_h = el.getHeight();
		var div = el.select('div').first();
		var img = el.select('div img').first();
		// preload image
		// position image in vert center of div when image loaded
		var oImg = new Image();
		oImg.src = img.src;
		oImg.onload = centerVidThumb.curry(img,div);
		// zebra
		if (nr % 2 == 0)
			el.setStyle('background-color:#E7F3F7');
		else
			el.setStyle('background-color:white');
	});
}

function imgbrowser_markup(){
	var imagelist_h = 272 - $("listselector").getHeight(); 
	$('imagelist').setStyle("height:"+imagelist_h); //set correct height for imagelist
	var items = $$('div.imgitem');
	var hiddenitems = $$('div.hiddenimgitem');
	// hide hidden images
	hiddenitems.each(function(el){
		el.hide();
	});
	var intersection = items.findAll( function(token){ 
		return !hiddenitems.include(token);
	});
	intersection.each(function(el,nr){
		// show element in case it's hidden
		el.show();
		var div = el.select('div').first();
		var img = el.select('div img').first();
		// preload image
		// position image in vert center of div when image loaded
		var oImg = new Image();
		oImg.src = img.src;
		oImg.onload = centerImage.curry(img,div);
		// zebra
		if (nr % 2 == 0)
			el.setStyle('background-color:#E7F3F7');
		else
			el.setStyle('background-color:white');
	});
}

function searchtermsEnter(event)	{
	if(event.keyCode == Event.KEY_RETURN){
		Event.extend(event); // needed for IE
		searchList(event.element().value);
		event.stop();
	}
	return false;
}

function searchList( terms )	{
	var items = $$('div.imgitem');
	var sArr = terms.split(' ');	
	items.each(function(item){
		sArr.each(function(term){
				var title = item.select('div span.imgitemtitle').first();
				var regex = new RegExp(term,'i');
				if (title.innerHTML.search(regex) >= 0){
					item.removeClassName('hiddenimgitem');
					throw $break; //match found
				}
				else{
					item.addClassName('hiddenimgitem');
				}
		});
	});
	imgbrowser_markup();
}

function FCK_playVideo(event,id,basepath)	{
	var mainDiv = new Element('div',{'id':'mainDiv'+id,'class':'mainDiv'
		,'style':'z-index:5005;position:absolute;padding-left:10px;padding-top:36px;border:2px solid #AEADAD;background-color:#FFFFFF;top:19px;left:69px;width:265px;height:210px'});
	var closeDiv = new Element('div',{'class':'closeDiv'
		,'style':'background-image:url('+basepath+'img/close_fck.png);cursor:pointer;position:absolute;width:12px;height:12px;margin-top:8px;margin-right:14px;top:0;right:0;'});
	// onclick attr werkt niet goed in ie
	closeDiv.observe('click',function(ev){
		Event.extend(ev);
		var thisMainDiv = ev.element().ancestors()[1];
		thisMainDiv.fade({duration:0.4, afterFinish: function() { 
				$('myOverlay').remove(); 
				thisMainDiv.remove();
			} 
		});
	});
	
	//var iframe = new Element('iframe',{id:'frm',frameBorder:'0',scrolling:'auto',align:'center',width:'254px',height:'205px',hspace:'0',vspace:'0',marginWidth:'0',marginHeight:'0'});
	var playframe = new Element('div',{id:'playfrm'});
	var top = new Element('div',{style:'background:#F1F1F1 url(../img/header_bg.png) repeat-x scroll 0 0;position:absolute;top:0;left:0;width:100%;height:25px;border-bottom:1px solid #CEC6B5;'});
	
	//var code = $('previewcode_'+id).value;
	var code = $('previewcode_'+id).innerHTML.unescapeHTML();
	//var embed = "<scr"+"ipt type='text/javascript' src='"+basepath+"js/browsertype.js'></scr"+"ipt>\n<scr"+"ipt type='text/javascript' src='"+basepath+"channelx/getplayerscripts/'></scr"+"ipt>";// + code;
	// disable dumpert previews:
	if (code.include("name=\"dumpert_player\"")){
		code = "video's van dumpert.nl kunnen momenteel niet gepreviewed worden.";
	}
	playframe.insert(code);
	
	Element.insert(top,closeDiv);
	Element.insert(mainDiv,top);
	Element.insert(mainDiv,playframe);
	
	Element.insert($('divBrowse'),{after:mainDiv});
	//document.scroll = 'no';
	var overlay = new Element('div',{id:'myOverlay'});//,'style':"position:absolute;z-index:5004;background-color:white;opacity:0.8;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=80);"});
	Element.insert($('divBrowse'),{ after:overlay});
	Element.clonePosition(overlay,$('divBrowse'));
	overlay.setStyle({
		position:'absolute',
		zindex:5004,
		backgroundColor:'white',
		opacity: 0.8,
		filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=80)'
	});
	
	mainDiv.hide();
	
	//var iDoc = iframe.contentDocument || iframe.contentWindow.document;
	//iDoc.write("<scr"+"ipt type='text/javascript' src='"+basepath+"js/browsertype.js'></scr"+"ipt>\n<scr"+"ipt type='text/javascript' src='"+basepath+"channelx/getplayerscripts/'></scr"+"ipt>");
	//iDoc.write(code.escapeHTML());
	mainDiv.appear({duration:0.4});
	Event.extend(event);
	event.stop();
}
