
function initEip() {
	var boxes = $A($('landelijke_content').select('p.review_wijzigen_box')); //p.review_wijzigen_box')).map(Element.extend);
		
	if (boxes != '') {
		boxes.each( 
			function (s) {
				makeEditable(s.id);		 /* set items here */
			}
		);
	} 
	
	if ($('review_wijzigen_box_titelwijzigen') != undefined) {
		makeEditable('review_wijzigen_box_titelwijzigen');
	}
	
}

function hideReviewWijzig (obj) {
		if (obj != undefined) {
			$(obj.id).hide();
		}		
}

function showReviewWijzig (obj) {
		if (obj != undefined) {
			obj.show();
		}
}

function makeEditable(id){
	Event.observe(id, 'click', function(){ if (id == 'profiel_omschrijving_box') {editBeschrijving($(id));} else {edit($(id));} hideReviewWijzig(); }, false);
	Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
	Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
}

function edit(obj){
	hideReviewWijzig($(obj.id+'_button'));
	Element.hide(obj);
	
	var old_content = obj.innerHTML;
	
	var new_content = obj.innerHTML;
	
	new_content = new_content.replace(/&lt;BR&gt;+/g, "\n");
	new_content = new_content.replace(/&lt;br&gt;+/g, "\n");
	new_content = new_content.replace(/<BR>+/g, "\n");
	new_content = new_content.replace(/<br>+/g, "\n");
	
	new_content = new_content.replace("&amp;", '&');
	new_content = new_content.stripTags();
	new_content = new_content.stripScripts();
	new_content = new_content.strip();
	new_content = new_content.toString();
	var textarea = '<div id="'+obj.id+'_editor"><textarea id="'+obj.id+'_edit" name="'+obj.id+'" row="6" cols="55" class="review_wijzigen_input_container">'+new_content+'</textarea>';
	var button = '<div><input id="'+obj.id+'_save" type="button" value="Opslaan" /> of <input id="'+obj.id+'_cancel" type="button" value="Annuleren" /></div></div>';
	
	new Insertion.After(obj, textarea+button);
	resize_id = obj.id+'_edit';
	sz($(resize_id));
	
	Event.observe(obj.id+'_save', 'click', function(){showReviewWijzig($(obj.id+'_button')); saveChanges(obj, old_content); }, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj); showReviewWijzig($(obj.id+'_button')); }, false);
	
	
}

function showAsEditable(obj, clear){
	if (!clear){
		Element.addClassName(obj, 'editable');
	}else{
		Element.removeClassName(obj, 'editable');
	}
}

function saveChanges(obj, old_content){
	
	var new_content	=  $F(obj.id+'_edit').stripTags();
	new_content = new_content.strip();
	new_content = new_content.replace(/&(?!#?\w+;)/g, "&amp;");

	var sid = obj.readAttribute('sid');
	var titel_id = obj.readAttribute('titel_id');
	var recensie_id = obj.readAttribute('recensie_id');
	
	if (new_content.length >= 2200) {

		hideReviewWijzig($(obj.id+'_button'));
		if (obj.id == 'review_wijzigen_box_titelwijzigen') {
			updateMessage('update_status_recensie_'+recensie_id, 'Maximaal 250 woorden toegestaan, probeer s.v.p. opnieuw.', 'foutmelding', true);
			$('update_status_recensie_'+recensie_id).scrollTo();
		} else {
			updateMessage(obj.id+'_status', 'Maximaal 250 woorden toegestaan, probeer s.v.p. opnieuw.', 'foutmelding', true);
			$(obj.id+'_status').scrollTo();
		}
	} else {
		obj.innerHTML	= "Opslaan...";
			
		var success	= function(t){editComplete(t, obj);
									if (obj.id == 'review_wijzigen_box_titelwijzigen') {
										updateMessage('update_status_recensie_'+recensie_id, 'Recensie opgeslagen', 'succesmelding', true);
									} else {
										updateMessage(obj.id+'_status', 'Recensie opgeslagen', 'succesmelding', true);
									}
								}
		var failure	= function(t){editFailed(t, obj);}
	
		if (new_content =='') {
			if (obj.id == 'review_wijzigen_box_titelwijzigen') {
				updateMessage('update_status_recensie_'+recensie_id, 'Tekstveld mag niet leeg zijn. Probeer s.v.p. opnieuw', 'foutmelding', true);
				obj.innerHTML = old_content;
				cleanUp(obj);
			} else {
				updateMessage(obj.id+'_status', 'Tekstveld mag niet leeg zijn. Probeer s.v.p. opnieuw', 'foutmelding', true);
				obj.innerHTML = old_content;
				cleanUp(obj);
			}
		} else {
			cleanUp(obj, true);
			var url = '/cgi-bin/bx.pl?event=w2a;action=wijzigTitelWijzigReview';
			var myAjax = new Ajax.Request(url, {method:'get', parameters: {sid: sid, titel_id: titel_id, tekst: new_content}, onSuccess:success, onFailure:failure});	
		}
	}
}

function editBeschrijving(obj){
	hideReviewWijzig($(obj.id+'_button'));
	Element.hide(obj);
	
	var old_content = obj.innerHTML;
	
	var new_content = obj.innerHTML;
	
	new_content = new_content.replace(/&lt;BR&gt;+/g, "\n");
	new_content = new_content.replace(/&lt;br&gt;+/g, "\n");
	new_content = new_content.replace(/<BR>+/g, "\n");
	new_content = new_content.replace(/<br>+/g, "\n");
	//alert(new_content.inspect());
	//new_content = new_content.replace("&amp;", "&");
	//alert(new_content.inspect());
	new_content = new_content.stripTags();
	new_content = new_content.stripScripts();
	new_content = new_content.strip();
	new_content = new_content.toString();
	var textarea = '<div id="'+obj.id+'_editor"><textarea id="'+obj.id+'_edit" name="'+obj.id+'" row="6" cols="55" class="profiel_omschrijving_input_container">'+new_content+'</textarea>';
	var button = '<div><input id="'+obj.id+'_save" type="button" value="Opslaan" /> of <input id="'+obj.id+'_cancel" type="button" value="Annuleren" /></div></div>';
	
	new Insertion.After(obj, textarea+button);
	resize_id = obj.id+'_edit';
	sz($(resize_id));
	
	Event.observe(obj.id+'_save', 'click', function(){showReviewWijzig($(obj.id+'_button')); saveBeschrijving(obj, old_content);}, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj); showReviewWijzig($(obj.id+'_button')); }, false);
	
	
}

function saveBeschrijving(obj, old_content){
	var new_content	=  $F(obj.id+'_edit').stripTags();
	new_content = new_content.strip();
	new_content = new_content.replace("&amp;", "&");
	
	if (new_content.length >= 2200) {
		hideReviewWijzig($(obj.id+'_button'));
		updateMessage('profiel_beschrijving_form_melding', 'Maximaal 250 woorden s.v.p.', 'foutmelding', true);
	} else {
		var sid = obj.readAttribute('sid');
		var actor_id = obj.readAttribute('actor_id');
		
		obj.innerHTML	= "Opslaan...";
			
		var success	= function(t){
								editComplete(t, obj);
								updateMessage('profiel_beschrijving_form_melding', 'Omschrijving opgeslagen', 'succesmelding', true);
						}
		var failure	= function(t){editFailed(t, obj);}
	
		if (new_content =='') {
			if (obj.id == 'profiel_omschrijving_box') {
				//updateMessage('update_status_recensie_'+recensie_id, 'Tekstveld mag niet leeg zijn. Probeer s.v.p. opnieuw', 'foutmelding', true);
				obj.innerHTML = old_content;
				cleanUp(obj);
			} else {
				//updateMessage(obj.id+'_status', 'Tekstveld mag niet leeg zijn. Probeer s.v.p. opnieuw', 'foutmelding', true);
				obj.innerHTML = old_content;
				cleanUp(obj);
			}
		} else {
			cleanUp(obj, true);
			var url = '/cgi-bin/bx.pl?event=w2a;action=wijzigProfielBeschrijving';
			var myAjax = new Ajax.Request(url, {method:'get', parameters: {sid: sid, actor_id: actor_id, beschrijving: new_content}, 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){
	obj.innerHTML	= t.responseText;
	showAsEditable(obj, true);
}

function editFailed(t, obj){
	obj.innerHTML	= 'Sorry, het opslaan is niet gelukt. Probeer het nogmaals.';
	cleanUp(obj);
}

/* Resize the editable textarea */
function sz(t) {
	var a = t.value.split('\n');
	var b=1;
		for (var x = 0; x < a.length; x++) { 
				if (a[x].length >= t.cols) {b+= Math.floor(a[x].length/t.cols);}
			}
			
	b+= a.length;
	if (b < 10) {
		b = 10; 
	}
	
	if (b > t.rows) {t.rows = b;}
} 
