// JavaScript Document

function initEditableAreas(e){
	if(!e) return false;
	if(e.nodeName=='#comment'){
		//check for open comment
		if(e.data.search(/Editable[ +]area[ +]title=".+"/)>=0){
			//search for colose comment
			var is_end_node=false;
			var nextNode=e;
			while(nextNode=nextNode.nextSibling){
				if(nextNode.nodeName=='#comment'){
					if(nextNode.data.search(/End[ +]of[ +]area/)>=0){
						is_end_node=true;
						break;
					}
				}
			}
			if(!is_end_node) return;
			
			//get area parameters
			var res=e.data.match(/([^" =]+)(?==)/g);
			e.sendParams=new Object();
			for(var i=0; i<res.length; i++) e.sendParams[res[i]]='';

			res=e.data.match(/([^"=]+)(?=")/g);
			var i=0;
			for(var key in e.sendParams) e.sendParams[key]=res[i++];
			
			var cont=e;
			
			/******************
			* get content from editable area
			*******************/
			cont.getEditableContent=function(){
				var resultFragment=document.createElement('div');
				var nextNode=this;
				while(nextNode=nextNode.nextSibling){
					if(nextNode.nodeName=='#comment')
						if(nextNode.data.search(/End[ +]of[ +]area/)>=0) break;
					resultFragment.appendChild(nextNode.cloneNode(true));
				}
				return resultFragment.innerHTML;
			}
			/******************
			* set content to editable area
			*******************/
			cont.setEditableContent=function(contentHTML){
				var resultFragment=document.createElement('div');
				resultFragment.innerHTML=contentHTML;
				var nextNode=this.nextSibling;
				while(nextNode){
					if(nextNode.nodeName=='#comment')
						if(nextNode.data.search(/End[ +]of[ +]area/)>=0) break;
					var oldNode=nextNode;
					nextNode=oldNode.nextSibling;
					this.parentNode.removeChild(oldNode);
				}
				for(var j=resultFragment.childNodes.length-1; j>=0; j--){
					this.parentNode.insertBefore(resultFragment.childNodes[j],this.nextSibling);
				}
			}
			
			/******************
			* create toolbar for editable area
			*******************/
			cont.createToolBar=function(){
				this.toolbar=new areaToolbar(this,this.sendParams['title']);
				if(this.sendParams['method']=='server side'){
					this.toolbar.setButton('edit',function(event){
						var ad=new areaDialog();
						ad.createServerSideForm(this.areaParent,'update');
						ad.append();
						if(!event) event=window.event;
						if(event.stopPropagation) event.stopPropagation();
						else event.cancelBubble=true;
						if(event.preventDefault) event.preventDefault();
						else event.returnValue=false;
					});
				}else{
					this.toolbar.setButton('edit',function(event){
						createEditor(this.areaParent);
						if(!event) event=window.event;
						if(event.stopPropagation) event.stopPropagation();
						else event.cancelBubble=true;
						if(event.preventDefault) event.preventDefault();
						else event.returnValue=false;
					});
				}
				this.toolbar.append();
			}
			cont.createToolBar();
			return true;
		}
	}else{
		if(String(e.nodeName).toLowerCase()=='a' && String(e.protocol).search('http')>=0 && e.hostname==location.hostname){
			e.onclick=function(){
				var sep=e.search.length>0 ? '&' : '?';
				var tmp=e.href.split('#');
				window.location.href=tmp[0]+sep+'editmode'+(tmp.length>1 ? '#'+tmp[1] : '');
				return false;
			}
		}
		for(var i=0; i<e.childNodes.length; i++){
			if(initEditableAreas(e.childNodes[i])) i++;
		}
	}
}
function createEditor(areaParent){
	var ad=new areaDialog();
	var td=ad.getContainer();
	
	var textarea=document.createElement('textarea');
	textarea.id=textarea.name='fckeditor_dialog_textarea';
	textarea.value=areaParent.getEditableContent();
	textarea=td.appendChild(textarea);
	td.appendChild(document.createElement('br'));
	var button=document.createElement('input');
	button.type='button';
	button.className='fckeditor_dialog_button';
	td.appendChild(button);
	button.value='OK';
	button.areaParent=areaParent;
	button.areaDialog=ad;
	button.onclick=function(){
		var oEditor = FCKeditorAPI.GetInstance('fckeditor_dialog_textarea');
		this.areaParent.setEditableContent(oEditor.GetXHTML(false));
		this.areaDialog.remove();
		var save=function(event){
			globalAjaxObject=new Ajax();
			globalAjaxObject.POST['action']='save';
			globalAjaxObject.POST['content']=this.areaParent.getEditableContent();
			for(var key in areaParent.sendParams){
				globalAjaxObject.POST[key]=areaParent.sendParams[key];
			}
			this.processResult=function(content){
				alert(content);
				this.toolbarParent.removeButton(this);
			}
			this.toolbarParent.setWait(this);
			globalAjaxObject.makeRequest(window.location,this);
			
			if(!event) event=window.event;
			if(event.stopPropagation) event.stopPropagation();
			else event.cancelBubble=true;
			if(event.preventDefault) event.preventDefault();
			else event.returnValue=false;
		}
		this.areaParent.toolbar.setButton('save',save);
	}
	var button=document.createElement('input');
	button.type='button';
	button.className='fckeditor_dialog_button';
	td.appendChild(button);
	button.value='Cancel';
	button.areaDialog=ad;
	button.onclick=function(){this.areaDialog.remove();}
	
	ad.append();

	var oFCKeditor=new FCKeditor('fckeditor_dialog_textarea');
	oFCKeditor.BasePath='fckeditor/';
	oFCKeditor.Height='500';
	oFCKeditor.Width='80%';
	oFCKeditor.ReplaceTextarea() ;
}
function start(){
	if(String(location.search).search(/[?|&]editmode/)<0) return;
	var checkLogin=function(object){
		globalAjaxObject=new Ajax();
		try{
			globalAjaxObject.POST['login']=document.getElementById('eip_login_field').value;
			globalAjaxObject.POST['password']=document.getElementById('eip_password_field').value;
		}catch(er){}
		globalAjaxObject.makeRequest('ad/auth.php',object);
	}
	document.processResult=function(content){
		if(content=='1'){
			var e=document.getElementsByTagName('body');
			initEditableAreas(e[0]);
			return;
		}
		var ad=new areaDialog();
		var td=ad.getContainer();
		td.innerHTML='<form name="form_login" action="login.php" method="get"><div style="padding:0 0 10px 0;">Login<br /><input name="eip_login_field" id="eip_login_field" type="text" maxlength="20" /></div><div style="padding:0 0 10px 0;">Password<br /><input name="eip_password_field" id="eip_password_field" type="password" maxlength="20" /></div><input id="eip_button_login" type="button" value="Submit" /></form>';
		ad.append();
		var b=document.getElementById('eip_button_login');
		b.areaDialog=ad;
		b.processResult=function(content){
			if(content=='1'){
				var e=document.getElementsByTagName('body');
				initEditableAreas(e[0]);
				this.areaDialog.remove();
			}else alert('Login is incorrect');
		}
		b.onclick=function(){checkLogin(this);}
	}
	checkLogin(document);
}

function setEvents(){
	start();
}
if (typeof document.attachEvent!='undefined') window.attachEvent('onload',setEvents);
else window.addEventListener('load',setEvents,false);