function checkCheckBoxes(elem,checkBoxClass)
{
	if(elem.checked == true)
	{
		$("body").find("input:checkbox." + checkBoxClass).attr("checked",true);
	}
	else
	{
		$("body").find("input:checkbox." + checkBoxClass).attr("checked",false);
	}
}

function selectBoxes(mode,elemIds)
{
	for (i=0;i<elemIds.length;i++)
	{
		$('idselect_'+elemIds[i].toString()).checked = (mode==1 ? true : false);
	}
}

function keyUpCheck(e)
{
	return ((e.keyCode >= 45 && e.keyCode <= 90) || e.keyCode==8 || (e.keyCode >= 188));
}

function menuManagerChangeTargetField()
{
	$('.mtc').hide();
	$('#mtc'+$('#menuformtype')[0].value).show(0);
	
	if ($('#menuformtype')[0].value == "content")
	{
		contentAdminLoadProperties('content');
	}
	else if ($('#menuformtype')[0].value == "controller")
	{
		contentAdminLoadProperties('controller');
	}	
}

function contentAdminLoadProperties(mode)
{
	if (mode == 'controller')
		containerId = 'contentAdminControllerPropertiesBox';
	else if (mode == 'content')
		containerId = 'contentAdminPropertiesBox';
	else
		return;
	
	$("#"+containerId).html('');
	$("#content_layout_loading_indicator").html('<img src="'+baseUrl+'app/images/ajax-loader-small.gif" alt="Loading..." />');
	$.getJSON(baseUrl + "admin/content/ajaxresponder",
	{
		mode: mode,
		layout_id: $('#menuformcontent_layout')[0].value > 0 ?  $('#menuformcontent_layout')[0].value : 0,
		controller: $('#menuformcontroller')[0].value != '' ?  $('#menuformcontroller')[0].value : '',
		content_id: $('#menuformid')[0].value
	},
	function(data) 
	{
		if (data['error'])
		{
			$('#'+containerId).html(data['error']);
		}
		else
		{
			i = 0;
			l = Object.keys(data).length;
			$.each(data, function(key, item) {
				str ='';
				switch (item['type'])
				{
					case 'string':
						str = '<label for="'+key+'">'+item['title']+'</label><input id="'+key+'" type="text" name="'+key+'" value="'+item['value']+'" />';
						break;
					case 'text':
						str = '<label for="'+key+'">'+item['title']+'</label><textarea id="'+key+'" name="'+key+'">'+item['value']+'</textarea>';
						break;
					case 'html':
						str = '<label for="'+key+'">'+item['title']+'</label><textarea id="'+key+'" name="'+key+'" class="htmltext">'+item['value']+'</textarea>';
						break;
					case 'image':
						str = '<label for="'+key+'">'+item['title']+'</label><input id="'+key+'" name="'+key+'" type="text" value="'+item['value']+'" /> <img src="'+baseUrl+'sys/web/images/icons/drive_web.png" class="icon" alt="Bild vom Server wählen" onclick="openKCFinderField(document.getElementById(\''+key+'\'),\'image\',\''+key+'_image\')" />';
						//str+= '<a href="javascript:;" onclick="$(\'#'+key+'\')[0].value=\'\';$(\'#'+key+'_image\').html(\'\');">Entfernen</a>';
						str+= '<div class="imageurl_preview" id="'+key+'_image">';
						if (item['value'] != "")
							str+= '<img src="'+item['value']+'" alt="Preview of '+item['value']+'" />';
						str+= '</div>';
						break;
					default:
						str = 'Element '+key+' of type '+item['type']+' is not implemented!';
				}
				if (++i < l)
					str += '<br/>';
				$('#'+containerId).append(str);
			});
			editor('textarea.htmltext','full');
		}
		$("#content_layout_loading_indicator").html('');
	});
}

function eventAdminLoadTemplate(temlateId)
{
	$.getJSON(baseUrl + "admin/events/ajaxloadtemplate",
	{
		template_id: temlateId
	},
	function(data) 
	{
		if (data['value'])
		{
			$.each(data['value'], function(key, val) {
				if ($('#'+key).hasClass('htmltext'))
					$('#'+key).tinymce().execCommand('mceSetContent',false,val);
				else
					$('#'+key)[0].value = val;
			});
		}
		if (data['css'])
		{
			$.each(data['css'], function(key, css) {
				$.each(css, function(prop, val) {
					$('#'+key).css(prop,val);
				});
			});
		}
		
		//$("#content_layout_loading_indicator").html('');
	});
}


function officeAddresslistLoadTable(form, sort, currentPage)
{
	alert(currentPage);
	$.get(baseUrl + "office/addresslist/ajaxloadtable",
	{
		form: form,
		sort: sort,
		current_page: currentPage
	},
	function(data) 
	{
		$('addresstable').html(data);
	});
}



function toggleFieldSet(clickedElem)
{
	if ($(clickedElem).parent('fieldset.closable').children('.closableArea').css('display') == 'none')
	{
		$(clickedElem).parent('fieldset.closable').removeClass('closed');
		$(clickedElem).parent('fieldset.closable').children('.openButton').hide();
		$(clickedElem).parent('fieldset.closable').children('.closeButton').show();
		$(clickedElem).parent('fieldset.closable').children('.closableArea').show(300);			
	}
	else
	{
		$(clickedElem).parent('fieldset.closable').addClass('closed');
		$(clickedElem).parent('fieldset.closable').children('.openButton').show();
		$(clickedElem).parent('fieldset.closable').children('.closeButton').hide();
		$(clickedElem).parent('fieldset.closable').children('.closableArea').hide(300);
	}	
}

function editor(selector,mode)
{
	script_url = baseUrl + 'app/vendor/tiny_mce/tiny_mce.js';
	lang = "de";	// Additinal language packs must be installed to use languages other than 'en'
	
	if (mode == "full")
	{
		opts = {
			script_url : script_url,
			theme : "advanced",
			skin : "default",
			width: 730,
			//skin_variant : "silver",
			language : lang,
			plugins : "cmsmenu,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
			theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontsizeselect,outdent,indent,blockquote,|,forecolor,backcolor",
			theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,undo,redo,|,link,unlink,cmsmenubutton,image,media,|,charmap,emotions,insertdate,inserttime",
			theme_advanced_buttons3 : "tablecontrols,|,sub,sup,|,removeformat,visualaid,|,iespell,cleanup,code,help",
			theme_advanced_toolbar_location : "top",
			theme_advanced_toolbar_align : "left",
			theme_advanced_statusbar_location : "bottom",
			theme_advanced_resizing : true,
			relative_urls : false,
			remove_script_host : false,
			file_browser_callback: 'openKCFinder',
			accessibility_warnings : false,
			//theme_advanced_styles : "ShadowBox=shadowbox"
		};
	}
	else
	{
		opts = {
			script_url : script_url,
			theme : "simple",
			skin : "default",
			language : lang
		};
	}
	
	$(function() {
		$('textarea.htmltext').tinymce(opts);
	});	
}

function openKCFinder(field_name, url, type, win) {
    tinyMCE.activeEditor.windowManager.open({
        file: baseUrl + 'app/vendor/kcfinder/browse.php?opener=tinymce&lang=de&type=' + type,
        title: 'Dateibrowser',
        width: 700,
        height: 500,
        resizable: "yes",
        inline: true,
        close_previous: "no",
        popup_css: false
    }, {
        window: win,
        input: field_name
    });
    return false;
}

function openKCFinderField(field, type, previewFieldId) {
    window.KCFinder = {
        callBack: function(url) {
            window.KCFinder = null;
            field.value = url;
			if (url!='')
			{
				$('#'+previewFieldId).html('<img src="'+url+'" alt="Preview of '+url+'" />');	
			}
        }
    };
	var dir = dirname(field.value);
	dir = dir.substr(baseUrl.length+'upload/'.length,dir.length);
    window.open(baseUrl + 'app/vendor/kcfinder/browse.php?lang=de&type=' + type+'&dir='+dir, 'kcfinder_textbox',
        'status=0, toolbar=0, location=0, menubar=0, directories=0, ' +
        'resizable=1, scrollbars=0, width=800, height=600'
    );
}

/**
 * Returns the directory name component of the path  
 *
 * version: 1103.1210
 * discuss at: http://phpjs.org/functions/dirname    // +   original by: Ozh
 *   improved by: XoraX (http://www.xorax.info)
 *   example 1: dirname('/etc/passwd');
 *   returns 1: '/etc'
 *   example 2: dirname('c:/Temp/x');    // *     returns 2: 'c:/Temp'
 *   example 3: dirname('/dir/test/');
 *   returns 3: '/dir'
 */
function dirname (path) {
    return path.replace(/\\/g, '/').replace(/\/[^\/]*\/?$/, '');
}

$(function() {
	// Closable fieldset
	$('fieldset.closable legend').bind('click', function() {toggleFieldSet(this);} );	
	$('fieldset.closable').append('<img class="openButton" src="'+baseUrl+'sys/web/images/icons/add.png" onclick="toggleFieldSet(this)" alt="Open" />');
	$('fieldset.closable').append('<img class="closeButton" src="'+baseUrl+'sys/web/images/icons/delete.png" onclick="toggleFieldSet(this)" alt="Close" style="display:none;" />');

	// Datepicker
	if ($( ".datatype_date" ).datepicker)	{
		datepickerOpts = { 
			dateFormat: 'dd.mm.yy' 
		};
		$( ".datatype_date" ).datepicker(datepickerOpts);
		$( ".datatype_timestamp" ).datepicker(datepickerOpts);
	}
});


