var cage_name, div_name, focus = 0, content_x, content_y, display_cage_name, action;
var refreshContent = "none"; // name of content to refresh after save

function createRequestObject() 
{
    var req; 
    if(window.XMLHttpRequest) {
    	try {
            req = new XMLHttpRequest();
        } 
        catch(e) {
            req = false;
        }
    } 
    else if (window.ActiveXObject) {
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch(e) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch(e) {
                req = false;
            }
        }
    }
    return req;
}
var request = createRequestObject(); 


// get edit popup //////////////////////////////////////////
function get_edit_popup(object, name)
{
    placement = findPos(object);
    content_x = placement[0] - 10;
    content_y = placement[1] - 10;
    
    cage_name = 'edit_'+name+'_cage'; // existing cage to place content in
    div_name = 'edit_'+name+'_div'; // div to show when downloaded
    focus = 0; // field to focus when downloaded
    getEditPopupRequest(name);
	
    void 0;
}

function getEditPopupRequest(name) 
{
    if (request.readyState == 0 || request.readyState == 4) // don't allow another AJAX call while one already in progress
    {
        document.body.style.cursor = 'wait';
    	call_id = new Date().getTime();
       	post_data = 'type=get_edit_popup&name='+name+'&r='+call_id;
       	request.open('post', 'cms_request.php', true);
        request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
       	request.onreadystatechange = handleGetEditPopupRequest;
       	request.send(post_data);
    }
}

function handleGetEditPopupRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		var response = request.responseText;
		document.getElementById(cage_name).innerHTML = response;

        if (div_name)
        { // show div popup
    		document.getElementById(div_name).style.left = content_x + "px";
    		document.getElementById(div_name).style.top = content_y + "px";
            tinyMCE.execCommand('mceAddControl', false, 'new_content');
    		document.getElementById(div_name).style.display = 'block';
    		div_name = "";
        }
        
        if (focus)
        { // focus
    		document.getElementById(focus).focus(); 
    		focus = 0;
        }
        
        document.body.style.cursor = 'default';
	}
}

// save content ///////////////////////////////////////
function save_content(name)
{
    var frm = document.forms['edit_'+name+'_form'];
    var form_content = tinyMCE.get('new_content');
    var content = form_content.getContent();
   	
   	content = content.replace(/\+/g, "&#43");
    content = content.replace(/\\/g, "&#92");
    content = escape(content);
   	
   	tinyMCE.execCommand('mceRemoveControl', false, 'new_content');
   	
   	close_this_popup('edit_'+name+'_div');
    refreshContent = name;
    saveContentRequest(name, content);
}

function saveContentRequest(name, content) 
{
    if (request.readyState == 0 || request.readyState == 4) // don't allow another AJAX call while one already in progress
    {
        document.body.style.cursor = 'wait';
       	call_id = new Date().getTime();
       	post_data = 'type=save_content&name='+name+'&content='+content;
       	request.open('post', 'cms_request.php', true);
        request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
       	request.onreadystatechange = handleSaveContentRequest;
       	request.send(post_data);
    }
}

function handleSaveContentRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		if (refreshContent != "none")
	    	display_content(refreshContent);
            
        refreshContent = "none";
        document.body.style.cursor = 'default';
	}
}

// display content //////////////////////////////////
function display_content(name)
{
    display_cage_name = name+'_cms_display_cage';
    displayContentRequest(name);
}

function displayContentRequest(name) 
{
    if (request.readyState == 0 || request.readyState == 4) // don't allow another AJAX call while one already in progress
    {
        document.body.style.cursor = 'wait';
    	call_id = new Date().getTime();
       	post_data = 'type=get_content&name='+name+'&r='+call_id;
       	request.open('post', 'cms_request.php', true);
        request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
       	request.onreadystatechange = handleDisplayContentRequest;
       	request.send(post_data);
    }
}

function handleDisplayContentRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		var response = request.responseText;
		document.getElementById(display_cage_name).innerHTML = response;
        document.body.style.cursor = 'default';
	}
}



// get gallery popup //////////////////////////////////////////
var global_object, global_name; // used so popup form can automatically refresh
function get_gallery_popup(object, name)
{
	global_object = object; // used so popup form can automatically refresh
	global_name = name;
	
    placement = findPos(object);
    content_x = placement[0] - 10;
    content_y = placement[1] - 10;
    
    cage_name = 'edit_'+name+'_cage'; // existing cage to place content in
    div_name = 'edit_'+name+'_div'; // div to show when downloaded
    focus = 0; // field to focus when downloaded
    getGalleryPopupRequest(name);
	
    void 0;
}

function getGalleryPopupRequest(name) 
{
    if (request.readyState == 0 || request.readyState == 4) // don't allow another AJAX call while one already in progress
    {
        document.body.style.cursor = 'wait';
    	call_id = new Date().getTime();
       	post_data = 'type=get_gallery_popup&name='+name+'&r='+call_id;
       	request.open('post', 'cms_request.php', true);
        request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
       	request.onreadystatechange = handleGetGalleryPopupRequest;
       	request.send(post_data);
    }
}

function handleGetGalleryPopupRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		var response = request.responseText;
		document.getElementById(cage_name).innerHTML = response;
		
        if (div_name)
        { // show div popup
    		document.getElementById(div_name).style.left = content_x + "px";
    		document.getElementById(div_name).style.top = content_y + "px";
    		document.getElementById(div_name).style.display = 'block';
    		div_name = "";
        }
        $('#thumbs_pane').jScrollPane({reinitialiseOnImageLoad :true});
        
        document.body.style.cursor = 'default';
	}
}

var check_done;
function create_gallery(name)
{
	var frm = document.forms['edit_'+name+'_form'];
	
	if (frm.elements.new_gallery_name.value == '' || frm.elements.gallery_cover.value == '')
	{
		alert ("Please enter a gallery name and choose a gallery cover image.");
		return;
	}
		
	
	frm.elements.new_gallery_cover_upload.value = 'true';
	
	frm.submit();
	
	check_done = "false";
	interval = window.setInterval("check_upload()", 1);
}

function check_upload()
{
    if (check_done == "false" && (request.readyState == 0 || request.readyState == 4)) // don't allow another AJAX call while one already in progress
    {
        document.body.style.cursor = 'wait';
    	call_id = new Date().getTime();
    	request.open('get', 'cms_request.php?type=upload_check&r='+call_id);
    	request.onreadystatechange = handleCheckUploadRequest; 
    	request.send(null);
    	
     	interval = window.setInterval("check_upload()", 1);
    }
}

function handleCheckUploadRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		var response = request.responseText;
		if (response == "true")
		{
			check_done = "true";
			window.clearInterval(interval);
		    get_gallery_popup(global_object, global_name)
		    
        	document.body.style.cursor = 'default';
		}
	}
}

function deleteGalleryRequest(gallery_id) 
{
	if (confirm('Are you sure you want to delete this gallery and all images in this gallery?'))
	{
	    if (request.readyState == 0 || request.readyState == 4) // don't allow another AJAX call while one already in progress
	    {
	        document.body.style.cursor = 'wait';
	    	call_id = new Date().getTime();
	       	post_data = 'type=delete_gallery&name='+global_name+'&gallery_id='+gallery_id+'&r='+call_id;
	       	request.open('post', 'cms_request.php', true);
	        request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	       	request.onreadystatechange = handleDeleteGalleryRequest;
	       	request.send(post_data);
	    }
	}
}

function handleDeleteGalleryRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		get_gallery_popup(global_object, global_name)
        
        document.body.style.cursor = 'default';
	}
}

function close_gallery_popup(div)
{ // refresh page
	document.getElementById(div).style.display = 'none';
	window.location.reload();
	
    void 0;
}
//////////////////////////////////////////////////////////////

// get image upload popup //////////////////////////////////////////
var global_page, global_gallery_id
function get_upload_image_popup(object, name, page, gallery_id)
{
	global_object = object; // used so popup form can automatically refresh
	global_name = name;
	global_page = page;
	global_gallery_id = gallery_id;

    placement = findPos(object);
    content_x = placement[0] - 10;
    content_y = placement[1] - 10;
    
    cage_name = 'edit_'+name+'_cage'; // existing cage to place content in
    div_name = 'edit_'+name+'_div'; // div to show when downloaded
    focus = 0; // field to focus when downloaded
    getImageUploadPopupRequest(name, page, gallery_id);
	
    void 0;
}

function getImageUploadPopupRequest(name, page, gallery_id) 
{
    if (request.readyState == 0 || request.readyState == 4) // don't allow another AJAX call while one already in progress
    {
        document.body.style.cursor = 'wait';
    	call_id = new Date().getTime();
       	post_data = 'type=get_image_upload&name='+name+'&page='+page+'&gallery_id='+gallery_id+'&r='+call_id;
       	request.open('post', 'cms_request.php', true);
        request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
       	request.onreadystatechange = handleImageUploadPopupRequest;
       	request.send(post_data);
    }
}

function handleImageUploadPopupRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		var response = request.responseText;
		document.getElementById(cage_name).innerHTML = response;
		
        if (div_name)
        { // show div popup
    		document.getElementById(div_name).style.left = content_x + "px";
    		document.getElementById(div_name).style.top = content_y + "px";
    		document.getElementById(div_name).style.display = 'block';
    		div_name = "";
        }
        
        document.body.style.cursor = 'default';
	}
}

var check_image_done;
function upload_image(name)
{
	var frm = document.forms['edit_'+name+'_form'];
	
	frm.elements.new_image_upload.value = 'true';
	
	frm.submit();
	
	check_image_done = "false";
	interval = window.setInterval("check_image_upload()", 1);
}

function check_image_upload()
{
    if (check_image_done == "false" && (request.readyState == 0 || request.readyState == 4)) // don't allow another AJAX call while one already in progress
    {
        document.body.style.cursor = 'wait';
    	call_id = new Date().getTime();
    	request.open('get', 'cms_request.php?type=upload_check&r='+call_id);
    	request.onreadystatechange = handleCheckImageUploadRequest; 
    	request.send(null);
    	
     	interval = window.setInterval("check_image_upload()", 1);
    }
}

function handleCheckImageUploadRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		var response = request.responseText;
		if (response == "true")
		{
			check_image_done = "true";
			window.clearInterval(interval);
        	document.body.style.cursor = 'default';
        	
        	window.location.reload();
		}
	}
}


function deleteImageRequest(page, gallery_id, file_id) 
{
	if (confirm('Are you sure you want to delete this image?'))
	{
		var frm = document.forms['edit_'+global_name+'_form'];
		
	    if (request.readyState == 0 || request.readyState == 4) // don't allow another AJAX call while one already in progress
	    {
	        document.body.style.cursor = 'wait';
	    	call_id = new Date().getTime();
	       	post_data = 'type=delete_image&page='+page+'&gallery_id='+gallery_id+'&file_id='+file_id+'&r='+call_id;
	       	request.open('post', 'cms_request.php', true);
	        request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	       	request.onreadystatechange = handleDeleteImageRequest;
	       	request.send(post_data);
	    }
	}
}

function handleDeleteImageRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		window.location.reload();
	}
}
//////////////////////////////////////////


// rename gallery //////////////////////////////////////////
function show_rename_gallery(gallery_id)
{
	if (document.getElementById('name_'+gallery_id).style.display == 'none')	
	{
		document.getElementById('rename_'+gallery_id).style.display = 'none';
		document.getElementById('name_'+gallery_id).style.display = 'block';
	}
	else
	{
		document.getElementById('name_'+gallery_id).style.display = 'none';
		document.getElementById('rename_'+gallery_id).style.display = 'block';
	}
}

function renameGalleryRequest(gallery_id) 
{
	var frm = document.forms['edit_'+global_name+'_form'];
	
	var rename = frm.elements['rename_'+gallery_id].value;
	
    if (request.readyState == 0 || request.readyState == 4) // don't allow another AJAX call while one already in progress
    {
        document.body.style.cursor = 'wait';
    	call_id = new Date().getTime();
       	post_data = 'type=rename_gallery&name='+global_name+'&gallery_id='+gallery_id+'&rename='+rename+'&r='+call_id;
       	request.open('post', 'cms_request.php', true);
        request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
       	request.onreadystatechange = handleRenameGalleryRequest;
       	request.send(post_data);
    }
}

function handleRenameGalleryRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		get_gallery_popup(global_object, global_name)
        
        document.body.style.cursor = 'default';
	}
}
/////////////////////////////////////////////////




// change email address //////////////////////////////////
function get_email_popup(object, name)
{
    placement = findPos(object);
    content_x = placement[0] - 10;
    content_y = placement[1] - 10;
    
    cage_name = 'edit_'+name+'_cage'; // existing cage to place content in
    div_name = 'edit_'+name+'_div'; // div to show when downloaded
    focus = "new_email"; // field to focus when downloaded
    getEmailPopupRequest(name);
	
    void 0;
}

function getEmailPopupRequest(name) 
{
    if (request.readyState == 0 || request.readyState == 4) // don't allow another AJAX call while one already in progress
    {
        document.body.style.cursor = 'wait';
    	call_id = new Date().getTime();
    	request.open('get', 'cms_request.php?type=get_email_popup&name='+name+'&r='+call_id);
    	request.onreadystatechange = handleGetEmailPopupRequest; 
    	request.send(null);
    }
}

function handleGetEmailPopupRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		var response = request.responseText;
		document.getElementById(cage_name).innerHTML = response;
        document.body.style.cursor = 'default';

        if (div_name)
        { // show div popup
    		document.getElementById(div_name).style.left = content_x + "px";
    		document.getElementById(div_name).style.top = content_y + "px";
    		document.getElementById(div_name).style.display = 'block';
    		div_name = "";
        }
        
        if (focus)
        { // focus
    		document.getElementById(focus).focus(); 
    		focus = 0;
        }
	}
}
	
function save_email(name)
{
    var frm = document.forms['edit_'+name+'_form'];
    var content = frm.new_email.value;
   	
   	content = content.replace(/\+/g, "&#43");
    content = content.replace(/\\/g, "&#92");
    content = escape(content);
   	
   	close_this_popup('edit_'+name+'_div');
    saveEmailRequest(content);
}

function saveEmailRequest(email) 
{
    if (request.readyState == 0 || request.readyState == 4) // don't allow another AJAX call while one already in progress
    {
        document.body.style.cursor = 'wait';
       	call_id = new Date().getTime();
       	post_data = 'type=save_email&email='+email;
       	request.open('post', 'cms_request.php', true);
        request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
       	request.onreadystatechange = handleSaveContentRequest;
       	request.send(post_data);
    }
}

function handleSaveEmailRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
        document.body.style.cursor = 'default';
	}
}
//////////////////////////////////////////////////////


// misc CMS functions
function desc_popup(object, text)
{
    placement = findPos(object);
    x = placement[0] + 45;
    y = placement[1] + 64;
    
   	document.getElementById('desc_text').innerHTML = text;
   	document.getElementById('desc_div').style.left = x + "px";
   	document.getElementById('desc_div').style.top = y + "px";
   	document.getElementById('desc_div').style.display = 'block';
    
    void 0;
}

function hide_desc_popup()
{
	document.getElementById('desc_div').style.display = 'none';
    
    void 0;
}

function logout() 
{
    if (request.readyState == 0 || request.readyState == 4) // don't allow another AJAX call while one already in progress
    {
        document.body.style.cursor = 'wait';
    	call_id = new Date().getTime();
    	request.open('get', 'logout.php?r='+call_id);
    	request.onreadystatechange = handleLogoutRequest; 
    	request.send(null);
    }
}

function handleLogoutRequest()
{
	if(request.readyState == 1) 
	{ 
	    
    }
	if(request.readyState == 4) 
	{
		var current = location.href;
		location.href = current;
	}
}

function close_this_popup(div)
{
	document.getElementById(div).style.display = 'none';
	
    void 0;
}

function close_edit_popup(div)
{ // close edit popup and unload tinyMCE
	document.getElementById(div).style.display = 'none';
   	tinyMCE.execCommand('mceRemoveControl', false, 'new_content');
	
    void 0;
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function show(id)
{
	if (document.getElementById(id).style.display == 'none')
		document.getElementById(id).style.display = 'block';
	else
		document.getElementById(id).style.display = 'none';
	
}
