Event.observe(window, 'load', function() {

	$$('.flash_message').invoke('highlight', this);

});

var highlight = function(elem) {
	new Effect.Highlight(elem, { startcolor:'#a1a1a1', endcolor:'#ffffff' } );
}

var modalWindow = Class.create();
modalWindow.prototype = {
	initialize: function() {
		
	},
	create: function(url, options) {
		this.options = Object.extend({
			width: '80%',
			height: '80%',
			parameters: '',
			loadingMessage: 'Loading...',
			loadAjax: true,
			content: '',
			bindOverlayClose: true
		}, options || { });

		var self = this;

		this.initialContent = this.options.loadingMessage;
		this.getClientDims();
		
		
		if (Object.inspect($('ModalWindow')) == 'null') {
			
			this.StatusOverlay = Builder.node("div", { id: "StatusOverlay", opacity: "0" });
			this.ModalWindow = Builder.node("div", { id: "ModalWindow", opacity: "0" });
			
			document.body.insertBefore(this.ModalWindow, document.body.childNodes[0]);
			document.body.insertBefore(this.StatusOverlay, document.body.childNodes[0]);
	
			Element.setOpacity('StatusOverlay',0.4);
			
			this.StatusOverlay.stopObserving('click');
			if (this.options.bindOverlayClose) {
				this.StatusOverlay.observe('click', function() { this.hide() }.bind(this));
			}
			
		}
		else {
			this.StatusOverlay.stopObserving('click');
			if (this.options.bindOverlayClose) {
				this.StatusOverlay.observe('click', function() { this.hide() }.bind(this));
			}
		}
			
		Element.update(this.ModalWindow, this.initialContent);
		this.setWindowDims();
		this.center();
		this.show();
		
		if (this.options.loadAjax) {
			new Ajax.Updater('ModalWindow', url, {
			  parameters: this.options.parameters
			});
		}
		else {
			this.ModalWindow.update(this.options.content);
		}
	},
	getClientDims: function() {
		frameWidth = 0;
		frameHeight = 0;
		if (self.innerWidth)
		{
			frameWidth = self.innerWidth;
			frameHeight = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientWidth)
		{
			frameWidth = document.documentElement.clientWidth;
			frameHeight = document.documentElement.clientHeight;
		}
		else if (document.body)
		{
			frameWidth = document.body.clientWidth;
			frameHeight = document.body.clientHeight;
		}
		this.clientWidth = frameWidth;
		this.clientHeight = frameHeight;
		return new Array(this.clientWidth, this.clientHeight);
	},
	setWindowDims: function() {
		if (this.options.width.indexOf("%") == -1) {
			this.ModalWindow.setStyle({width:this.options.width});
			this.modalWidth = this.ModalWindow.getWidth();
		}
		else {
			var newWidth = this.clientWidth * parseInt(this.options.width) / 100;
			this.ModalWindow.setStyle({width:newWidth + 'px'});
			this.modalWidth = this.ModalWindow.getWidth();
		}
		if (this.options.height.indexOf("%") == -1) {
			this.ModalWindow.setStyle({height:this.options.height});
			this.modalHeight = this.ModalWindow.getHeight();
		}
		else {
			var newHeight = this.clientHeight * parseInt(this.options.height) / 100;
			this.ModalWindow.setStyle({height:newHeight + 'px'});
			this.modalHeight = this.ModalWindow.getHeight();
		}
	},
	show: function() {
		if (navigator.appVersion.match(/\bMSIE\b/)) {
			this._prepareIE("100%", "hidden");
		}
		this.StatusOverlay.show();
		this.ModalWindow.show();
	},
	hide: function() {
		if (navigator.appVersion.match(/\bMSIE\b/)) {
			this._prepareIE("auto", "auto");
		}
		this.StatusOverlay.hide();
		this.ModalWindow.hide();
	},
	close: function() {
		this.hide();
	},
	center: function() {
		this.ModalWindow.setStyle({
		  left: Math.round(this.clientWidth / 2 - this.modalWidth / 2) + 'px',
		  top:  Math.round(this.clientHeight / 2 - this.modalHeight / 2)  + 'px'
		});		
	},
	_prepareIE: function(height, overflow){
		var body = document.getElementsByTagName('body')[0];
		body.style.height = height;
		body.style.overflow = overflow;
  
		var html = document.getElementsByTagName('html')[0];
		html.style.height = height;
		html.style.overflow = overflow; 
	}

	
}
var popupWindow = new modalWindow();


var openPageWindow = function() {
	popupWindow.create(WR + 'admin/pagelist/', {loadingMessage: '<div class="modal_content">Loading Page List...</div>'});
}
var openAssetWindow = function() {
	popupWindow.create(WR + 'admin/assetlist/', {loadingMessage: '<div class="modal_content">Loading Asset List...</div>'});
}
var uploadNewAsset = function() {
	popupWindow.create(WR + 'admin/newasset/', {loadingMessage: '<div class="modal_content">Loading Asset Form...</div>'});
}
var close_modal = function() {
	popupWindow.close();
}

var showPageList = function(theDiv) {
	new Ajax.Updater(theDiv, WR + 'admin/pagelistoption/');
}

var insertContent = function(id, insertCode) {
	tinyMCE.execCommand('mceFocus',false,id);
	tinyMCE.execCommand('mceInsertContent',false,insertCode);
}
var insertImage = function(id, image, alt) {
	var insertCode = '<img src="' + image + '" alt="' + alt + '" />';
	insertContent(id, insertCode);	
}
var insertThumbnail = function(id, image, thumb, alt) {
	var insertCode = '<a href="' + image + '"><img src="' + thumb + '" alt="' + alt + '" /></a>';
	insertContent(id, insertCode);
}
var insertLink = function(id, inLink, text) {
	var insertCode = '<a href="' + inLink + '">' + text + '</a>';
	insertContent(id, insertCode);	
}
