
var tp1= new Image(100,25); 
tp1.src="http://www.hairflatiron.org/editor/loading.gif";
var tp2= new Image(100,25); 
tp2.src="http://www.hairflatiron.org/editor/assets/skins/sam/editor-sprite.gif";

var winname=null;
function showAsEditable(obj, clear){
	if (!clear){
		Element.addClassName(obj, 'editable');
	}else{
		Element.removeClassName(obj, 'editable');
	}
}

function makeEditable(id,editor,h,t,pid){
	Event.observe(id, 'click', function(){edit($(id),editor,h,t,pid)}, false);
	Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
	Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
}

function vEdit(id,editor,h,t,pid){
	if(Element.visible($(id))){
		edit($(id),editor,h,t,pid);
	}else{
		cleanUp($(id));
	}
}

function edit(obj,editor,h,t,pid){
	Element.hide(obj);
	var textarea = '<div id="'+obj.id+'_editor"><textarea id="'+obj.id+'_edit" name="'+obj.id+'" rows="4" cols="60">'+obj.innerHTML+'</textarea>';
	var mybuttons	 = '<div class="btn"><input id="'+obj.id+'_image" type="hidden" value="" /><input id="'+obj.id+'_preview" type="button" value="preview" /> <input id="'+obj.id+'_save" type="button" value="save change" /> <input id="'+obj.id+'_cancel" type="button" value="cancel" /></div></div>';
	
	new Insertion.After(obj, textarea+mybuttons);	
	var myEditor=null;
	if(editor){
		myEditor = new YAHOO.widget.Editor(obj.id+'_edit', {
		    height: h,
		    width: '100%',
		    dompath: false,
		    animate: true,
		    toolbar: {
		        titlebar: 'Editor', collapse:true,
		        buttons: [
		            { group: 'textstyle',
		                buttons: [
									{ type: 'push', label: 'Bold', value: 'bold' },
									{ type: 'push', label: 'Italic', value: 'italic' },
									{ type: 'push', label: 'Underline', value: 'underline' },
									{ type: 'color', label: 'Font Color', value: 'forecolor', disabled: true },
									{ type: 'color', label: 'Background Color', value: 'backcolor', disabled: true },
									{ type: 'push', label: 'Align Left', value: 'justifyleft' },
									{ type: 'push', label: 'Align Center', value: 'justifycenter' },
									{ type: 'push', label: 'Align Right', value: 'justifyright' },
									{ type: 'push', label: 'Remove Formatting', value: 'removeformat', disabled: true },
									{ type: 'push', label: 'Indent', value: 'indent', disabled: true },
									{ type: 'push', label: 'Outdent', value: 'outdent', disabled: true },
									{ type: 'push', label: 'Create an Unordered List', value: 'insertunorderedlist' },
									{ type: 'push', label: 'Create an Ordered List', value: 'insertorderedlist' },
									{ type: 'push', label: 'Upload Image', value: 'uploadimage' }
		                ]
		            }
		        ]
		    }
		    
		    
		    
		    
		});
		
		myEditor.on('toolbarLoaded', function() {
			this.toolbar.on('uploadimageClick', function(o) {
				var nr=document.getElementById(obj.id+'_edit_toolbar').innerHTML.toString();
				var tt=nr.match(/yui\-toolbar\-uploadimage([^\"]*)\" id=\"([^\"]+)\"/i);
				if(tt){
					Event.observe($(tt[2]), 'click', function(){upload(obj,tt[2])}, false);
				}else{
					tt=nr.match(/yui\-toolbar\-uploadimage([^\"]*)\" id=([^ ]+)/i);
					if(tt[2]){
						Event.observe($(tt[2]), 'click', function(){upload(obj,tt[2])}, false);
					}
				}
	  	    });
	  	
		}, myEditor, true);
		
		myEditor.render();
	}
	
	Event.observe(obj.id+'_preview', 'click', function(){preview(obj,myEditor)}, false);
	Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj,myEditor,t,pid)}, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
	
	
	
}

function upload(obj,tid){
	var wid='pop'+obj.id;
	if(!winname || winname.closed){
		winname = window.open('upload_pic.php?t='+obj.id,wid,'width=400,height=100,resizable=yes,scrollbars=yes');
	}else{
		if(winname.name==wid){
			winname.focus();
		}else{
			winname.close();
			winname = window.open('upload_pic.php?t='+obj.id,wid,'width=400,height=100,resizable=yes,scrollbars=yes');
		}
	}
}

function preview(obj,myEditor){
	var winname = window.open('', "_blank", '');
	winname.document.open('text/html', 'replace');
	winname.opener = null;
	if(myEditor){
		winname.document.write(myEditor.getEditorHTML());
	}else{
		winname.document.write($F(obj.id+'_edit'));
	}
	winname.document.close();	
}



function saveChanges(obj,myEditor,t,pid){

	var new_content	=  "";
	if(myEditor){
		myEditor.closeWindow();
		new_content	=  myEditor.getEditorHTML();
	}else{
		new_content	=  escape($F(obj.id+'_edit'));
	}
	var add_image=escape($F(obj.id+'_image'));
	obj.innerHTML	= "<img src=\"/editor/loading.gif\" align=absmiddle> Saving...";
	cleanUp(obj, true);

	var success	= function(t){editComplete(t, obj);}
	var failure	= function(t){editFailed(t, obj);}

  	var url = 'edit.php';
	var pars = 'o='+obj.id+'&content='+new_content+'&add_img='+add_image+'&t='+t+'&id='+pid;
	var myAjax = new Ajax.Request(url, {method:'post', postBody:pars, onSuccess:success, onFailure:failure});

}

function cleanUp(obj, keepEditable){
	Element.remove(obj.id+'_editor');
	Element.show(obj);
	if (!keepEditable) showAsEditable(obj, true);
}

function editComplete(t, obj){
	var dd=t.responseText;
	var r=dd.match(/^err: /i);
	if(r!=null){
		editFailed(t, obj);
	}else{
		obj.innerHTML	= t.responseText;
		showAsEditable(obj, true);
		//Element.show(obj);
	}
}

function editFailed(t, obj){
	var dd=t.responseText;
	obj.innerHTML	= '<font color=\"#ff0000\">Sorry, the submit failed.</font>';
	cleanUp(obj);
}

function showTools(id) {
	var el = document.getElementById(id);
	var pp = document.getElementById('bkp');
	var bb=document.getElementById('bmmenu');
	if(el.className == 'buryshare') {
		el.className = 'drillshare'
		var mew=get_vplace(pp);
		mev=mew[0]+1;
		meT=mew[1];
		var met=meS( );
		var mes=meR( );
		var temp=meT-mes[1]+bb.clientHeight+52;
		var temp2=met[1];
		var chk_v=parseInt(temp) - parseInt(temp2);
		if( chk_v >= 0){
			bb.style.top='0px';
			bb.style.top='-'+(bb.clientHeight+25)+'px'; 
		}else{
			bb.style.top='0px';
		}
	};
}

function rmTools(id) {
	var el = document.getElementById(id);
	if(el.className == 'drillshare') {el.className = 'buryshare'};
}

function addfav(mURL,mTitle){
	my_url=decodeURIComponent(mURL); 
	my_title=decodeURIComponent(mTitle); 
	if (document.all)window.external.AddFavorite(my_url,my_title); 
	else window.sidebar.addPanel(my_title,my_url,''); 
	return false; 	
}

function get_vplace(t){
		var meq=0,meP=0; 
		do {meq+=t.offsetTop || 0; meP+=t.offsetLeft || 0; t=t.offsetParent; }while (t); 
		return [meP,meq]; 
	}

function meS( ){
		var mep=0; 
		var meN=0; 
		if (typeof(window.innerWidth)=='number'){
			mep=window.innerWidth; 
			meN=window.innerHeight; 
		}else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)){
			mep=document.documentElement.clientWidth; 
			meN=document.documentElement.clientHeight; 
		}else if (document.body && (document.body.clientWidth || document.body.clientHeight)){
			mep=document.body.clientWidth; meN=document.body.clientHeight; 
		}
		return [mep,meN]; 
}

function meR( ){
		var men=0; 
		var meM=0; 
		if (typeof(window.pageYOffset)=='number'){
			meM=window.pageYOffset; 
			men=window.pageXOffset; 
		}else if (document.body && (document.body.scrollLeft || document.body.scrollTop)){
			meM=document.body.scrollTop; men=document.body.scrollLeft; 
		}else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)){
			meM=document.documentElement.scrollTop; 
			men=document.documentElement.scrollLeft; 
		}
		return [men,meM]; 
}

