/* SETUP VARIABLES */
var layoutDefaults = {};
var greybackMaxImagewWidth = 960;
var greybackCurrentEditor = {
	id: "",
	max_width: 960,
	image: "",
	model: ""
};
var greybackCurrentImage = null;
var greybackCurrentElementBlock = null;
var selectedImage = null;
var imageSelector = null;
var imageGallerySelector = {saved:[],selected:[]};
$(document).ready(function(){
	/* MENUS */
	//$('#loading').animate({marginTop:0},'fast');
	
	$('#menu .topnav').click(function(){
		if(!$(this).hasClass('greybackMenu_active')) {
			$('.topnav').removeClass('greybackMenu_active');
			$('.subnav:visible').slideUp();
			$(this).next('.subnav').slideDown();
			$(this).addClass('greybackMenu_active');
		}
		return false;
	});

	$('#menu .subsubactive').parents('li').addClass('subactive').prev('.topnav').addClass('greybackMenu_active');

	
/* 	$('#page_tree li li').hide(); */
	$('.sortable_haschildren A').click(function() {
		$(this).parent('div').parent('div').next('ul').children('li').toggle();
		if($(this).parent('div').parent('div').next('ul').children('li').css("display")=="none"){
			$(this).removeClass('shown');
		} else {
			$(this).addClass('shown');
		}
		return false;
	})

	var page_tree_expand = false;
	$('#page_tree_expand').click(function(){
		if(page_tree_expand) {
			$('#page_tree li li').show();
			$('.sortable_haschildren A').addClass('shown');
			$('#page_tree_expand').text("Collapse All");
			page_tree_expand = false;
		} else {
			$('#page_tree li li').hide();
			page_tree_expand = true;
			$('.sortable_haschildren A').removeClass('shown');
			$('#page_tree_expand').text("Expand All");
		}
		return false;
	});

	$('.dropcontrol_arrow').click(function() {
		ul = $(this).next('ul');
		if(ul.css('display')=="block") {
			$('.dropcontrols:visible').fadeOut();
		} else {
			$('.dropcontrols:visible').fadeOut();
			ul.fadeIn();
		}
		return false;
	});
	
	/* SORTABLE PAGE ELEMENTS */
	$('#page_content .droppable').sortable({
		connectWith:'.droppable',
		items:'.draggable',
		stop:function(event,ui) {
			getPageLayout();
		}
	});

	function getPageLayout() {
		var linkLayout = {};
		$('#page_content .droppable').each(function(index,item) {
			var placeholder = $(item).attr('id');
			linkLayout[placeholder] = null;
			linkLayout[placeholder] = [];
			$('#'+placeholder+' .draggable').each(function(subindex,subitem) {
				linkLayout[placeholder][linkLayout[placeholder].length] = $(subitem).attr('id');
			});
		});
		$('#PageSorting, #PageTemplateSorting, #MobilePageSorting, #NewsletterTemplateSorting, #NewsletterEmailSorting').val(JSON.stringify(linkLayout));
	}

	/* RESIZABLE/SORTABLE PAGE ELEMENTS */
	$('#page_template_positions .droppable').sortable({
		connectWith:'.droppable',
		stop:function(event,ui) {
			getPageTemplateLayout();
		}
	});

	$('#page_template_positions .draggable').dblclick(function() {
		greybackCurrentElementBlock = this.id;
		$.facebox($('#block_config').html());
		$('#facebox #PageTemplateTmptitle, #facebox #NewsletterTemplateTmptitle').val(layoutDefaults[this.id]['display']);
		$('#facebox #PageTemplateTmpmaxWidth, #facebox #NewsletterTemplateTmpmaxWidth').val(layoutDefaults[this.id]['max_width']);
		$('#facebox #PageTemplateTmpenable, #facebox #NewsletterTemplateTmpenable').attr('checked',Boolean(layoutDefaults[this.id]['enabled']));
	});

	$('.resizable').resizable({
		grid: [60,0],
		maxHeight: 45,
		minHeight: 45,
		maxWidth: 703,
		minWidth: 173,
		stop:function (event,ui) {
			getPageTemplateLayout();
		}
	});

	/* DATE */
	$('.date').datepicker({
		showOn: 'button',
		buttonImage: 'img/core/calendar.png',
		buttonImageOnly: true,
		showButtonPanel: true

	});
	
	/* ADVANCED DROP DOWN */
	advanced();

	$(document).bind('beforeReveal.facebox', function() {
	    var height = $(window).height() - 100;
	    $('#facebox .content').css('max-height', height + 'px');
	});

	$("body").append("<div id='opaque' style='display: none;'></div>");

	$(document).bind('loading.facebox', function() {
	    $("#opaque").show();
	    var fbox = $('#facebox .content');
	    $('body').css({
	    	'overflow':'hidden'
	    });
	});
	
	$(document).bind('reveal.facebox', function() {
		var fbox = $('#facebox .content');
		var fwidth = fbox.width();
		if(fbox.height() > 500) {
			var newwidth = (fwidth+30)+'px';
			//fbox.css({height:'500px',width:newwidth});
		} 
	});

	
	$(document).bind('close.facebox', function() {
		$("#opaque").hide();
		$('body').css({
			'overflow':'auto'
		});
	});

	//$('.colorbox').facebox();
	$('.colorbox').live('click',function() {
		greybackShadowbox($(this).attr('href'));
		return false;
	});

	/* FLASH MESSAGES */
	/*
$('#flashMessage').attr('title','Attention').dialog({
		bgiframe: true,
		modal: false,
		position: ['right','top']
	});
*/
	if($('#flashMessage').length > 0) {
		setTimeout(function() {$('#flashMessage').fadeOut()},5000);
	}
	
	$('.tags label a').click(function() {
		$('#tags').toggle();
		return false;
	});
	
	$('.greybackMediaSelectorRemove').click(function() {
		$(this).prev().html($(this).attr('title'));
		$(this).parents('.greybackMedia').next().val('');
		return false;
	});
});


function afterLoad() {
	//This function will be overwritten by pages needing to call after the colorbox loads.
}

var wymeditor = Object();

function setupEditor(obj, width, msword) {
	var isiPad = navigator.userAgent.match(/iPad/i) != null;
	if(!isiPad) {
		$(obj).greybackEditor({
			max_width:width
		});
	}
}

function checkWordCopy(obj, width) {
	$(obj).hide();
	$('<div>Are you copying text from MS Word or other word processor?</div>').dialog({
		buttons: {
			"No":function() {
				setupEditor(obj, width, false);
				$(this).dialog('close');
			},
			"Yes":function() {
				$(obj).show();
				$(this).dialog('close');
			}
		}
	});
}

function advanced() {
	$('.advanced').wrapInner('<div class="advanced_content"></div>').prepend('<label class="advanced_label"><a href="#" class="advanced_link">Advanced</a></label>');
	$('.advanced_link').click(function(){
		$(this).parent('label.advanced_label').next('.advanced_content').slideToggle();
		return false;
	});
}

function datePicker() {
	$('.date').datepicker({
		showOn: 'button',
		buttonImage: 'img/core/calendar.png',
		buttonImageOnly: true,
		showButtonPanel: true
	});
}

function getPageTemplateLayout() {

	var page_template_layout = {};
	var unused = {};
	var layout = {};

	var elements = $('#page_template_unused').sortable('toArray');
	$(elements).each(function(index,item) {
		unused[item] = layoutDefaults[item];
		unused[item]["width"] = $('#'+item).width();
		layoutDefaults[item]["width"] = $('#'+item).width();
	});

	elements = $('#page_template_layout').sortable('toArray');
	$(elements).each(function(index,item) {
		layout[item] = layoutDefaults[item];
		layout[item]["width"] = $('#'+item).width();
		layoutDefaults[item]["width"] = $('#'+item).width();
	});

	page_template_layout = {
		unused: unused,
		layout: layout
	}

	$('#PageTemplateJson, #NewsletterTemplateJson').val(JSON.stringify(page_template_layout));
}

function updateNewsletterTemplateJson() {
	layoutDefaults[greybackCurrentElementBlock]['display'] = $('#facebox #NewsletterTemplateTmptitle').val();
	$('#' + greybackCurrentElementBlock + ' .block_display').html($('#facebox #NewsletterTemplateTmptitle').val());
	layoutDefaults[greybackCurrentElementBlock]['max_width'] = $('#facebox #NewsletterTemplateTmpmaxWidth').val();
	$('#' + greybackCurrentElementBlock + ' .block_max_width').html($('#facebox #NewsletterTemplateTmpmaxWidth').val());
	layoutDefaults[greybackCurrentElementBlock]['enabled'] = $('#facebox #NewsletterTemplateTmpenable').attr('checked');
	$('#' + greybackCurrentElementBlock + ' .block_enabled').html( String($('#facebox #NewsletterTemplateTmpenable').attr('checked')));
	getPageTemplateLayout();
	$.facebox.close();
}

function updateTemplateJson() {
	layoutDefaults[greybackCurrentElementBlock]['display'] = $('#facebox #PageTemplateTmptitle').val();
	$('#' + greybackCurrentElementBlock + ' .block_display').html($('#facebox #PageTemplateTmptitle').val());
	layoutDefaults[greybackCurrentElementBlock]['max_width'] = $('#facebox #PageTemplateTmpmaxWidth').val();
	$('#' + greybackCurrentElementBlock + ' .block_max_width').html($('#facebox #PageTemplateTmpmaxWidth').val());
	layoutDefaults[greybackCurrentElementBlock]['enabled'] = $('#facebox #PageTemplateTmpenable').attr('checked');
	$('#' + greybackCurrentElementBlock + ' .block_enabled').html( String($('#facebox #PageTemplateTmpenable').attr('checked')));
	getPageTemplateLayout();
	$.facebox.close();
}

function greybackStartThink() {
	$('#loading').css('top',$(document).scrollTop()).animate({marginTop:0},'fast');
}

function greybackStopThink() {
	$('#loading').animate({marginTop:-50},'fast',function() { $('#loading').css('top',0) });
}

function greybackFullscreen(url) {
	greybackStartThink();
	$('html').css('overflow','hidden');
		
	$.ajax(url,{
		async:false,
		success:function(data) {
			$('#fullscreen').css('top',$(document).scrollTop()).scrollTop(0);
			$('#fullscreen_content').html(data);
			if($('#fullscreen').css('display')=='none') {
				$('#fullscreen').fadeIn();
			}
			greybackStopThink();
		}
	});
}

function greybackFullscreenClose() {
	$('#fullscreen:visible').fadeOut('fast');
	$('html').css('overflow','auto');
}

function greybackShadowbox(url) {
	greybackStartThink();
	$('html').css('overflow','hidden');
	if($('#shadowbox').css('display')=='none') {
		$('#shadowbox').fadeIn().css('top',$(document).scrollTop()).scrollTop(0);
	}
	
	var newData = null;
	
	$.ajax(url,{async:false,success:function(data){
		$('#shadowbox_data').html(data);
	}});
	
	$('#shadowbox_content').css({
		marginTop:(0-($('#shadowbox_data').height()/2))+'px',
		minWidth:$('#shadowbox_data').width(),
		opacity:1
	});

	if($('#shadowbox').css('display')=='none') {
		$('#shadowbox').fadeIn();
	}
	greybackStopThink();
	/*
$.get(url,function(data) {
		
		$('#shadowbox').css('top',$(document).scrollTop()).scrollTop(0);
		
		if($('#shadowbox').css('display')=='none') {
			$('#shadowbox').fadeIn();
		}
		
	});
*/
}

function greybackShadowboxClose() {
	$('#shadowbox').fadeOut('fast');
	$('html').css('overflow','auto');
}
