$(function() {

	var $dialogs = $('<div></div>')
	
		.append('<div id="zcmbox"><div id="zcmcontent"></div><div id="zcmeditorbuttons"><table style="margin: 0 auto;"><tr><td width="92"><div class="button2" id="zcmcancelbutton">Cancel</div></td><td><img src="images/blank.gif" width="10" height="1" border="0"></td><td width="92"><div class="button2" id="zcmsavebutton">Save</div></td></tr></table></div><div id="zcmbox_close"></div></div>')
	
		.append('<div id="zcmlogin"><div id="znlogin"><form name="zloginform" id="zloginform"><input type="hidden" name="cmd" value="logon" /><p class="topic"><b>Please Login...</b></p><ul class="zform" style="margin-top: 7px;"><li><label>Username</label><input class="zfield" type="text" name="username" value="" /></li><li><label>Password</label><input class="zfield" type="password" name="password" value="" /></li></ul><div id="logonbtn" class="button1" style="margin: 5px 0 5px 103px;">Login</div><p class="privacy">If you have forgotten your login details<br />please contact your administrator.</p></form></div><div id="zloginerror"></div><div id="zloginclose"></div></div>')
	
		.append('<div class="zcmbkup" id="zcmbkup"><div class="zcmbkupmsg"><form name="bkupform" method="POST"><p><b>BACKUP</b></p><p>Enter a name for your backup folder or leave the default name</p><center><input class="zcmbkupfolderfld" type="text" name="foldername" value="" /></center></form></div><div class="button1" id="zcmdlogok" style="position: absolute; bottom: 30px; right: 40px;">OK</div><div class="button1" id="zcmdlogcancel" style="position: absolute; bottom: 30px; right: 140px;">Cancel</div></div>')
		
		.append(
			$('<div id="zcontrols"></div>')
			.append('<div class="zcm_controlbutton" id="zcm_control_close"></div>')
			.append('<div class="zcm_controlbutton" id="zcm_edit_btn"></div>')
		)
		
		.append('<div id="zcmblackout"></div>');
	
	$("body").append($dialogs);

});

$().ready(function() {

//	I N I T

	{

		var logged_in_flag = false;
		var logging_in_flag = false;
		var dlogleft = $(window).width() / 2;
		var dlogtop = $(window).height() / 3;
		
		jQuery.fn.single_double_click = function(single_click_callback, double_click_callback, timeout) {
			return this.each(function(){
				var clicks = 0, self = this;
				jQuery(this).click(function(event){
					clicks++;
					if (clicks == 1) {
					setTimeout(function(){
						if(clicks == 1) {
							single_click_callback.call(self, event);
						} else {
							double_click_callback.call(self, event);
						}
						clicks = 0;
					}, timeout || 300);
					}
				});
			});
		}
	
	}


//	D I A L O G S

	{

	function openzlogin() {
		var scrolltop = $(window).scrollTop();
		var blackH = $(window).height();
		$("#zloginclose").show(300);
		$("#zcmlogin").css({ 'z-index': 20000 });
		$("#zcmlogin").css({ 'top': scrolltop, 'left': dlogleft, 'width': 30, 'height': 30 });
		$("#zcmlogin").show();
		$("#zcmlogin").animate({
			top: 140,
			left: ($(window).width() - 300) / 2,
			width: '300px',
			height: '160px'
		}, 300, 'linear', function() {
			$("#znlogin").fadeIn(700);
			document.zloginform.username.focus();
			$("#zcmlogin").css({ 'z-index': 20000 });
			$("#zcmblackout").css({'width' : $(window).width(), 'height' : blackH });
			$("#zcmblackout").fadeIn(300);
			logging_in_flag = true;
		}); 
	}
	
	function closezlogin() {
		$("#znlogin").hide();
		$("#zloginclose").hide();
		$("#zcmlogin").css({ 'background' : 'FFFFFF' });
		$("#zcmlogin").animate({ 
			top: dlogtop,
			left: dlogleft,
			width: "30px",
			height: "30px"
		}, 300, 'linear', function() { 
			$("#zcmlogin").hide();
			$("#zloginerror").hide();
			$("#zcmlogin").css({ 'top': 0, 'left': dlogleft, 'width': 30, 'height': 30 });
			$("#zcmblackout").fadeOut(200);
			logging_in_flag = false;
		});
	}
	
	function doZError(msg) {
		$("#zloginerror").hide();
		$("#zloginerror").text(msg);
		$("#zloginerror").fadeIn(700);
		$("#zloginerror").css({ 'z-index': 20000 });
	}
	
	function doZLogin() {
		var url = ZMODURL + "/zcm/ajax/zcm-login.php";
		$.post(url, { username: document.zloginform.username.value,  password: document.zloginform.password.value }, function(data) {
			if ($.trim(data) != "PASS") {
				doZError(data);
				document.zloginform.username.focus();
			} else {
				$.cookie("zc-logged", document.zloginform.username.value, { expires: 7, path: '/' });
				closezlogin(1);
				doZLoggedIn();
				return false;
			}
		});
	}

	function doZLogout() {
		editmode = false;
		logged_in_flag = false;
		$(".zcm").removeClass('outlined');
		$.cookie('zc-editor', null, { path: '/' });
		$.cookie('zc-logged', null, { path: '/' });
		$('#zcm_edit_btn').css("background-image", "url(" + ZMODURL + "/zcm/images/edit.png)");
		$('.zlogin_btn').html('&copy;');
//		$("#zcm_edit_btn").hide();
		$("#zcontrols").hide();
	}

	function doZLoggedIn() {
		$("#zcontrols").show();
		$(".zlogin_btn").html('&Oslash;');
		logged_in_flag = true;
	}
	
	}


//	E D I T O R

	{

	var zcmX;
	var zcmY;
	var zcm_path;
	var zcm_container;
	var editmode = false;
	var editor = null;

	function zcmBox() {
		this.width = 860;
		this.height = 610;
		this.left = ($(window).width() - 860) / 2;
	}
	
	zcmBox.prototype.close = function() {
		$("#zcmcontent").hide();
		$("#zcmbox_close").hide();
		$("#zcmbox_error").hide();
		$("#zcmbox").animate({ 
			top: zcmY,
			left: zcmX,
			width: "30px",
			height: "30px"
		}, 300, 'linear', function() { 
			$("#zcmbox").hide();
			$("#zcmblackout").fadeOut(200);
// 		$("#vidplayer").show();
		}); 
		editor.destroy();
		editor = null;
	}
	
	zcmBox.prototype.open = function(fname) {
		var f = 'cms/' + fname + '.txt';
		var scrolltop = $(window).scrollTop();
		var blackH = $(window).height() + $(window).scrollTop();
		zcm_path = HDIR + "/cms/" + fname + ".txt";
		$("#zcmbox_close").show();
		$("#zcmbox").css({ top: zcmY, left: zcmX, width: 30, height: 30 });
		$("#zcmcontent").hide();
		$("#zcmbox").show();
		$("#zcmbox").animate({ 
			left: this.left,
			top: 25,
			width: this.width,
			height: this.height
		}, 300, 'linear', function() {
			$("#zcmbox").css({ 'z-index': 20000 });
 			$("#zcmcontent").fadeIn(300)
			$("#zcmblackout").css({'width' : $(window).width(), 'height' : blackH });
			$("#zcmblackout").fadeIn(300);
		});
		if (! editor) {
			var htmlcontent = $(zcm_container).html();
			editor = CKEDITOR.appendTo( 'zcmcontent' );
			editor.setData( htmlcontent );
		}
	}
	
	}


//	B A C K U P

	{

	function fetch_date(delim) {
		var currentTime = new Date();
		var month = currentTime.getMonth() + 1;
		var day = currentTime.getDate();
		var year = currentTime.getFullYear();
		return month.toString() + day.toString() + year.toString();
	}
	
	function doBackup() {
//return false;
		var dlogleft = ($(window).width() - 487) / 2;
		$("#zcmbkup").css({ 'left' : dlogleft });

		$.post(ZMODURL + "/zcm/ajax/zcm-bkupselect.php", function(data){
			$("#bkupselectdiv").html(data);
			$("#bkupselect").change(function() {
				var selectedfolder = $(this).val();
				$.post(ZMODURL + "/zcm/ajax/zcm-fileselect.php", { foldername: selectedfolder }, function(data) {
					$("#fileselectdiv").html(data);
				});
			});
		});
		
		var newtop = $(window).scrollTop();
		$("#zcmbkup").css({ 'top' : newtop });
		$("#zcmbkup").slideDown(300, function() {
			var today = fetch_date('.');
			var filefolder = 'cms_bkup_' + today;
			$(".zcmbkupfolderfld").val(filefolder);
			$(".zcmbkupmsg").fadeIn(300);
		});
	}
	
	}


//	A C T I O N S

	{
	
	$("#zloginclose").click(function() {
		closezlogin(1);
	});

	$("#logonbtn").click(function() {
		doZLogin();
	});

	$('.zlogin_btn').click(function() {
		if (logged_in_flag) {
			doZLogout();
			return false;
		}
		openzlogin();
	});
	
	$("#zcm_control_close").click(function() {
		doZLogout();
	});

	if ($.cookie('zc-logged')) {
		doZLoggedIn();
	}

	var zcmbox = new zcmBox();

	//	show control button
	if ($.cookie('zc-logged')) { $("#zcontrols").show(); }

	//	write
	$("#zcmsavebutton").click(function() {
		var content = editor.getData();
		var url = ZMODURL + "/zcm/ajax/zcm-write.php";
		$.post(url, { path: zcm_path, content: content }, function(data) {
				$(zcm_container).html(data);
		});
		zcmbox.close();
		return false;
	});

	//	close editor
	$("#zcmbox_close").click(function(event) { zcmbox.close(); });

	//	cancel editor
	$("#zcmcancelbutton").click(function(event) { zcmbox.close(); });

	//	select container
	$(".zcm").click(function(e) {
		if (editmode) {
			zcmX = e.pageX;
			zcmY = e.pageY;
			zcm_id = $(this).attr("name");
			zcm_id = (zcm_id == undefined) ? $(this).attr('id') : zcm_id;
			zcm_container = $(this);
			zcmbox.open( zcm_id );
		}
	});

	//	edit button
	$("#zcm_edit_btn").single_double_click(function () {
		if (editmode) {
			$(".zcm").removeClass('outlined');
			$.cookie('zc-editor', null, { path: '/' });
			$('#zcm_edit_btn').css("background-image", "url(" + ZMODURL + "/zcm/images/edit.png)");
		} else {
			$(".zcm").addClass('outlined');
			$.cookie("zc-editor", "1", { path: '/', expires: 7 });
			$('#zcm_edit_btn').css("background-image", "url(" + ZMODURL + "/zcm/images/edit_off.png)");
		}
		editmode = !editmode;
	}, function () {
		doBackup();
	})

	//	display edit mode
	if ($.cookie('zc-editor')) {
		editmode = true;
		$(".zcm").addClass('outlined');
		$('#zcm_edit_btn').css("background-image", "url(" + ZMODURL + "/zcm/images/edit_off.png)");
	}
	
	$("#zcmdlogcancel").click(function() {
		$("#zcmbkup").slideUp(300);
		$(".zcmbkupmsg").hide();
	});
	
	$("#zcmdlogok").click(function() {
		var temp = document.bkupform.foldername.value;
		var url = ZMODURL + "/zcm/ajax/zcm-backup.php";
		$.post(url, { foldername: temp },
			function(data) {
				if ($.trim(data) == "PASS") {
					alert("Backup Saved");
					$("#zcmbkup").slideUp(300);
					$(".zcmbkupmsg").hide();
				} else {
					alert(data);
				}
		});
	});
	
	}


//	S U P P O R T

	$(document).keydown(function(event) {
		switch (event.keyCode) {
			case 13:
				event.preventDefault();
				if (logging_in_flag) {
					doZLogin();
					return false;
				}
				break;
		}
	});
	
});


