// new Form.Observer(
//	'article-form', 1, function(element, value) {
//		new Ajax.Updater(
//			 'article-preview', '/admin/articles;preview?method=put', {
//				 asynchronous:true, evalScripts:true, parameters:value
//			 }
//		 )
//	 }
// )

function insertItem(item) {
	var myField = $('content_body');
	if (document.selection) { 
		myField.focus();
		sel = document.selection.createRange(); 
		sel.text = item;
	}
	if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart; 
		var endPos = myField.selectionEnd; 
		myField.value = myField.value.substring(0, startPos)+ item+ myField.value.substring(endPos, myField.value.length); 
	}
	if(window.location.href.indexOf('#')) {
		var url = window.location.href.split('#')[0];
	} else { var url = window.location.href; }
	window.location.href = url+'#logo';
}
YAHOO.maltby = function() {
	var $D = YAHOO.util.Dom;
	var $E = YAHOO.util.Event;
	var $A = YAHOO.util.Anim;
	var $C = YAHOO.util.Connect;
	var $ = $D.get;
	
	return {
		init : function() {
			if($('previewers') || $('live-preview')) {
			  var images = $D.getElementsByClassName('image', 'img', 'files');
				var movies = $D.getElementsByClassName('movie', 'img', 'files');
				var swfs   = $D.getElementsByClassName('flash', 'img', 'files');
				var pdfs   = $D.getElementsByClassName('pdf', 'img', 'files');
				$E.on(images, 'click', this.imgOpts);
				$E.on(movies, 'click', this.movOpts);
				$E.on(swfs, 'click', this.swfOpts);
				$E.on(pdfs, 'click', this.pdfOpts);
			  
				if($('previewers')) {
					var previewButtons = $('previewers').getElementsByTagName('h3')
					$E.on(previewButtons, 'click', this.accordian);

					$E.on('textileHelp', 'click', this.textileHelp);
					$E.onAvailable('article-preview', this.livePreview);
				}
			}
		},
		
		livePreview : function() {
			var previewBox = $D.getElementsByClassName('currentPreview', 'div', 'previewers')[0];
			var action = previewBox.id.split('-')[1]+'_'+previewBox.id.split('-')[0];
			if(action == 'preview_article') { action = 'preview'; }
			var text = $('content_body').value;
			var title = $('content_title').value;
			var updatePreview = function() {
				var callback = {
					success : function(o) {
						previewBox.innerHTML = o.responseText;
					},
					failure : function(o) { }
				};
				var postData = $C.setForm('article-form');
				var transaction = $C.asyncRequest(
					'POST', '/admin/articles;'+action+'?method=put', callback, postData
				);
			};
			updatePreview();
			var updater = setInterval(function() {
				if(
					text != $('content_body').value ||
					title != $('content_title').value
				) {
					updatePreview();
					title = $('content_title').value;
					text = $('content_body').value;
				}
			}, 1000);
		},
			
		imgOpts : function() {
			var srcSplit = this.src.split('_thumb');
			var imgSrc = '/system/assets'+srcSplit[0].split('assets')[1]+srcSplit[1].split('?')[0];
			var imgId = imgSrc.split('assets/')[1].split('/')[0];
			
			var show = new $A('insertOpts', {height: {to: 200}}, 0.2);
			show.onComplete.subscribe(function() {
				var buttons = $('insertOpts').getElementsByTagName('input');
				$E.on(buttons, 'click', function() {
					var alignment = this.id;
					var hide = new $A('insertOpts', {height: {to: 0}}, 0.1);
					if(this.id == 'cancelImg') {
						hide.animate();
					} else {
						var imageTextile = ' !('+alignment+')'+imgSrc+'(image)! ';
						insertItem(imageTextile);
					}
					
					hide.animate();
					$E.removeListener(buttons, 'click');
				});
				
			});
			show.animate();
		},
		
		movOpts : function(e) {
			var movId = this.getAttribute('title').split('/')[2];
			var movTitle = this.getAttribute('alt');
			var moveFile = this.getAttribute('title');
			
			var movTextile = ' #movie|'+movId+'|'+moveFile+'|'+movTitle+'# ';
			insertItem(movTextile);
		},
		
    swfOpts : function(e) {
      var swfId = this.getAttribute('title').split('/')[2];
      var swfFile = this.getAttribute('title');
      var swfHeight = this.getAttribute('alt').split('x')[0];
      var swfWidth = this.getAttribute('alt').split('x')[1];
      
      var swfTextile = ' #flash:'+swfId+':'+swfHeight+':'+swfWidth+':'+swfFile+'# ';
      insertItem(swfTextile);
    },
    
    pdfOpts : function(e) {
      var pdfFile = this.getAttribute('title');
      var pdfTextile = '<a href="'+pdfFile+'">LINK TEXT</a>';
      insertItem(pdfTextile);
    },
		
		accordian : function() {
			var previews = $D.getElementsByClassName('preview', 'div', 'previewers');
			var hider = function(item) {
				$D.removeClass(item, 'currentPreview');
			};
			$D.batch(previews, hider);
			var that = this.id+'-preview';
			$D.setStyle(that, 'display: block;');
			$D.addClass(that, 'currentPreview');
			YAHOO.maltby.livePreview();
		},
		
		textileHelp : function(e) {
			$E.stopEvent(e);
			window.open( 
								this.href,
								"textileRef",
								"height=600,width=700,channelmode=0,dependent=0," +
								"directories=0,fullscreen=0,location=0,menubar=0," +
								"resizable=0,scrollbars=1,status=1,toolbar=0"
						);
		}
	}
}();

YAHOO.util.Event.on(window, 'load', YAHOO.maltby.init, YAHOO.maltby, true);