// -------------------------------------------------------------------
// markItUp!
// -------------------------------------------------------------------
// Copyright (C) 2008 Jay Salvat
// http://markitup.jaysalvat.com/
// -------------------------------------------------------------------
// MarkDown tags example
// http://en.wikipedia.org/wiki/Markdown
// http://daringfireball.net/projects/markdown/
// -------------------------------------------------------------------
// Feel free to add more tags
// -------------------------------------------------------------------
markdown_image_base_string = '![{alt}]({src} "{title}")';
markdown_link_base_string = '[{text}]({src} "{title}")';

markdown_normal = {
	previewParserPath:	'/render_text/markdown/',
	onShiftEnter:		{keepDefault:false, openWith:'\n\n'},
	markupSet: [
		{name:'First Level Heading', className:'markItUpMarkdownH1Button', key:'1', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '=') } },
		{name:'Second Level Heading', className:'markItUpMarkdownH2Button', key:'2', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '-') } },
		{name:'Heading 3', className:'markItUpMarkdownH3Button', key:'3', openWith:'### ', placeHolder:'Your title here...' },
		{name:'Heading 4', className:'markItUpMarkdownH4Button', key:'4', openWith:'#### ', placeHolder:'Your title here...' },
		{name:'Heading 5', className:'markItUpMarkdownH5Button', key:'5', openWith:'##### ', placeHolder:'Your title here...' },
		{name:'Heading 6', className:'markItUpMarkdownH6Button', key:'6', openWith:'###### ', placeHolder:'Your title here...' },
		{separator:'---------------' },		
		{name:'Bold', className:'markItUpMarkdownBoldButton', key:'B', openWith:'**', closeWith:'**'},
		{name:'Italic', className:'markItUpMarkdownItalicButton', key:'I', openWith:'_', closeWith:'_'},
		{separator:'---------------' },
		{name:'Bulleted List', className:'markItUpMarkdownBulletListButton', openWith:'- ' },
		{name:'Numeric List', className:'markItUpMarkdownNumericListButton', openWith:function(markItUp) {
			return markItUp.line+'. ';
		}},
		{separator:'---------------' },
		{name:'Crochet Symbols', className:'markItUpMarkdownCrochetSymbolsButton',
            beforeInsert:function() { 
                $('.markItUpCrochetSymbol').attr('baseString', markdown_image_base_string);
                $("#crochetSymbolsPlugin").modal();
            }
		},
		{name:'Picture', className:'markItUpMarkdownPictureButton', key:'P', replaceWith:'![[![Alternative text]!]]([![Url:!:http://]!] "[![Title]!]")'},
		{name:'Link', className:'markItUpMarkdownLinkButton', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!] "[![Title]!]")', placeHolder:'Your text to link here...' },
		{separator:'---------------'},	
		{name:'Quotes', className:'markItUpMarkdownQuoteButton', openWith:'> '},
		{name:'Code Block / Code', className:'markItUpMarkdownCodeButton', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)'},
		{separator:'---------------'},
		{name:'Preview', className:"markItUpMarkdownPreviewButton", call:'preview'}
	]
}

markdown_text_only = {
	previewParserPath:	'/render_text/markdown/',
	onShiftEnter:		{keepDefault:false, openWith:'\n\n'},
	markupSet: [
		{name:'First Level Heading', className:'markItUpMarkdownH1Button', key:'1', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '=') } },
		{name:'Second Level Heading', className:'markItUpMarkdownH2Button', key:'2', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '-') } },
		{name:'Heading 3', className:'markItUpMarkdownH3Button', key:'3', openWith:'### ', placeHolder:'Your title here...' },
		{name:'Heading 4', className:'markItUpMarkdownH4Button', key:'4', openWith:'#### ', placeHolder:'Your title here...' },
		{name:'Heading 5', className:'markItUpMarkdownH5Button', key:'5', openWith:'##### ', placeHolder:'Your title here...' },
		{name:'Heading 6', className:'markItUpMarkdownH6Button', key:'6', openWith:'###### ', placeHolder:'Your title here...' },
		{separator:'---------------' },		
		{name:'Bold', className:'markItUpMarkdownBoldButton', key:'B', openWith:'**', closeWith:'**'},
		{name:'Italic', className:'markItUpMarkdownItalicButton', key:'I', openWith:'_', closeWith:'_'},
		{separator:'---------------' },
		{name:'Bulleted List', className:'markItUpMarkdownBulletListButton', openWith:'- ' },
		{name:'Numeric List', className:'markItUpMarkdownNumericListButton', openWith:function(markItUp) {
			return markItUp.line+'. ';
		}},
		{separator:'---------------'},	
		{name:'Crochet Symbols', className:'markItUpMarkdownCrochetSymbolsButton',
            beforeInsert:function() { 
                $('.markItUpCrochetSymbol').attr('baseString', markdown_image_base_string);
                $("#crochetSymbolsPlugin").modal();
            }
		},
		{separator:'---------------'},	
		{name:'Quotes', className:'markItUpMarkdownQuoteButton', openWith:'> '},
		{name:'Code Block / Code', className:'markItUpMarkdownCodeButton', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)'},
		{separator:'---------------'},
		{name:'Preview', className:"markItUpMarkdownPreviewButton", call:'preview'}
	]
}

markdown_library = {
	previewParserPath:	'/render_text/markdown/',
	onShiftEnter:		{keepDefault:false, openWith:'\n\n'},
	markupSet: [
		{name:'First Level Heading', className:'markItUpMarkdownH1Button', key:'1', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '=') } },
		{name:'Second Level Heading', className:'markItUpMarkdownH2Button', key:'2', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '-') } },
		{name:'Heading 3', className:'markItUpMarkdownH3Button', key:'3', openWith:'### ', placeHolder:'Your title here...' },
		{name:'Heading 4', className:'markItUpMarkdownH4Button', key:'4', openWith:'#### ', placeHolder:'Your title here...' },
		{name:'Heading 5', className:'markItUpMarkdownH5Button', key:'5', openWith:'##### ', placeHolder:'Your title here...' },
		{name:'Heading 6', className:'markItUpMarkdownH6Button', key:'6', openWith:'###### ', placeHolder:'Your title here...' },
		{separator:'---------------' },		
		{name:'Bold', className:'markItUpMarkdownBoldButton', key:'B', openWith:'**', closeWith:'**'},
		{name:'Italic', className:'markItUpMarkdownItalicButton', key:'I', openWith:'_', closeWith:'_'},
		{separator:'---------------' },
		{name:'Bulleted List', className:'markItUpMarkdownBulletListButton', openWith:'- ' },
		{name:'Numeric List', className:'markItUpMarkdownNumericListButton', openWith:function(markItUp) {
			return markItUp.line+'. ';
		}},
		{separator:'---------------' },
		{name:'Crochet Symbols', className:'markItUpMarkdownCrochetSymbolsButton',
            beforeInsert:function() { 
                $('.markItUpCrochetSymbol').attr('baseString', markdown_image_base_string);
                $("#crochetSymbolsPlugin").modal();
            }
		},
		{name:'Picture Library', className:'markItUpMarkdownPicutreLibraryButton', 
            beforeInsert:function() { 
                $("#pictureLibraryPlugin").load(
                    '/ajax/picture_library/view/' + pictureLibraryObjectId + "/",
                    function() {
                        $(".pictureLibrarySelection").attr('baseString', markdown_image_base_string);
                        $("#pictureLibraryPlugin").modal();
                    }
                );
            }
        },
		{name:'Picture', className:'markItUpMarkdownPictureButton', key:'P', replaceWith:'![[![Alternative text]!]]([![Url:!:http://]!] "[![Title]!]")'},
		{name:'Link', className:'markItUpMarkdownLinkButton', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!] "[![Title]!]")', placeHolder:'Your text to link here...' },
		{separator:'---------------'},	
		{name:'Quotes', className:'markItUpMarkdownQuoteButton', openWith:'> '},
		{name:'Code Block / Code', className:'markItUpMarkdownCodeButton', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)'},
		{separator:'---------------'},
		{name:'Preview', className:"markItUpMarkdownPreviewButton", call:'preview'}
	]
}

markdown_cms_page = {
	previewParserPath:	'/render_text/markdown/',
	onShiftEnter:		{keepDefault:false, openWith:'\n\n'},
	markupSet: [
		{name:'First Level Heading', className:'markItUpMarkdownH1Button', key:'1', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '=') } },
		{name:'Second Level Heading', className:'markItUpMarkdownH2Button', key:'2', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '-') } },
		{name:'Heading 3', className:'markItUpMarkdownH3Button', key:'3', openWith:'### ', placeHolder:'Your title here...' },
		{name:'Heading 4', className:'markItUpMarkdownH4Button', key:'4', openWith:'#### ', placeHolder:'Your title here...' },
		{name:'Heading 5', className:'markItUpMarkdownH5Button', key:'5', openWith:'##### ', placeHolder:'Your title here...' },
		{name:'Heading 6', className:'markItUpMarkdownH6Button', key:'6', openWith:'###### ', placeHolder:'Your title here...' },
		{separator:'---------------' },		
		{name:'Bold', className:'markItUpMarkdownBoldButton', key:'B', openWith:'**', closeWith:'**'},
		{name:'Italic', className:'markItUpMarkdownItalicButton', key:'I', openWith:'_', closeWith:'_'},
		{separator:'---------------' },
		{name:'Bulleted List', className:'markItUpMarkdownBulletListButton', openWith:'- ' },
		{name:'Numeric List', className:'markItUpMarkdownNumericListButton', openWith:function(markItUp) {
			return markItUp.line+'. ';
		}},
		{separator:'---------------' },
		{name:'Crochet Symbols', className:'markItUpMarkdownCrochetSymbolsButton',
            beforeInsert:function() { 
                $('.markItUpCrochetSymbol').attr('baseString', markdown_image_base_string);
                $("#crochetSymbolsPlugin").modal();
            }
		},
		{name:'Picture Library', className:'markItUpMarkdownPicutreLibraryButton', 
            beforeInsert:function() { 
                $("#pictureLibraryPlugin").load(
                    '/ajax/picture_library/view/' + pictureLibraryObjectId + "/",
                    function() {
                        $(".pictureLibrarySelection").attr('baseString', markdown_image_base_string);
                        $("#pictureLibraryPlugin").modal();
                    }
                );
            }
        },
		{name:'Picture', className:'markItUpMarkdownPictureButton', key:'P', replaceWith:'![[![Alternative text]!]]([![Url:!:http://]!] "[![Title]!]")'},
		{name:'Internal Link', className:'markItUpMarkdownPageSelectorLinkButton',
            beforeInsert:function() {
                $("#pageSelectorPlugin").load(
                    "/ajax/page_list_selector/",
                    function () {
                        $(".pageListSelection").attr('baseString', markdown_link_base_string);
                        $("#pageSelectorPlugin").modal();
                    }
                );
            }
		},
		{name:'External Link', className:'markItUpMarkdownLinkButton', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!] "[![Title]!]")', placeHolder:'Your text to link here...' },
		{separator:'---------------'},	
		{name:'Quotes', className:'markItUpMarkdownQuoteButton', openWith:'> '},
		{name:'Code Block / Code', className:'markItUpMarkdownCodeButton', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)'},
		{separator:'---------------'},
		{name:'Preview', className:"markItUpMarkdownPreviewButton", call:'preview'}
	]
}

// mIu nameSpace to avoid conflict.
miu = {
	markdownTitle: function(markItUp, char) {
		heading = '';
		n = $.trim(markItUp.selection||markItUp.placeHolder).length;
		for(i = 0; i < n; i++) {
			heading += char;
		}
		return '\n'+heading;
	}
}