﻿// ##############################################################
// JavaScripts to use with jinaOnline, a webb application environment
// © Jolle Carlestam 2002-2007
// Jquery adapted

/* Open a new window using the settings in the params
a jina function v 1.0 2005-01-13 */
function jina_openWindow(theURL,windowName,settings) {
	window.open(theURL,windowName,settings);
}


/* functions to handle editable regions using tiny_mce
a jina function v 1.0 2007-06-17 */
function setClickable(obj, i) {
	$(obj).click(function() {
		var textarea = '<div><textarea rows="30" cols="50" id="edit_area' + i + '">'+$(this).html()+'</textarea>';
		var button	 = '<div><input type="button" value="Spara" class="tiny_saveButton" /> <input type="button" value="Avbryt" class="tiny_cancelButton" /></div></div>';
		var revert = $(obj).html();
		$(obj).after(textarea+button).remove();
		$('.tiny_saveButton').click(function(){saveChanges(this, false, revert, i);});
		$('.tiny_cancelButton').click(function(){saveChanges(this, true, revert, i);});
//		alert(obj.id);
		tinyMCE.execCommand('mceAddControl', true, 'edit_area' + i);
		$('.noedit').css({display: 'none'});

	})
	.mouseover(function() {
		$(obj).addClass("editable");
	})
	.mouseout(function() {
		$(obj).removeClass("editable");
	});
}//end of function setClickable

function saveChanges(obj, cancel, revert, n) {
	tinyMCE.triggerSave();
	tinyMCE.execCommand('mceRemoveControl', false, 'edit_area' + n);
	if(!cancel) {
		var t = $(obj).parent().siblings(0).val();
		var id = $('#snippet_id_' + n).val();
		var pageid = $('#page_id').val();
		var pageplace = $('#page_place_' + n).val();
		var status = $('#snippet_status_' + n).val();
		var tedit = t;

		$.post("/ajax.lasso",{
			content: t,
			n: id,
			jn_action: status,
			pageid: pageid,
			pageplace: pageplace,
			'-action': 'ajaxsnippet'
		},function(txt,stat){

/* should be ((txt == 'No error') && (stat == 'success'))*/
		if (( txt.indexOf('No error') > -1 ) && (stat == 'success')) {
			var t = tedit;
			if(t=='') t='(Klicka för att lägga till text)';
			$(obj).parent().parent().after('<div class="editregion" id="edit_' +  n+'">'+t+'</div>').remove();
			setClickable($(".editregion").get(n), n);
		}
		else {
			var t = revert;
			if(t=='') t='(Klicka för att lägga till text)';
			$(obj).parent().parent().after('<div class="editregion" id="edit_' +  n+'">'+t+'</div>').remove();
			setClickable($(".editregion").get(n), n);
			alert(txt);
		};
	});
	}
	else {
		var t = revert;
	if(t=='') t='(Klicka för att lägga till text)';
	$(obj).parent().parent().after('<div class="editregion" id="edit_' +  n+'">'+t+'</div>').remove();
	setClickable($(".editregion").get(n), n);
	$('#extrawrapper').css({display: 'inline'});
	}
}

/* end editable region functions */

$(document).ready(function(){
  $(".dynSH").each(function(){
  	showHide(this.id);
  });
});

function showHide(s) {
	var sp = s.split('_');

	sp.pop();
	var sid = sp.join('_');

	if($('#' + sid + '_type').val() == 'radio' || $('#' + sid + '_type').val() == 'checkbox' || $('#' + sid + '_type').val() == 'select' )
		{$('#' + sid + '_valuelist').css({ 'display': 'inline' })}
	else
		{$('#' + sid + '_valuelist').css({ 'display': 'none' })
	};
} /* end showHide */

/* Triggers an image button to copy the content of the parent table row 
and insert it again without values and with new names and ids.
The image must be inside a label inside a td in the row to be copied*/
$(document).ready(function(){
	$(".addbtn").click(function(){
		var h = $(this).parent().parent().parent().clone(true);
		var myid = $(this).attr('id').split('_');
		myid[1] = parseInt(myid[1]) + 1;
		var myVal = myid[1];
		myid = myid.join('_');

		h.find('input').filter('[type=text]').attr('value', '');
	     h.find('textarea').attr('value', '');
	     h.find('*[id]').not('img').attr('id', function() { tempid = this.id.split('_') ; tempid[2] = myVal; return tempid.join('_'); });
	     h.find('img[id]').attr('id', function() { return myid; });
	     h.find('*[name]').attr('name', function() { tempname = this.name.split('_') ; tempname[1] = myVal; return tempname.join('_'); });

	    h.insertAfter($(this).parent().parent().parent());
	    $(this).remove();
	});
});

/* not in use. Used in older version of editing

function sendResult(c,td) { //a jina function v 1.1 2007-06-16
	opener.jina_preView(c,td,$("#checkValue").val());
	}

function jina_preView(c,d,cv) { // a jina function v 1.1 2007-06-16
	if(($("# + d + ")) && (cv == $("#checkValue").val())) {
		alert($(d.id));
		$(d).html("funka då din klant");
		}else { alert('Sidan är ändrad och kan därför inte längre förhandsvisas.') }
	window.focus();
	}
*/
