// dynamic loading javascript, requires mootools - written by dave shanley

var CMS_RESOURCES_PREFIX = "/tcms"
var CMS_PREFIX = ""


var contentElement =  $('content_area');

/* loading html */
var loading = '<div id="content_loading">' + 
            	'loading, wait a moment...<br/>' + 
                '<img src="..' + CMS_RESOURCES_PREFIX + '/resources/gfx/app/bar_loading.gif" alt="loading, please wait" />' +
        		'</div>';

/* processing html */
var processing = '<div id="content_loading">' + 
            	'processing, hang on a sec....<br/>' + 
                '<img src="..' + CMS_RESOURCES_PREFIX + '/resources/gfx/app/bar_loading.gif" alt="loading, please wait" />' +
        		'</div>';        		

/* html for error header */
var errorHeader = '<div class="error_status"><img src="..' + CMS_RESOURCES_PREFIX + '/resources/gfx/app/red_cross.png" alt="error!" class="icon"/>';
var errorFooter = '</div>';

/* html for status header */
var statusHeader = '<div class="ok_status"><img src="..' + CMS_RESOURCES_PREFIX + '/resources/gfx/app/green_tick.png" alt="ok!" class="icon"/>';
var statusFooter = '</div>';


/* delete box code */
function loadDeleteBox(url,id) {
	
	$('delete_box').setStyle('display','block');
	var deleteBox = $('delete_box');
	
	/* build delete box */
	var deleteBoxImage = new Element('img', {
    		'src': '..' + CMS_RESOURCES_PREFIX + '/resources/gfx/app/important.png',
    		'alt': 'important information'
	});
	
	var deleteBoxForm = new Element('form', {
    		'class': 'styled'
	});
	
	var deleteOkButton = new Element('input', {
    		'type': 'button',
    		'id':'deleteokbutton',
    		'name': 'deleteokbutton',
    		'value': 'yes, delete it!',
    		'class': 'buttonclass'
    });
    
    var deleteCancelButton = new Element('input', {
    		'type': 'button',
    		'id':'deletecancelbutton',
    		'name': 'deletecancelbutton',
    		'value': 'no! I\'m drunk',
    		'class': 'buttonclass'
    });
    
    deleteOkButton.addEvent('click',(function() { deleteRecord(url,id); }));
    deleteCancelButton.addEvent('click',(function() { closeDeleteBox(); }));	
    
    /* injection code */
    var recordName = $('data_record_' + id).getText().replace(/^\s+|\s+$/g, '');
    var headline = "<h2>confirm delete '" + recordName + "'</h2>";
    var subline =  "<p>once it's gone, its really gone matey. I won't be able to get it back for you!</p>";
	deleteBox.setHTML(headline + subline);
	deleteBoxForm.injectInside(deleteBox);
	deleteOkButton.injectInside(deleteBoxForm);
	deleteCancelButton.injectInside(deleteBoxForm);
	deleteBoxImage.injectInside(deleteBox);	
}


/* set homepage box code */
function loadContentHomepage(id) {
	
	$('homepage_box').setStyle('display','block');
	var homepageBox = $('homepage_box');
	
	/* build homepage box */
	var homepageBoxImage = new Element('img', {
    		'src': '..' + CMS_RESOURCES_PREFIX + '/resources/gfx/app/homepage_warning.png',
    		'alt': 'important information'
	});
	
	var homepageBoxForm = new Element('form', {
    		'class': 'styled'
	});
	
	var homepageOkButton = new Element('input', {
    		'type': 'button',
    		'id':'homepageokbutton',
    		'name': 'homepageeokbutton',
    		'value': 'yes, set it!',
    		'class': 'buttonclass'
    });
    
    var homepageCancelButton = new Element('input', {
    		'type': 'button',
    		'id':'homepagecancelbutton',
    		'name': 'homepagecancelbutton',
    		'value': 'no! I\'m drunk',
    		'class': 'buttonclass'
    });
    
    homepageOkButton.addEvent('click',(function() { setHomepage(id); }));
    homepageCancelButton.addEvent('click',(function() { closeHomepageBox(); }));	
    
    /* injection code */
    var recordName = $('data_record_' + id).getText().replace(/^\s+|\s+$/g, '');
    var headline = "<h2>set this as your new homepage?</h2>";
    var subline =  "<p><strong>'" + recordName + "'</strong> will become your new homepage. the homepage is the 'default' page that is loaded for your site - are you sure?</p>";
	homepageBox.setHTML(headline + subline);
	homepageBoxForm.injectInside(homepageBox);
	homepageOkButton.injectInside(homepageBoxForm);
	homepageCancelButton.injectInside(homepageBoxForm);
	homepageBoxImage.injectInside(homepageBox);	
}


/* delete record */
function deleteRecord(url,id) {
	contentElement.setHTML(loading);
	(function() {
		new Ajax(url + '?action=delete&id=' + id, {
		method: 'get',
		update: contentElement,
		evalScripts: true
	}).request() 
	}).delay(1000);
}

/* set homepage */
function setHomepage(id) {
	contentElement.setHTML(loading);
	(function() {
		new Ajax('../admin/content.do?action=homepage&id=' + id, {
		method: 'get',
		update: contentElement,
		evalScripts: true
	}).request() 
	}).delay(1000);
}

/* close the delete box */
function closeDeleteBox() {
	$('delete_box').setStyle('display','none');
}

/* close the homepage box */
function closeHomepageBox() {
	$('homepage_box').setStyle('display','none');
}

function loadAdminScreen(url) {
	/* clear status element out */
	$('status_container').setHTML(" ");
	contentElement.setHTML(loading);
	(function() {
	new Ajax(url, {
		method: 'get',
		update: contentElement, 
		evalScripts: true
	}).request();
	}).delay(1000);
	
	
	/* clear old editor stuff out */
	
}

function loadAdminScreenNoClear(url) {
	contentElement.setHTML(loading);
	(function() {
	new Ajax(url, {
		method: 'get',
		update: contentElement, 
		evalScripts: true
	}).request();
	}).delay(1000);
}

function loadError(message) {
	var errorMessage = errorHeader + message + errorFooter;
	$('status_container').setHTML(errorMessage);
}

function loadStatus(message) {
	var statusMessage = statusHeader + message + statusFooter;
	$('status_container').setHTML(statusMessage);
}

function formPost(formname) {
	var form = $(formname);
	var queryString = $(form).toQueryString();
	contentElement.setHTML(processing);
	(function() { form.send({
		update: contentElement,
		evalScripts: true
	})}).delay(1000);
}

function formEditorPost(formname,editors) {
	/* this isn't really a form submission, more of a hack */
	
	var form = $(formname);
	var queryString = "";
	
	/* iterate through editors */
	for(x = 0; x < editors.length; x++) {
		
		/* get the editor */
		var editor = tinyMCE.get(editors[x]);
		
		var content;
		var contentHidden;
		contentHidden = $(editors[x] + "_content");
		/* update editor progress */
		if(editor!=null) {
			editor.setProgressState(1);
			content = editor.getContent();
		} else {
			content = $(editors[x]).getValue();
		}
		contentHidden.setProperty('value',content);
	}
	
	/* submit the form */
	(function() { form.send({
		update: contentElement,
		evalScripts: true
	})}).delay(1000);
	
	
}

function loadContent(filterCategory) {
	/* clear status element out */
	//$('status_container').setHTML(" ");
	contentElement.setHTML(loading);
	var filter ="";
	if(filterCategory!=null) {
		filter = "&filterCategory=" + filterCategory;
	}
	(function() {
	new Ajax('../admin/content.do?action=view' + filter, {
		method: 'get',
		update: contentElement,
		evalScripts: true
	}).request();
	}).delay(1000);
}

function loadAssets(filterCategory) {
	/* clear status element out */
	$('status_container').setHTML(" ");
	contentElement.setHTML(loading);
	var filter ="";
	if(filterCategory!=null) {
		filter = "&filterCategory=" + filterCategory;
	}
	(function() {
	new Ajax('../admin/assets.do?action=view' + filter, {
		method: 'get',
		update: contentElement,
		evalScripts: true
	}).request();
	}).delay(1000);
}

function loadAdmin() {
	/* clear status element out */
	$('status_container').setHTML(" ");
	contentElement.setHTML(loading);
	(function() {
	new Ajax('../admin/users.do?action=view', {
		method: 'get',
		update: contentElement
	}).request();
	}).delay(1000);
}

/* info floating objects */

function enablePageInfoFloat(floaty,name,page) {
	var floatingPageInfo = $(floaty);
	
	/* input fields */
    var pageInfoContent = new Element('div', {
    	'class': 'data'
	});
	
	/* processing image */
	var waitingImage = new Element('img', {
    	'src':'../resources/gfx/app/ajax_small_blue.gif'
    });
	
	waitingImage.injectInside(pageInfoContent);
	
	new Ajax('../admin/content.do?action=info&id=' + page, {
		method: 'get',
		update: pageInfoContent
	}).request();
	
	pageInfoContent.injectInside(floatingPageInfo);
	floatingPageInfo.setStyle('display','block');
}

function disablePageInfoFloat(floaty) {
	var floatingPageInfo = $(floaty);
	floatingPageInfo.setHTML("");
	floatingPageInfo.setStyle('display','none');
}

function enableNewsInfoFloat(floaty,name,page) {
	var floatingPageInfo = $(floaty);
	
	/* input fields */
    var pageInfoContent = new Element('div', {
    	'class': 'data'
	});
	
	/* processing image */
	var waitingImage = new Element('img', {
    	'src':'../resources/gfx/app/ajax_small_blue.gif'
    });
	
	waitingImage.injectInside(pageInfoContent);
	
	new Ajax('../admin/news.do?action=info&id=' + page, {
		method: 'get',
		update: pageInfoContent
	}).request();
	
	pageInfoContent.injectInside(floatingPageInfo);
	floatingPageInfo.setStyle('display','block');
}

function disableNewsInfoFloat(floaty) {
	var floatingPageInfo = $(floaty);
	floatingPageInfo.setHTML("");
	floatingPageInfo.setStyle('display','none');
}


/* asset floating objects */
function enableAssetFloat(floaty,name) {
	var floatingAsset = $(floaty);
	
	/* input fields */
    var previewImage = new Element('img', {
    	'alt': name,
    	'class':'asset_preview',
    	'src':'/assets/' + name,
    	'title': name,
    	'alt' : name
    	
	});
	previewImage.injectInside(floatingAsset);
	floatingAsset.setStyle('display','block');
	
	
}

function disableAssetFloat(floaty) {
	var floatingAsset = $(floaty);
	floatingAsset.setHTML("");
	floatingAsset.setStyle('display','none');
}

/* editor stuff */
function toggleEditor(id) {
	var elm = document.getElementById(id);
	if (tinyMCE.getInstanceById(id) == null) {
	
		tinyMCE.execCommand('mceAddControl', false, id);
	} else{
		tinyMCE.execCommand('mceRemoveControl', false, id);
	}
}

/* category filter */
function addCategoryFilter(section, dropdown){
	var catFilter = dropdown.options[dropdown.selectedIndex].value;
	if (catFilter != "" && section == "assets") {
		loadAssets(catFilter);
	}
	if (catFilter != "" && section == "content") {
		loadContent(catFilter);
	}
}



