/** MediaPool-Funktionalität.
 *  TODO: Muss später dynamisch aus dem Modlet kommen
 *  SharedController - dynamisches Laden von JS & CSS
 */

function PAF_ToggleMediaPool(aPrefix, aIdentifier){
    var vMediaPoolVisible = $('#' + aPrefix + '__' + aIdentifier  + '_media_pool').is(':visible');
    $('#' + aPrefix + '__' + aIdentifier  + '_media_pool').toggle('normal');



    if (vMediaPoolVisible){
    	/*var vSelectedFiles = eval(aPrefix+"__" + aIdentifier + "_selected_items");
    	var vArrLen=vSelectedFiles.length;
    	
    	for ( var i=0, len=vArrLen; i<len; ++i ){
    		if (i%2 == 0){
    			var vImgBGClass='seletedImgWithBG';
			}else{
				var vImgBGClass='seletedImgWithoutBG';
			}
    		$('#' + aPrefix + '__' + aIdentifier  + '_selected_files').append($('<div class="selectedImg '+vImgBGClass+'" id="' + vSelectedFiles[i] + '_selected_file">' +  $("#" + aPrefix+"__" + aIdentifier + "media_pool_tree").find("#mediapoolitem_" + vSelectedFiles[i]).children("span").children("span").html() + ' <img class="imageCorrect" src="/PAF/design/global/img//delete.gif" onclick="PAF_MediaPoolRemoveFileFromSelection(\'' + vSelectedFiles[i] + '\');"></div>'));
    	};
    	*/
    } else {
    	$('#' + aPrefix + '__' + aIdentifier  + '_selected_files').html('');
    }

}

function loadItemDetails(aModletUniqueId, aItemId, aParentId, aURL, aPrefix){
	if (PAF_Tools._multiUploader[aPrefix + 'upload_files_container'].SWFUploader._fileArray.length > 0){
		PAF_Tools.clearMultiUploaderList(aPrefix + 'upload_files_container');
		PAF_Tools.MultiUploaderAddNoFilesSelectedNotification(aPrefix + 'upload_files_container');
	}	
	$('#' + aPrefix + 'uploader_hidden_div').append($('#' + aPrefix + 'uploader_div > .media_pool_details_accordeon_content'));
	
	var vActionUrl = new PAF_AjaxUrl();
	vActionUrl.addParameter(aModletUniqueId + "__mode", 'ajax_get_item_details');
	vActionUrl.addParameter(aModletUniqueId + "__item_id", aItemId);
	vActionUrl.addParameter(aModletUniqueId + "__parent_item_id", aParentId);

	//PAF_Tools.destroyMultiUploader(aPrefix + 'upload_files_container');
	// FIX For IE (otherwise an White Overlay due to synchronous ajax displayed)
	setTimeout("loadItemDetails2('"+aModletUniqueId +"','"+aItemId +"','"+aParentId +"','"+aURL +"','"+aPrefix + "')",1);

}

function loadItemDetails2(aModletUniqueId, aItemId, aParentId, aURL, aPrefix){
	//console.log(PAF_Tools._multiUploader);
	 var vActionUrl = new PAF_AjaxUrl();

	vActionUrl.addParameter(aModletUniqueId + "__mode", 'ajax_get_item_details');
	vActionUrl.addParameter(aModletUniqueId + "__item_id", aItemId);
	vActionUrl.addParameter(aModletUniqueId + "__parent_item_id", aParentId);
	
	PAF_Tools.MultiUploaderAddNoFilesSelectedNotification(aPrefix + 'upload_files_container');


	$('#' + aPrefix + 'item_details_div').empty();
	// @TODO: Beautify me....!
	$('#' + aPrefix + 'item_details_div').html("<img src='/PAF/design/global/img/PAF_TreeviewNator/ajax-loader.gif'>");

	$.ajax({
	    type: "GET",
	    async: true,
	    cache: false,
	    dataType: "html",
	    url: aURL + aModletUniqueId + "__mode/" + 'ajax_get_item_details/' + aModletUniqueId + "__item_id/" + aItemId + '/' + aModletUniqueId + "__parent_item_id/" + aParentId + '/' + aModletUniqueId + "__prefix/" + aPrefix,
	    success: function(response){

			$('#' + aPrefix + 'item_details_div').html(response);
			$('#' + aPrefix + 'uploader_div').append($('#' + aPrefix + 'uploader_hidden_div > div '));
		//setTimeout("$('#" + aPrefix + "item_details_div img').each(function(){$(this).attr('src', $(this).attr('src'))});",1);

	    }
	});
}

function storeMediaPoolItemDetails(aModletUniqueId, aItemId, aPrefix){
	var vActionUrl = new PAF_AjaxUrl();
	vActionUrl.addParameter(aModletUniqueId + "__mode", 'ajax_store_item_details');
	vActionUrl.addParameter(aModletUniqueId + "__item_id", aItemId);
	vActionUrl.addParameter(aModletUniqueId + "__descr", $('#edit_media_pool_item_' + aModletUniqueId).val());

	/*$.get(vActionUrl.getUrl(),
			function(text){
				$('#item_details_div').html(text);
			}
	);*/

	$('#' + aPrefix + 'media_pool_browser').PAF_TreeView('renameItem',{name: $('#' + aPrefix + 'edit_media_pool_item_' + aModletUniqueId).val()});
}

function getTreeStructure(){
	var vObject = $('#test > #media_pool_browser').PAF_TreeView('getStructure');

}

function MediaPool_addTags(aModletUniqueId, aItemId){
	var newTags = $.map($('#new_tags').val().split(','),function (aElement){
		return $.trim(aElement);
	});

	var vOldItems = null;
	var vAddedItems = null;

	$.each(newTags,function(aIndex, aElement){
		var vItemAlreadExists = false;
		var vOldContentExists = true;
		if (jQuery.trim($('#existing_tags').html()) == '-'){
			vOldContentExists = false;
		} else {
			vOldItems = $('#existing_tags>span>span');
		}
		if (vOldItems != null){
			vOldItems.each(function(aIndex2, aElement2){
				if (jQuery.trim($(aElement2).html()).toLowerCase() == jQuery.trim(aElement).toLowerCase()){
					vItemAlreadExists = true;
				}
			});
		}

		if (vItemAlreadExists || jQuery.trim(aElement) == ''){
			return;
		}

		if (vOldContentExists){
			$('#existing_tags').append('');
		} else {
			$('#existing_tags').html('');
		}


		$('#existing_tags').append($('<span class="tag_item"><span class="tag_item_name">' + jQuery.trim(aElement) + '</span><a href="JavaScript:void(0);" onclick="MediaPool_RemoveTagFromList(this);"><img src="/PAF/design/global/img/delete_small.gif" /></a></span>'))

		if (vAddedItems == null){
			vAddedItems = jQuery.trim(aElement);
		} else{
			vAddedItems = vAddedItems + ',' + jQuery.trim(aElement);
		}
	});

	$('#new_tags').val('');

	/*var vActionUrl = new PAF_AjaxUrl();
	vActionUrl.addParameter(aModletUniqueId + "__mode", 'ajax_store_tags');
	vActionUrl.addParameter(aModletUniqueId + "__item_id", aItemId);
	vActionUrl.addParameter(aModletUniqueId + "__tags", vAddedItems);

	$.get(vActionUrl.getUrl());*/
}

function MediaPool_StoreMediaPoolElement(aModletUniqueId, aUrl, aPrefix){
	
	var vAttributes={};
	var vItemDescr = $('#' + aPrefix + 'edit_media_pool_item_name').val();
	var vIdItem= $('#' + aPrefix + 'media_pool_item_id').val();
	var vIdParentItem = $('#' + aPrefix + 'parent_item_id').val();
	
	var vTags = '';
	$('#' + aPrefix + 'item_details_div .tag_item_name').each(function(aIndex, aElement){
		if (vTags != ''){
			vTags = vTags+','+$(aElement).html();
		} else {
			vTags = $(aElement).html();
		}
	});

	var vCategories = '';
	$('#' + aPrefix + 'item_details_div #category_tree input:checkbox:checked').each(function(aIndex, aElement){
		if (vCategories != ''){
			vCategories = vCategories+','+$(aElement).val();
		} else {
			vCategories = $(aElement).val();
		}
	});

	var vActionUrl = new PAF_AjaxUrl();
	vActionUrl.addParameter(aModletUniqueId + "__mode", 'ajax_store_media_pool_element');
	vActionUrl.addParameter(aModletUniqueId + "__item_id", vIdItem);
	vActionUrl.addParameter(aModletUniqueId + "__parent_item_id", vIdParentItem);
	vActionUrl.addParameter(aModletUniqueId + "__item_descr", vItemDescr);
	vActionUrl.addParameter(aModletUniqueId + "__categories", vCategories);
	vActionUrl.addParameter(aModletUniqueId + "__tags", vTags);	

	/*$.get(aUrl + aModletUniqueId + "__mode/" + 'ajax_store_media_pool_element/' + aModletUniqueId + "__item_id/" + vIdItem + '/' + aModletUniqueId + "__parent_item_id/" + vIdParentItem + '/' + aModletUniqueId + "__item_descr/" + vItemDescr + '/' + aModletUniqueId + "__categories/" + vCategories + '/' + aModletUniqueId + "__tags/" + vTags + '/' + aModletUniqueId + "__prefix/" + aPrefix,
		function(text){
		$('#' + aPrefix + 'media_pool_item_id').val($('span:first',text).attr('id'));
		$('#' + aPrefix + 'media_pool_browser').PAF_TreeView('replaceItem', text);
	});*/
	//$('#' + aPrefix + 'save_button').attr('disabled', 'disabled').val('Wird gespeichert...');



	$('input:[name="' + aPrefix + '_attributes"], textarea:[name="' + aPrefix + '_attributes"]').each(function(){
		vAttributes[aModletUniqueId + '__' + $(this).attr('id')] = $(this).attr('value');
	});
	vAttributes[aModletUniqueId + "__item_descr"] = vItemDescr;
	
	 $.ajax({
        type: "POST",
        async: true, // switched from false -> true during tuning by FH 
		data: (vAttributes),
        url: aUrl + aModletUniqueId + "__mode/" + 'ajax_store_media_pool_element/' + aModletUniqueId + "__item_id/" + vIdItem + '/' + aModletUniqueId + "__parent_item_id/" + vIdParentItem + '/' + aModletUniqueId + "__categories/" + vCategories + '/' + aModletUniqueId + "__tags/" + vTags + '/' + aModletUniqueId + "__prefix/" + aPrefix + '/',

        success: function(text){
    	
    		var vChildrenCount = $("#" + aPrefix + "_media_pool_tree").find("#" + vIdParentItem).find("ul").size();
    		
    		//console.log("vChildrenCount: " + vChildrenCount);
    		
    		if(vChildrenCount > 0){
    			$("#" + aPrefix + "_media_pool_tree").PAF_TreeviewNator({refreshNodeTrigger: vIdParentItem});
    		}else{    		   
		    	var vParentType = vIdParentItem.split("_");
		    	vParentType = vParentType[0];
		    	
		    	//console.log("vParentType: " + vParentType);
			
		    	if(vParentType == "mediapool"){
	    			$("#" + aPrefix + "_media_pool_tree").PAF_TreeviewNator({refreshNodeTrigger: "mediapool_list"});
	    		}else{
	    			var vGrandParentDOMId = $("#" + aPrefix + "_media_pool_tree").find("#" + vIdParentItem).parent().parent("li").attr("id"); 
	    			
	    			// Grandparent refreshen
	    			$("#" + aPrefix + "_media_pool_tree").PAF_TreeviewNator({refreshNodeTrigger: vGrandParentDOMId});
	    		}  
    		}
    	}
    });
}

function MediaPool_StoreMediaPool(aModletUniqueId, aURL, aPrefix){
	var vAttributes={};
	var vDescr = $('#' + aPrefix + 'edit_media_pool_name').val();
	var vDescrOrg = $('#' + aPrefix + 'edit_media_pool_name_org').val();
	
	var vIdItem= $('#' + aPrefix + 'media_pool_id').val();

	var vActionUrl = new PAF_AjaxUrl();
	vActionUrl.addParameter(aModletUniqueId + "__mode", 'ajax_store_media_pool');
	vActionUrl.addParameter(aModletUniqueId + "__id", vIdItem);
	//vActionUrl.addParameter(aModletUniqueId + "__descr", vDescr);
	vAttributes[aModletUniqueId + "__descr"] = vDescr;

    $.ajax({
        type: "POST",
        async: false,        
        data: (vAttributes),
        url: aURL + aModletUniqueId + "__mode/" + 'ajax_store_media_pool/' + aModletUniqueId + "__id/" + vIdItem + '/' + aModletUniqueId + "__prefix/" + aPrefix,
        success: function(text){
	    	//var vLongId = $('span:first',text).attr('id').split('_');
    	// forIE |console.log(aPrefix);
            //$('#' + aPrefix + 'media_pool_id').val(vLongId[1]);
            //$('#' + aPrefix + 'media_pool_browser').PAF_TreeView('replaceItem', text);
    	
    		/*if(vDescrOrg == vDescr && vDescrOrg != 'New MediaPool' && PAF_Tools._multiUploader[aPrefix + 'upload_files_container'].SWFUploader._fileArray.length == 0)){
    			// Only refresh current mediapool
    			$('#' + aPrefix + '_media_pool_tree').PAF_TreeviewNator({refreshNodeTrigger: "mediapool_" + vIdItem});
    		}else{
    			// Refresh entire tree
    			$('#' + aPrefix + '_media_pool_tree').PAF_TreeviewNator({refreshNodeTrigger: "mediapool_list"});
    		}*/
    		$('#' + aPrefix + '_media_pool_tree').PAF_TreeviewNator({refreshNodeTrigger: "mediapool_list"});
    		
        }
    });
}

function MediaPool_RemoveTagFromList(aLinkItem){
	$(aLinkItem).parent().remove();
	var vTags = $('#existing_tags>span');
	$('#existing_tags').html('');
	if (vTags.length == 0){
		$('#existing_tags').html('-');
	} else {
		vTags.each(function(aIndex, aElement){
			if (aIndex != 0){
				$('#existing_tags').append('').append(aElement);
			} else {
				$('#existing_tags').append(aElement);
			}
		});
	}
}

function MediaPool_StoreParentItem(aModletUniqueId, aItemId, aParentItemId, aUrl){
	var vActionUrl = new PAF_AjaxUrl();
	vActionUrl.addParameter(aModletUniqueId + "__mode", 'ajax_store_parent_item');
	vActionUrl.addParameter(aModletUniqueId + "__item_id", aItemId);
	vActionUrl.addParameter(aModletUniqueId + "__parent_item_id", aParentItemId);

	/*$.get(aUrl + aModletUniqueId + "__mode/" + 'ajax_store_parent_item/' + aModletUniqueId + "__item_id/" + aItemId + '/' + aModletUniqueId + "__parent_item_id/" + aParentItemId,
		function (text){

	});*/

    $.ajax({
        type: "GET",
        async: false,
        url: aUrl + aModletUniqueId + "__mode/" + 'ajax_store_parent_item/' + aModletUniqueId + "__item_id/" + aItemId + '/' + aModletUniqueId + "__parent_item_id/" + aParentItemId,
        success: function(text){

        }
    });
}

function MediaPool_RemoveItem(aModletIdentifier, aPrefix, aUrl){
	/*if ($('>ul',$('#' + aPrefix + 'media_pool_browser a.selected').parent().parent()).length > 0){
		Check = confirm("Dieser Ordner enthält Dateien, welche gelöscht würden. Wollen Sie diesen Ordner wirklich löschen?");
		if (Check == false)
			return;
	}*/
	
	var vSelectedElementId = $("#" + aPrefix + "_media_pool_tree").PAF_TreeviewNator({getSelectedNodeIdTrigger: "nix"});
	var vIdParentItem = $("#" + aPrefix + "_media_pool_tree").find("#" + vSelectedElementId).parents("li").attr("id");
	
		var vActionUrl = new PAF_AjaxUrl();
		vActionUrl.addParameter(aModletIdentifier + "_mode", 'ajax_delete_item');
		vActionUrl.addParameter(aModletIdentifier + "__item_id","");

		$('#' + aPrefix + 'uploader_hidden_div').append($('#' + aPrefix + 'uploader_div > .media_pool_details_accordeon_content'));
		$('#item_details_div').empty();

		$.ajax({
			type: "GET",
			async: true,
			url: aUrl + aModletIdentifier + "__mode/ajax_delete_item/" + aModletIdentifier + "__item_id/" + vSelectedElementId,
			success: function(text){
				MediaPool_ResetDetailsArea(aPrefix);		
			
				if(vIdParentItem != undefined){
					var vChildrenCount = $("#" + aPrefix + "_media_pool_tree").find("#" + vIdParentItem).find("ul").find("li").size();
										
		    		if(vChildrenCount  > 1){
		    			$("#" + aPrefix + "_media_pool_tree").PAF_TreeviewNator({refreshNodeTrigger: vIdParentItem});
		    		}else{    		   
				    	var vParentType = vIdParentItem.split("_");
				    	vParentType = vParentType[0];
					
				    	if(vParentType == "mediapool"){
			    			$("#" + aPrefix + "_media_pool_tree").PAF_TreeviewNator({refreshNodeTrigger: "mediapool_list"});
			    		}else{
			    			var vGrandParentDOMId = $("#" + aPrefix + "_media_pool_tree").find("#" + vIdParentItem).parent().parent("li").attr("id"); 
			    			
			    			// Grandparent refreshen
			    			$("#" + aPrefix + "_media_pool_tree").PAF_TreeviewNator({refreshNodeTrigger: vGrandParentDOMId});
			    		}  
		    		}					
					
					
				}else{
					$("#" + aPrefix + "_media_pool_tree").PAF_TreeviewNator({refreshNodeTrigger: "mediapool_list"});
				}
			}
		});
	}	

function MediaPool_ToggleDetailsArea(aIdArea){

	if( $('#' + aIdArea).css("display") == "none" ) {
		$('#' + aIdArea).show();
		$('#' + aIdArea + '_arrow').attr('src','/PAF/design/global/img/arrow-down.gif');

	} else {
		$('#' + aIdArea).hide();
		$('#' + aIdArea + '_arrow').attr('src','/PAF/design/global/img/arrow-right.gif');
	}
	/*
                    $('#' + aIdArea).show();

                    $('#' + aIdArea + '_arrow').attr('src','/PAF/design/global/img/arrow-down.gif');

               }, function() { // same here

                    $('#' + aIdArea).show();

                    $('#' + aIdArea + '_arrow').attr('src','/PAF/design/global/img/arrow-right.gif');

               });*/
}

function MediaPool_ResetDetailsArea(prefix){
	$('#' + prefix + 'uploader_hidden_div').append($('#' + prefix + 'uploader_div > .media_pool_details_accordeon_content'));
	$("#" + prefix + "item_details_div").empty();
	$("#" + prefix + "item_details_div").html("<div class='mediaPoolBox'><div class='media_pool_details_accordeon_header'>&nbsp;</div></div><div class='buttonLeiste'>&nbsp;</div>");
}

function toggleCheckboxSelection(vObject,aPrefix){
	var isChecked 	= $(vObject).attr('checked');
	var vItem		= $(vObject).attr('value');
	var vName		= $(vObject).attr('name');
	
	var vArray 	= eval(aPrefix+"_selected_items");
	
	if(isChecked){
		vArray.push(vItem);
	}else{
		var removeItem = vItem;
		vArray = jQuery.grep(vArray, function(value){
		        return value != removeItem;
		});
		//console.log(vArray[0]);
		if(vArray.length == 0 || vArray[0] == 0 || vArray[0] == "0"){
			vArray = new Array();
		}
	}
	
	eval(aPrefix + "_selected_items=vArray;");
	$("#"+aPrefix).val(vArray);
}

function PAF_MediaPoolRemoveFileFromSelection(aPrefix, aIdItem){
	var vArray 	= eval(aPrefix+"_selected_items");
	
	
	var removeItem = aIdItem;
	
	vArray = jQuery.grep(vArray, function(value){
	        return value != removeItem;
	});
	
	eval(aPrefix + "_selected_items=vArray;");
	$("#"+aPrefix).val(vArray);
	
	 $('#' + aIdItem + '_selected_file').remove();
}
