/** All JS Stuff for CMS backend **/

var EG = {};

EG.hostPath = '';
EG.controllersPath = '';
EG.relFrontendPath = '';
EG.crntMainCatId = '';
EG.crntSubCatId = '';
EG.crntPicId = '';

$(function(){
	
	// Logout button
	$('#north .btn, #south .btn, .btn').hover(
		function() { $(this).addClass('ui-state-hover'); }, 
		function() { $(this).removeClass('ui-state-hover'); }
	);
	
	// Logout dialog
	$("#logout_dialog").dialog({
		bgiframe: true,
		autoOpen: false,
		modal: true,
		closeOnEscape: true,
		resizable: false,
		buttons: {
			'Logout': function() {
				location.href = $('#logout_dialog_link').html();
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// News delete dialog
	$("#news_delete_dialog").dialog({
		bgiframe: true,
		autoOpen: false,
		modal: true,
		closeOnEscape: true,
		resizable: false,
		buttons: {
			'Ja': function() {				
				$.ajax({
					type: "POST",
					url: EG.relFrontendPath + '/cms/newsdelete',
					data: "newsid=" + EG.News.deleteNewsId,
					success: function(msg) {
						if(msg == 'true') {
							$('#news_delete_dialog').dialog('close');
							location.href = EG.relFrontendPath + '/cms/news';
						} else {
							alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
						}
					},
					error: function(msg) {
						alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
					}
				});
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Delete main category dialog
	$("#delete_category_dialog").dialog({
		bgiframe: true,
		height: 200,
		modal: true,
		closeOnEscape: true,
		draggable: true,
		resizable: false,
		autoOpen: false,
		buttons: {
			'Kategorie loeschen': function() {								
				$.ajax({
					type: "POST",
					url: EG.relFrontendPath + '/cms/deletecat',
					data: "catid=" + EG.PF.Cat.catIdStorage,
					success: function(msg) {
						if(msg == 'true') {
							var obj = $("div[catid='" + EG.PF.Cat.catIdStorage + "']");
							obj.fadeOut(3000, function() {
								obj.remove();
							});
							$('#delete_category_dialog').dialog('close');
						} else {
							alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
						}
					},
					error: function(msg) {
						alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
					}
				});
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Create main cat dialog
	$("#create_category").dialog({
		bgiframe: true,
		height: 180,
		modal: true,
		closeOnEscape: true,
		draggable: true,
		autoOpen: false,
		resizable: false,
		buttons: {
			'Kategorie erstellen': function() {
				// Check user input
				if($('#name').val() == '') {
					alert("Bitte Namen der Kategorie eingeben");
				} else {				
					$.ajax({
						type: "POST",
						url: EG.relFrontendPath + '/cms/portfoliocreatecategory',
						data: "name=" + $('#name').val(),
						success: function(msg) {
							if(msg == 'true') {
								//location.href = EG.relFrontendPath + '/cms/portfoliocategorymanager';
								EG.PF.Cat.loadCategorys();
								$('#create_category').dialog('close');
							} else {
								alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
							}
						},
						error: function(msg) {
							alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
						}
					});
				}
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Change name of main category dialog
	$("#change_category").dialog({
		bgiframe: true,
		height: 180,
		modal: true,
		closeOnEscape: true,
		draggable: true,
		resizable: false,
		autoOpen: false,
		buttons: {
			'Namen aendern': function() {
				// Check user input
				if($('#name').val() == '') {
					alert("Bitte den neuen Namen der Kategorie eingeben");
				} else {				
					$.ajax({
						type: "POST",
						url: EG.relFrontendPath + '/cms/portfoliochangecategoryname',
						data: "name=" + $('#name').val() + "&id=" + EG.crntMainCatId,
						success: function(msg) {
							if(msg == 'true') {
								$('#cat_name_view').text($('#name').val());
								$('#bc_maincategory_name').text($('#name').val());
								$('#change_category').dialog('close');
							} else {
								alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
							}
						},
						error: function(msg) {
							alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
						}
					});
				}
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Create subcategory dialog
	$("#create_subcategory").dialog({
		bgiframe: true,
		height: 220,
		modal: true,
		closeOnEscape: true,
		draggable: true,
		resizable: false,
		autoOpen: false,
		buttons: {
			'Unterkategorie erstellen': function() {
				// Check user input
				if($('#namesub').val() == '') {
					alert("Bitte Namen der Unterkategorie eingeben");
				} else {				
					$.ajax({
						type: "POST",
						url: EG.relFrontendPath + '/cms/portfoliocreatesubcategory',
						data: "name=" + $('#namesub').val() + "&id=" + EG.crntMainCatId,
						success: function(msg) {
							if(msg == 'true') {
								EG.PF.Cat.loadSubCategorys();
								$('#create_subcategory').dialog('close');
							} else {
								alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
							}
						},
						error: function(msg) {
							alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
						}
					});
				}
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Delete subcategory dialog
	$("#delete_subcategory_dialog").dialog({
		bgiframe: true,
		height: 180,
		modal: true,
		closeOnEscape: true,
		draggable: true,
		resizable: false,
		autoOpen: false,
		buttons: {
			'Unterkategorie loeschen': function() {								
				$.ajax({
					type: "POST",
					url: EG.relFrontendPath + '/cms/deletesubcat',
					data: "subcatid=" + EG.PF.Cat.subCatIdStorage,
					success: function(msg) {
						if(msg == 'true') {
							var obj = $("div[catid='" + EG.PF.Cat.subCatIdStorage + "']");
							obj.fadeOut(3000, function() {
								obj.remove();
							});
							$('#delete_subcategory_dialog').dialog('close');
						} else {
							alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
						}
					},
					error: function(msg) {
						alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
					}
				});
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Change subcategory name dialog
	$("#change_subcategory").dialog({
		bgiframe: true,
		height: 180,
		modal: true,
		closeOnEscape: true,
		draggable: true,
		resizable: false,
		autoOpen: false,
		buttons: {
			'Namen aendern': function() {
				// Check user input
				if($('#name').val() == '') {
					alert("Bitte den neuen Namen der Unterkategorie eingeben");
				} else {				
					$.ajax({
						type: "POST",
						url: EG.relFrontendPath + '/cms/portfoliochangesubcategoryname',
						data: "name=" + $('#name').val() + "&id=" + EG.crntSubCatId,
						success: function(msg) {
							if(msg == 'true') {
								$('#cat_name_view, #bc_subcategory_name').text($('#name').val());
								$('#change_subcategory').dialog('close');
							} else {
								alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
							}
						},
						error: function(msg) {
							alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
						}
					});
				}
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Delete picture dialog
	$("#delete_picture_dialog").dialog({
		bgiframe: true,
		height: 100,
		modal: true,
		closeOnEscape: true,
		draggable: true,
		resizable: false,
		autoOpen: false,
		buttons: {
			'Bild loeschen': function() {								
				$.ajax({
					type: "POST",
					url: EG.relFrontendPath + '/cms/deletepicture',
					data: "picid=" + EG.PF.Cat.picIdStorage,
					success: function(msg) {
						if(msg == 'true') {
							var obj = $("div[picid='" + EG.PF.Cat.picIdStorage + "']");
							obj.fadeOut(3000, function() {
								obj.remove();
							});
							$('#delete_picture_dialog').dialog('close');
						} else {
							alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
						}
					},
					error: function(msg) {
						alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
					}
				});
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Change sub category picture data dialog
	$("#change_subcategory_picdata").dialog({
		bgiframe: true,
		height: 300,
		modal: true,
		closeOnEscape: true,
		draggable: true,
		resizable: false,
		autoOpen: false,
		buttons: {
			'Daten aendern': function() {
				// Check user input
				if($('#name').val() == '') {
					alert("Bitte den neuen Namen der Unterkategorie eingeben");
				} else {
					$.ajax({
						type: "POST",
						url: EG.relFrontendPath + '/cms/portfoliochangepicdata',
						data: "name=" + $('#name').val() + "&infotext=" + $('#picinfo').val() + "&url=" + $('#url').val() + "&picid=" + EG.crntPicId,
						success: function(msg) {
							if(msg == 'true') {
								$('#pic_name_view, #bc_picture_name').text($('#name').val());
								$('#pic_info_view').text($('#picinfo').val());
								$('#change_subcategory_picdata').dialog('close');
							} else {
								alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
							}
						},
						error: function(msg) {
							alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
						}
					});
				}
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Create dp gallery dialog
	$("#dp_create_gallery").dialog({
		bgiframe: true,
		height: 180,
		modal: true,
		closeOnEscape: true,
		draggable: true,
		autoOpen: false,
		resizable: false,
		buttons: {
			'Galerie erstellen': function() {
				// Check user input
				if($('#name').val() == '') {
					alert("Bitte Namen der Kategorie eingeben");
				} else {				
					$.ajax({
						type: "POST",
						url: EG.relFrontendPath + '/cms/dpcreategallery',
						data: "name=" + $('#name').val(),
						success: function(msg) {
							if(msg == 'true') {
								//location.href = EG.relFrontendPath + '/cms/portfoliocategorymanager';
								EG.DP.loadGallerys();
								$('#dp_create_gallery').dialog('close');
							} else {
								alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
							}
						},
						error: function(msg) {
							alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
						}
					});
				}
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Download dp picture dialog
	$("#download_picture_dialog").dialog({
		bgiframe: true,
		height: 180,
		width: 400,
		modal: true,
		closeOnEscape: true,
		draggable: true,
		autoOpen: false,
		resizable: false,
		buttons: {
			'Download starten': function() {
				location.href = EG.relFrontendPath + '/dp/downloadpicture?g=' + EG.dpGalleryStorage + '&p=' + EG.dpPictureStorage;
				$(this).dialog('close');
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Add user dialog
	$("#add_user_dialog").dialog({
		bgiframe: true,
		autoOpen: false,
		modal: true,
		closeOnEscape: true,
		resizable: false,
		buttons: {
			'Anlegen': function() {				
				// Data fields
				var name = $('#name').val();
				var prename = $('#prename').val();
				var email = $('#email').val();
				var pass = $('#pass').val();
				var pass_w = $('#pass_w').val();
				var company = $('#company').val();
				//console.log(name, email, pass, pass_w, company);
				
				if(pass != pass_w) {
					alert("Das Passwort stimmt nicht mit der Passwort Wiederholung ueberein!");
					return false;
				}
				
				$.ajax({
					type: "POST",
					url: EG.relFrontendPath + '/cms/clientportaladdclient',
					data: "name=" + name + '&email=' + email + '&pass=' + pass + '&company=' + company + '&prename=' + prename,
					success: function(msg) {
						if(msg == 'true') {
							$('#add_user_dialog').dialog('close');
							location.href = EG.relFrontendPath + '/cms/clientportalclientmanager';
						} else {
							alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
						}
					},
					error: function(msg) {
						alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
					}
				});
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Delete user dialog
	$("#delete_user_dialog").dialog({
		bgiframe: true,
		autoOpen: false,
		modal: true,
		closeOnEscape: true,
		resizable: false,
		buttons: {
			'Loeschen': function() {
				$.ajax({
					type: "POST",
					url: EG.relFrontendPath + '/cms/clientportaldeleteclient',
					data: "cid=" + EG.CP.deleteUserId,
					success: function(msg) {
						if(msg == 'true') {
							$('#delete_user_dialog').dialog('close');
							location.href = EG.relFrontendPath + '/cms/clientportalclientmanager';
						} else {
							alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
						}
					},
					error: function(msg) {
						alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
					}
				});
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	// Inform user dialog
	$("#inform_user_dialog").dialog({
		bgiframe: true,
		autoOpen: false,
		modal: true,
		closeOnEscape: true,
		resizable: false,
		width: 400,
		buttons: {
			'Benachrichtigen': function() {
				var msg_type = $('input:radio:checked').val();
				
				var data_string = '';
				if(msg_type == 'type_own') {
					data_string = "cid=" + EG.CP.informUserId + "&msg_type=" + msg_type + "&msg_own_header=" + $('.msg_own_header').val() + "&msg_own_text=" + $('.msg_own_text').val() + "&msg_own_footer=" + $('.msg_own_footer').val();
				} else {
					data_string = "cid=" + EG.CP.informUserId + "&msg_type=" + msg_type;
				}
				
				$.ajax({
					type: "POST",
					url: EG.relFrontendPath + '/cms/clientportalinformclient',
					data: data_string,
					success: function(msg) {
						if(msg == 'true') {
							$('#inform_user_dialog').html('<p>Die Email wurde verschickt. Sie k&ouml;nnen diesen Dialog nun schlie&szlig;en.');
							$('#inform_user_dialog').dialog('option', 'buttons', {
								'Dialog schliessen': function() {
									$('#inform_user_dialog').dialog('close');
								}
							});
						} else {
							alert('Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut!');
						}
					},
					error: function(msg) {
						alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
					}
				});
			},
			'Abbrechen': function() {
				$(this).dialog('close');
			}
		}
	});
	
	
	
	
	/* Ajax status */
	$('#ajax_status').ajaxStart(function() {
		$(this).show();
	});
	$('#ajax_status').ajaxStop(function() {
		$(this).hide();
	});
});


// Logout
EG.logout = function() {
	$("#logout_dialog").dialog('open');
}

// Clientspage
EG.Clientspage = {};

EG.Clientspage.safeForm = function() {
	$('#cc_form').submit();
}


// News
EG.News = {};

EG.News.safeForm = function(url) {
	$('#nc_form').submit();
	//location.href = url;
}

EG.News.editForm = function(url) {
	$('#ne_form').submit();
	//location.href = url;
}

EG.News.deleteNews = function(id) {
	EG.News.deleteNewsId = id;
	$("#news_delete_dialog").dialog('open');
}

EG.News.textToggle = function(obj) {
	$(obj).toggle();
}

// Logs
EG.Logs = {};

EG.Logs.logPath = '';
EG.Logs.currentLogfile = '';

// Load logfile
EG.Logs.loadLog = function(logfile) {
	EG.Logs.currentLogfile = logfile;
	url = EG.controllersPath + '/cms/loadlogfile';
	
	$.getJSON(
		url + "?logfile=" + logfile,
		function(data) {
			$('#lv_logview').text(data.logfiledata);
			$('#lv_info').text('Logfile: ' + logfile);
		}
	);
}

// Delete logfile
EG.Logs.deleteLog = function() {
	logfile = EG.Logs.currentLogfile;
	
	url = EG.controllersPath + '/cms/deletelogfile';
	
	$.getJSON(
		url + "?logfile=" + logfile
	);
	
	$('#lv_logview').text('');
	$('#lv_info').text('-- Kein Logfile ausgew&auml;hlt --');
	EG.Logs.reloadLog();
}

// Reload logfile
EG.Logs.reloadLog = function() {
	EG.Logs.loadLog(EG.Logs.currentLogfile);
}


// Portfolio
EG.PF = {};

// Portfolio categorys
EG.PF.Cat = {};
EG.PF.Cat.catIdStorage = null;

// Delete main category
EG.PF.Cat.deleteCategory = function(catid) {
	EG.PF.Cat.catIdStorage = catid;
	$("#delete_category_dialog").dialog('open');
}

// Create main category
EG.PF.Cat.createCategory = function() {
	$('#create_category').dialog('open');
}


// SWFUpload
EG.SWFUpload = {};
EG.SWFUpload.obj;

EG.SWFUpload.globalSettings = {
	
};

// Fancybox for upload pics
EG.SWFUpload.activateFancybox = function() {
	$('.fancybox').fancybox({
		'imageScale': true,
		'zoomSpeedIn': 200,
		'zoomSpeedOut': 200,
		'easingIn': 'easeOutBack',
		'easingOut': 'easeInBack',
		'overlayShow': false
	});
}

// Portfolio sorter
EG.PF.Sorter = {};

// Jump to sub category
EG.PF.Sorter.jumpToSubcategory = function(url) {
	location.href = url;
}

// Move pictures
EG.PF.Sorter.moveSelectedPicsToCategory = function(maincatid, subcatid) {
	// Get position of subcat container
	var sc = $('#subcat_' + subcatid);
	var scPos = sc.position();
	var scPosDoc = sc.offset();
	
	var imgIds = new Array();
	$('.ui-selected').each(function() {
		var obj = $(this);
		if(obj.attr('imgid')) {
			imgIds.push(obj.attr('imgid'));
		}
	});
	
	//console.log(sc, scPos, scPosDoc);
	// Do the server side stuff
	$.ajax({
		type: "POST",
		url: EG.relFrontendPath + '/cms/sortcatsandpics',
		//data: "name=" + $('#name').val(),
		//data: "maincatid=" + <?php echo $this->params['maincatid']; ?>,
		data: 'maincatid=' + maincatid + '&subcatid=' + subcatid + '&picids=' + imgIds,
		success: function(data) {
			// Get all ids of pictures we want to move
			$('.ui-selected').each(function() {
				var obj = $(this);
				
				// Move items to subcat container and fade them out
				var objPos = obj.offset();
				// Calc offset
				var osLeft = scPosDoc.left - objPos.left + 20;
				var osTop = scPosDoc.top - objPos.top - 20;
				obj.animate({
					opacity: 0.3,
					left: osLeft + 'px',
					top: osTop + 'px'
				}, 800, function() {
					obj.fadeOut(500);
				});
				
				//console.log(scPos, scPos.left, scPos.top);
			});
			
			sc.effect("highlight", {color: '#ff9900'}, 3000);
			
			$('.pfs_subcat_arrow').css({
				'visibility': 'hidden'
			});
		},
		error: function(msg) {
			alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
		}
	});
}


/* Download Portal */
EG.DP = {};

// Create main category
EG.DP.createGallery = function() {
	$('#dp_create_gallery').dialog('open');
}

// Delete main category
EG.DP.deleteGallery = function() {
	
}

// Toggle user info
EG.DP.toggleUserInfo = function(obj, id) {
	$('#user_info_' + id).slideToggle(200, function() {
		if($(obj).hasClass('ui-icon-triangle-1-e')) {
			$(obj).removeClass('ui-icon-triangle-1-e');
			$(obj).addClass('ui-icon-triangle-1-s');
			
			// Load data
			$.ajax({
				type: "POST",
				url: EG.relFrontendPath + '/cms/dpusermoredata',
				data: 'userid=' + id,
				success: function(data) {
					$('#user_info_' + id).html(data);
				},
				error: function(msg) {
					alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
				}
			});
			
		} else {
			$(obj).removeClass('ui-icon-triangle-1-s');
			$(obj).addClass('ui-icon-triangle-1-e');
		}
	});
}

// Download picture
EG.DP.downloadPicture = function(gallery, picture) {
	//console.log(gallery, picture);
	EG.dpGalleryStorage = gallery;
	EG.dpPictureStorage = picture;
	$('#download_picture_dialog').dialog('open');
}


/* Client portal */
EG.CP = {};
EG.CP.Cat = {};

// Add user
EG.CP.addUser = function() {
	$('#add_user_dialog').dialog('open');
}

// Delete user
EG.CP.deleteUserDialog = function(id) {
	EG.CP.deleteUserId = id;
	$('#delete_user_dialog').dialog('open');
}

// Toggle user files
EG.CP.toggleUserFiles = function(obj, id) {
	$('#user_info_' + id).slideToggle(200, function() {
		if($(obj).hasClass('ui-icon-triangle-1-e')) {
			$(obj).removeClass('ui-icon-triangle-1-e');
			$(obj).addClass('ui-icon-triangle-1-s');
			
			// Load data
			$.ajax({
				type: "POST",
				url: EG.relFrontendPath + '/cms/clientportaluserfiles',
				data: 'userid=' + id,
				success: function(data) {
					$('#user_info_' + id).html(data);
				},
				error: function(msg) {
					alert('Es ist ein Fehler aufgetreten - bitte versuchen Sie es erneut!');
				}
			});
			
		} else {
			$(obj).removeClass('ui-icon-triangle-1-s');
			$(obj).addClass('ui-icon-triangle-1-e');
		}
	});
}

// Inform user
EG.CP.userMsgDialog = function(id) {
	EG.CP.informUserId = id;
	$('#inform_user_dialog').dialog('open');
}
