//################################################################################//
//## TinyMCE Editor File Functions 
//## Date: 01/12/2008
//## Author: Dustin Ward <dustin@netdesignsunlimited.com>
//## Copyright 2008
//################################################################################//


//################################################################################//
//## Function: Global Variables
//################################################################################//
				
        		var editMode = false;
				var currentId = '';
				var previousId = '';
				var currentDiv = '';
				var previousDiv = '';
				var mode = false;
				var currentDivA = '';
				var modeA = false;
				var save = false;

//################################################################################//
//## Function: AJAX File Manager Function
//################################################################################//

function ajaxfilemanager(field_name, url, type, win) {
                        var ajaxfilemanagerurl = "../../../../jscripts/tiny_mce/plugins/ajaxfilemanager/ajaxfilemanager.php";
                        switch (type) {
                                case "image":
                                        break;
                                case "media":
                                        break;
                                case "flash":
                                        break;
                                case "file":
                                        break;
                                default:
                                        return false;
                        }
                        var fileBrowserWindow = new Array();
                        fileBrowserWindow["file"] = ajaxfilemanagerurl;
                        fileBrowserWindow["title"] = "Ajax File Manager";
                        fileBrowserWindow["width"] = "782";
                        fileBrowserWindow["height"] = "445";
                        fileBrowserWindow["close_previous"] = "no";
                        tinyMCE.openWindow(fileBrowserWindow, {
                          window : win,
                          input : field_name,
                          resizable : "yes",
                          inline : "yes",
                          editor_id : tinyMCE.getWindowArg("editor_id")
                        });

                        return false;
                }
				
//################################################################################//
//## Function: Remove TinyMCE Istance
//################################################################################//

function removeTinyMCE() {
    		   tinyMCE.removeTinyMCEFormElements();
}


//################################################################################//
//## Function: Editor Toggle
//################################################################################//

function editorToggle(MCEid,save) {
				currentId = MCEid;
				
				// Save Content
				if (save == 1) {
					tinyMCE.triggerSave();
				}
				
				// Determine EditorMode In Case Of Clicking Edit On Another Blob
				if(currentId == previousId){
					editMode = true;
				}else{
					editMode = false;
				}
				
				if(editMode == false){
					// If editor is currently open, close it.
					if(previousId != ""){
						tinyMCE.removeMCEControl(tinyMCE.getEditorId(previousId));
						changeButtons(false,previousId);
					}
					
					// Open New Instance Of Editor
					var id = document.getElementById(MCEid);
					tinyMCE.addMCEControl(id, MCEid);
					changeButtons(true,MCEid);
					
					// Assign PreviousId As CurrentId & Set Edit Mode To True
					previousId = currentId;
					editMode = true;
				}else if(editMode == true){
					
					// Remove Current Instance
					tinyMCE.removeMCEControl(tinyMCE.getEditorId(currentId));
					changeButtons(false,MCEid);
					
					// Clear Previous Id 
					previousId = '';
					editMode = false;
				}
}

//################################################################################//
//## Function: Change Button <Div>
//################################################################################//

function changeButtons(editMode,MCEid) {
	if(editMode == true){
		jQuery('div#editButtons' + MCEid).html('<img src="images/disk.png" border="0" style="float:left; width:16px; height:16px; cursor:pointer; margin-right:5px;" onclick="editorToggle(\'' + MCEid + '\',1);" /><img src="images/cross.png" border="0" style="width:16px; height:16px; cursor:pointer;" onclick="editorToggle(\'' + MCEid + '\');" />');
		jQuery('#revertButtons' + MCEid).hide();
;
	}else{
		jQuery('div#editButtons' + MCEid).html('<img src="images/layout_edit.png" border="0" style="width:16px; height:16px; cursor:pointer;" onclick="editorToggle(\'' + MCEid + '\');" />');

;
//jQuery('#revertButtons' + MCEid).show();
	}	
}

//################################################################################//
//## Function: Save Content
//################################################################################//

function saveContent(id, content) {
		jQuery.post("inc/save.php",{"id":id,"content":content},saveCallback);
		//jQuery('#revertButtons' + id).load("admin/adminSave.php?action=getButtons&id=" + id);
		jQuery('#editHeader' + id).load("admin/adminSave.php?action=currentVersionBlock&id=" + id);
}

//################################################################################//
//## Function: Save Callback
//################################################################################//

function saveCallback(data, textStatus) {
 				
}

//################################################################################//
//## Function: POST New Blob
//################################################################################//

function newBlob(){
	var id = jQuery("input[@name=contentBlobId]").val();
	jQuery.post("adminSave.php",{"action":"addBlob","id":id},blobCallback);
}

//################################################################################//
//## Function: Delete Blob
//################################################################################//

function deleteBlob(id){
	jQuery.post("adminSave.php",{"action":"deleteBlob","id":id},deleteBlobCallback);
}

//################################################################################//
//## Function: Blob Callback
//################################################################################//

function blobCallback() {
		jQuery("input[@name=contentBlobId]").val("");
		jQuery('#blobTable').load("adminSave.php?action=loadBlob");
		jQuery("#status").html("<center> Blob Has Been Added!</center>");
		jQuery("#status").fadeIn("slow");
		setTimeout('hide()', 5000);
}

//################################################################################//
//## Function: Delete Blob Callback
//################################################################################//

function deleteBlobCallback() {
		jQuery("input[@name=contentBlobId]").val("");
		jQuery('#blobTable').load("adminSave.php?action=loadBlob");
		jQuery("#status").html("<center> Blob Has Been Deleted!</center>");
		jQuery("#status").fadeIn("slow");
		setTimeout('hide()', 5000);
}


//################################################################################//
//## Function: POST New Style
//################################################################################//

function newStyle(){
	var stylesName = jQuery("input[@name=stylesName]").val(); 
	var stylesStyle = jQuery("input[@name=stylesStyle]").val();
	jQuery.post("adminSave.php",{"action":"addStyle","stylesStyle":stylesStyle,"stylesName":stylesName},styleCallback);
}

//################################################################################//
//## Function: Delete Style
//################################################################################//

function deleteStyle(id){
	jQuery.post("adminSave.php",{"action":"deleteStyle","id":id},deleteStyleCallback);
	//jQuery('#styleTable').load("adminSave.php?action=loadStyles");
}

//################################################################################//
//## Function: Style Callback
//################################################################################//

function styleCallback() {
		jQuery("input[@name=stylesName]").val("");
		jQuery("input[@name=stylesStyle]").val("");
		jQuery('#styleTable').load("adminSave.php?action=loadStyles");
		jQuery("#status").html("<center> Style Has Been Added!</center>");
		jQuery("#status").fadeIn("slow");
		setTimeout('hide()', 5000);
}

//################################################################################//
//## Function: Delete Style Callback
//################################################################################//

function deleteStyleCallback() {
		jQuery('#styleTable').load("adminSave.php?action=loadStyles");
		jQuery("#status").html("<center> Style Has Been Deleted!</center>");
		jQuery("#status").fadeIn("slow");
		setTimeout('hide()', 5000);
}

//################################################################################//
//## Function: Change Password
//################################################################################//

function changePass(user){ 
	if(user=="" || user==null){
		//alert("No user");
		var newPass = jQuery("input[@name=password]").val();
		jQuery.post("adminSave.php",{"action":"changePassword","newPass":newPass},passCallback);
	}else{
		//alert("user Good");
		var newPass = jQuery("input[@name=changePassword_" + user  + "]").val();
		jQuery.post("adminSave.php",{"action":"changePassword","newPass":newPass,"user":user},passCallback);
	}
}

//################################################################################//
//## Function: Change Password Callback
//################################################################################//

function passCallback() {
		jQuery("input[@name=password]").val("");
		jQuery("#status").html("<center> Your Password Has Been Updated!</center>");
		jQuery("#status").fadeIn("slow");
		setTimeout('hide()', 5000);
}

//################################################################################//
//## Function: Add Admin
//################################################################################//

function addAdmin(){
	var username = jQuery("input[@name=administrators_username]").val(); 
	var password = jQuery("input[@name=administrators_password]").val(); 
	var email = jQuery("input[@name=administrators_email]").val(); 
	var level = document.getElementById("administrators_level").value;
	jQuery.post("adminSave.php",{"action":"addAdmin","username":username,"password":password,"email":email,"level":level},adminCallback);
}

//################################################################################//
//## Function: Admin Callback
//################################################################################//

function adminCallback() {
	jQuery("input[@name=administrators_username]").val(""); 
	jQuery("input[@name=administrators_password]").val(""); 
	jQuery("input[@name=administrators_email]").val(""); 
	jQuery("input[@name=administrators_level]").val("");
	jQuery('#adminTable').load("adminSave.php?action=loadAdmins");
	jQuery("#status").html("<center> Administrator Has Been Added!</center>");
	jQuery("#status").fadeIn("slow");
	setTimeout('hide()', 5000);
}

//################################################################################//
//## Function: Admin Callback
//################################################################################//

function showBlobPermissions(id) {
	if(currentDiv != id){
		mode = false;	
	}
	
	if(mode == false){
		if(currentDiv != ""){
			jQuery('#permissions_' + currentDiv).hide();
		}
		
		jQuery('#permissions_' + id).show();
		mode = true;
		currentDiv = id;
	}else if(mode == true){
		jQuery('#permissions_' + currentDiv).hide();
		mode = false;
	}
}

//################################################################################//
//## Function: Sabe Blob Permissions
//################################################################################//

function saveBlobPermissions(id) {
	var cb = new Array(); 
	jQuery("input[@name=blobPermissions_" + id + "]:checked").each(function(i) {
		   cb = cb + "," + this.value;
 	});
	jQuery.post("adminSave.php",{"action":"blobPerms","blobPerms":cb,"user":id},blobPermissions);
}

//################################################################################//
//## Function: Blob Permissions Callback
//################################################################################//

function blobPermissions(data, textStatus) {
	jQuery("#status").html("<center> Blob Permissions Have Been Updated!</center>");
	jQuery("#status").fadeIn("slow");
	setTimeout('hide()', 5000);
}

//################################################################################//
//## Function: Delete User
//################################################################################//

function deleteUser(id){
	jQuery.post("adminSave.php",{"action":"deleteUser","id":id},userCallback);
}

//################################################################################//
//## Function: Delete User Callback
//################################################################################//

function userCallback(){
	jQuery('#adminTable').load("adminSave.php?action=loadAdmins");
	jQuery("#status").html("<center> User Has Been Deleted!</center>");
	jQuery("#status").fadeIn("slow");
	setTimeout('hide()', 5000);
}

//################################################################################//
//## Function: Delete User Callback
//################################################################################//

function showDiv(div){
	if(jQuery('div#' + div).css("display") == "none"){
		jQuery('div#' + div).slideDown("slow");
	}else if(jQuery('div#' + div).css("display") == "block"){
		jQuery('div#' + div).slideUp("slow");
	}
}

//################################################################################//
//## Function: Login
//################################################################################//

function processLogin()
	{
		
		var options = {
			dataType:'json',
			url:'admin/process_login.php',
			type:'POST',
			error:function(XMLHttpRequest, textStatus, errorThrown)
			{
				alert(errorThrown.message);
				//alert(errorThrown.description);
			},
			success:function(json)
			{
				if(typeof(json.error) == 'undefined')
				{
					alert('Unknown Error.');
				}else if(json.error != '')
				{
					alert(json.error);
				}else
				{
					if(json.user_level == '1')
					{//chief amdin, go to admin area
						document.location.href='admin/';
					}else
					{//normall admin, refresh current page
						document.location.reload();
						//window.reload();
					}
					
				}
			}
		};

		$('form[@name=formLogin]').ajaxSubmit(options);
	}
	
//################################################################################//
//## Function: Show Password
//################################################################################//

function showPassword(id) {
	if(currentDivA != id){
		modeA = false;	
	}
	
	if(modeA == false){
		if(currentDivA != ""){
			jQuery('#password_' + currentDivA).hide();
		}
		
		jQuery('#password_' + id).show();
		modeA = true;
		currentDivA = id;
	}else if(modeA == true){
		jQuery('#password_' + currentDivA).hide();
		modeA = false;
	}
}

//################################################################################//
//## Function: Revert
//################################################################################//

function revert(ver,id) {
		$.ajax({
		   type: "GET",
		   url: "admin/adminSave.php?action=revert&ver=" + ver + "&id=" + id,
		   success: function(html){
				jQuery('#' + id).html(html);
				//jQuery('#revertButtons' + id).load("admin/adminSave.php?action=getButtons&ver=" + ver + "&id=" + id);
				jQuery('#editHeader' + id).load("admin/adminSave.php?action=currentVersionBlock&id=" + id);
				alert("You Must Save Your Content In Order For The Changes To Take Effect.");
   			}
 		});
}

//################################################################################//
//## Function: Hide Alerts
//################################################################################//

function hide() {
		jQuery("#status").html(" ");
		jQuery("#status").fadeOut("slow");
}
